223 lines
8.1 KiB
TypeScript
223 lines
8.1 KiB
TypeScript
import MyModel from "../core/MyModel";
|
|
import SKUIUtil from "../gear_2.3.4/util/SKUIUtil";
|
|
import FGUtil, { TipAlign } from "../gear_2.3.4/fgui/FGUtil";
|
|
import SKSocket from "../gear_2.3.4/net/SKSocket";
|
|
import GameModel from "../core/GameModel";
|
|
import MsgAlert from "../game/msg/MsgAlert";
|
|
import SKDataUtil from "../gear_2.3.4/util/SKDataUtil";
|
|
import ItemUtil from "../core/ItemUtil";
|
|
import GameUtil from "../core/GameUtil";
|
|
import SkillUtil from "../game/skill/core/SkillUtil";
|
|
import SkillBase, { ESkillQuality } from "../game/skill/core/SkillBase";
|
|
import FGAlert from "../gear_2.3.4/fgui/FGAlert";
|
|
import SKLogger from "../gear_2.3.4/util/SKLogger";
|
|
import { LongPressSpeedProp } from "../core/EEnum";
|
|
import SKAnimation from "../gear_2.3.4/gui/SKAnimation";
|
|
|
|
export default class StarInfo extends cc.Component {
|
|
static shared = new StarInfo();
|
|
main: fgui.GComponent;
|
|
curStarId: number = 1;
|
|
|
|
show(starid) {
|
|
this.curStarId = starid
|
|
this.loadUI();
|
|
}
|
|
|
|
hide() {
|
|
FGUtil.dispose(this.main);
|
|
this.unscheduleAllCallbacks()
|
|
this.main = null;
|
|
}
|
|
|
|
loadUI() {
|
|
FGUtil.dispose(this.main);
|
|
this.unscheduleAllCallbacks()
|
|
this.main = fgui.UIPackage.createObject("main_ui", "xingzheng_detail").asCom;
|
|
FGUtil.root().addChild(this.main);
|
|
FGUtil.fitScreen(this.main);
|
|
this.initUI();
|
|
this.initEvent();
|
|
}
|
|
|
|
|
|
initUI(){
|
|
this.main.getChild("close").onClick(this.hide, this)
|
|
this.showFreshThing()
|
|
|
|
let obj = FGUtil.getObject(this.main, "n41")
|
|
FGUtil.getControl(obj.asCom, "ctrl_selected").selectedIndex = 0
|
|
FGUtil.getControl(obj.asCom, "ctrl_state").selectedIndex = 1
|
|
FGUtil.getLoader(obj.asCom, "img_item").url = "ui://main_ui/9655"
|
|
|
|
|
|
let list = FGUtil.getList(this.main, "n49")
|
|
list.itemRenderer = this.initAttrItem.bind(this);
|
|
list.numItems = 8
|
|
list.on(fgui.Event.CLICK_ITEM, this.onClickItem, this)
|
|
list.selectedIndex = this.curStarId - 1
|
|
|
|
|
|
let item = list.getChildAt(this.curStarId - 1)
|
|
this.onClickItem(item)
|
|
}
|
|
|
|
initEvent(){
|
|
FGUtil.getButton(this.main, "n40").onClick(this.onClickChangeAttr, this)
|
|
FGUtil.getButton(this.main, "recast_btn").onClick(this.onClickGetNewStarAttr, this)
|
|
FGUtil.getObject(this.main, "n41").onClick(this.onClickHunTianShi, this)
|
|
}
|
|
|
|
onClickHunTianShi(){
|
|
var itemInfo = ItemUtil.getItemData(9655);
|
|
let info = SKDataUtil.clone(itemInfo)
|
|
info.undel = true
|
|
info.noopt = true
|
|
info.operateid = this.curStarId
|
|
|
|
cc.loader.loadRes("Prefabs/BagItemDetail", cc.Prefab, (err, prefab: any) => {
|
|
if (err) {
|
|
console.warn(err);
|
|
return
|
|
}
|
|
|
|
let detail = cc.instantiate(prefab);
|
|
detail.parent = this.main.node;
|
|
// detail.setPosition(this.bagPanel.width / 2, -this.bagPanel.height / 2)
|
|
detail.name = 'BagItemDetail';
|
|
detail.getComponent('BagItemDetail').loadInfo(info);
|
|
detail.getComponent('BagItemDetail').showOperation();
|
|
})
|
|
}
|
|
|
|
onClickChangeAttr(){
|
|
GameModel.send("c2s_replaceStarAttr", {starid: this.curStarId - 1});
|
|
}
|
|
|
|
onClickGetNewStarAttr(){
|
|
GameModel.send("c2s_getNewStarAttr", {starid: this.curStarId - 1});
|
|
}
|
|
|
|
initAttrItem(idx, item: fairygui.GObject){
|
|
FGUtil.getControl(item.asCom, "ctrl_name").selectedIndex = idx + 1
|
|
FGUtil.getControl(item.asCom, "isShow").selectedIndex = 0
|
|
if(MyModel.shared.StarData.getEquipID() == idx){
|
|
FGUtil.getControl(item.asCom, "isShow").selectedIndex = 1
|
|
}
|
|
|
|
FGUtil.getLoader(item.asCom, "n33/icon").url = `ui://main_ui/5000${idx + 1}`
|
|
|
|
let star = MyModel.shared.StarData.getStarByStarID(idx)
|
|
FGUtil.getTextField(item.asCom, "lv").text = `等級:${star.level}級`
|
|
}
|
|
|
|
onClickItem(item: fgui.GObject){
|
|
let list = FGUtil.getList(this.main, "n49")
|
|
this.curStarId = list.getChildIndex(item) + 1
|
|
|
|
let text = FGUtil.getTextField(item.asCom, "title").text
|
|
let url = FGUtil.getLoader(item.asCom, "n33/icon").url
|
|
FGUtil.getTextField(this.main, "label_itemBelong").text = `陣法-${text}`
|
|
FGUtil.getLoader(this.main, "comp_item/img_item").url = url
|
|
|
|
let icon = FGUtil.getObject(this.main, "comp_item")
|
|
FGUtil.getControl(icon.asCom, "ctrl_state").selectedIndex = 1
|
|
|
|
|
|
FGUtil.getControl(this.main, "ctr_hasAttrNew").selectedIndex = 1
|
|
|
|
this.UpdateEquipAttr()
|
|
this.UpdateNewAttr()
|
|
}
|
|
|
|
showFreshThing(){
|
|
let cnt = ItemUtil.getBagItemCount(9655)
|
|
let text = `[color=#FFFFFF]5/${cnt}[/color]`
|
|
if (cnt < 5){
|
|
text = `[color=#E72525]5[/color][color=#FFFFFF]/${cnt}[/color]`
|
|
}
|
|
FGUtil.getRichTextField(this.main, "n113").text = text
|
|
}
|
|
|
|
getDescrip(): string{
|
|
let star = MyModel.shared.StarData.getStarByStarID(this.curStarId - 1)
|
|
|
|
let power = (star.level * 0.3).toFixed(1)
|
|
if (this.curStarId == 5){
|
|
return `本方所有人物,召喚獸對敵方造成的普通攻擊傷害有${power}%加成。 `
|
|
}
|
|
if (this.curStarId == 6){
|
|
return `本方所有人物,召喚獸獲得${power}%經驗加成。 `
|
|
}
|
|
if (this.curStarId == 7){
|
|
return `本方所有人物,召喚獸的仙法,鬼火,震懾有${power}%加成。 `
|
|
}
|
|
if (this.curStarId == 8){
|
|
return `本方所有人物增加${power}%冰混睡忘抗性。 `
|
|
}
|
|
return ""
|
|
}
|
|
|
|
UpdateEquipAttr(){
|
|
FGUtil.getControl(this.main, "ctrl_hasAttr").selectedIndex = 1
|
|
FGUtil.getControl(this.main, "ctrl_attrNums").selectedIndex = 0
|
|
|
|
let star = MyModel.shared.StarData.getStarByStarID(this.curStarId - 1)
|
|
if (star.equipAttr && star.equipAttr.length > 0){
|
|
FGUtil.getControl(this.main, "ctrl_hasAttr").selectedIndex = 0
|
|
if (star.equipAttr.length < 5){
|
|
FGUtil.getControl(this.main, "ctrl_attrNums").selectedIndex = 1
|
|
FGUtil.getTextField(this.main, "label_desc2").text = this.getDescrip()
|
|
}
|
|
|
|
for (let index = 0; index < star.equipAttr.length; index++) {
|
|
let attr = star.equipAttr[index];
|
|
let item = FGUtil.getObject(this.main, `attr${index+1}`)
|
|
let name = GameUtil.getAttrTypeL1Name(attr.ID)
|
|
FGUtil.getTextField(item.asCom, "label_attrDesc1").text = name
|
|
FGUtil.getTextField(item.asCom, "label_attr1").text = "+" + (attr.Value / 10).toFixed(1) + "%"
|
|
}
|
|
}
|
|
}
|
|
|
|
UpdateNewAttr(){
|
|
FGUtil.getControl(this.main, "ctr_hasAttrNew").selectedIndex = 1
|
|
FGUtil.getControl(this.main, "ctrl_attrNumsnew").selectedIndex = 0
|
|
|
|
let star = MyModel.shared.StarData.getStarByStarID(this.curStarId - 1)
|
|
if (star.freshAttr && star.freshAttr.length > 0){
|
|
FGUtil.getControl(this.main, "ctr_hasAttrNew").selectedIndex = 0
|
|
if (star.freshAttr.length < 5){
|
|
FGUtil.getControl(this.main, "ctrl_attrNumsnew").selectedIndex = 1
|
|
FGUtil.getTextField(this.main, "label_desc3").text = this.getDescrip()
|
|
}
|
|
|
|
for (let index = 0; index < star.freshAttr.length; index++) {
|
|
let attr = star.freshAttr[index];
|
|
let item = FGUtil.getObject(this.main, `newattr${index+1}`)
|
|
let name = GameUtil.getAttrTypeL1Name(attr.ID)
|
|
FGUtil.getTextField(item.asCom, "label_attrDesc1").text = name
|
|
FGUtil.getTextField(item.asCom, "label_attr1").text = "+" + (attr.Value / 10).toFixed(1) + "%"
|
|
}
|
|
}
|
|
this.showFreshThing()
|
|
}
|
|
|
|
ReplaceStarAttr(starid: number) {
|
|
if(this.main == null ) return
|
|
if (this.curStarId != starid + 1){
|
|
return
|
|
}
|
|
|
|
this.UpdateEquipAttr()
|
|
this.UpdateNewAttr()
|
|
}
|
|
|
|
GetNewStarAttr(starid: number) {
|
|
if(this.main == null ) return
|
|
if (this.curStarId != starid + 1){
|
|
return
|
|
}
|
|
this.UpdateNewAttr()
|
|
}
|
|
} |