drgame-cc 1.0.61 → 1.0.63

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 (43) hide show
  1. package/drres/focus/focus_1/gesture.atlas +34 -34
  2. package/drres/focus/focus_2/gesture.atlas +41 -41
  3. package/drres/focus/focus_3/gesture.atlas +34 -34
  4. package/drres/focus/focus_4/gesture.atlas +20 -20
  5. package/drres/prefab/HelperWin.prefab +508 -508
  6. package/drscript/PlatformAdapter.ts +1 -1
  7. package/drscript/ad-sdk/README.md +78 -12
  8. package/drscript/ad-sdk/ad-sdk.ts +416 -0
  9. package/drscript/ad-sdk/{adapters/xiaomi-adapter.js.meta → ad-sdk.ts.meta} +2 -2
  10. package/drscript/ad-sdk/event-emitter.ts +66 -0
  11. package/drscript/ad-sdk/event-emitter.ts.meta +10 -0
  12. package/drscript/ad-sdk/leaderboard/leaderboard.ts +219 -0
  13. package/drscript/ad-sdk/leaderboard/leaderboard.ts.meta +10 -0
  14. package/drscript/ad-sdk/package.json +18 -17
  15. package/drscript/ad-sdk/reporters/reporter.ts +515 -0
  16. package/drscript/ad-sdk/reporters/reporter.ts.meta +10 -0
  17. package/drscript/ad-sdk/reporters/superset-lewo.ts +464 -0
  18. package/drscript/ad-sdk/reporters/superset-lewo.ts.meta +10 -0
  19. package/drscript/ad-sdk/types/enums.ts +103 -0
  20. package/drscript/ad-sdk/types/enums.ts.meta +10 -0
  21. package/drscript/ad-sdk/types/{index.d.ts → index.ts} +1 -1
  22. package/drscript/ad-sdk/types/index.ts.meta +10 -0
  23. package/drscript/ad-sdk/types/{interfaces.d.ts → interfaces.ts} +61 -10
  24. package/drscript/ad-sdk/types/interfaces.ts.meta +10 -0
  25. package/drscript/ad-sdk/user-gamedata/user-gamedata.ts +219 -0
  26. package/drscript/ad-sdk/user-gamedata/user-gamedata.ts.meta +10 -0
  27. package/drscript/ad-sdk/user-gamedata.meta +13 -0
  28. package/package.json +1 -1
  29. package/drscript/ad-sdk/ad-sdk.d.ts +0 -59
  30. package/drscript/ad-sdk/ad-sdk.js +0 -338
  31. package/drscript/ad-sdk/adapters/xiaomi-adapter.d.ts +0 -29
  32. package/drscript/ad-sdk/adapters/xiaomi-adapter.d.ts.meta +0 -6
  33. package/drscript/ad-sdk/adapters/xiaomi-adapter.js +0 -452
  34. package/drscript/ad-sdk/event-emitter.d.ts +0 -12
  35. package/drscript/ad-sdk/event-emitter.js +0 -65
  36. package/drscript/ad-sdk/leaderboard/leaderboard.d.ts +0 -23
  37. package/drscript/ad-sdk/leaderboard/leaderboard.js +0 -193
  38. package/drscript/ad-sdk/reporters/reporter.d.ts +0 -85
  39. package/drscript/ad-sdk/reporters/reporter.js +0 -500
  40. package/drscript/ad-sdk/reporters/superset-lewo.js +0 -574
  41. package/drscript/ad-sdk/types/enums.d.ts +0 -66
  42. package/drscript/ad-sdk/types/enums.js +0 -113
  43. package/drscript/ad-sdk/types/index.js +0 -15
