GuideData.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Data } from "../../../mk/data/Data";
  2. import GuideVO from "../../module/guide/GuideVO";
  3. /**
  4. * @description 新手引导
  5. * @author 邹勇
  6. */
  7. export class GuideData {
  8. /** 新手引导数据 */
  9. public data: Map<number, GuideVO[]>;
  10. /** 当前引导id */
  11. public crtID: number = null;
  12. public async init() {
  13. let config = gData.gameData.configs.Guide
  14. if (!config) {
  15. let result = await mk.loader.load("data/guide_data", cc.JsonAsset);
  16. if (result && result.json) {
  17. config = result.json;
  18. }
  19. cc.log('无远程引导数据,使用本地测试数据');
  20. }
  21. this.data = new Map<number, GuideVO[]>();
  22. let arr = [];
  23. let id = 1;
  24. for (let i = 0; i < config.length; i++) {
  25. let guide = {} as GuideVO;
  26. let o = config[i];
  27. let a = o.id.split("_");
  28. guide.id = parseInt(a[0]);
  29. guide.step = parseInt(a[1]);
  30. guide.trigger = o.trigger;
  31. guide.tr_num = o.tr_num || o.trNum;
  32. guide.tr_form = o.tr_form || o.trForm;
  33. guide.dialog = o.dialog;
  34. guide.display_rect = o.display_rect || o.displayRect;
  35. guide.click_rect = o.click_rect || o.clickRect;
  36. guide.finger = o.finger || '';
  37. guide.lag_next = o.lag_next || o.lagNext;
  38. if (id != guide.id) {
  39. this.data.set(id, arr);
  40. arr = [];
  41. id = guide.id;
  42. }
  43. arr.push(guide);
  44. }
  45. this.data.set(id, arr);
  46. }
  47. public getGuidesByID(id): GuideVO[] {
  48. return this.data.get(id);
  49. }
  50. }