2025-04-24 17:03:28 +08:00

231 lines
8.7 KiB
TypeScript

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]`
}
}