import AudioUtil from "../core/AudioUtil"; import FGUtil from "../gear_2.3.4/fgui/FGUtil"; import SKUIUtil from "../gear_2.3.4/util/SKUIUtil"; import GameModel from "../core/GameModel"; import SKDataUtil from "../gear_2.3.4/util/SKDataUtil"; const {ccclass, property} = cc._decorator; @ccclass export default class zhenFa extends cc.Component { /** * 信物面板單例實例 */ public static Instance: zhenFa = null; /** * 信物面板 */ zhenFa: fgui.GComponent = null; /** * 選擇索引 */ index: number = 0; /** * 增加等級 */ addLevel: number = 0; /** * 代理 */ delegte:any = null; /** * 需要加載的預製體 */ prefabObject: any = {}; onLoad() { if (zhenFa.Instance === null) { zhenFa.Instance = this; this.loadPrefab(); } else { this.destroy(); return; } } loadPrefab() { // 加載所需的預製體 var prefabList = [ // { url: "Prefabs/UIRole", name: "UIRole" }, ] this.prefabObject = {} for (let item of prefabList) { cc.loader.loadRes(item.url, cc.Prefab, (err, prefab) => { if (err) console.warn(err); else { this.prefabObject[item.name] = prefab; } }) } } setDelegte(delegte:any) { this.delegte = delegte } openZhenFa() { this.index = 0 this.addLevel = 1 if (!this.zhenFa || (this.zhenFa && !this.zhenFa.node && !SKUIUtil.isValid(this.zhenFa.node))) { this.zhenFa = FGUtil.create("main_ui", "bagua_upLv_panel"); FGUtil.root().addChild(this.zhenFa); FGUtil.fitScreen(this.zhenFa) } let btnClose = FGUtil.getComponent(this.zhenFa, "close") this.pushCloseEvent(btnClose, this.zhenFa, () => { AudioUtil.playCloseAudio() this.destroy() }); let ary = ['item1','n26','n27','n28','n29','n30','n31','n32'] const size = ary.length for (var i = 0;i < size;++i) { let control = FGUtil.getComponent(this.zhenFa,ary[i]) if (!!control) control.visible = false } FGUtil.getButton(this.zhenFa,"btn_add").onClick(() => { var data = this.delegte.info if(data[this.index].level + this.addLevel >= 100){ return } this.addLevel = this.addLevel + 1 // var count = this.getItemByID(2000030) // var level = Math.floor(count / 5) // if ((data[this.index].level + level) >= 100) // level = 100 - data[this.index].level // if ((this.addLevel + 1) <= level) { // this.addLevel = this.addLevel + 1 // } FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` }, this) FGUtil.getButton(this.zhenFa,"btn_sub").onClick(() => { if (1 <= (this.addLevel - 1)) { this.addLevel = this.addLevel - 1 } var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` }, this) FGUtil.getButton(this.zhenFa,"do").onClick(() => { var data = this.delegte.info let level = data[this.index].level + this.addLevel if(level >= 100){ level = 100 } GameModel.send('c2s_upLevelZhenFa', { roleid:GameModel.player.roleid, pos: this.index, level: level }) },this) FGUtil.getButton(this.zhenFa,"btn_type0").onClick(() => { this.index = 0 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type1").onClick(() => { this.index = 1 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type2").onClick(() => { this.index = 2 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type3").onClick(() => { this.index = 3 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type4").onClick(() => { this.index = 4 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type5").onClick(() => { this.index = 5 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type6").onClick(() => { this.index = 6 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) FGUtil.getButton(this.zhenFa,"btn_type7").onClick(() => { this.index = 7 var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` },this) var data = this.delegte.info FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` this.updateUI() } getItemByID(id) { var list = GameModel.player.itemList; for (var itemId in list) { if (id == parseInt(itemId)) { var count = SKDataUtil.valueForKey(GameModel.player.itemList, itemId); return count } } return 0 } updateUI() { var data = this.delegte.info if (!this.zhenFa) return const size = data.length for (var i = 0;i < size;++i) { var str = "btn_type" + i + "/label_lvl" FGUtil.getTextField(this.zhenFa,str).text = data[i].level + "級" } } pushCloseEvent(item: fairygui.GComponent, target: fairygui.GComponent, call: Function = null) { item.clearClick(); item.onClick(() => { call && call(); FGUtil.dispose(target); target = null; }, this) } clearInfo() { var data = this.delegte.info this.addLevel = 1 FGUtil.getTextField(this.zhenFa,'label_costItem').text = `${this.getItemByID(2000030)}/${this.addLevel * 5}` FGUtil.getTextField(this.zhenFa,'label_addLvl').text = `{v1=${data[this.index].level}}[color=#0BDC58]+{v2=${this.addLevel}}級[/color]` } }