import { _decorator, Component, Node, Label, bezier, instantiate, Prefab, ProgressBar, EventHandler, SystemEvent } from 'cc'; import { DataSystem } from '../../core/data/DataSystem'; import { Sound } from '../../core/sound/Sound'; import { ConfigData } from '../../data/ConfigData'; import { UserData } from '../../data/UserData'; import { NoviceGuideData } from '../../guide/NoviceGuideData'; import { GM } from '../../launch/GM'; import { MissionData } from '../MissionData'; import { ResultItem } from './ResultItem'; const { ccclass, property } = _decorator; @ccclass('BattleResult') export class BattleResult extends Component { @property({ type: Label, tooltip: "倒计时lable" }) countLabel: Label; @property({ type: Node, tooltip: "列表节点" }) list: Node; @property({ type: Prefab, tooltip: "item预制体" }) prefab: Prefab; @property({ type: ProgressBar, tooltip: "兵营进度" }) progress: ProgressBar; @property({ type: Node, tooltip: "完成组" }) completeNode: Node; @property({ type: Node, tooltip: "可点击背景" }) mask: Node; private count: number = 10; start() { this.mask.on(SystemEvent.EventType.TOUCH_END, () => { this.close(); }, this) } update(dt: number) { this.count -= dt; this.countLabel.string = Math.floor(this.count) + " 秒后自动关闭"; if (this.count <= 0) { DataSystem.getData(NoviceGuideData).skipBarracks = true; this.close(); } DataSystem.watch(NoviceGuideData, 'openBarracks') && this.close(); } public close(): void { this.node.active = false; DataSystem.getData(MissionData)._isResultWindowClose = true; } public setData(data: any): void { this.node.getComponent(Sound).play(); // GM.addBattleLog("结算窗口打开"); this.count = 10; if (this.progress && data) { DataSystem.getData(NoviceGuideData).openBattleResult = true; data && this.setListData(data); let progress = DataSystem.getData(UserData).prestige / DataSystem.getData(ConfigData)["barrack"][DataSystem.getData(UserData).campLv].cost; this.progress.progress = progress; this.completeNode.active = progress >= 1; } } //{"code":0,"data":{"isWin":true,"money":10000,"diamond":500,"bonus":0,"prestige":100,"chipData":{"111001":5}}} private setListData(data: any): void { this.list && this.list.removeAllChildren(); for (let k in data) { if (k != "chips" && k != "heros" && k != "level" && k != "autoMoney") { if (typeof (data[k]) == 'number' && data[k] != 0) { let node = instantiate(this.prefab); switch (k) { case "money": node.getComponent(ResultItem).setData("image/icons/icon4/spriteFrame", data[k] + "", false, 2, "粮草"); break; case "diamond": node.getComponent(ResultItem).setData("image/icons/icon7/spriteFrame", data[k] + "", false, 2, "元宝"); break; case "bonus": node.getComponent(ResultItem).setData("image/icons/icon2/spriteFrame", data[k] + "", false, 2, "红包币"); break; case "prestige": node.getComponent(ResultItem).setData("image/icons/icon8/spriteFrame", data[k] + "", false, 2, "威望石"); break; } node.setParent(this.list); } } } for (let i = 0; i < data["heros"].length; i++) { let node = instantiate(this.prefab); node.getComponent(ResultItem).setData("images/general/texture/head_img/" + DataSystem.getData(ConfigData)["general"][data["heros"][i]]["hero_res"] + "/spriteFrame", "1", false, DataSystem.getData(ConfigData)["general"][data["heros"][i]]["color"], DataSystem.getData(ConfigData)["general"][data["heros"][i]]["name"]); node.setParent(this.list); } for (let key in data["chips"]) { let node = instantiate(this.prefab); node.getComponent(ResultItem).setData("images/general/texture/head_img/" + DataSystem.getData(ConfigData)["general"][key]["hero_res"] + "/spriteFrame", data["chips"][key] + "", true, DataSystem.getData(ConfigData)["general"][key]["color"], DataSystem.getData(ConfigData)["general"][key]["name"] + "碎片"); node.setParent(this.list); } } }