OwnItem.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. var Event = require("Event");
  2. var UserState = require("UserState");
  3. var ItemType = require("ItemType");
  4. var OwnItem = cc.Class({
  5. extends: cc.Component,
  6. properties: {
  7. Atlas:cc.SpriteAtlas,
  8. udAtlas:cc.SpriteAtlas,
  9. IconSp:cc.Sprite,
  10. stateSp:cc.Sprite,
  11. NameLbl:cc.Sprite,
  12. PriceLbl:cc.Label,
  13. NumLbl:cc.Label,
  14. Id:cc.Integer,
  15. buyPrice:cc.Integer,
  16. Data:null,
  17. },
  18. init:function (data) {
  19. this.Id = data.Id;
  20. this.Data = data;
  21. this.buyPrice = data.buyPrice;
  22. this.IconSp.spriteFrame = this.Atlas.getSpriteFrame(data.icon);
  23. this.NameLbl.spriteFrame = this.Atlas.getSpriteFrame(data.name);
  24. this.NumLbl.string = data.ownNum.toString();
  25. this.PriceLbl.string = data.buyPrice.toString();
  26. },
  27. refreshData:function(data){
  28. this.PriceLbl.string = data.buyPrice.toString();
  29. this.NumLbl.string = data.ownNum.toString();
  30. this.buyPrice = data.buyPrice;
  31. this.stateSp.node.active = false;
  32. },
  33. RefreshState:function(){
  34. var data = cc.Mgr.UserDataMgr.getDataByItemTypeAndId(ItemType.Goods, this.Id);
  35. var marketPrice = data.marketPrice;
  36. var ownNum = data.ownNum;
  37. var flag = cc.Mgr.UserDataMgr.CheckIdIsInShowList(this.Id);
  38. if(data != null && ownNum > 0 && flag == true)
  39. {
  40. this.stateSp.node.active = true;
  41. if(marketPrice > this.buyPrice)
  42. {
  43. this.stateSp.spriteFrame = this.udAtlas.getSpriteFrame("up");
  44. }
  45. else if(marketPrice < this.buyPrice)
  46. {
  47. this.stateSp.spriteFrame = this.udAtlas.getSpriteFrame("down");
  48. }
  49. else
  50. {
  51. this.stateSp.node.active = false;
  52. }
  53. }
  54. else
  55. {
  56. this.stateSp.node.active = false;
  57. }
  58. },
  59. OpenSaleTipPanel:function(){
  60. cc.Mgr.AudioMgr.playSFX("goods_" + this.Id);
  61. if(cc.Mgr.UserDataMgr.userState == UserState.NotOK)
  62. {
  63. var param = {};
  64. param.text = cc.Mgr.global.getTranslation("InHealDownLine");
  65. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  66. return;
  67. }
  68. var flag = cc.Mgr.UserDataMgr.CheckIdIsInShowList(this.Data.Id);
  69. if(flag == true)
  70. {
  71. //cc.log("准备出售东西 = " + this.Data.name);
  72. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenSaleTip, this.Data);
  73. }
  74. else
  75. {
  76. var param = {};
  77. param.text = cc.Mgr.global.getTranslation("goods_"+this.Data.Id)+ "沒有市場需求";
  78. cc.director.GlobalEvent.emit(cc.Mgr.Event.OpenCommonTip, param);
  79. //cc.log("當前該物品不參與交易");
  80. }
  81. },
  82. });
  83. module.exports = OwnItem;