CommonBuyPanel.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. var ItemType = require("ItemType");
  2. var UserState = require("UserState");
  3. var CommonBuyPanel = cc.Class({
  4. extends: cc.Component,
  5. properties: {
  6. MainAtlas:cc.SpriteAtlas,
  7. Atlas:cc.SpriteAtlas,
  8. titleLbl:cc.Sprite,
  9. carhosueDes:cc.Node,
  10. des1:cc.Label,
  11. des2:cc.Label,
  12. des3:cc.Label,
  13. des4:cc.Label,
  14. disdesLbl:cc.Label,
  15. iconSp:cc.Sprite,
  16. nameSp:cc.Sprite,
  17. price:cc.Integer,
  18. Id:cc.Integer,
  19. flag:"",
  20. Type:{
  21. default:ItemType.Car,
  22. type:ItemType,
  23. },
  24. },
  25. ShowPanel:function (param) {
  26. var data = cc.Mgr.MapDataMgr.getDataByItemTypeAndId(param.Type, param.Id)
  27. this.nameSp.spriteFrame = this.Atlas.getSpriteFrame(param.name)
  28. var price = param.price;
  29. if(param.flag == "Buy")
  30. {
  31. if(param.Type == ItemType.Car)
  32. {
  33. this.des4.node.active = true;
  34. this.des1.node.active = false;
  35. this.des4.string = "+" + (data.addDate * 100) + "%";
  36. this.titleLbl.spriteFrame = this.MainAtlas.getSpriteFrame("text_buycar");
  37. price = param.price - Math.floor(param.price * cc.Mgr.UserDataMgr.CarBuyBonus);
  38. }
  39. else if(param.Type == ItemType.House)
  40. {
  41. this.des4.node.active = false;
  42. this.des1.node.active = true;
  43. this.des1.string = "+" + data.addHp;
  44. this.titleLbl.spriteFrame = this.MainAtlas.getSpriteFrame("text_buyhouse");
  45. price= param.price - Math.floor(param.price * cc.Mgr.UserDataMgr.HouseBuyBonuse);
  46. }
  47. this.des2.string = "+" + data.addBonus;
  48. this.des3.string = cc.Mgr.global.FormatNum(price);
  49. this.carhosueDes.active = true;
  50. this.disdesLbl.node.active = false;
  51. }
  52. else if(param.flag == "Sale")
  53. {
  54. if(param.Type == ItemType.Car || param.Type == ItemType.House)
  55. {
  56. this.titleLbl.spriteFrame = this.MainAtlas.getSpriteFrame("sale_txt");
  57. if(param.Type == ItemType.Car)
  58. {
  59. this.des4.node.active = true;
  60. this.des1.node.active = false;
  61. this.des4.string = "+" + (data.addDate * 100) + "%";
  62. }
  63. else
  64. {
  65. this.des1.string = "+" + data.addHp;
  66. this.des4.node.active = false;
  67. this.des1.node.active = true;
  68. }
  69. this.des2.string = "+" + data.addBonus;
  70. this.des3.string = Math.floor(price/2);
  71. this.carhosueDes.active = true;
  72. this.disdesLbl.node.active = false;
  73. }
  74. else if(param.Type == ItemType.Mate)
  75. {
  76. var name = cc.Mgr.global.getTranslation("role_"+param.Id);
  77. this.carhosueDes.active = false;
  78. this.disdesLbl.node.active = true;
  79. this.titleLbl.spriteFrame = this.MainAtlas.getSpriteFrame("dis_marry");
  80. var dd = 1 + Math.floor(Math.random() * 5);
  81. this.disdesLbl.string = name+"说:"+cc.Mgr.global.getTranslation("Disvorce_" + dd);
  82. }
  83. }
  84. this.price = price;
  85. this.Type = param.Type;
  86. this.Id = param.Id;
  87. this.iconSp.spriteFrame = this.Atlas.getSpriteFrame(param.icon);
  88. if(param.flag != null)
  89. this.flag = param.flag;
  90. else
  91. this.flag = "";
  92. },
  93. ClickBuy:function(){
  94. if(this.flag == "Buy")
  95. {
  96. if(cc.Mgr.UserDataMgr.Cash < this.price)
  97. {
  98. cc.Mgr.AudioMgr.playSFX("click");
  99. var param = {};
  100. param.forWhat = "";
  101. param.text = "<color=#e77122>你的钱不够啊,买不起</c>";
  102. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  103. return;
  104. }
  105. }
  106. if(this.flag != null && this.flag != "")
  107. {
  108. if(this.Type == ItemType.Car || this.Type == ItemType.House)
  109. {
  110. var par = {};
  111. par.Type = this.Type;
  112. par.addNum = 0;
  113. if(this.flag == "Buy")
  114. {
  115. var data = cc.Mgr.UserDataMgr.getDataByItemTypeAndId(this.Type, this.Id);
  116. //cc.log("加成属性 ====== 健康 " + data.addHp +" 名声 " + data.addBonus);
  117. cc.Mgr.UserDataMgr.Reputation += data.addBonus;
  118. cc.Mgr.UserDataMgr.HpPoint += data.addHp;
  119. if(cc.Mgr.UserDataMgr.HpPoint > 100)
  120. cc.Mgr.UserDataMgr.HpPoint = 100;
  121. if(cc.Mgr.UserDataMgr.HpPoint >= cc.Mgr.global.HealthLine)
  122. {
  123. cc.Mgr.UserDataMgr.userState = UserState.OK;
  124. cc.Mgr.UserDataMgr.RecoverYear = 0;
  125. }
  126. //cc.log("价格 === " + this.price + " 对应Id " + this.Id);
  127. cc.Mgr.UserDataMgr.Cash -= this.price;
  128. par.addNum = 1;
  129. if(this.Type == ItemType.Car)
  130. {
  131. cc.Mgr.UserDataMgr.DateSuccescRatio += data.addDate;
  132. }
  133. }
  134. else if(this.flag == "Sale")
  135. {
  136. par.addNum = -1;
  137. cc.Mgr.UserDataMgr.Cash += Math.floor(this.price/2);
  138. }
  139. par.Id = this.Id;
  140. par.flag = this.flag;
  141. cc.Mgr.UserDataMgr.BuySaleCommonItem(par);
  142. cc.director.GlobalEvent.emit(cc.Mgr.Event.CommonBuySaleSuccess, par);
  143. }
  144. else if(this.Type == ItemType.Mate)
  145. {
  146. if(this.flag == "Sale")
  147. {
  148. if(cc.Mgr.UserDataMgr.DivorceAge == 0)
  149. {
  150. cc.Mgr.UserDataMgr.DivorceAge = cc.Mgr.UserDataMgr.Age;
  151. }
  152. var par = {};
  153. par.flag = this.flag;
  154. par.Disvorce = true;
  155. cc.Mgr.UserDataMgr.DisvorceMateById(this.Id);
  156. cc.director.GlobalEvent.emit(cc.Mgr.Event.CommonBuySaleSuccess, par);
  157. }
  158. }
  159. }
  160. this.ClosePanel();
  161. },
  162. ClosePanel:function(){
  163. cc.Mgr.AudioMgr.playSFX("click");
  164. this.flag = "";
  165. this.node.active = false;
  166. },
  167. });
  168. module.exports = CommonBuyPanel;