182 lines
6.0 KiB
TypeScript
182 lines
6.0 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";
|
|
import StarInfo from "./StarInfo";
|
|
|
|
export default class StarHome extends cc.Component {
|
|
static shared = new StarHome();
|
|
main: fgui.GComponent;
|
|
curStarId: number = 1;
|
|
levelInc: number = 1;
|
|
|
|
show() {
|
|
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", "xingzhen_main").asCom;
|
|
FGUtil.root().addChild(this.main);
|
|
FGUtil.fitScreen(this.main);
|
|
this.initUI();
|
|
this.initEvent();
|
|
}
|
|
|
|
|
|
initUI() {
|
|
this.main.getChild("n45").onClick(this.onClickStarInfo, this)
|
|
let equip = MyModel.shared.StarData.getEquipID()
|
|
for (let index = 1; index < 9; index++) {
|
|
let name = "icon" + index
|
|
let icon = FGUtil.getObject(this.main, name)
|
|
icon.asCom.getController("ctrl_name").selectedIndex = index
|
|
icon.asCom.getController("ctrl_attack").selectedIndex = 0
|
|
FGUtil.getLoader(icon.asCom, "icon/icon").url = `ui://main_ui/5000${index}`
|
|
FGUtil.getTextField(icon.asCom, "label_lvl").text = `${this.getLevelByStarId(index)}級`
|
|
FGUtil.getControl(icon.asCom, "ctrl_attack").selectedIndex = 0
|
|
if(equip == index - 1){
|
|
FGUtil.getControl(icon.asCom, "ctrl_attack").selectedIndex = 1
|
|
}
|
|
icon.onClick(this.onClickItem.bind(this, index))
|
|
}
|
|
|
|
//默認選中裝備的星陣, 未裝備則顯示第一個星陣
|
|
if (equip == -1){
|
|
equip = 1
|
|
}
|
|
this.onClickItem(equip)
|
|
|
|
FGUtil.getButton(this.main, "n47").onClick(this.onClickEquip, this)
|
|
}
|
|
|
|
initEvent() {
|
|
FGUtil.getObject(this.main, "n60/btn_add").onClick(this.onClickAdd, this)
|
|
FGUtil.getObject(this.main, "n60/btn_sub").onClick(this.onClickSub, this)
|
|
FGUtil.getObject(this.main, "n60/do").onClick(this.onClickUpgrade, this)
|
|
FGUtil.getObject(this.main, "close").onClick(this.hide, this)
|
|
}
|
|
|
|
|
|
getLevelByStarId(starid):number{
|
|
let star = MyModel.shared.StarData.getStarByStarID(starid-1)
|
|
return star.level
|
|
}
|
|
|
|
showAddLevel(lv: number, inc: number) {
|
|
let text = `[color=#FFFFFF]${lv}+[/color][color=#0BDC58]${inc}級[color]`
|
|
FGUtil.getTextField(this.main, "n60/label_addLvl").text = text
|
|
}
|
|
|
|
showNeedMoney(lv: number, inc: number){
|
|
let need = (2 * lv + inc - 1) * inc / 2 * 5
|
|
let cnt = ItemUtil.getBagItemCount(9654)
|
|
let text = `[color=#FFFFFF]${need}/${cnt}[/color]`
|
|
if (cnt < need){
|
|
text = `[color=#E72525]${need}[/color][color=#FFFFFF]/${cnt}[/color]`
|
|
}
|
|
FGUtil.getTextField(this.main, "n60/label_costItem").text = text
|
|
}
|
|
|
|
showAttr(lv: number){
|
|
let power = lv * 0.5
|
|
FGUtil.getTextField(this.main, "n60/n10").text = `五行加成之力${power}%`
|
|
}
|
|
|
|
onClickStarInfo() {
|
|
StarInfo.shared.show(this.curStarId)
|
|
}
|
|
|
|
onClickItem(starid) {
|
|
this.curStarId = starid
|
|
FGUtil.getControl(this.main, "ctrl_select").selectedIndex = starid
|
|
this.levelInc = 1
|
|
let lv = this.getLevelByStarId(this.curStarId)
|
|
this.showAddLevel(lv, this.levelInc)
|
|
this.showNeedMoney(lv, this.levelInc)
|
|
this.showAttr(lv)
|
|
}
|
|
|
|
onClickAdd() {
|
|
let lv = this.getLevelByStarId(this.curStarId)
|
|
this.levelInc++
|
|
if (this.levelInc + lv >= 100) {
|
|
this.levelInc = 100 - lv
|
|
}
|
|
if (this.levelInc <= 0) {
|
|
this.levelInc = 1
|
|
}
|
|
this.showAddLevel(lv, this.levelInc)
|
|
this.showNeedMoney(lv, this.levelInc)
|
|
}
|
|
|
|
onClickSub() {
|
|
let lv = this.getLevelByStarId(this.curStarId)
|
|
this.levelInc--
|
|
if (this.levelInc <= 0) {
|
|
this.levelInc = 1
|
|
}
|
|
this.showAddLevel(lv, this.levelInc)
|
|
this.showNeedMoney(lv, this.levelInc)
|
|
}
|
|
|
|
onClickUpgrade(){
|
|
let lv = this.getLevelByStarId(this.curStarId)
|
|
if (lv == 100){
|
|
return MsgAlert.addMsg("該陣法等級已滿級,請換個陣法升級吧!")
|
|
}
|
|
let msg = {
|
|
starid: this.curStarId - 1,
|
|
upgrade: this.levelInc
|
|
}
|
|
|
|
GameModel.send("c2s_upgradeStar", msg);
|
|
}
|
|
|
|
onClickEquip() {
|
|
GameModel.send("c2s_equipStar", {starid: this.curStarId - 1});
|
|
}
|
|
|
|
UpgradeStar(starid: number) {
|
|
if(this.main == null ) return
|
|
|
|
let name = `icon${starid + 1}`
|
|
let icon = FGUtil.getObject(this.main, name)
|
|
FGUtil.getTextField(icon.asCom, "label_lvl").text = `${this.getLevelByStarId(starid + 1)}級`
|
|
|
|
if (this.curStarId != starid + 1){
|
|
return
|
|
}
|
|
this.onClickItem(this.curStarId)
|
|
}
|
|
|
|
UpdateEquip(){
|
|
let equip = MyModel.shared.StarData.getEquipID()
|
|
for (let index = 1; index < 9; index++) {
|
|
let name = "icon" + index
|
|
let icon = FGUtil.getObject(this.main, name)
|
|
FGUtil.getControl(icon.asCom, "ctrl_attack").selectedIndex = 0
|
|
if (index == equip + 1) {
|
|
FGUtil.getControl(icon.asCom, "ctrl_attack").selectedIndex = 1
|
|
}
|
|
}
|
|
}
|
|
} |