Guest User

Untitled

a guest
Oct 24th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.92 KB | None | 0 0
  1. //class MinigameMediator
  2. package com.wonderhill.castlemania.view
  3. {
  4. import com.kabam.common.event.*;
  5. import com.wonderhill.castlemania.*;
  6. import com.wonderhill.castlemania.model.*;
  7. import com.wonderhill.castlemania.model.constants.*;
  8. import com.wonderhill.castlemania.model.vo.*;
  9. import com.wonderhill.castlemania.view.components.*;
  10. import com.wonderhill.castlemania.view.dialog.*;
  11. import flash.display.*;
  12. import org.puremvc.as3.multicore.interfaces.*;
  13. import org.puremvc.as3.multicore.patterns.mediator.*;
  14.  
  15. public class MinigameMediator extends org.puremvc.as3.multicore.patterns.mediator.Mediator
  16. {
  17. public function MinigameMediator(arg1:flash.display.Sprite)
  18. {
  19. super(NAME, arg1);
  20. return;
  21. }
  22.  
  23. internal function get holder():flash.display.Sprite
  24. {
  25. return viewComponent as flash.display.Sprite;
  26. }
  27.  
  28. internal function get ticketsPanel():com.wonderhill.castlemania.view.components.TicketsDialog
  29. {
  30. if (!this._tickets)
  31. {
  32. this._tickets = new com.wonderhill.castlemania.view.components.TicketsDialog();
  33. }
  34. return this._tickets;
  35. }
  36.  
  37. internal function get minigamePanel():com.wonderhill.castlemania.view.components.MinigamePanel
  38. {
  39. if (!this._minigamePanel)
  40. {
  41. this._minigamePanel = new com.wonderhill.castlemania.view.components.MinigamePanel();
  42. }
  43. return this._minigamePanel;
  44. }
  45.  
  46. internal function get minigameGoldPanel():com.wonderhill.castlemania.view.components.MinigameGoldPanel
  47. {
  48. if (!this._minigameGoldPanel)
  49. {
  50. this._minigameGoldPanel = new com.wonderhill.castlemania.view.components.MinigameGoldPanel();
  51. }
  52. return this._minigameGoldPanel;
  53. }
  54.  
  55. public override function onRegister():void
  56. {
  57. this.registerEvents();
  58. return;
  59. }
  60.  
  61. public override function listNotificationInterests():Array
  62. {
  63. return [com.wonderhill.castlemania.ApplicationFacade.DIALOG_HIDE, com.wonderhill.castlemania.ApplicationFacade.PICK_AND_SHOW_MINIGAME_PANEL, com.wonderhill.castlemania.ApplicationFacade.PICK_AND_SHOW_MINIGAME_OR_PURCHASE_TICKET, com.wonderhill.castlemania.ApplicationFacade.SHOW_MINIGAME_PANEL, com.wonderhill.castlemania.ApplicationFacade.HIDE_MINIGAME_PANEL, com.wonderhill.castlemania.ApplicationFacade.SHOW_MINIGAME_GOLD_PANEL, com.wonderhill.castlemania.ApplicationFacade.HIDE_MINIGAME_GOLD_PANEL, com.wonderhill.castlemania.ApplicationFacade.MINIGAME_REWARD_CLAIMED];
  64. }
  65.  
  66. public override function handleNotification(arg1:org.puremvc.as3.multicore.interfaces.INotification):void
  67. {
  68. var loc1:*=arg1.getName();
  69. switch (loc1)
  70. {
  71. case com.wonderhill.castlemania.ApplicationFacade.PICK_AND_SHOW_MINIGAME_OR_PURCHASE_TICKET:
  72. case com.wonderhill.castlemania.ApplicationFacade.PICK_AND_SHOW_MINIGAME_PANEL:
  73. {
  74. if (com.wonderhill.castlemania.model.PlayerProxy.instance.player.minigameHasFreeGoldTicket)
  75. {
  76. this.startGoldMinigame();
  77. }
  78. else if (com.wonderhill.castlemania.model.PlayerProxy.instance.player.minigameHasFreeTicket)
  79. {
  80. this.startMinigame();
  81. }
  82. else if (arg1.getName() == com.wonderhill.castlemania.ApplicationFacade.PICK_AND_SHOW_MINIGAME_OR_PURCHASE_TICKET)
  83. {
  84. this.showTickets();
  85. }
  86. break;
  87. }
  88. case com.wonderhill.castlemania.ApplicationFacade.SHOW_MINIGAME_PANEL:
  89. {
  90. this.startMinigame();
  91. break;
  92. }
  93. case com.wonderhill.castlemania.ApplicationFacade.SHOW_MINIGAME_GOLD_PANEL:
  94. {
  95. this.startGoldMinigame();
  96. break;
  97. }
  98. case com.wonderhill.castlemania.ApplicationFacade.HIDE_MINIGAME_PANEL:
  99. {
  100. this.handleCloseMinigame();
  101. break;
  102. }
  103. case com.wonderhill.castlemania.ApplicationFacade.HIDE_MINIGAME_GOLD_PANEL:
  104. {
  105. this.handleCloseMinigameGold();
  106. break;
  107. }
  108. case com.wonderhill.castlemania.ApplicationFacade.MINIGAME_REWARD_CLAIMED:
  109. {
  110. if (this.minigamePanel.visible)
  111. {
  112. this.minigamePanel.showConfirmReward(arg1.getBody());
  113. }
  114. else if (this.minigameGoldPanel.visible)
  115. {
  116. this.minigameGoldPanel.showConfirmReward(arg1.getBody());
  117. }
  118. break;
  119. }
  120. case com.wonderhill.castlemania.ApplicationFacade.DIALOG_HIDE:
  121. {
  122. this.hideAll();
  123. break;
  124. }
  125. }
  126. return;
  127. }
  128.  
  129. internal function startMinigame():void
  130. {
  131. com.wonderhill.castlemania.model.MinigameProxy.instance.requestPrizeList(com.wonderhill.castlemania.model.MinigameProxy.REGULAR_GAME, this.showMinigamePanel);
  132. return;
  133. }
  134.  
  135. internal function startGoldMinigame():void
  136. {
  137. com.wonderhill.castlemania.model.MinigameProxy.instance.requestPrizeList(com.wonderhill.castlemania.model.MinigameProxy.GOLDEN_GAME, this.showMinigameGoldPanel);
  138. return;
  139. }
  140.  
  141. internal function hideAll():void
  142. {
  143. this.hideTickets();
  144. this.hideMinigame();
  145. this.hideMinigameGold();
  146. sendNotification(com.wonderhill.castlemania.ApplicationFacade.STOP_MUSIC, [true, true]);
  147. sendNotification(com.wonderhill.castlemania.ApplicationFacade.LOGIN_MESSAGE_POPOUT);
  148. return;
  149. }
  150.  
  151. public function showTickets():void
  152. {
  153. this.holder.addChild(this.ticketsPanel);
  154. this.ticketsPanel.show();
  155. return;
  156. }
  157.  
  158. public function hideTickets():void
  159. {
  160. this.ticketsPanel.hide();
  161. if (this.ticketsPanel.parent)
  162. {
  163. this.ticketsPanel.parent.removeChild(this.ticketsPanel);
  164. }
  165. return;
  166. }
  167.  
  168. public function showMinigamePanel():void
  169. {
  170. this.hideTickets();
  171. this.holder.addChild(this.minigamePanel);
  172. this.minigamePanel.show();
  173. sendNotification(com.wonderhill.castlemania.ApplicationFacade.STOP_MUSIC, true);
  174. sendNotification(com.wonderhill.castlemania.ApplicationFacade.PLAY_SOUND, [com.wonderhill.castlemania.view.components.SoundView.FORTUNA_MUSIC, 1000, 0, 0, true]);
  175. return;
  176. }
  177.  
  178. public function showMinigameGoldPanel():void
  179. {
  180. this.hideTickets();
  181. this.holder.addChild(this.minigameGoldPanel);
  182. this.minigameGoldPanel.show();
  183. sendNotification(com.wonderhill.castlemania.ApplicationFacade.STOP_MUSIC, true);
  184. sendNotification(com.wonderhill.castlemania.ApplicationFacade.PLAY_SOUND, [com.wonderhill.castlemania.view.components.SoundView.FORTUNA_MUSIC, 1000, 0, 0, true]);
  185. return;
  186. }
  187.  
  188. internal function registerEvents():void
  189. {
  190. this.ticketsPanel.addEventListener(com.wonderhill.castlemania.view.components.PurchaseTicketWidget.PLAY_GAME, this.handlePurchaseAndPlay);
  191. this.minigamePanel.addEventListener(com.wonderhill.castlemania.view.dialog.BasicDialog.CLICK_CLOSE, this.handleCloseMinigame);
  192. this.minigamePanel.addEventListener(com.wonderhill.castlemania.view.components.MinigamePanel.SELECT, this.handleSelectBox);
  193. this.minigamePanel.addEventListener(com.wonderhill.castlemania.view.components.MinigamePanel.SHARE, this.handleShare);
  194. this.minigamePanel.addEventListener(com.wonderhill.castlemania.view.components.MinigamePanel.NO_SHARE, this.handleNoShare);
  195. this.minigameGoldPanel.addEventListener(com.wonderhill.castlemania.view.dialog.BasicDialog.CLICK_CLOSE, this.handleCloseMinigameGold);
  196. this.minigameGoldPanel.addEventListener(com.wonderhill.castlemania.view.components.MinigameGoldPanel.SELECT, this.handleSelectBox);
  197. this.minigameGoldPanel.addEventListener(com.wonderhill.castlemania.view.components.MinigameGoldPanel.SHARE, this.handleShare);
  198. this.minigameGoldPanel.addEventListener(com.wonderhill.castlemania.view.components.MinigameGoldPanel.NO_SHARE, this.handleNoShare);
  199. return;
  200. }
  201.  
  202. internal function handlePurchaseAndPlay(arg1:com.kabam.common.event.CustomEvent):void
  203. {
  204. if (arg1.payload["type"] != com.wonderhill.castlemania.model.constants.ItemConstants.FORTUNAS_CHANCE_TICKET)
  205. {
  206. if (arg1.payload["type"] == com.wonderhill.castlemania.model.constants.ItemConstants.FORTUNAS_GOLDEN_TICKET)
  207. {
  208. this.startGoldMinigame();
  209. }
  210. }
  211. else
  212. {
  213. this.startMinigame();
  214. }
  215. return;
  216. }
  217.  
  218. internal function hideMinigame():void
  219. {
  220. this.minigamePanel.hide();
  221. if (this.minigamePanel.parent)
  222. {
  223. this.minigamePanel.parent.removeChild(this.minigamePanel);
  224. }
  225. return;
  226. }
  227.  
  228. internal function handleCloseMinigame(arg1:com.kabam.common.event.CustomEvent=null):void
  229. {
  230. this.hideMinigame();
  231. sendNotification(com.wonderhill.castlemania.ApplicationFacade.STOP_MUSIC, [true, true]);
  232. sendNotification(com.wonderhill.castlemania.ApplicationFacade.LOGIN_MESSAGE_POPOUT);
  233. return;
  234. }
  235.  
  236. internal function hideMinigameGold():void
  237. {
  238. this.minigameGoldPanel.hide();
  239. if (this.minigameGoldPanel.parent)
  240. {
  241. this.minigameGoldPanel.parent.removeChild(this.minigameGoldPanel);
  242. }
  243. return;
  244. }
  245.  
  246. internal function handleCloseMinigameGold(arg1:com.kabam.common.event.CustomEvent=null):void
  247. {
  248. this.hideMinigameGold();
  249. sendNotification(com.wonderhill.castlemania.ApplicationFacade.STOP_MUSIC, [true, true]);
  250. sendNotification(com.wonderhill.castlemania.ApplicationFacade.LOGIN_MESSAGE_POPOUT);
  251. return;
  252. }
  253.  
  254. internal function handleSelectBox(arg1:com.kabam.common.event.CustomEvent):void
  255. {
  256. var loc1:*=com.wonderhill.castlemania.model.vo.PrizeVO(arg1.payload);
  257. var loc2:*=com.wonderhill.castlemania.model.MinigameProxy.REGULAR_GAME;
  258. if (arg1.target == this.minigameGoldPanel)
  259. {
  260. loc2 = com.wonderhill.castlemania.model.MinigameProxy.GOLDEN_GAME;
  261. }
  262. com.wonderhill.castlemania.model.MinigameProxy.instance.requestPrizeClaim(loc1, loc2, null, null, this.handleClaimPrizeResponseError);
  263. return;
  264. }
  265.  
  266. internal function handleClaimPrizeResponseError(arg1:Object=null):void
  267. {
  268. if (arg1)
  269. {
  270. sendNotification(com.wonderhill.castlemania.ApplicationFacade.ERROR_CONFIRMATION, {"description":arg1.result.errors[0]});
  271. }
  272. this.handleCloseMinigame();
  273. this.handleCloseMinigameGold();
  274. return;
  275. }
  276.  
  277. internal function handleShare(arg1:com.kabam.common.event.CustomEvent):void
  278. {
  279. var loc1:*=com.wonderhill.castlemania.model.vo.PrizeVO(arg1.payload);
  280. com.wonderhill.castlemania.model.JavaScriptProxy.instance.viralPost(com.wonderhill.castlemania.model.JavaScriptProxy.VIRAL_POST_FORTUNA, {"item":loc1.name});
  281. this.hideAll();
  282. this.showTickets();
  283. return;
  284. }
  285.  
  286. internal function handleNoShare(arg1:com.kabam.common.event.CustomEvent):void
  287. {
  288. this.hideAll();
  289. this.showTickets();
  290. return;
  291. }
  292.  
  293. public static const NAME:String="MinigameMediator";
  294.  
  295. internal var _minigamePanel:com.wonderhill.castlemania.view.components.MinigamePanel;
  296.  
  297. internal var _minigameGoldPanel:com.wonderhill.castlemania.view.components.MinigameGoldPanel;
  298.  
  299. internal var _tickets:com.wonderhill.castlemania.view.components.TicketsDialog;
  300. }
  301. }
Add Comment
Please, Sign In to add comment