EventPanel.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. var ItemType = require("ItemType");
  2. var RewardType = require("RewardType");
  3. var UserState = require("UserState");
  4. var EventPanel = cc.Class({
  5. extends: cc.Component,
  6. properties: {
  7. desLbl:cc.Label,
  8. btnLbl:[cc.Label],
  9. btnTip:[cc.Node],
  10. btnDesLbl:[cc.Label],
  11. Data:null,
  12. },
  13. ShowPanel:function (Id) {
  14. //cc.log("根据事件来处理问题 Id = " + Id);
  15. var data = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.EventData, Id);
  16. this.Data = data;
  17. this.desLbl.string = cc.Mgr.global.getTranslation("event_"+data.desId);
  18. for (var i = 0; i < 2; i++) {
  19. this.btnLbl[i].string = cc.Mgr.global.getTranslation("event_"+data.cost[i].desId);
  20. this.btnTip[i].active = true;
  21. if(data.cost[i].costType == RewardType.NULL)
  22. {
  23. this.btnTip[i].active = false;
  24. }
  25. else if(data.cost[i].costType == RewardType.Cash)
  26. {
  27. var costNum = Math.floor(data.cost[i].costNum * (1-cc.Mgr.UserDataMgr.EventCostBonus));
  28. this.btnDesLbl[i].string = "花费现金:"+costNum;
  29. }
  30. else if(data.cost[i].costType == RewardType.HP)
  31. {
  32. this.btnDesLbl[i].string = "消耗体力:"+data.cost[i].costNum;
  33. }
  34. else if(data.cost[i].costType == RewardType.Reputation)
  35. {
  36. this.btnDesLbl[i].string = "名声损失:"+data.cost[i].costNum;
  37. }
  38. }
  39. },
  40. ClickConfirmY:function(){
  41. var param = {};
  42. param.text = "";
  43. param.des = "";
  44. param.forWhat = "Event_No";
  45. if(cc.Mgr.UserDataMgr.userState == UserState.OK)
  46. {
  47. if(this.Data.cost[0].costType == RewardType.NULL)
  48. {
  49. param.forWhat = "Event_Yes";
  50. }
  51. else if(this.Data.cost[0].costType == RewardType.Cash)
  52. {
  53. if(cc.Mgr.UserDataMgr.Cash >= this.Data.cost[0].costNum)
  54. {
  55. param.forWhat = "Event_Yes";
  56. cc.Mgr.UserDataMgr.Cash -= this.Data.cost[0].costNum;
  57. }
  58. else
  59. {
  60. param.text = "钱不够,无法参与";
  61. param.forWhat = "Event_No";
  62. }
  63. }
  64. else if(this.Data.cost[0].costType == RewardType.HP)
  65. {
  66. if(cc.Mgr.UserDataMgr.HpPoint >= this.Data.cost[0].costNum)
  67. {
  68. param.forWhat = "Event_Yes";
  69. cc.Mgr.UserDataMgr.HpPoint -= this.Data.cost[0].costNum;
  70. }
  71. else
  72. {
  73. param.text = "你的健康状态已无法支持你进入本次活动";
  74. param.forWhat = "Event_No";
  75. }
  76. }
  77. else if(this.Data.cost[0].costType == RewardType.Reputation)
  78. {
  79. if(cc.Mgr.UserDataMgr.Reputation >= this.Data.cost[0].costNum)
  80. {
  81. param.forWhat = "Event_Yes";
  82. cc.Mgr.UserDataMgr.Reputation -= this.Data.cost[0].costNum;
  83. }
  84. else
  85. {
  86. param.text = "你的名声已无法支持你进入本次活动";
  87. param.forWhat = "Event_No";
  88. }
  89. }
  90. }
  91. else
  92. {
  93. param.text = "尚在治疗过程中,停止一切活动";
  94. param.forWhat = "Event_No";
  95. }
  96. if(param.forWhat != "Event_No")
  97. {
  98. param.forWhat = "Event_Yes";
  99. var result = null;
  100. var seed = Math.random();
  101. if(seed > 0.5)
  102. {
  103. result = this.Data.YResults[1];
  104. param.text = cc.Mgr.global.getTranslation("event_"+result.desId);
  105. }
  106. else
  107. {
  108. result = this.Data.YResults[0];
  109. param.text = cc.Mgr.global.getTranslation("event_"+result.desId);
  110. }
  111. if(result != null)
  112. {
  113. param.Pdata = cc.Mgr.UserDataMgr.GetOrCostDataByRewardType(result.rewardType, result.rewardNum, result.rewardId);
  114. var des = this.GetEventReward(result.rewardType, result.rewardId);
  115. if(des != "")
  116. {
  117. if(result.rewardNum > 0 && result.rewardType == RewardType.Goods)
  118. {
  119. if(param.Pdata.Id == -1)
  120. {
  121. param.des = des + "+" + result.rewardNum;
  122. param.text = "仓库已满,无法获得";//"+" + result.rewardNum;
  123. }
  124. else
  125. {
  126. param.des = des + "+" + result.rewardNum;
  127. param.text = param.text + "\n";//"+" + result.rewardNum;
  128. }
  129. }
  130. else if(result.rewardNum > 0 && (result.rewardType == RewardType.Stock || result.rewardType == RewardType.StockPrice))
  131. {
  132. if(param.Pdata.companyId == -1)
  133. {
  134. if(this.Data.cost[0].costType == RewardType.Cash)
  135. cc.Mgr.UserDataMgr.Cash += this.Data.cost[0].costNum;
  136. param.des = des + "+" + result.rewardNum;
  137. param.text = "该公司尚未创立,奖励无法获得,花费现金返回";//"+" + result.rewardNum;
  138. }
  139. else
  140. {
  141. param.des = des + "+" + result.rewardNum;
  142. param.text = param.text + "\n";//"+" + result.rewardNum;
  143. }
  144. }
  145. else
  146. {
  147. if(result.rewardNum > 0)
  148. param.des = des + "+" + result.rewardNum;
  149. else
  150. param.des = des + result.rewardNum;
  151. param.text = param.text + "\n" ;//+ result.rewardNum;
  152. }
  153. }
  154. }
  155. }
  156. else
  157. {
  158. }
  159. //cc.log("___________________________" + param.forWhat);
  160. //cc.log(" ====事件最终描述 ============= " + param.text);
  161. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenEventResult , param);
  162. this.ClosePanel();
  163. },
  164. ClickConfirmN:function(){
  165. var param = {};
  166. param.forWhat = "Event_No";
  167. param.text = "";
  168. param.des = "";
  169. if(cc.Mgr.UserDataMgr.userState == UserState.OK)
  170. {
  171. if(this.Data.cost[1].costType == RewardType.NULL)
  172. {
  173. param.forWhat = "Event_Yes";
  174. }
  175. else if(this.Data.cost[1].costType == RewardType.Cash)
  176. {
  177. if(cc.Mgr.UserDataMgr.Cash >= this.Data.cost[1].costNum)
  178. {
  179. param.forWhat = "Event_Yes";
  180. cc.Mgr.UserDataMgr.Cash -= this.Data.cost[1].costNum;
  181. }
  182. else
  183. {
  184. param.text = "钱不够,无法参与";
  185. param.forWhat = "Event_No";
  186. }
  187. }
  188. else if(this.Data.cost[1].costType == RewardType.HP)
  189. {
  190. if(cc.Mgr.UserDataMgr.HpPoint >= this.Data.cost[1].costNum)
  191. {
  192. param.forWhat = "Event_Yes";
  193. cc.Mgr.UserDataMgr.HpPoint -= this.Data.cost[1].costNum;
  194. }
  195. else
  196. {
  197. param.text = "你的健康状态已无法支持你进入本次活动";
  198. param.forWhat = "Event_No";
  199. }
  200. }
  201. else if(this.Data.cost[1].costType == RewardType.Reputation)
  202. {
  203. if(cc.Mgr.UserDataMgr.Reputation >= this.Data.cost[1].costNum)
  204. {
  205. param.forWhat = "Event_Yes";
  206. cc.Mgr.UserDataMgr.Reputation -= this.Data.cost[1].costNum;
  207. }
  208. else
  209. {
  210. param.text = "你的名声已无法支持你进入本次活动";
  211. param.forWhat = "Event_No";
  212. }
  213. }
  214. }
  215. else
  216. {
  217. param.text = "尚在治疗过程中,停止一切活动";
  218. param.forWhat = "Event_No";
  219. }
  220. if(param.forWhat != "Event_No")
  221. {
  222. param.forWhat = "Event_Yes";
  223. var seed = Math.random();
  224. var result = null;
  225. if(seed > 0.5)
  226. {
  227. result = this.Data.NResults[1];
  228. param.text = cc.Mgr.global.getTranslation("event_"+result.desId);
  229. }
  230. else
  231. {
  232. result = this.Data.NResults[0];
  233. param.text = cc.Mgr.global.getTranslation("event_"+result.desId);
  234. }
  235. if(result != null)
  236. {
  237. param.Pdata = cc.Mgr.UserDataMgr.GetOrCostDataByRewardType(result.rewardType, result.rewardNum, result.rewardId);
  238. var des = this.GetEventReward(result.rewardType, result.rewardId);
  239. if(des != "")
  240. {
  241. if(result.rewardNum > 0 && result.rewardType == RewardType.Goods )
  242. {
  243. if(param.Pdata.Id == -1)
  244. {
  245. param.des = des + "+" + result.rewardNum;
  246. param.text = "仓库已满,无法获得";//"+" + result.rewardNum;
  247. }
  248. else
  249. {
  250. param.des = des + "+" + result.rewardNum;
  251. param.text = param.text + "\n";//"+" + result.rewardNum;
  252. }
  253. }
  254. else if(result.rewardNum > 0 && (result.rewardType == RewardType.Stock || result.rewardType == RewardType.StockPrice))
  255. {
  256. if(param.Pdata.companyId == -1)
  257. {
  258. if(this.Data.cost[0].costType == RewardType.Cash)
  259. cc.Mgr.UserDataMgr.Cash += this.Data.cost[0].costNum;
  260. param.des = des + "+" + result.rewardNum;
  261. param.text = "该公司尚未创立,奖励无法获得,花费现金返回";//"+" + result.rewardNum;
  262. }
  263. else
  264. {
  265. param.des = des + "+" + result.rewardNum;
  266. param.text = param.text + "\n";//"+" + result.rewardNum;
  267. }
  268. }
  269. else
  270. {
  271. if(result.rewardNum > 0)
  272. param.des = des + "+" + result.rewardNum;
  273. else
  274. param.des = des + result.rewardNum;
  275. param.text = param.text + "\n";//+ result.rewardNum;
  276. }
  277. }
  278. }
  279. }
  280. else
  281. {
  282. }
  283. //cc.log("事件最终描述 ============= " + param.text);
  284. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenEventResult , param);
  285. this.ClosePanel();
  286. },
  287. GetEventReward:function(rewardType, rewardId){
  288. var des = "";
  289. switch (rewardType) {
  290. case RewardType.NULL:
  291. des = "";
  292. break;
  293. case RewardType.Cash:
  294. des = "现金";
  295. break;
  296. case RewardType.Car:
  297. des = "汽车";
  298. break;
  299. case RewardType.House:
  300. des = "房子";
  301. break;
  302. case RewardType.HP:
  303. des = "健康值";
  304. break;
  305. case RewardType.Goods:
  306. des = "商品";
  307. break;
  308. case RewardType.Reputation:
  309. des = "名声";
  310. break;
  311. case RewardType.Stock:
  312. var companyName = cc.Mgr.global.getTranslation("company_" + rewardId);
  313. des = companyName + "股票";
  314. break;
  315. case RewardType.StockPrice:
  316. var companyName = cc.Mgr.global.getTranslation("company_" + rewardId);
  317. des = companyName + "股票价格";
  318. break;
  319. }
  320. return des;
  321. },
  322. ClosePanel:function(){
  323. cc.Mgr.AudioMgr.playSFX("click");
  324. this.node.active = false;
  325. },
  326. });
  327. module.exports = EventPanel;