keytops-game-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +214 -0
  2. package/dist/app/base/RuntimeApplicationImpl.d.ts +22 -0
  3. package/dist/app/base/base.d.ts +113 -0
  4. package/dist/app/base/event/Event.d.ts +12 -0
  5. package/dist/app/base/event/EventDispatcher.d.ts +66 -0
  6. package/dist/app/base/pool/IRecoverable.d.ts +13 -0
  7. package/dist/app/base/pool/Pool.d.ts +45 -0
  8. package/dist/app/base/utils/Handler.d.ts +69 -0
  9. package/dist/app/base/utils/Injector.d.ts +19 -0
  10. package/dist/app/base/utils/Json.d.ts +14 -0
  11. package/dist/app/base/utils/MathUtils.d.ts +74 -0
  12. package/dist/app/base/utils/NativeUtils.d.ts +4 -0
  13. package/dist/app/base/utils/PromiseUtils.d.ts +20 -0
  14. package/dist/app/base/utils/StringUtils.d.ts +66 -0
  15. package/dist/app/module/abTesting/ABTesting.d.ts +41 -0
  16. package/dist/app/module/analytics/ALiAnalyticsSender.d.ts +59 -0
  17. package/dist/app/module/analytics/AnalyticsAble.d.ts +191 -0
  18. package/dist/app/module/analytics/AnalyticsAbleConst.d.ts +20 -0
  19. package/dist/app/module/analytics/BaseDimension.d.ts +19 -0
  20. package/dist/app/module/analytics/KeytopsAnalyticsSender.d.ts +67 -0
  21. package/dist/app/module/analytics/ad/ADAnalyticsAble.d.ts +19 -0
  22. package/dist/app/module/analytics/ad/ADBehaviorReporter.d.ts +90 -0
  23. package/dist/app/module/analytics/ad/AdDimension.d.ts +34 -0
  24. package/dist/app/module/analytics/index.d.ts +65 -0
  25. package/dist/app/module/analytics/launch/LaunchAnalyticsAble.d.ts +11 -0
  26. package/dist/app/module/analytics/level/GameDimension.d.ts +39 -0
  27. package/dist/app/module/analytics/level/LevelAnalyticsAble.d.ts +86 -0
  28. package/dist/app/module/analytics/level/LevelBehaviorReporter.d.ts +29 -0
  29. package/dist/app/module/analytics/level/LevelStatsDimension.d.ts +70 -0
  30. package/dist/app/module/analytics/level/PlayerAbilityDimension.d.ts +147 -0
  31. package/dist/app/module/analytics/session/SessionAnalyticsAble.d.ts +9 -0
  32. package/dist/app/module/analytics/session/SessionDimension.d.ts +48 -0
  33. package/dist/app/module/analytics/social/SocialAnalyticsAble.d.ts +14 -0
  34. package/dist/app/module/analytics/social/SocialDimension.d.ts +14 -0
  35. package/dist/app/module/bidding/Bidding.d.ts +37 -0
  36. package/dist/app/module/business/BusinessCenter.d.ts +33 -0
  37. package/dist/app/module/business/IBusiness.d.ts +6 -0
  38. package/dist/app/module/business/RewardVideoMaskBusiness.d.ts +18 -0
  39. package/dist/app/module/config/ConfigHelper.d.ts +142 -0
  40. package/dist/app/module/ecs/Component.d.ts +125 -0
  41. package/dist/app/module/ecs/ECS.d.ts +162 -0
  42. package/dist/app/module/ecs/ECSManager.d.ts +56 -0
  43. package/dist/app/module/ecs/Entity.d.ts +1 -0
  44. package/dist/app/module/ecs/Mask.d.ts +12 -0
  45. package/dist/app/module/ecs/System.d.ts +54 -0
  46. package/dist/app/module/fsm/Fsm.d.ts +44 -0
  47. package/dist/app/module/fsm/FsmBase.d.ts +28 -0
  48. package/dist/app/module/fsm/FsmManager.d.ts +67 -0
  49. package/dist/app/module/fsm/IFsm.d.ts +67 -0
  50. package/dist/app/module/fsm/IFsmState.d.ts +38 -0
  51. package/dist/app/module/logger/Logger.d.ts +58 -0
  52. package/dist/app/module/native/INativeHelper.d.ts +6 -0
  53. package/dist/app/module/native/NativeHelper.d.ts +10 -0
  54. package/dist/app/module/net/NetInterface.d.ts +22 -0
  55. package/dist/app/module/net/NetManager.d.ts +24 -0
  56. package/dist/app/module/net/byte/ByteView.d.ts +391 -0
  57. package/dist/app/module/net/http/HttpNode.d.ts +104 -0
  58. package/dist/app/module/net/http/HttpRequest.d.ts +104 -0
  59. package/dist/app/module/net/server/IServer.d.ts +20 -0
  60. package/dist/app/module/net/server/LevelOnlineConfig.d.ts +9 -0
  61. package/dist/app/module/net/server/Server.d.ts +105 -0
  62. package/dist/app/module/net/server/SystemOnlineConfig.d.ts +34 -0
  63. package/dist/app/module/net/socket/BaseProtocolHelper.d.ts +31 -0
  64. package/dist/app/module/net/socket/Socket.d.ts +145 -0
  65. package/dist/app/module/net/socket/SocketNode.d.ts +63 -0
  66. package/dist/app/module/publisher/IADAble.d.ts +46 -0
  67. package/dist/app/module/publisher/IAble.d.ts +6 -0
  68. package/dist/app/module/publisher/IDevice.d.ts +42 -0
  69. package/dist/app/module/publisher/IGameUpdateAble.d.ts +21 -0
  70. package/dist/app/module/publisher/ILoginAble.d.ts +38 -0
  71. package/dist/app/module/publisher/IPayAble.d.ts +11 -0
  72. package/dist/app/module/publisher/IPublisher.d.ts +154 -0
  73. package/dist/app/module/publisher/IPublisherManager.d.ts +69 -0
  74. package/dist/app/module/publisher/IRecordAble.d.ts +16 -0
  75. package/dist/app/module/publisher/IShareAble.d.ts +39 -0
  76. package/dist/app/module/publisher/PublisherManager.d.ts +106 -0
  77. package/dist/app/module/publisher/PublisherManagerImpl.d.ts +24 -0
  78. package/dist/app/module/publisher/ks/KSAd.d.ts +7 -0
  79. package/dist/app/module/publisher/ks/KSDevice.d.ts +8 -0
  80. package/dist/app/module/publisher/ks/KSLogin.d.ts +7 -0
  81. package/dist/app/module/publisher/ks/KSPublisher.d.ts +34 -0
  82. package/dist/app/module/publisher/ks/KSRecorder.d.ts +13 -0
  83. package/dist/app/module/publisher/ks/KSShare.d.ts +32 -0
  84. package/dist/app/module/publisher/my/MYAd.d.ts +13 -0
  85. package/dist/app/module/publisher/my/MYDevice.d.ts +7 -0
  86. package/dist/app/module/publisher/my/MYLogin.d.ts +6 -0
  87. package/dist/app/module/publisher/my/MYPublisher.d.ts +6 -0
  88. package/dist/app/module/publisher/native/NativeAd.d.ts +22 -0
  89. package/dist/app/module/publisher/native/NativeAnalyticsSender.d.ts +9 -0
  90. package/dist/app/module/publisher/native/NativeDevice.d.ts +6 -0
  91. package/dist/app/module/publisher/native/NativeLogin.d.ts +27 -0
  92. package/dist/app/module/publisher/native/NativePay.d.ts +6 -0
  93. package/dist/app/module/publisher/native/NativePublisher.d.ts +21 -0
  94. package/dist/app/module/publisher/native/NativeRecord.d.ts +10 -0
  95. package/dist/app/module/publisher/native/NativeShare.d.ts +23 -0
  96. package/dist/app/module/publisher/tk/TKAd.d.ts +14 -0
  97. package/dist/app/module/publisher/tk/TKAnalyticsSender.d.ts +7 -0
  98. package/dist/app/module/publisher/tk/TKDevice.d.ts +9 -0
  99. package/dist/app/module/publisher/tk/TKLogin.d.ts +5 -0
  100. package/dist/app/module/publisher/tk/TKPublisher.d.ts +34 -0
  101. package/dist/app/module/publisher/tt/TTAd.d.ts +14 -0
  102. package/dist/app/module/publisher/tt/TTAnalyticsSender.d.ts +7 -0
  103. package/dist/app/module/publisher/tt/TTDevice.d.ts +9 -0
  104. package/dist/app/module/publisher/tt/TTLogin.d.ts +6 -0
  105. package/dist/app/module/publisher/tt/TTPay.d.ts +4 -0
  106. package/dist/app/module/publisher/tt/TTPublisher.d.ts +34 -0
  107. package/dist/app/module/publisher/tt/TTRecorder.d.ts +11 -0
  108. package/dist/app/module/publisher/tt/TTShare.d.ts +50 -0
  109. package/dist/app/module/publisher/tt/TTUpdateGameAble.d.ts +7 -0
  110. package/dist/app/module/publisher/wx/WXAd.d.ts +14 -0
  111. package/dist/app/module/publisher/wx/WXAnalyticsSender.d.ts +7 -0
  112. package/dist/app/module/publisher/wx/WXDevice.d.ts +8 -0
  113. package/dist/app/module/publisher/wx/WXLogin.d.ts +9 -0
  114. package/dist/app/module/publisher/wx/WXPay.d.ts +4 -0
  115. package/dist/app/module/publisher/wx/WXPublisher.d.ts +33 -0
  116. package/dist/app/module/publisher/wx/WXShare.d.ts +56 -0
  117. package/dist/app/module/publisher/wx/WXUpdateGameAble.d.ts +7 -0
  118. package/dist/app/module/storage/Storage.d.ts +123 -0
  119. package/dist/app/module/storage/StorageImpl.d.ts +13 -0
  120. package/dist/app/module/structure/Dictionary.d.ts +48 -0
  121. package/dist/app/module/structure/Link.d.ts +149 -0
  122. package/dist/app/module/structure/List.d.ts +93 -0
  123. package/dist/app/module/task/Task.d.ts +33 -0
  124. package/dist/app/module/task/TaskQueue.d.ts +17 -0
  125. package/dist/app/module/task/TaskSequence.d.ts +19 -0
  126. package/dist/app/module/timer/ITimer.d.ts +4 -0
  127. package/dist/app/module/timer/Timer.d.ts +133 -0
  128. package/dist/app/module/timer/TimerImpl.d.ts +10 -0
  129. package/dist/app/module/utils/md5.d.ts +3 -0
  130. package/dist/app/module/view/IView.d.ts +94 -0
  131. package/dist/app/module/view/IViewLoader.d.ts +48 -0
  132. package/dist/app/module/view/ViewManager.d.ts +242 -0
  133. package/dist/audio/AudioManager.d.ts +146 -0
  134. package/dist/business/AudioBusiness.d.ts +11 -0
  135. package/dist/cocos.d.ts +1 -0
  136. package/dist/index.d.ts +146 -0
  137. package/dist/index.js +14981 -0
  138. package/dist/native/CocosNativeHelper.d.ts +12 -0
  139. package/dist/resource/ResourceManager.d.ts +187 -0
  140. package/dist/utils/Async.d.ts +28 -0
  141. package/dist/utils/CocosStorageUtils.d.ts +10 -0
  142. package/dist/utils/GeometryUtils.d.ts +31 -0
  143. package/dist/view/CCPViewLoader.d.ts +95 -0
  144. package/dist/view/CCSceneLoader.d.ts +25 -0
  145. package/dist/view/CocosViewManager.d.ts +12 -0
  146. package/dist/view/Scene.d.ts +35 -0
  147. package/dist/view/View.d.ts +151 -0
  148. package/dist/view/ViewControl.d.ts +106 -0
  149. package/dist/view/tips/TipsView.d.ts +12 -0
  150. package/dist/vitest.config.d.ts +2 -0
  151. package/package.json +33 -0
