MateItemPanel.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. var ItemType = require("ItemType");
  2. var MateGetType = require("MateGetType");
  3. var MateBonusType = require("MateBonusType");
  4. var MateItemPanel = cc.Class({
  5. extends: cc.Component,
  6. properties: {
  7. Atlas:cc.SpriteAtlas,
  8. cost:cc.Integer,
  9. nameLbl:cc.Sprite,
  10. iconSp:cc.Sprite,
  11. desLbl:cc.Label,
  12. MarryCond:cc.Node,
  13. MarryCondLbl:cc.Label,
  14. Id:cc.Integer,
  15. LovePoint:cc.Integer,
  16. PdesLbl:cc.Label,
  17. },
  18. ShowPanel:function (data) {
  19. this.Id = data.Id;
  20. this.LovePoint = data.LovePoint;
  21. this.iconSp.spriteFrame = this.Atlas.getSpriteFrame(data.icon);
  22. //this.nameLbl.string = data.name;
  23. var mateData = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Mate, data.Id);
  24. var lovePointList = mateData.lovePointList;
  25. var index = 0;
  26. for (var i = lovePointList.length - 1; i >= 0; i--) {
  27. if(lovePointList[i].curLevel == data.curLevel)
  28. {
  29. index = i;
  30. break;
  31. }
  32. }
  33. var idex = 1 + Math.floor(Math.random() * 6);
  34. this.PdesLbl.string = cc.Mgr.global.getTranslation("date_"+this.Id);
  35. this.cost = lovePointList[index].cost - Math.floor(lovePointList[index].cost * cc.Mgr.UserDataMgr.DateMoneyBonus);
  36. this.desLbl.string = this.cost;
  37. this.MarryCond.active = true;
  38. if(this.LovePoint == 99)
  39. {
  40. var DD = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Mate, this.Id);
  41. this.PdesLbl.string = "结婚后:"+this.getMateBonusDes();
  42. this.MarryCondLbl.string = this.getUnlockTypes(DD.getCondList);
  43. }
  44. else
  45. {
  46. this.MarryCondLbl.string = "亲密度达到99显示";
  47. }
  48. },
  49. ClosePanel:function(){
  50. cc.Mgr.AudioMgr.playSFX("click");
  51. this.node.active = false;
  52. },
  53. getMateBonusDes:function () {
  54. var bonusList = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Mate ,this.Id).bonusList;
  55. var str = "";
  56. for (var i = 0; i < bonusList.length; i++) {
  57. switch(bonusList[i].bonusType)
  58. {
  59. case MateBonusType.HP:
  60. if(bonusList[i].bonusNum>0)
  61. str = str+" " + "每年健康:+" + bonusList[i].bonusNum;
  62. else
  63. str = str+" " + "每年健康:" + bonusList[i].bonusNum;
  64. break;
  65. case MateBonusType.Reputation:
  66. str = str+" " + "每年名声:+" + bonusList[i].bonusNum;
  67. break;
  68. case MateBonusType.Money:
  69. str = str+" " + "每年现金:+" + bonusList[i].bonusNum;
  70. break;
  71. case MateBonusType.WareHouseCapcity:
  72. str = str+" " + "仓储:+" + bonusList[i].bonusNum;
  73. break;
  74. case MateBonusType.Treat:
  75. str = str+" " + "治疗降费:" + bonusList[i].bonusNum*100 + "%";
  76. break;
  77. }
  78. }
  79. return str;
  80. },
  81. //约起来
  82. DateClick:function(){
  83. var flag = cc.Mgr.UserDataMgr.JudeHasAnyMate();
  84. if(flag && this.LovePoint == 99)
  85. {
  86. cc.Mgr.AudioMgr.playSFX("click");
  87. var param = {};
  88. var seed = Math.floor(Math.random() * 2);
  89. param.text = cc.Mgr.global.getTranslation("HasMarray_" + seed);
  90. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  91. return;
  92. }
  93. if(cc.Mgr.UserDataMgr.Cash < this.cost)
  94. {
  95. cc.Mgr.AudioMgr.playSFX("click");
  96. var param = {};
  97. var seed = Math.floor(Math.random() * 2);
  98. param.text = cc.Mgr.global.getTranslation("NoMoneyDate_" + seed);
  99. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  100. return;
  101. }
  102. var DD = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Mate, this.Id);
  103. var result = this.JudeCanMarry(DD.getCondList);
  104. if(this.LovePoint == 99 && !result.canMarry)
  105. {
  106. cc.Mgr.AudioMgr.playSFX("click");
  107. var param = {};
  108. var des = "";
  109. //cc.log("=======================" + result.desList.length);
  110. for (var i = 0; i < result.desList.length; i++) {
  111. des = des+"\n" + cc.Mgr.global.getTranslation("MateMarryCond_" + this.Id);
  112. }
  113. param.text = des;
  114. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  115. }
  116. else
  117. {
  118. cc.Mgr.UserDataMgr.Cash -= this.cost;
  119. var outpar = cc.Mgr.UserDataMgr.RefreshMateData(this.Id);
  120. if(outpar.isFull == true)
  121. {
  122. var bonusList = DD.bonusList;
  123. this.getBonus(bonusList);
  124. //var param = {};
  125. //param.text = cc.Mgr.global.getTranslation("MarryTxt_" + cc.Mgr.UserDataMgr.Sex);
  126. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenMarry, DD);
  127. }
  128. else
  129. {
  130. var seed = Math.floor(Math.random() * 6);
  131. var param = {};
  132. param.forWhat = "DateLater";
  133. param.text = cc.Mgr.global.getTranslation("DateOut_" + seed) + "\n" + "<color=#e77122>亲密度达到:"+ outpar.LovePoint+"</c>";
  134. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  135. }
  136. var dt = {};
  137. dt.Id = this.Id;
  138. cc.director.GlobalEvent.emit(cc.Mgr.Event.DateSuccess, dt);
  139. this.ClosePanel();
  140. }
  141. },
  142. JudeCanMarry:function(getCondList){
  143. var canMarry = false;
  144. var result = {};
  145. var txt = [];
  146. for (var i = 0; i < getCondList.length; i++) {
  147. var cond = getCondList[i];
  148. switch (cond.unlockType) {
  149. case MateGetType.Money:
  150. canMarry = true;
  151. break;
  152. case MateGetType.House:
  153. canMarry = cc.Mgr.UserDataMgr.JudeHasHouse(cond.value);
  154. break;
  155. case MateGetType.Car:
  156. canMarry = cc.Mgr.UserDataMgr.JudeHasCar(cond.value);
  157. break;
  158. case MateGetType.Asset:
  159. canMarry = cc.Mgr.UserDataMgr.JudeAsset(cond.value);
  160. break;
  161. case MateGetType.Reputation:
  162. canMarry = cc.Mgr.UserDataMgr.JudeReputation(cond.value);
  163. break;
  164. case MateGetType.HP:
  165. canMarry = cc.Mgr.UserDataMgr.JudeHpPoint(cond.value);
  166. break;
  167. case MateGetType.Company:
  168. canMarry = cc.Mgr.UserDataMgr.JudeHasCompany();
  169. break;
  170. }
  171. if(canMarry == false)
  172. {
  173. txt.push(cond.unlockType);
  174. result.canMarry = canMarry;
  175. result.desList = txt;
  176. return result;
  177. break;
  178. }
  179. }
  180. result.canMarry = canMarry;
  181. result.desList = txt;
  182. return result;
  183. },
  184. getUnlockTypes:function(getCondList)
  185. {
  186. var txt = "";
  187. for (var i = 0; i < getCondList.length; i++) {
  188. var cond = getCondList[i];
  189. txt += this.getCondDes(cond.unlockType, cond.value) + " ";
  190. }
  191. return txt;
  192. },
  193. getCondDes:function(type, value)
  194. {
  195. var txt = "";
  196. if(value == 0)
  197. {
  198. switch (type) {
  199. case MateGetType.Money:
  200. txt = "腰缠万贯";
  201. break;
  202. case MateGetType.House:
  203. txt = "房子一套";
  204. break;
  205. case MateGetType.Car:
  206. txt = "小车一辆";
  207. break;
  208. case MateGetType.Asset:
  209. txt = "资产百万";
  210. break;
  211. case MateGetType.Reputation:
  212. txt = "声名鹊起";
  213. break;
  214. case MateGetType.HP:
  215. txt = "身体健康";
  216. break;
  217. case MateGetType.Company:
  218. txt = "拥有任意一家公司";
  219. break;
  220. }
  221. }
  222. else
  223. {
  224. switch (type) {
  225. case MateGetType.Money:
  226. txt = "现金"+value;
  227. break;
  228. case MateGetType.House:
  229. var DD = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.House, value);
  230. txt = DD.name + "一套";
  231. break;
  232. case MateGetType.Car:
  233. var DD = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Car, value);
  234. txt = DD.name + "一辆";
  235. break;
  236. case MateGetType.Asset:
  237. txt = "资产达到:"+value;
  238. break;
  239. case MateGetType.Reputation:
  240. txt = "名声达到:"+value;
  241. break;
  242. case MateGetType.HP:
  243. txt = "健康值达到:"+value;
  244. break;
  245. case MateGetType.Company:
  246. var DD = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(ItemType.Company, value);
  247. txt = DD.name + "一家";
  248. break;
  249. }
  250. }
  251. return txt;
  252. },
  253. getBonus:function(bonusList)
  254. {
  255. cc.Mgr.UserDataMgr.getMateBonusReward(bonusList);
  256. },
  257. });
  258. module.exports = MateItemPanel;