UpdateRecruit.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { _decorator, Component, Node } from 'cc';
  2. import { DataSystem } from '../../core/data/DataSystem';
  3. import { RecruitData, RecruitResultData } from '../RecruitData';
  4. const { ccclass, property } = _decorator;
  5. /**
  6. * @description 招募奖励数据处理
  7. * @author 郑聂华
  8. */
  9. @ccclass('UpdateRecruit')
  10. export class UpdateRecruit extends Component {
  11. private recruitData: RecruitData;
  12. private get RecruitData(): RecruitData {
  13. if (!this.recruitData) this.recruitData = DataSystem.getData(RecruitData);
  14. return this.recruitData;
  15. }
  16. private set RecruitData(value: RecruitData) {
  17. this.recruitData = value;
  18. }
  19. /**添加奖品结果展示
  20. * @param results 招募结果数据 hero Hero_Server
  21. */
  22. public addRecruitResults(results: [{ chip: number, hero: any }]) {
  23. if (this.RecruitData.recruitResults == null) this.RecruitData.recruitResults = [];
  24. for (let i = 0; i < results.length; i++) {
  25. let drawdata = this.getRecruitResultById(results[i].hero.id, results[i].chip == 0 ? 1 : 2);
  26. if (drawdata != null) {//武将
  27. results[i].chip == 0 && drawdata.heroNum++;
  28. results[i].chip > 0 && (drawdata.sliceNum += results[i].chip);
  29. } else {//碎片
  30. drawdata = new RecruitResultData();
  31. drawdata.id = results[i].hero.id;
  32. drawdata.type = results[i].chip == 0 ? 1 : 2;
  33. drawdata.heroNum = results[i].chip == 0 ? 1 : 0;
  34. drawdata.sliceNum = results[i].chip;
  35. this.RecruitData.recruitResults.push(drawdata);
  36. }
  37. }
  38. }
  39. /**获取招募奖品
  40. * @param id 武将id
  41. * @param type 类型 1 武将 2 碎片
  42. */
  43. public getRecruitResultById(id: number, type: number) {
  44. if (this.RecruitData.recruitResults == null) return null;
  45. for (let i = 0; i < this.RecruitData.recruitResults.length; i++) {
  46. if (this.RecruitData.recruitResults[i].id == id && this.RecruitData.recruitResults[i].type == type)
  47. return this.RecruitData.recruitResults[i];
  48. }
  49. return null;
  50. }
  51. }