@@ -0,0 +1,39 @@
1
+ import { AnalyticsData } from "../AnalyticsAble";
2
+ import { BaseDimension } from "../BaseDimension";
3
+ import { LevelStatsDimension } from "./LevelStatsDimension";
4
+ import { LevelSnapshot, PlayerAbilityDimension, PropSupport } from "./PlayerAbilityDimension";
5
+ export declare const DEFAULT_GAME_FLAG = "default";
6
+ export type GameDimensionRuntimeState = Record<string, unknown>;
7
+ export declare class GameDimension extends BaseDimension {
8
+ private readonly _gameFlag;
9
+ private readonly _levelStats;
10
+ private readonly _playerAbility;
11
+ private _levelHistory;
12
+ private _currentLevelSession;
13
+ private _currentEnterParams;
14
+ constructor(gameFlag?: string);
15
+ private getHistoryStorageKey;
16
+ private _loadLevelHistory;
17
+ private _saveLevelHistory;
18
+ private _trimHistoryWindow;
19
+ private _createLevelSession;
20
+ get gameFlag(): string;
21
+ get levelStats(): LevelStatsDimension;
22
+ get playerAbility(): PlayerAbilityDimension;
23
+ getLevelHistory(): LevelSnapshot[];
24
+ getCurrentLevelSession(): LevelSnapshot | null;
25
+ getCurrentBehaviorContext(): AnalyticsData | null;
26
+ onLevelStart(id: string, index: number, data: AnalyticsData): void;
27
+ private _leaveApp;
28
+ private _resumeApp;
29
+ private _onLevelPause;
30
+ private _onLevelResume;
31
+ onLevelEnd(isSuccess: boolean): void;
32
+ onLevelMove(progress: number, remainingResourceRatio?: number): void;
33
+ onPropUse(prop: PropSupport): void;
34
+ onPropUseCustom(weight: number): void;
35
+ private _onLevelFirstSuccessAction;
36
+ discardCurrentLevelSession(): void;
37
+ getMetrics(order?: string[]): number[];
38
+ clear(): void;
39
+ }
@@ -0,0 +1,86 @@
1
+ import { GameDimension } from "./GameDimension";
2
+ import { PropSupport } from "./PlayerAbilityDimension";
3
+ import { AnalyticsAble, AnalyticsData } from "../AnalyticsAble";
4
+ export declare class LevelAnalyticsAble {
5
+ private _baseAble;
6
+ private _games;
7
+ private _gameReporters;
8
+ private _currentGame;
9
+ constructor(baseAble: AnalyticsAble);
10
+ get currentGame(): GameDimension;
11
+ /**
12
+ * 获取指定玩法的维度数据
13
+ * @param gameFlag 玩法标识
14
+ * @returns 玩法维度数据
15
+ */
16
+ getGameMetrics(gameFlag?: string): Record<string, number[]>;
17
+ /**
18
+ * 获取指定玩法的维度
19
+ * @param gameFlag 玩法标识
20
+ * @returns 玩法维度
21
+ */
22
+ private _game;
23
+ private _behaviorReporter;
24
+ /**
25
+ * 开始关卡
26
+ * @param id 关卡ID
27
+ * @param index 关卡索引
28
+ * @param gameFlag 关卡所属玩法标识
29
+ * @param params 关卡参数, 会从端口下发的配置level_config中获取, 也允许手动指定,其他未指定的字段会采用配置中的值。
30
+ */
31
+ onStart(id: string, index: number, gameFlag?: string, data?: Omit<AnalyticsData, 'id' | 'index' | 'type' | 'progress' | 'code'>): Promise<void>;
32
+ /**
33
+ * 记录用户操作(包括有效和无效操作)
34
+ * @param progress 关卡进度 0.0 - 1.0
35
+ * @param remainingResourceRatio 剩余资源百分比,比如步数、倒计时等限制性资源的剩余比例,取值范围 0.0 - 1.0
36
+ */
37
+ onMove(progress: number, remainingResourceRatio?: number): void;
38
+ /**
39
+ * 记录用户使用道具, 自动触发了手势之类的提示也需要记录`PropSupport.HINT`
40
+ * @param prop 道具类型或者自定义道具权重
41
+ */
42
+ onPropUse(prop: PropSupport, data?: AnalyticsData): void;
43
+ /**
44
+ * 记录用户使用自定义道具,注意自定义道具权重的合理性
45
+ * @param name 道具名称
46
+ * @param weight 道具权重
47
+ */
48
+ onPropUseCustom(name: string, weight: number, data?: AnalyticsData): void;
49
+ /**
50
+ * 关卡超时
51
+ * @param data 额外行为上报数据
52
+ */
53
+ onTimeout(data?: AnalyticsData): void;
54
+ /**
55
+ * 关卡结束
56
+ * @param leaveType 离开类型 GameLeaveType.success | GameLeaveType.fail | GameLeaveType.skip | GameLeaveType.leave
57
+ * @param data 额外行为上报数据
58
+ */
59
+ private onEnd;
60
+ onSuccess(data?: AnalyticsData): void;
61
+ /**
62
+ * 关卡跳过
63
+ * @param data 额外行为上报数据
64
+ */
65
+ onSkip(data?: AnalyticsData): void;
66
+ /**
67
+ * 关卡失败
68
+ * @param data 额外行为上报数据
69
+ */
70
+ onFail(data?: AnalyticsData): void;
71
+ /**
72
+ * 关卡复活
73
+ * @param data 额外行为上报数据
74
+ */
75
+ onRevive(data?: AnalyticsData): void;
76
+ /**
77
+ * 关卡返回
78
+ * @param data 额外行为上报数据
79
+ */
80
+ onBreak(data?: AnalyticsData): void;
81
+ /**
82
+ * 关卡重试
83
+ * @param data 额外行为上报数据
84
+ */
85
+ onRetry(data?: AnalyticsData): void;
86
+ }
@@ -0,0 +1,29 @@
1
+ import { AnalyticsAble, AnalyticsData } from "../AnalyticsAble";
2
+ import { GameDimension } from "../level/GameDimension";
3
+ export declare enum GameLeaveType {
4
+ success = "lv_success",
5
+ fail = "lv_fail",
6
+ leave = "lv_leave",
7
+ skip = "lv_skip",
8
+ revive = "lv_revive",
9
+ break = "lv_break",
10
+ retry = "lv_retry"
11
+ }
12
+ /**
13
+ * 关卡行为自动上报器
14
+ * 只依赖 GameDimension 的只读会话上下文,不维护独立状态。
15
+ */
16
+ export declare class LevelBehaviorReporter {
17
+ private readonly _game;
18
+ private baseAble;
19
+ constructor(_game: GameDimension, baseAble: AnalyticsAble);
20
+ start(): void;
21
+ end(type: GameLeaveType, data?: AnalyticsData): void;
22
+ reportLeave(data?: AnalyticsData): void;
23
+ reportTimeout(data?: AnalyticsData): void;
24
+ reportItem(name: string, data?: AnalyticsData): void;
25
+ reset(): void;
26
+ private _leaveApp;
27
+ private _setTimers;
28
+ private _getContext;
29
+ }
@@ -0,0 +1,70 @@
1
+ import { BaseDimension } from "../BaseDimension";
2
+ export declare const LEVEL_STATS_METRIC_ORDER_V1: readonly ["LEVEL_STATS.launch_avg_enters_ma", "LEVEL_STATS.launch_avg_completes_ma", "LEVEL_STATS.daily_avg_enters_ma", "LEVEL_STATS.daily_avg_completes_ma", "LEVEL_STATS.launch_avg_enters_trend", "LEVEL_STATS.launch_avg_completes_trend", "LEVEL_STATS.daily_avg_enters_trend", "LEVEL_STATS.daily_avg_completes_trend", "LEVEL_STATS.first_launch_enters", "LEVEL_STATS.first_launch_completes", "LEVEL_STATS.first_day_enters", "LEVEL_STATS.first_day_completes", "LEVEL_STATS.yesterday_launch_avg_enters", "LEVEL_STATS.yesterday_launch_avg_completes", "LEVEL_STATS.yesterday_total_enters", "LEVEL_STATS.yesterday_total_completes", "LEVEL_STATS.today_launch_avg_enters", "LEVEL_STATS.today_launch_avg_completes", "LEVEL_STATS.today_total_enters", "LEVEL_STATS.today_total_completes"];
3
+ export declare class LevelStatsDimension extends BaseDimension {
4
+ private levelStats;
5
+ private readonly gameFlag;
6
+ constructor(gameFlag: string);
7
+ getMetrics(order?: string[]): number[];
8
+ /** 加载字符串数据 */
9
+ private _loadStringData;
10
+ /** 保存字符串数据 */
11
+ private _saveStringData;
12
+ /** 加载关卡统计数据 */
13
+ private _loadLevelStats;
14
+ /** 保存关卡统计数据 */
15
+ private _saveLevelStats;
16
+ /** 创建默认的关卡统计数据 */
17
+ private _createDefaultLevelStats;
18
+ clear(): void;
19
+ /** 初始化当前启动 */
20
+ private _initializeCurrentLaunch;
21
+ /** 初始化新的启动 */
22
+ private _initializeNewLaunch;
23
+ /** 获取今天开始时间 */
24
+ private _getTodayStart;
25
+ private get currentLaunchActionData();
26
+ private get currentLaunchEnters();
27
+ private set currentLaunchEnters(value);
28
+ private get currentLaunchCompletes();
29
+ private set currentLaunchCompletes(value);
30
+ private get todayLevelActionData();
31
+ private get todayTotalEnters();
32
+ private set todayTotalEnters(value);
33
+ private get todayTotalCompletes();
34
+ private set todayTotalCompletes(value);
35
+ private get todayLaunchTimes();
36
+ private get todayLaunchAvgCompletes();
37
+ private get todayLaunchAvgEnters();
38
+ private get yesterLevelActionData();
39
+ private get yesterdayLaunchTimes();
40
+ private get yesterdayTotalEnters();
41
+ private get yesterdayTotalCompletes();
42
+ private get yesterdayLaunchAvgEnters();
43
+ private get yesterdayLaunchAvgCompletes();
44
+ /** 记录关卡进入 */
45
+ recordLevelEnter(): void;
46
+ /** 记录关卡完成 */
47
+ recordLevelComplete(): void;
48
+ /** 计算每日平均关卡进入次数的滑动平均值 */
49
+ private calculateDailyAvgEntersMovingAverage;
50
+ /** 计算每日平均关卡完成次数的滑动平均值 */
51
+ private calculateDailyAvgCompletesMovingAverage;
52
+ /**
53
+ * 计算每日平均关卡进入次数的趋势斜率
54
+ */
55
+ private calculateDailyAvgEntersTrend;
56
+ /**
57
+ * 计算每日平均关卡完成次数的趋势斜率
58
+ */
59
+ private calculateDailyAvgCompletesTrend;
60
+ /** 计算启动次均关卡进入次数的滑动平均值 */
61
+ private calculateLaunchAvgEntersMovingAverage;
62
+ /** 计算启动次均关卡完成次数的滑动平均值 */
63
+ private calculateLaunchAvgCompletesMovingAverage;
64
+ /** 计算启动次均关卡进入次数的趋势斜率 */
65
+ private calculateLaunchAvgEntersTrend;
66
+ /** 计算启动次均关卡完成次数的趋势斜率 */
67
+ private calculateLaunchAvgCompletesTrend;
68
+ /** 从数组计算趋势斜率 */
69
+ private _calculateTrendSlopeFromArray;
70
+ }
@@ -0,0 +1,147 @@
1
+ import { BaseDimension } from "../BaseDimension";
2
+ export declare const PLAYER_ABILITY_METRIC_ORDER_V1: readonly ["PLAYER_ABILITY.avg_redundancy_pct", "PLAYER_ABILITY.redundancy_trend_pct", "PLAYER_ABILITY.near_miss_rate_pct", "PLAYER_ABILITY.failure_slope_pct", "PLAYER_ABILITY.support_dependency_pct", "PLAYER_ABILITY.mental_load_pct", "PLAYER_ABILITY.net_skill_pct", "PLAYER_ABILITY.latest_level_fail_count", "PLAYER_ABILITY.latest_level_avg_fail_progress", "PLAYER_ABILITY.consecutive_fail_count", "PLAYER_ABILITY.effective_move_ratio_pct"];
3
+ /** 内部定义的权重常数,避免对接人员写错 */
4
+ export declare enum PropSupport {
5
+ /**
6
+ * 自动提示
7
+ */
8
+ HINT = "HINT",
9
+ /**
10
+ * 普通道具(锤子等)
11
+ */
12
+ ITEM_NORMAL = "ITEM_NORMAL",
13
+ /**
14
+ * 改变关卡整体难度类型的道具(全局洗牌等)
15
+ */
16
+ ITEM_SHUFFLE = "ITEM_SHUFFLE",
17
+ /**
18
+ * 复活,补充时间/步骤等道具(最高压力信号)
19
+ */
20
+ REVIVE = "REVIVE"
21
+ }
22
+ /** 单次关卡原始快照 */
23
+ export interface LevelSnapshot {
24
+ /** 关卡ID */
25
+ levelId: string;
26
+ /** 玩家接触到关卡的顺序 */
27
+ levelIndex: number;
28
+ /** 剩余资源百分比,比如步数、倒计时等限制性资源的剩余比例,取值范围 0.0 - 1.0 */
29
+ remainingResourceRatio: number;
30
+ /** 开始时间戳 */
31
+ startTime: number;
32
+ /** 是否成功通关 */
33
+ isSuccess: boolean;
34
+ /** 玩家操作总次数 */
35
+ movesCount: number;
36
+ /** 玩家有效操作次数 */
37
+ stepsUsed: number;
38
+ /** 关卡进度 0.0 - 1.0 */
39
+ progress: number;
40
+ /** 决策耗时(总思考时间)(毫秒,需剔除切出挂机时间) 不包括广告播放时间*/
41
+ thinkTimeTotal: number;
42
+ /** 触发并跟随系统提示的次数 */
43
+ hintsFollowed: number;
44
+ /**
45
+ * 本局道具总权重分
46
+ * 含义:
47
+ * 代表“外部助力对通关贡献的总权重”,用于把提示、道具、复活等对真实能力的粉饰剥离掉。
48
+ *
49
+ * 推荐权重:
50
+ * HINT = 0.2
51
+ * ITEM_NORMAL = 1.0
52
+ * ITEM_SHUFFLE = 1.5
53
+ * REVIVE = 2.5
54
+ */
55
+ supportTotalWeight: number;
56
+ /** 是否处于暂停态 */
57
+ isPaused: boolean;
58
+ /** 最近一次有效行为时间 */
59
+ lastActionTime: number;
60
+ /** 从开局到首次有效正反馈的耗时(毫秒) */
61
+ timeToFirstSuccessAction: number;
62
+ }
63
+ /** 共享历史读取接口。GameDimension 持有原始历史时,由它实现并注入给分析器。 */
64
+ export interface PlayerAbilityHistorySource {
65
+ getLevelHistory(): LevelSnapshot[];
66
+ getCurrentLevelSession(): LevelSnapshot | null;
67
+ }
68
+ export declare class PlayerAbilityDimension extends BaseDimension {
69
+ private readonly windowSize;
70
+ private readonly noiseSec;
71
+ private readonly gameFlag;
72
+ private readonly source?;
73
+ constructor(gameFlag: string, source: PlayerAbilityHistorySource);
74
+ static getSupportWeight(type: PropSupport): number | undefined;
75
+ static normalizeSnapshot(item: any): LevelSnapshot;
76
+ private getHistorySnapshots;
77
+ /**
78
+ * 计算失败趋势斜率
79
+ * 口径:
80
+ * 先按 levelIndex 聚合失败次数,再做线性回归,观察随着关卡推进失败压力是上升还是下降。
81
+ */
82
+ private calculateFailureSlope;
83
+ /**
84
+ * 计算成功关卡的平均冗余度
85
+ * 冗余度越高,代表玩家越“游刃有余”。
86
+ */
87
+ private calculateAvgRedundancy;
88
+ /**
89
+ * 计算最近成功关的冗余度趋势
90
+ * 斜率为正,表示玩家在最近几个成功关里越打越轻松。
91
+ */
92
+ private calculateRedundancyTrend;
93
+ /**
94
+ * 计算外部助力依赖度
95
+ * 口径:
96
+ * 总助力权重 / (总消耗步数 / 10)
97
+ * 用于描述玩家通关过程对提示、道具、复活等外部系统的依赖程度。
98
+ */
99
+ private calculateSupportDependency;
100
+ /**
101
+ * 计算惜败率
102
+ * 定义:
103
+ * 失败局中 progress > 0.8 的占比。
104
+ * 这个指标常用于识别“差一点就能过”的关卡压力状态。
105
+ */
106
+ private calculateNearMissRate;
107
+ /**
108
+ * 计算心智负荷
109
+ * 口径:
110
+ * (平均单步思考时长 * 0.7) + (提示依赖度 * 0.3)
111
+ * 用于描述玩家在关卡过程中的认知压力,而不是结果表现本身。
112
+ */
113
+ private calculateMentalLoad;
114
+ /**
115
+ * 计算净实力
116
+ * 口径:
117
+ * 冗余度 / (1 + supportTotalWeight)
118
+ * 含义:
119
+ * 尝试把“玩家本身的表现”和“外部助力带来的粉饰”拆开。
120
+ */
121
+ private calculateNetSkill;
122
+ /**
123
+ * 计算有效操作的占比
124
+ * 口径:
125
+ * stepsUsed / movesCount
126
+ * 含义:
127
+ * 描述玩家在关卡中实际使用的操作次数占总操作次数的比例。
128
+ **/
129
+ private calculateEffectiveMoveRatio;
130
+ /**
131
+ * 计算最近连续失败次数
132
+ * 从最新一局往前数,直到遇到最近一次成功为止。
133
+ */
134
+ private calculateConsecutiveFails;
135
+ /** 获取某个关卡的全部历史尝试 */
136
+ getLevelAttempts(levelId: string): LevelSnapshot[];
137
+ /** 获取某个关卡的失败次数 */
138
+ getLevelFailCount(levelId: string): number;
139
+ /** 获取某个关卡的成功次数 */
140
+ getLevelSuccessCount(levelId: string): number;
141
+ /**
142
+ * 输出 PLAYER_ABILITY 维度指标
143
+ * 注意:
144
+ * 这里的数组顺序要与后端 catalog 的 index 保持稳定映射,不要随意调整已有位置。
145
+ */
146
+ getMetrics(order?: string[]): number[];
147
+ }
@@ -0,0 +1,9 @@
1
+ import { AnalyticsAble } from "../AnalyticsAble";
2
+ export declare class SessionAnalyticsAble {
3
+ private _baseAble;
4
+ private _dimension;
5
+ constructor(baseAble: AnalyticsAble);
6
+ recordLogin(): void;
7
+ updateSessionDuration(): void;
8
+ getMetrics(): number[];
9
+ }
@@ -0,0 +1,48 @@
1
+ import { BaseDimension } from "../BaseDimension";
2
+ /**
3
+ * 活跃维度,可以记录:
4
+ * - 登录次数、登录天数
5
+ * - 总时长、最大时长、上次记录时长、今日在线时长、每日平均在线时长
6
+ * - 连续天数、最大连续天数、最后登录天数
7
+ * - 早晨时长、下午时长、傍晚时长、夜晚时长
8
+ * - 活跃趋势指数(基于EMA计算,-100到100,正值表示上升趋势)
9
+ */
10
+ export declare class SessionDimension extends BaseDimension {
11
+ private _currSessionDuration;
12
+ constructor();
13
+ recordLogin(): void;
14
+ /**
15
+ * 根据时长增量记录到对应的时间段
16
+ */
17
+ private _recordTimeSlot;
18
+ /**
19
+ * 更新当前会话的在线时长
20
+ */
21
+ updateSessionDuration(): void;
22
+ private get loginCount();
23
+ private get loginDays();
24
+ /**
25
+ * 获取今日在线时长(秒)
26
+ */
27
+ private get todayDuration();
28
+ /**
29
+ * 更新指数移动平均(EMA)
30
+ * 使用 α = 0.3 的平滑系数,更重视近期数据
31
+ */
32
+ private _updateEMA;
33
+ /**
34
+ * 获取每天的平均在线时长(秒)
35
+ */
36
+ private get avgDurationOfDay();
37
+ /**
38
+ * 获取活跃趋势指数(-100 到 100)
39
+ * 正值表示上升趋势,负值表示下降趋势,0表示稳定
40
+ */
41
+ private get trendIndex();
42
+ /**
43
+ * 获取时间分布(基于在线时长)
44
+ * 返回格式:早晨占比(百万位) + 下午占比(万位) + 傍晚占比(百位) + 夜晚占比(个位)
45
+ */
46
+ private _getTimeDistribution;
47
+ getMetrics(order?: string[]): number[];
48
+ }
@@ -0,0 +1,14 @@
1
+ import { AnalyticsAble } from "../AnalyticsAble";
2
+ import { AnalyticsData } from "../AnalyticsAble";
3
+ export declare class SocialAnalyticsAble {
4
+ private _baseAble;
5
+ private _socialDimension;
6
+ constructor(baseAble: AnalyticsAble);
7
+ recordShare(data: AnalyticsData): void;
8
+ recordInvite(success?: boolean): void;
9
+ recordFriendAdd(count?: number): void;
10
+ recordInteraction(): void;
11
+ recordSubscribeShow(name: string): void;
12
+ recordSubscribe(name: string, code: number): void;
13
+ getMetrics(): number[];
14
+ }
@@ -0,0 +1,14 @@
1
+ import { BaseDimension } from "../BaseDimension";
2
+ /**
3
+ * 社交维度
4
+ */
5
+ export declare class SocialDimension extends BaseDimension {
6
+ constructor();
7
+ recordShare(): void;
8
+ recordInvite(success?: boolean): void;
9
+ recordFriendAdd(count?: number): void;
10
+ recordInteraction(): void;
11
+ get shareCount(): number;
12
+ get inviteSuccessRate(): number;
13
+ getMetrics(): number[];
14
+ }
@@ -0,0 +1,37 @@
1
+ declare class Bidding {
2
+ private _enabled;
3
+ /**
4
+ * 启用
5
+ */
6
+ enable(): void;
7
+ /**
8
+ * 是否已启用
9
+ */
10
+ get enabled(): boolean;
11
+ /**
12
+ * 手动上报激励视频广告曝光行为
13
+ * 默认情况下会自动上报
14
+ * @returns
15
+ */
16
+ onAdShow(): Promise<boolean>;
17
+ /**
18
+ * 手动上报激励视频广告完播行为
19
+ * 默认情况下会自动上报
20
+ * @param isEnd 是否完整播放
21
+ * @returns
22
+ */
23
+ onAdComplete(isEnd: boolean): Promise<boolean>;
24
+ /**
25
+ * 上报其他自定义玩家行为
26
+ * 可以根据游戏投放需求自主定义行为类型编号。此编号对应投放策略中的行为类型。
27
+ * @param type 行为类型编号,除去内置事件(1:激励视频曝光;2:激励视频完播;3:激励视频被手动关闭)以外的行为编号。
28
+ * @returns
29
+ */
30
+ onEvent(type: number): Promise<boolean>;
31
+ }
32
+ /**
33
+ * 直投系统
34
+ * - 使用前需要调用enable()
35
+ */
36
+ export declare const bidding: Bidding;
37
+ export {};
@@ -0,0 +1,33 @@
1
+ import { IBusiness } from "./IBusiness";
2
+ export declare class BusinessCenter {
3
+ private _businessMap;
4
+ private static created;
5
+ constructor();
6
+ /**
7
+ * 同时初始化多个事务,多用在APP\Game启动时
8
+ * @param businessClassList
9
+ */
10
+ init(businessClassList: {
11
+ new (): IBusiness;
12
+ }[]): void;
13
+ start(businessClass: {
14
+ new (): IBusiness;
15
+ }, ...args: any[]): IBusiness;
16
+ get<T extends IBusiness>(businessClass: {
17
+ new (): T;
18
+ }): T;
19
+ stop(businessClass: {
20
+ new (): IBusiness;
21
+ }): void;
22
+ pause(businessClass: {
23
+ new (): IBusiness;
24
+ }): void;
25
+ release(businessClass: {
26
+ new (): IBusiness;
27
+ }): boolean;
28
+ destroy(): void;
29
+ }
30
+ /**
31
+ * 事务中心,用于增加常驻逻辑,例如基础网络链接的心跳,业务逻辑中服务器的消息推送等
32
+ */
33
+ export declare const businessCenter: BusinessCenter;
@@ -0,0 +1,6 @@
1
+ export interface IBusiness {
2
+ start(): IBusiness;
3
+ stop(): void;
4
+ pause(): void;
5
+ release(): void;
6
+ }
@@ -0,0 +1,18 @@
1
+ import { IBusiness } from "./IBusiness";
2
+ /**
3
+ * 广告播放过程中的交互遮罩逻辑
4
+ */
5
+ export declare class RewardVideoMaskBusiness implements IBusiness {
6
+ private _started;
7
+ start(): IBusiness;
8
+ private _onLoad;
9
+ private _onLoadComplete;
10
+ private _onLoadFail;
11
+ private _onShow;
12
+ private _onShowComplete;
13
+ private _onShowFail;
14
+ private _onCloseByUser;
15
+ stop(): void;
16
+ pause(): void;
17
+ release(): void;
18
+ }