HeroRewardItem.ts 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { _decorator, Component, Node, Sprite, Label, SpriteFrame } from 'cc';
  2. import { DataSystem } from '../../core/data/DataSystem';
  3. import { Http, HttpResponseCode } from '../../core/net/Http';
  4. import { ResourceLoader } from '../../core/resourceManager/ResourceLoader';
  5. import { Window } from '../../core/ui/window/Window';
  6. import { WindowOpenMode } from '../../core/ui/window/WindowOpenMode';
  7. import { WindowSystem } from '../../core/ui/window/WindowSystem';
  8. import { ConfigData } from '../../data/ConfigData';
  9. import { UserHero } from '../../hero/UserHeroData';
  10. import { RedPointData } from '../../main/RedPointData';
  11. const { ccclass, property } = _decorator;
  12. @ccclass('HeroRewardItem')
  13. export class HeroRewardItem extends Component {
  14. @property({ type: ResourceLoader, displayName: "资源加载组件", tooltip: "资源加载组件" }) res: ResourceLoader = null;
  15. @property({ type: Sprite, displayName: "图_框", tooltip: "图_框" }) imgBg: Sprite = null;
  16. @property({ type: Sprite, displayName: "图_武将", tooltip: "图_武将" }) imgHero: Sprite = null;
  17. @property({ type: Sprite, displayName: "图_阵营", tooltip: "图_阵营" }) imgCamp: Sprite = null;
  18. @property({ type: Label, displayName: "文本_名称", tooltip: "文本_名称" }) txtName: Label = null;
  19. @property({ type: Label, displayName: "文本_简介", tooltip: "文本_简介" }) txtDes: Label = null;
  20. @property({ type: Node, displayName: "节点_领取按钮", tooltip: "节点_领取按钮" }) nodeGet: Node = null;
  21. @property({ type: Node, displayName: "节点_已领取", tooltip: "节点_已领取" }) nodeGeted: Node = null;
  22. @property({ type: Node, displayName: "红点", tooltip: "红点" }) redpointNode: Node = null;
  23. @property({ type: Label, displayName: "文本_已领取红包", tooltip: "文本_已领取红包" }) txtRbGeted: Label = null;
  24. private heroId: number;
  25. private rewardUI: Window;
  26. public async updateInfo(hero: UserHero, getData: any, isHasRedpoint: boolean, index?: number) {
  27. this.heroId = hero.client.id;
  28. this.txtName.string = hero.client.name;
  29. this.txtDes.string = hero.client.introduce;
  30. this.nodeGet.active = getData == null || !getData.rewardReceived || !getData.videoRewardReceived;
  31. this.nodeGeted.active = !this.nodeGet.active;
  32. let cfg = getData ? DataSystem.getData(ConfigData).get("heroReward")[getData.id] : null;
  33. let rewardNum = cfg ? getData.rewardReceived ? this.getRewardNum(cfg.rewardNum, cfg.rewardType) : 0 : 0;
  34. let videoRewardNum = cfg ? getData.videoRewardReceived ? this.getRewardNum(cfg.videoRewardNum, cfg.videoRewardType) : 0 : 0;
  35. this.txtRbGeted.string = `${rewardNum + videoRewardNum}`;
  36. this.redpointNode.active = isHasRedpoint;
  37. this.imgBg.spriteFrame = await this.res.load<SpriteFrame>("images/general/texture/bg_img/bg" + hero.client.color + "/spriteFrame", SpriteFrame);
  38. this.imgHero.spriteFrame = await this.res.load<SpriteFrame>("images/general/texture/hero_img/" + hero.client.hero_res + "/spriteFrame", SpriteFrame);
  39. this.imgCamp.spriteFrame = await this.res.load<SpriteFrame>("images/general/texture/icon_camp_" + hero.client.camp + "/spriteFrame", SpriteFrame);
  40. }
  41. private async onClickGet() {
  42. let result = await this.getComponent(Http).send("/api/hero/getRewardOne", { id: this.heroId });
  43. console.log("Data: ", result);
  44. if (result && result.code == HttpResponseCode.Success) {
  45. if (!result.data.rewardReceived || !result.data.videoRewardReceived) {
  46. WindowSystem.open("prefabs/ui/recruit/heroRewardGet", WindowOpenMode.CloseAndAdd, [{ heroId: this.heroId, data: result.data }]);
  47. //this.getComponent(OpenWindow).open({ heroId: this.heroId, data: result.data });
  48. // let index = DataSystem.getData(RedPointData).herosReward.indexOf(this.heroId);
  49. // (index != -1) && DataSystem.getData(RedPointData).herosReward.splice(index, 1);
  50. }
  51. else
  52. WindowSystem.showTips("无奖励可领取");
  53. } else {
  54. WindowSystem.showTips("请求失败");
  55. }
  56. }
  57. private getRewardNum(num: number, rewardType: number) {
  58. return rewardType == 3 ? num : 0;
  59. }
  60. }