@@ -1,338 +0,0 @@
1
- /**
2
- * 聚合广告 SDK - 主入口
3
- *
4
- * 使用方式:
5
- * const { AdSdk, AdPlatform, AdEvent } = require('./ad-sdk');
6
- * await AdSdk.init({ platform: AdPlatform.Xiaomi });
7
- * const result = await AdSdk.requestAd({ cpId: 'cp_001', rewardType: 'extra_life', triggerScene: 'game_over' });
8
- *
9
- * TS 项目中:
10
- * import { AdSdk, AdPlatform } from './ad-sdk';
11
- */
12
-
13
- const { AdPlatform, AdEvent, AdErrorCode } = require('./types/enums');
14
- const { XiaomiAdapter } = require('./adapters/xiaomi-adapter');
15
- const { EventEmitter } = require('./event-emitter');
16
- const { Reporter, ActionType } = require('./reporters/reporter');
17
- const { Leaderboard } = require('./leaderboard/leaderboard');
18
- const KEY_EVENT_NAME = '__key_event__';
19
-
20
- // ────────────────────────────────────────
21
- // 适配器注册表
22
- // ────────────────────────────────────────
23
-
24
- const BUILTIN_ADAPTERS = {};
25
- BUILTIN_ADAPTERS[AdPlatform.Xiaomi] = XiaomiAdapter;
26
- // 后续扩展:
27
- // BUILTIN_ADAPTERS[AdPlatform.Huawei] = HuaweiAdapter;
28
- // BUILTIN_ADAPTERS[AdPlatform.Tencent] = TencentAdapter;
29
-
30
- // ────────────────────────────────────────
31
- // SDK 实现
32
- // ────────────────────────────────────────
33
-
34
- class AdSdkImpl {
35
- constructor() {
36
- this._initialized = false;
37
- this._currentPlatform = AdPlatform.Xiaomi;
38
- this._adapters = new Map();
39
- this._emitter = new EventEmitter();
40
- this._globalEventHandler = null;
41
- this._keyHandlers = [];
42
- this._adapterKeyHandler = null;
43
- }
44
-
45
- get currentPlatform() {
46
- return this._currentPlatform;
47
- }
48
-
49
- /**
50
- * 初始化 SDK
51
- * @param {import('./types/interfaces').IAdSdkInitConfig} config
52
- */
53
- async init(config) {
54
- if (this._initialized) {
55
- console.warn('[AdSdk] Already initialized. Call destroy() first if you need to re-init.');
56
- return;
57
- }
58
-
59
- this._currentPlatform = config.platform;
60
- this._globalEventHandler = config.onEvent || null;
61
-
62
- // 注册自定义适配器(如提供了 customAdapters 兼容旧用法)
63
- if (config.customAdapters) {
64
- for (const adapter of config.customAdapters) {
65
- this._adapters.set(adapter.platform, adapter);
66
- }
67
- }
68
-
69
- // 注册内置适配器(不覆盖自定义的)
70
- if (!this._adapters.has(config.platform)) {
71
- const AdapterClass = BUILTIN_ADAPTERS[config.platform];
72
- if (!AdapterClass) {
73
- throw new Error(
74
- '[AdSdk] No adapter found for platform "' + config.platform + '". ' +
75
- 'Available: ' + Object.keys(BUILTIN_ADAPTERS).join(', ') + '. ' +
76
- 'You can also provide a custom adapter via config.customAdapters.'
77
- );
78
- }
79
- const instance = new AdapterClass();
80
- this._adapters.set(config.platform, instance);
81
- }
82
-
83
- // 初始化当前平台的适配器(从 config.cpId 构建适配器配置)
84
- const adapter = this._adapters.get(config.platform);
85
- const adapterConfig = { cpId: config.cpId };
86
- await adapter.init(adapterConfig);
87
-
88
- // 桥接适配器事件到全局
89
- const self = this;
90
- const events = Object.values(AdEvent);
91
- for (let i = 0; i < events.length; i++) {
92
- const evt = events[i];
93
- adapter.on(evt, function (data) {
94
- self._emitter.emit(evt, data);
95
- if (self._globalEventHandler) {
96
- self._globalEventHandler(evt, data);
97
- }
98
- });
99
- }
100
-
101
- // 桥接适配器的退出事件 → 调用 reporter 上报退出
102
- adapter.on(AdEvent.Exit, function () {
103
- Reporter.reportAppExit();
104
- });
105
-
106
- // 桥接适配器的按键事件
107
- if (adapter.onKeyEvent) {
108
- self._adapterKeyHandler = function (keyEvent) {
109
- for (var j = 0; j < self._keyHandlers.length; j++) {
110
- try {
111
- self._keyHandlers[j](keyEvent);
112
- } catch (e) {
113
- console.error('[AdSdk] Key event handler error:', e);
114
- }
115
- }
116
- };
117
- adapter.onKeyEvent(self._adapterKeyHandler);
118
- }
119
-
120
- // 自动初始化数据上报模块(传入 reporter 配置,无配置时使用空对象默认初始化)
121
- Reporter.init(config.reporter || {});
122
-
123
- this._initialized = true;
124
- console.log('[AdSdk] Initialized with platform: ' + config.platform);
125
-
126
- // 上报「启动」事件
127
- Reporter.reportAppStart();
128
-
129
- console.log('[AdSdk] Lifecycle reporting bound.');
130
- }
131
-
132
- /**
133
- * 获取设备信息
134
- * @returns {Promise<import('./types/interfaces').IDeviceInfo>}
135
- */
136
- async getDeviceInfo() {
137
- this._ensureInit();
138
- const adapter = this._getAdapter();
139
- if (adapter.getDeviceInfo) {
140
- return adapter.getDeviceInfo();
141
- }
142
- throw new Error('[AdSdk] getDeviceInfo is not supported by the current adapter.');
143
- }
144
-
145
- /**
146
- * 获取玩家账户信息
147
- * @returns {Promise<import('./types/interfaces').IAccountInfo>}
148
- */
149
- async getAccount() {
150
- this._ensureInit();
151
- const adapter = this._getAdapter();
152
- if (adapter.getAccount) {
153
- return adapter.getAccount();
154
- }
155
- throw new Error('[AdSdk] getAccount is not supported by the current adapter.');
156
- }
157
-
158
- /**
159
- * 请求播放广告
160
- * @param {import('./types/interfaces').IAdRequest} request
161
- * @returns {Promise<import('./types/interfaces').IAdRewardResult>}
162
- */
163
- async requestAd(request) {
164
- this._ensureInit();
165
- return this._getAdapter().requestAd(request);
166
- }
167
-
168
- /**
169
- * 通知游戏加载完成
170
- * @param {string} version
171
- */
172
- onGameReady(version) {
173
- this._ensureInit();
174
- const adapter = this._getAdapter();
175
- if (adapter.onGameReady) {
176
- adapter.onGameReady(version);
177
- }
178
- }
179
-
180
- /** 通知游戏暂停(自动上报切后台) */
181
- onGamePause() {
182
- this._ensureInit();
183
- Reporter.reportSwitchBackground();
184
- const adapter = this._getAdapter();
185
- if (adapter.onGamePause) {
186
- adapter.onGamePause();
187
- }
188
- }
189
-
190
- /** 通知游戏恢复(自动上报切回) */
191
- onGameResume() {
192
- this._ensureInit();
193
- Reporter.reportSwitchBack();
194
- const adapter = this._getAdapter();
195
- if (adapter.onGameResume) {
196
- adapter.onGameResume();
197
- }
198
- }
199
-
200
- /**
201
- * 退出游戏(自动上报退出事件后执行实际退出)
202
- * @returns {Promise<void>}
203
- */
204
- async exitGame() {
205
- this._ensureInit();
206
- // 通知适配器执行退出,适配器的 onExitConfirmed 回调会触发上报
207
- const adapter = this._getAdapter();
208
- if (adapter.exitGame) {
209
- return adapter.exitGame();
210
- }
211
- }
212
-
213
- /**
214
- * 监听广告事件
215
- * @param {string} event
216
- * @param {Function} handler
217
- */
218
- on(event, handler) {
219
- this._emitter.on(event, handler);
220
- }
221
-
222
- /**
223
- * 取消监听
224
- * @param {string} event
225
- * @param {Function} [handler]
226
- */
227
- off(event, handler) {
228
- this._emitter.off(event, handler);
229
- }
230
-
231
- /**
232
- * 监听遥控器按键事件
233
- * @param {Function} handler - 回调函数,接收 { key, action } 对象
234
- */
235
- onKeyEvent(handler) {
236
- if (typeof handler === 'function' && this._keyHandlers.indexOf(handler) === -1) {
237
- this._keyHandlers.push(handler);
238
- }
239
- }
240
-
241
- /**
242
- * 取消监听遥控器按键事件
243
- * @param {Function} [handler] - 不传则清除所有
244
- */
245
- offKeyEvent(handler) {
246
- if (!handler) {
247
- this._keyHandlers = [];
248
- } else {
249
- var idx = this._keyHandlers.indexOf(handler);
250
- if (idx !== -1) {
251
- this._keyHandlers.splice(idx, 1);
252
- }
253
- }
254
- }
255
-
256
- /**
257
- * 切换广告平台
258
- * @param {string} platform
259
- */
260
- switchPlatform(platform) {
261
- if (platform === this._currentPlatform) return;
262
-
263
- const adapter = this._adapters.get(platform);
264
- if (!adapter) {
265
- throw new Error('[AdSdk] Platform "' + platform + '" not registered. Init with it first.');
266
- }
267
-
268
- this._currentPlatform = platform;
269
- console.log('[AdSdk] Switched to platform: ' + platform);
270
- }
271
-
272
- /** 销毁 SDK */
273
- destroy() {
274
- // 清理适配器的按键桥接
275
- const adapter = this._getAdapter();
276
- if (adapter && adapter.offKeyEvent && this._adapterKeyHandler) {
277
- adapter.offKeyEvent(this._adapterKeyHandler);
278
- }
279
-
280
- for (const adapter of this._adapters.values()) {
281
- adapter.destroy();
282
- }
283
- this._adapters.clear();
284
- this._emitter.removeAllListeners();
285
- this._globalEventHandler = null;
286
- this._keyHandlers = [];
287
- this._adapterKeyHandler = null;
288
- this._initialized = false;
289
- }
290
-
291
- // ────────────────────────────────────────
292
- // 内部
293
- // ────────────────────────────────────────
294
-
295
- _ensureInit() {
296
- if (!this._initialized) {
297
- throw new Error('[AdSdk] SDK not initialized. Call AdSdk.init() first.');
298
- }
299
- }
300
-
301
- _getAdapter() {
302
- return this._adapters.get(this._currentPlatform);
303
- }
304
- }
305
-
306
- // ────────────────────────────────────────
307
- // 导出单例
308
- // ────────────────────────────────────────
309
-
310
- const AdSdk = new AdSdkImpl();
311
-
312
- // 命名导出
313
- const { AdType, DevicePlatform, KeyCode, KeyAction } = require('./types/enums');
314
-
315
- module.exports = {
316
- // 单例
317
- AdSdk,
318
-
319
- // 枚举
320
- AdPlatform,
321
- AdType,
322
- AdEvent,
323
- AdErrorCode,
324
- DevicePlatform,
325
- KeyCode,
326
- KeyAction,
327
-
328
- // 数据上报
329
- Reporter,
330
- ActionType,
331
-
332
- // 排行榜
333
- Leaderboard,
334
-
335
- // 类
336
- XiaomiAdapter,
337
- EventEmitter,
338
- };
@@ -1,29 +0,0 @@
1
- /**
2
- * 聚合广告 SDK - 小米电视适配器类型声明
3
- */
4
-
5
- import { AdPlatform, AdEvent } from '../types/enums';
6
- import {
7
- IAdAdapter,
8
- IAdapterConfig,
9
- IAdRequest,
10
- IAdRewardResult,
11
- IDeviceInfo,
12
- IAccountInfo,
13
- IEventHandler,
14
- } from '../types/interfaces';
15
-
16
- export declare class XiaomiAdapter implements IAdAdapter {
17
- readonly platform: AdPlatform;
18
- init(config: IAdapterConfig): Promise<void>;
19
- requestAd(request: IAdRequest): Promise<IAdRewardResult>;
20
- destroy(): void;
21
- on(event: AdEvent, handler: IEventHandler): void;
22
- off(event: AdEvent, handler?: IEventHandler): void;
23
- getDeviceInfo(): Promise<IDeviceInfo>;
24
- getAccount(): Promise<IAccountInfo>;
25
- onGameReady(version: string): void;
26
- onGamePause(): void;
27
- onGameResume(): void;
28
- exitGame(): Promise<void>;
29
- }
@@ -1,6 +0,0 @@
1
- {
2
- "ver": "2.0.2",
3
- "uuid": "bf04fa1e-e989-4b4f-adb0-b5455627a253",
4
- "importer": "text",
5
- "subMetas": {}
6
- }