GuideData.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { Data } from "../../../mk/data/Data";
  2. /**
  3. * @description 新手引导
  4. * @author 邹勇
  5. */
  6. export class GuideData {
  7. /** 新手引导数据 */
  8. public data: Map<number, GuideVO[]>;
  9. /** 当前引导id */
  10. public crtID: number = null;
  11. public async init() {
  12. let config = gData.gameData.configs.Guide
  13. if (!config) {
  14. let result = await mk.loader.load("data/guide_data", cc.JsonAsset);
  15. if (result && result.json) {
  16. config = result.json;
  17. }
  18. cc.log('无远程引导数据,使用本地测试数据');
  19. }
  20. this.data = new Map<number, GuideVO[]>();
  21. let arr = [];
  22. let id = 1;
  23. for (let i = 0; i < config.length; i++) {
  24. let guide = {} as GuideVO;
  25. let o = config[i];
  26. let a = o.id.split("_");
  27. guide.id = parseInt(a[0]);
  28. guide.step = parseInt(a[1]);
  29. guide.trigger = o.trigger;
  30. guide.tr_num = o.tr_num || o.trNum;
  31. guide.tr_form = o.tr_form || o.trForm;
  32. guide.dialog = o.dialog;
  33. guide.display_rect = o.display_rect || o.displayRect;
  34. guide.click_rect = o.click_rect || o.clickRect;
  35. guide.finger = o.finger || '';
  36. guide.lag_next = o.lag_next || o.lagNext;
  37. if (id != guide.id) {
  38. this.data.set(id, arr);
  39. arr = [];
  40. id = guide.id;
  41. }
  42. arr.push(guide);
  43. }
  44. this.data.set(id, arr);
  45. }
  46. public getGuidesByID(id): GuideVO[] {
  47. return this.data.get(id);
  48. }
  49. }
  50. export class GuideVO {
  51. /** 大步骤 */
  52. id: number;
  53. /** 大步骤中的小步 */
  54. step: number;
  55. /** 触发方式 1固定 2等级 3任务 4关卡 5功能开启 */
  56. trigger: number;
  57. /** 触发条件的数据 如当trigger是关卡时关卡时,为触发关卡 */
  58. tr_num: number;
  59. /** 1头像 2形象 */
  60. tr_form: number;
  61. /** 对话内容 */
  62. dialog: string;
  63. /** 透明点击区域(与click_node不共存) */
  64. display_rect: string;
  65. /** 点击组件名字(必须在代码中预先设置) */
  66. click_rect: string;
  67. /** 手指位置 */
  68. finger: string;
  69. /** 下个时间 */
  70. lag_next: 0;
  71. }