import { utils } from "../../common-plugin/Scripts/Utils"; import { cocosz } from "../Framework/CocosZ"; import { PanelName } from "../Framework/Constant"; import Msg from "../Framework/Msg"; import UIPage from "../Framework/UIPage"; import GameDate from "../Game/gameDate"; import Weapon from "../Game/weapon"; // @ts-ignore const i18n = require('LanguageData'); const { ccclass } = cc._decorator; @ccclass export default class UIWeaponLevelPanel extends UIPage { private _panel: cc.Node = null; weapon: cc.Sprite = null; weaponId: number = 0; isRange: boolean = true; constructor() { super(PanelName.UIWeaponLevelPanel); this.isValid() && this.onLoad(); } protected onLoad() { this._panel = this._page.getChildByName("Panel"); this.weapon = this._panel.getChildByName("weapon").getComponent(cc.Sprite); let btnNames: string[] = ["BtnPass", "BtnVideo"]; for (let i = 0; i < btnNames.length; i++) { let btn: cc.Node = cc.find(btnNames[i], this._panel); if (btn) { btn.on(cc.Node.EventType.TOUCH_END, this._onBtnClickedHandler, this); } } } protected onOpen() { utils.SendEvent("页面-武器升级"); // 暂停游戏逻辑 cocosz.pauseCount++; let weaponName = ""; let level = 0; let rangeLevel = cocosz.dataMgr.getGunInfo(cocosz.dataMgr.CurRange).Level; let meleeLevel = cocosz.dataMgr.getGunInfo(cocosz.dataMgr.CurMelee).Level; if (rangeLevel < 3) { // 显示远程 this.isRange = true; this.weaponId = cocosz.dataMgr.CurRange; weaponName = Weapon.WeaponName[this.weaponId]; level = rangeLevel; this.weapon.spriteFrame = cocosz.resMgr.getRes("w_" + weaponName, cc.SpriteFrame); } else if (meleeLevel < 3) { // 显示近程 this.isRange = false; this.weaponId = cocosz.dataMgr.CurMelee; weaponName = Weapon.WeaponName[this.weaponId] level = meleeLevel; this.weapon.spriteFrame = cocosz.resMgr.getRes("w_" + weaponName, cc.SpriteFrame); } else { // 直接关闭 cocosz.uiMgr.closePanel(PanelName.UIWeaponLevelPanel); return; } // 显示数据 let info = GameDate.Weapon[weaponName] let txt1 = cc.find("kuang/txt1", this._panel); if (txt1) { let richText = txt1.getComponent(cc.RichText); if (richText) { let curNum = info.atk[level]; let nextNum = info.atk[3]; let difNum = nextNum - curNum; richText.string = `${i18n.t("try.gjl") + ": " + curNum}${difNum > 0 ? (" +" + difNum) : ""}`; } } let txt2 = cc.find("kuang/txt2", this._panel); if (txt2) { let richText = txt2.getComponent(cc.RichText); if (richText) { let curNum = 1 / info.atkSpeed[level]; let nextNum = 1 / info.atkSpeed[3]; let difNum = nextNum - curNum; richText.string = `${i18n.t("try.gjpl") + ": " + curNum}${difNum > 0 ? (" +" + difNum) : ""}`; } } let txt3 = cc.find("kuang/txt3", this._panel); if (txt3) { let richText = txt3.getComponent(cc.RichText); if (richText) { let curNum = info.atkRange; richText.string = `${i18n.t("try.gjfw") + ": " + curNum}`; } } let txt4 = cc.find("kuang/txt4", this._panel); if (txt4) { let richText = txt4.getComponent(cc.RichText); if (richText) { let curNum = info.bulletTotal[level]; let nextNum = info.bulletTotal[3]; let difNum = nextNum - curNum; richText.string = `${i18n.t("try.dyl") + ": " + (this.isRange ? curNum : "♾")}${difNum > 0 ? (" +" + difNum) : ""}`; } } } protected onClose() { cocosz.gameMgr.gameStart(cocosz.curLevel); } /** * 所有按钮点击事件 * @param event * @param data */ private async _onBtnClickedHandler(event: cc.Event, data: any) { //播放按钮点击音效 await cocosz.audioMgr.playBtnEffect().catch(); switch (event.target.name) { case "BtnPass": { cocosz.uiMgr.closePanel(PanelName.UIWeaponLevelPanel); break; } case "BtnVideo": { utils.SendEvent("视频-弹窗武器升级-播放") cocosz.watchAD(() => { // 视频成功 utils.SendEvent("视频-弹窗武器升级-成功") let info = cocosz.dataMgr.getGunInfo(this.weaponId); info.Level = 3;// 升到最高级别 cocosz.dataMgr.setGunInfo(this.weaponId, info); Msg.Show(i18n.t("msg.sjcg"));//升级成功 cocosz.uiMgr.closePanel(PanelName.UIWeaponLevelPanel); }, () => { // 视频失败 utils.SendEvent("视频-弹窗武器升级-失败") cocosz.uiMgr.closePanel(PanelName.UIWeaponLevelPanel); }) break; } } } }