import ClassName from "../../container/ClassName"; import { Injectable } from "../../container/Injectable"; import Logger from "../Logger"; import NetHighLvlWrapper, { BATTLE_STAT } from "../utils/NetHighLvlWrapper"; import { InjectionKey } from "vue"; import MsgWrapper from "../utils/MsgWrapper"; type GymResponse = { success: boolean, // 成功才有 You gained 689,636.71 strength gainMessage?: string, message: string, text?: string, error?: string, }; @ClassName("QuickGymTrain") @Injectable() export default class QuickGymTrain { constructor( private readonly logger: Logger, private readonly netHighLvlWrapper: NetHighLvlWrapper, private readonly msgWrapper: MsgWrapper, ) { } doTrain(type = BATTLE_STAT.STR, count = 199) { window.setTimeout(async () => { let resObj: GymResponse; try { resObj = JSON.parse(await this.netHighLvlWrapper.doGymTrain(type, count)) } catch (e) { resObj = { success: false, message: '解析失败' }; this.logger.error(e.stack || e.message || e); } let msgRs = resObj.success ? '成功' : '失败'; let msgMsg = resObj.message || resObj.text || resObj.error; this.msgWrapper.create( '锻炼结果: ' + msgRs + '
提示: ' + (resObj.gainMessage || msgMsg), {}, resObj.success ? 'success' : 'error' ); }, 0); } } export const QuickGymTrainKey = Symbol('QuickGymTrainKey') as InjectionKey;