231 lines
8.7 KiB
TypeScript
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]`
|
|
}
|
|
}
|