GuideWeakData.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { Data } from "../../../mk/data/Data";
  2. import GuideWeak from "../../module/guideWeak/GuideWeak";
  3. /**
  4. * 弱引导数据
  5. * - 主界面-弱引导
  6. 1. 弱引导启动:用户在主界面超过10秒未操作【配置】。
  7. 2. 弱引导效果:自动弹出以下界面中的一种:气泡红包界面、福袋界面、互推界面……【配置】
  8. 3. 配置需支持配置界面ID和对应的弹出概率。
  9. - 关卡界面-弱引导
  10. 1. 弱引导启动:用户在关卡界面超过10秒未操作【配置】。
  11. 2. 弱引导效果:自动弹出以下界面中的一种:气泡红包界面、福袋界面、互推界面……【配置】
  12. 3. 配置需支持配置界面ID和对应的弹出概率。
  13. * @author 薛鸿潇
  14. */
  15. export default class GuideWeakData {
  16. /**
  17. * 数据初始化
  18. */
  19. public init() {
  20. // this.data_config = data_config;
  21. }
  22. /**
  23. * 星云数据配置
  24. * - 面板权重
  25. * - 触发时间
  26. */
  27. public data_config = {
  28. "panelWeight": {
  29. "1": 10,
  30. "2": 10,
  31. "4": 10,
  32. "5": 10,
  33. "6": 10,
  34. "7": 10
  35. },
  36. "triggerTime": 5
  37. }
  38. /** 功能是否启动 */
  39. public enable: boolean = false;
  40. /** 引导正在运行 */
  41. /** 样式类 */
  42. public guideStyle: GuideWeak = null;
  43. /**
  44. * 玩家静默时间
  45. * - 即:未进行任何操作的时间
  46. */
  47. public silent_time: number = 0;
  48. /** 当前打开的界面id */
  49. public cur_guide_id: number = 0;
  50. /** 当前打开的界面名字 */
  51. public cur_guide_panel: string = null;
  52. public initGuideId() {
  53. // gData.guideWeakData.cur_guide_id = 1 + 1;
  54. const panelWeight = this.data_config.panelWeight;
  55. let p_count = 0;
  56. let total_weight = 0;
  57. for (const key in panelWeight) {
  58. total_weight += panelWeight[key];
  59. p_count++;
  60. }
  61. /** 累计零时权重 */
  62. let temp_weight_sum = 0;
  63. // 根据奖池权重随机物品
  64. let random = mk.math.random(1, total_weight);
  65. for (const key in panelWeight) {
  66. temp_weight_sum += panelWeight[key];
  67. if (random < temp_weight_sum) {
  68. // 中奖了
  69. gData.guideWeakData.cur_guide_id = parseInt(key);
  70. break;
  71. }
  72. }
  73. }
  74. public openPanelByBtn() {
  75. const panel_id = gData.guideWeakData.cur_guide_id
  76. gData.gameData.funBtns['btn' + panel_id].emit('click')
  77. }
  78. public panel_name_config = {
  79. moreGame: 1,
  80. turnable: 2,
  81. none: 3,
  82. pigBank: 4,
  83. blessingBag: 5,
  84. sign: 6,
  85. redBagCash: 7,
  86. }
  87. }