import { _decorator, Component, Toggle, ToggleContainer, Animation, v3 } from 'cc'; import { BattleData } from '../battle/BattleData'; import { DataSystem } from '../core/data/DataSystem'; import { Http, HttpResponseCode } from '../core/net/Http'; import { UITween } from '../core/ui/tween/UITween'; import { Window } from '../core/ui/window/Window'; import { platform } from '../data/jsb/platform'; import { UserData } from '../data/UserData'; import { FormationData } from '../hero/formation/FormationData'; import { UserHeroData } from '../hero/UserHeroData'; const { ccclass, property, requireComponent } = _decorator; /** * 图鉴英雄项 * @author 袁浩 */ @ccclass('FirstHero') @requireComponent(Http) export class FirstHero extends Component { @property({ tooltip: "武将列表容器", type: ToggleContainer }) public heroContainer: ToggleContainer; private selectedIndex = 0; public onSelected(toggle: Toggle) { for (let i = 0; i < this.heroContainer.toggleItems.length; i++) { const item = this.heroContainer.toggleItems[i]; if (item != toggle) { item.node.getChildByName("缩小动画").getComponent(UITween).play(); } else { this.selectedIndex = i; } } toggle.node.getChildByName("放大动画").getComponent(UITween).play(); } public async onReceive() { let http = this.getComponent(Http); let result = await http.send("/api/hero/receiveFirstHero", { index: this.selectedIndex }); if (result && result.code == HttpResponseCode.Success) { platform.reportThinking("guide", JSON.stringify({ guide_id: 'first_recruit' })); let userHero = DataSystem.getData(UserHeroData); userHero.addHero(result.data); let formation = DataSystem.getData(FormationData); formation.set(1, result.data); let userData = DataSystem.getData(UserData); let battleResult = await http.send("/api/battle/startBattle", { level: userData.level }); if (battleResult && battleResult.code == HttpResponseCode.Success) { DataSystem.getData(BattleData).mission = userData.level; } this.getComponent(Window).close(); } } }