You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.7 KiB

3 weeks ago
import { SoundManager as Sound } from "../../mx/module/audio/SoundManager";
import { Singleton } from "../../mx/tools/Singleton";
import { SDKManager as SDK } from "../sdk/SDKManager";
import { GameData as Data } from "./GameData";
import { GameController as Game, GameController } from "db://assets/script/game/GameController";
import { UIManager as UI } from "../../mx/module/ui/UIManager";
import { ChatManager as Chat } from "../../mx/module/chat/ChatManager";
import { Lang } from "../../mx/module/lang/Lang";
import { Activity } from "../activity/Activity";
import { TimeModule } from "../../mx/module/time/TimeModule";
import { ResourcesManager } from "../../mx/module/res/ResourcesManager";
import { AssetService } from "../../mx/module/res/AssetService";
import { RedDot } from "../../mx/module/redDot/RedDot";
import { AttributeInterface } from "../interface/AttributeInterface";
import { BattleService } from "../battle/BattleService";
import type { IBattleService } from "../battle/IBattleService";
import { EquipDataManager } from "../manager/EquipDataManager";
import { GemDataManager } from "../manager/GemDataManager";
3 weeks ago
/**
* 游戏全局模块入口
*/
export class GameGlobal extends Singleton {
/**UI模块 */
get ui() { return UI.Ins; }
/**音频模块 */
get audio() { return Sound.Ins; }
/**资源模块 */
get res() { return ResourcesManager.getInstance(); }
/**统一资源门面(按需晋升 + 调度) */
get assets() { return AssetService.getInstance(); }
/**游戏数据 */
get data() { return Data.getInstance(); }
/**sdk模块 */
get sdk() { return SDK.getInstance(); }
/**聊天模块 */
get chat() { return Chat.instance; }
get game() { return GameController.instance; }
set game(value: GameController) { GameController.instance = value; }
/**多语言模块 */
get lang() { return Lang.getInstance(); }
/**活动模块 */
get activity() { return Activity.getInstance(); }
/**时间模块 */
get time() { return TimeModule.getInstance(); }
/**红点模块 */
get dot() { return RedDot.getInstance(); }
/**属性接口模块 */
get attrInterface() { return AttributeInterface.getInstance(); }
/**战斗模块 */
private readonly _battle: IBattleService = new BattleService();
get battle() { return this._battle; }
/** 名将库装备(HaveEquip / HeroEquip) */
get equip() { return EquipDataManager.getInstance(); }
/** 宝石镶嵌与合成 */
get gem() { return GemDataManager.getInstance(); }
3 weeks ago
}
/**
* 创建全局gg对象并初始化为GameGlobal的实例
*/
(globalThis as any).gg = GameGlobal.getInstance();
/**
* 全局定义
*/
declare global {
/**游戏全局单例模块 */
const gg: GameGlobal;
}