MissionItem.ts 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import hallScene from "../../hallScene";
  2. import { App } from "../../Manager/App";
  3. import hallModel from "../../model/hallModel";
  4. import SuperListItem from "../SuperScrollview/SuperListItem";
  5. import TipPanel from "../tipPanel/TipPanel";
  6. import TipPanelMediator from "../tipPanel/TipPanelMediator";
  7. const { ccclass, property } = cc._decorator;
  8. @ccclass
  9. export default class MissionItem extends SuperListItem {
  10. @property(cc.Label)
  11. textLabel: cc.Label = null;
  12. @property(cc.Label)
  13. processLabel: cc.Label = null;
  14. @property(cc.Label)
  15. coinnumLabel: cc.Label = null;
  16. @property(cc.Label)
  17. diamondLabel: cc.Label = null;
  18. @property(cc.ProgressBar)
  19. progress: cc.ProgressBar = null;
  20. private misOver: boolean = false;
  21. private m_index = 0;
  22. public setData(tag: any) {
  23. this.m_index = tag;
  24. this.refresh();
  25. this.node.on(cc.Node.EventType.TOUCH_END, ()=>{
  26. if(!this.misOver){
  27. return;
  28. }
  29. let missionReceiveNum = App.DataManager.MissionReceive[this.m_index];
  30. if(missionReceiveNum >= App.DataManager.MissionDataList[this.m_index].missonNum.length){
  31. App.Facade.popView(TipPanelMediator, TipPanel, "已经获得最高奖励", false);
  32. return;
  33. }
  34. App.DataManager.UserCoin += App.DataManager.MissionDataList[this.m_index].rewardCoin[missionReceiveNum];
  35. App.DataManager.UserDiamond += App.DataManager.MissionDataList[this.m_index].rewardDiamon[missionReceiveNum];
  36. App.Facade.getModel(hallModel).updateCoinNumber();
  37. App.Facade.getModel(hallModel).updateDiamond();
  38. App.Facade.popView(TipPanelMediator, TipPanel, "领取成功", false);
  39. App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_Coin, App.DataManager.UserCoin);
  40. App.LocalStorageUtil.setNumber(App.LocalStorageUtil.lst_UserDiamond, App.DataManager.UserDiamond);
  41. App.DataManager.MissionReceive[this.m_index]++;
  42. App.LocalStorageUtil.setJsonObj(App.LocalStorageUtil.list_missionReceive, App.DataManager.MissionReceive);
  43. this.refresh();
  44. }, this);
  45. // let passNum = Object.keys(App.DataManager.PassProgress).length - 1;
  46. // App.Facade.loadTexture('hallScene/texture/skin/' + data.getSkin).then((res: any) => {
  47. // self.texture.spriteFrame = res;
  48. // });
  49. }
  50. refresh(){
  51. let missionReceiveNum = App.DataManager.MissionReceive[this.m_index];
  52. if(missionReceiveNum >= App.DataManager.MissionDataList[this.m_index].missonNum.length){
  53. App.Facade.popView(TipPanelMediator, TipPanel, "已经获得最高奖励", false);
  54. return;
  55. }
  56. // 具体任务
  57. this.textLabel.string = App.DataManager.MissionName[this.m_index].replace("%d", App.DataManager.MissionDataList[this.m_index].missonNum[missionReceiveNum].toString());
  58. // 完成进度数字
  59. this.processLabel.string = App.DataManager.MissionComplete[this.m_index] + "/" + App.DataManager.MissionDataList[this.m_index].missonNum[missionReceiveNum];
  60. // 奖励金币
  61. this.coinnumLabel.string = App.DataManager.MissionDataList[this.m_index].rewardCoin[missionReceiveNum].toString();
  62. // 奖励钻石
  63. this.diamondLabel.string = App.DataManager.MissionDataList[this.m_index].rewardDiamon[missionReceiveNum].toString();
  64. // 是否完成了这个任务
  65. this.misOver = App.DataManager.MissionComplete[this.m_index] >= App.DataManager.MissionDataList[this.m_index].missonNum[missionReceiveNum];
  66. // 完成进度
  67. this.progress.progress = App.DataManager.MissionComplete[this.m_index] / App.DataManager.MissionDataList[this.m_index].missonNum[missionReceiveNum];
  68. }
  69. }