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.
73 lines
3.5 KiB
73 lines
3.5 KiB
import { GmEasy, GmShell } from '../../mx/module/gm';
|
|
import { ItemNumType } from '../game/GameData';
|
|
import { ProjectGmActions } from './ProjectGmActions';
|
|
import { ProjectGmHost } from './ProjectGmHost';
|
|
import { ProjectGmPanelId, ProjectGmPanels } from './ProjectGmPanels';
|
|
|
|
/**
|
|
* 本项目 GM 启动。扩展新功能:在 `_register` 里加一行即可。
|
|
*/
|
|
export class ProjectGmBootstrap {
|
|
private static _inited = false;
|
|
|
|
/** 幂等初始化 */
|
|
static init(): void {
|
|
if (this._inited) return;
|
|
this._inited = true;
|
|
GmShell.bindHost(new ProjectGmHost());
|
|
ProjectGmPanels.ensureRegistered();
|
|
this._register();
|
|
}
|
|
|
|
/** 打开 GM */
|
|
static show(): void {
|
|
this.init();
|
|
GmShell.show();
|
|
}
|
|
|
|
/**
|
|
* 注册全部命令(开发者主要改这里)。
|
|
* btn=快捷 / sw=开关 / num=数值 / page=子面板 / danger=确认 / text=粘贴
|
|
*/
|
|
private static _register(): void {
|
|
const A = ProjectGmActions;
|
|
const P = ProjectGmPanelId;
|
|
|
|
new GmEasy()
|
|
.tab('常用')
|
|
.btn('今日首次登录', () => A.firstLoginToday())
|
|
.btn('一键添加所有宝石', () => A.grantAllGems())
|
|
.btn('一键获取所有武器', () => A.grantAllWeapons())
|
|
.btn('清除固定地图', () => A.clearFixedMap())
|
|
.btn('设置排行星级&胜场', () => A.prepareEmolumentPop())
|
|
.btn('清除副本次数难度全开', () => A.clearReplicaCounts())
|
|
.btn('设置武器等级', () => A.openPopGm(1))
|
|
.btn('设置武器和技能', () => A.openPopGm(2))
|
|
.sw('显示广告', () => A.getShowAd(), (v) => A.setShowAd(v))
|
|
.sw('内购版本', () => A.getIap(), (v) => A.setIap(v))
|
|
.sw('快速胜利', () => A.getFastWin(), (v) => A.setFastWin(v))
|
|
.page('设置道具', P.itemPicker, () => '图标点选')
|
|
.page('设置段位和星级', P.rankPicker, () => A.rankSummary())
|
|
.num('设置金钱', () => A.getCurrency(ItemNumType.money), (v) => A.setCurrency(ItemNumType.money, v, 'set'))
|
|
.num('设置体力', () => A.getCurrency(ItemNumType.vigour), (v) => A.setCurrency(ItemNumType.vigour, v, 'set'))
|
|
.num('设置钻石', () => A.getCurrency(ItemNumType.diamond), (v) => A.setCurrency(ItemNumType.diamond, v, 'set'))
|
|
.num('通关怪物数量', () => A.getFastWinNum(), (v) => A.setFastWinNum(v))
|
|
.danger('GM重置进度', '将关闭所有面板并重置游戏进度,确定?', () => A.hardReset())
|
|
|
|
.tab('战斗')
|
|
.sw('己方营地不掉血', () => A.getLocalCampImmune(), (v) => A.setCampImmune(true, v))
|
|
.sw('敌方营地不掉血', () => A.getEnemyCampImmune(), (v) => A.setCampImmune(false, v))
|
|
.page('固定地图', P.levelPicker, () => A.fixedMapSummary())
|
|
.num('玩家局内血量', () => A.getWallHp() || 1000, (v) => A.setWallHp(v), 1)
|
|
.page('设置被动BUFF', P.buffPicker, () => A.passiveCarrySummary(), { expectType: 2, mode: 'carryPassive' })
|
|
.page('设置AI主动BUFF', P.buffPicker, () => A.aiBuffSummary(true), { expectType: 1, mode: 'aiActive' })
|
|
.page('设置AI被动BUFF', P.buffPicker, () => A.aiBuffSummary(false), { expectType: 2, mode: 'aiPassive' })
|
|
.btn('清除AI主动BUFF', () => A.clearAiActiveBuff())
|
|
.btn('清除AI被动BUFF', () => A.clearAiPassiveBuff())
|
|
|
|
.tab('存档')
|
|
.embed(P.saveEditor)
|
|
|
|
.commit();
|
|
}
|
|
}
|
|
|