SamsaraGame/assets/Script/ts/FactionTalent.ts

1351 lines
52 KiB
TypeScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import SKUIUtil from "./gear_2.3.4/util/SKUIUtil";
import GameModel from "./core/GameModel";
import FGUtil from "./gear_2.3.4/fgui/FGUtil";
import SkillUtil from "./game/skill/core/SkillUtil";
import SKDataUtil from "./gear_2.3.4/util/SKDataUtil";
import MsgAlert from "./game/msg/MsgAlert";
import FactionTalentData from "./FactionTalentData";
import Bag from "./bag/Bag";
import AudioUtil from "./core/AudioUtil";
import Transformation from "./transformation/Transformation";
import ItemUtil from "./core/ItemUtil";
import FGAlert from "./gear_2.3.4/fgui/FGAlert";
const { ccclass, property } = cc._decorator;
@ccclass
export default class FactionTalent extends cc.Component {
/**
*
*/
public static Instance: FactionTalent = null;
factionTalentPanel: fgui.GComponent = null;
factionTalentLevelUpPanel: fgui.GComponent = null;
fcBagPanel: fgui.GComponent = null;
composePanel: fgui.GComponent = null;
identifyMorePanel: fgui.GComponent = null;
identifyPanel: fgui.GComponent = null;
factionTalentList: any = null;
factionTalentLevel: number = 0;
upLevelNeed: any = {};
selectFuIdx: number = 0;
identifyType: number = 0;
identifyRes: any = [];
identifyShowRes: any = [];
usePos: number = 0;
fcFuList: any = null;
unUsefcFuList: any = null;
canUseFuList: any = null;
stopTap: boolean = false;
moreUnComposeMode: boolean = false;
selectedObj: any = {};
prefabObject: any = {};
/**
* 1 2 3
*/
currentType: number = 1;
onLoad() {
if (FactionTalent.Instance === null) {
FactionTalent.Instance = this;
this.loadPrefab();
} else {
this.destroy();
return;
}
}
/**
*
*/
loadPrefab() {
// 加載所需的預製體
var prefabList = [
{ url: "Prefabs/SkillDetail", name: "SkillDetail" },
]
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;
}
})
}
}
openFactionTalentPanel() {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) {
this.factionTalentPanel = FGUtil.create("main_ui", "faction_talent_panel");
FGUtil.root().addChild(this.factionTalentPanel);
this.factionTalentPanel.makeFullScreen();
}
var mask = FGUtil.getComponent(this.factionTalentPanel, "mask");
var close = FGUtil.getButton(this.factionTalentPanel, "alert/close");
this.pushCloseEvent(mask, this.factionTalentPanel);
this.pushCloseEvent(close, this.factionTalentPanel);
FGUtil.getButton(this.factionTalentPanel, "alert/n34").onClick(this.switchLeft, this);
FGUtil.getButton(this.factionTalentPanel, "alert/n35").onClick(this.switchLeft, this);
FGUtil.getButton(this.factionTalentPanel, "alert/n36").onClick(this.switchRight, this);
FGUtil.getButton(this.factionTalentPanel, "alert/n37").onClick(this.switchRight, this);
FGUtil.getButton(this.factionTalentPanel, "alert/bottom/levelUpBtn").onClick(this.openLevelUpPanel, this);
var mainView = FGUtil.getComponent(this.factionTalentPanel, "alert/main");
FGUtil.getTextField(mainView, "floor1/floor").text = "第\n一\n層";
FGUtil.getTextField(mainView, "floor2/floor").text = "第\n二\n層";
FGUtil.getTextField(mainView, "floor3/floor").text = "第\n三\n層";
FGUtil.getTextField(mainView, "floor4/floor").text = "第\n四\n層";
FGUtil.getTextField(mainView, "floor5/floor").text = "第\n五\n層";
FGUtil.getComponent(mainView, "useMask").onClick(this.hideUseView, this)
FGUtil.getComponent(mainView, "commonItem").onClick(this.useCommonFu, this)
var useList = FGUtil.getList(mainView, "useView/list");
useList.itemRenderer = this.initUseFuItem.bind(this);
// 虛擬列表
useList.setVirtual();
GameModel.send("c2s_ofuda_list", {
roleid: GameModel.player.roleid
})
}
useCommonFu() {
var list1 = this.getCanUseFu(this.currentType, 1)
var list2 = this.getCanUseFu(this.currentType, 2)
var list3 = this.getCanUseFu(this.currentType, 3)
var list4 = this.getCanUseFu(this.currentType, 4)
var list5 = this.getCanUseFu(this.currentType, 5)
var list = list1.concat(list2)
list = list.concat(list3)
list = list.concat(list4)
list = list.concat(list5)
this.canUseFuList = list;
this.usePos = 3;
FGUtil.getRichTextField(this.factionTalentPanel, "alert/main/useView/title").text = `可裝備[color=#E86425]任意層[/color]天策符`
FGUtil.getControl(this.factionTalentPanel, "alert/main/use").selectedIndex = 1;
var useList = FGUtil.getList(this.factionTalentPanel, "alert/main/useView/list");
useList.numItems = this.canUseFuList.length
}
initUseFuItem(idx, obj: fairygui.GObject) {
var item = obj.asCom;
var info = this.canUseFuList[idx];
FGUtil.getRichTextField(item, "title").text = `${info.name}[color=#00CC00](+${info.addition})[/color]`;
var skill = SkillUtil.getSkill(info.skillid)
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${skill.icon}`
item.node["ofudaid"] = info.ofudaid;
item.onClick(this.useFuById, this)
}
useFuById(e: Event) {
if (!SKDataUtil.hasProperty(e.target, "ofudaid")) return
GameModel.send("c2s_use_ofuda", {
roleid: GameModel.player.roleid,
usestate: this.usePos, // 正在使用的天策符 沒有 為0
ofudaid: e.target["ofudaid"]
})
this.hideUseView()
}
initWithType(type: number = 1, refreshUse: boolean = false) {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
var iconPathArr = ["qianjun", "zaiwu", "yushou"];
// 圖標初始化
if (type == 1) {
FGUtil.getLoader(this.factionTalentPanel, "alert/main/title").url = `ui://main_ui/title_tianfu_${iconPathArr[0]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n35/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[2]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n36/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[1]}`
}
else if (type == 2) {
FGUtil.getLoader(this.factionTalentPanel, "alert/main/title").url = `ui://main_ui/title_tianfu_${iconPathArr[1]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n35/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[0]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n36/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[2]}`
}
else if (type == 3) {
FGUtil.getLoader(this.factionTalentPanel, "alert/main/title").url = `ui://main_ui/title_tianfu_${iconPathArr[2]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n35/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[1]}`
FGUtil.getLoader(this.factionTalentPanel, "alert/n36/icon").url = `ui://main_ui/icon_tianfu_${iconPathArr[0]}`
}
var tempList = [];
for (let i in this.factionTalentList) {
if (this.factionTalentList[i].oftype == type)
tempList.push(this.factionTalentList[i]);
}
var mainView = FGUtil.getComponent(this.factionTalentPanel, "alert/main");
FGUtil.getTextField(this.factionTalentPanel, "alert/bottom/addEff").text = `${(this.factionTalentLevel / 5).toFixed(1)}%`;
FGUtil.getTextField(this.factionTalentPanel, "alert/bottom/level").text = this.factionTalentLevel.toString();
var floorArr = [
null,
FGUtil.getComponent(mainView, "floor1"),
FGUtil.getComponent(mainView, "floor2"),
FGUtil.getComponent(mainView, "floor3"),
FGUtil.getComponent(mainView, "floor4"),
FGUtil.getComponent(mainView, "floor5")
]
// 隱藏第五層的最後一個項目
FGUtil.getControl(floorArr[5], "floor5").selectedIndex = 1;
for (let n = 1; n < 6; n++) {
// 清空技能列表
FGUtil.getList(floorArr[n], "list").removeChildrenToPool();
// 開啟及使用狀態
var openLevel = FactionTalentData.openLevel[type - 1];
for (let m = 0; m < openLevel[n - 1].length; m++) {
var item = FGUtil.getComponent(floorArr[n], `item${m + 1}`);
item.node["type"] = type - 1;
item.node["floor"] = n - 1;
item.node["idx"] = m + 1;
item.onClick(this.addFu, this);
if (this.factionTalentLevel < openLevel[n - 1][m]) {
// 未開啟
FGUtil.getControl(item, `use`).selectedIndex = 0;
FGUtil.getControl(item, `open`).selectedIndex = 0;
item.asButton.title = `${openLevel[n - 1][m]}\n開啟`;
item.clearClick();
}
else if (this.factionTalentLevel >= openLevel[n - 1][m]) {
// 開啟未使用
FGUtil.getControl(item, `open`).selectedIndex = 1;
FGUtil.getControl(item, `use`).selectedIndex = 0;
item.asButton.title = `${openLevel[n - 1][m]}\n新開啟`
}
}
}
// 添加技能
var floor;
var list: fairygui.GList;
for (let i in tempList) {
// 跳過未定義
// if (tempList[i].skillid == 10088 || tempList[i].skillid == 10166) continue
floor = floorArr[tempList[i].tier];
list = FGUtil.getList(floor, "list")
var item = list.addItemFromPool().asCom;
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${SkillUtil.getSkill(tempList[i].skillid).icon}`;
// FGUtil.getControl(item, "active").selectedIndex = 0;
item.node["skillId"] = tempList[i].skillid;
item.clearClick();
item.onClick(this.showInfo, this);
}
if (!this.fcFuList) {
//沒有數據則請求
GameModel.send("c2s_own_ofuda", {
roleid: GameModel.player.roleid
})
}
else if (refreshUse) {
this.initUsedFu()
}
}
initUsedFu() {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
var mainView = FGUtil.getComponent(this.factionTalentPanel, "alert/main");
var floorArr = [
null,
FGUtil.getComponent(mainView, "floor1"),
FGUtil.getComponent(mainView, "floor2"),
FGUtil.getComponent(mainView, "floor3"),
FGUtil.getComponent(mainView, "floor4"),
FGUtil.getComponent(mainView, "floor5")
]
var activeList = {};
for (let n = 1; n < 6; n++) {
// 開啟及使用狀態
var openLevel = FactionTalentData.openLevel[this.currentType - 1];
for (let m = 0; m < openLevel[n - 1].length; m++) {
if (this.factionTalentLevel >= openLevel[n - 1][m]) {
// 開啟
var useIdx = this.getUsedFu(this.currentType, n, m + 1)
if (useIdx >= 0) {
var item = FGUtil.getComponent(floorArr[n], `item${m + 1}`);
FGUtil.getControl(item, `open`).selectedIndex = 1;
FGUtil.getControl(item, `use`).selectedIndex = 1;
var useInfo = this.fcFuList[useIdx]
var skill = SkillUtil.getSkill(useInfo.skillid)
FGUtil.getLoader(item, `icon`).url = `ui://main_ui/${skill.icon}`;
var floor = floorArr[n];
var list = FGUtil.getList(floor, "list")
for (let j = 0; j < list.numChildren; j++) {
var baseSkillId = list.getChildAt(j).node["skillId"];
if (useInfo.skillid == baseSkillId || useInfo.skillid == baseSkillId + 1 || useInfo.skillid == baseSkillId + 2) {
if (!activeList[`${n}`])
activeList[`${n}`] = {}
activeList[`${n}`][`${j}`] = true;
// FGUtil.getControl(list.getChildAt(j).asCom, "active").selectedIndex = 1;
FGUtil.getTextField(list.getChildAt(j).asCom, "level").text = "+" + useInfo.addition
}
}
}
}
}
}
// 通用符
var useCommonIdx = this.getCommonUsedFu(this.currentType);
var commonFuSkillId = 0;
if (useCommonIdx >= 0) {
var item = FGUtil.getComponent(mainView, "commonItem");
var useCommonInfo = this.fcFuList[useCommonIdx]
var skill = SkillUtil.getSkill(useCommonInfo.skillid)
commonFuSkillId = useCommonInfo.skillid;
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${skill.icon}`
FGUtil.getControl(item, `use`).selectedIndex = 1;
for (let n = 1; n < 6; n++) {
var floor = floorArr[n];
var list = FGUtil.getList(floor, "list")
for (let j = 0; j < list.numChildren; j++) {
var baseSkillId = list.getChildAt(j).node["skillId"];
if (commonFuSkillId == baseSkillId || commonFuSkillId == baseSkillId + 1 || commonFuSkillId == baseSkillId + 2) {
// FGUtil.getControl(list.getChildAt(j).asCom, "active").selectedIndex = 1;
if (!activeList[`${n}`])
activeList[`${n}`] = {}
activeList[`${n}`][`${j}`] = true;
FGUtil.getTextField(list.getChildAt(j).asCom, "level").text = "+" + useCommonInfo.addition;
break;
}
}
}
} else {
var item = FGUtil.getComponent(mainView, "commonItem");
FGUtil.getControl(item, `use`).selectedIndex = 0;
}
for (let n = 1; n < 6; n++) {
var floor = floorArr[n];
var list = FGUtil.getList(floor, "list")
for (let j = 0; j < list.numChildren; j++) {
if (activeList[`${n}`]) {
if (activeList[`${n}`][`${j}`]) {
FGUtil.getControl(list.getChildAt(j).asCom, "active").selectedIndex = 1;
} else {
FGUtil.getControl(list.getChildAt(j).asCom, "active").selectedIndex = 0;
}
}
else {
FGUtil.getControl(list.getChildAt(j).asCom, "active").selectedIndex = 0;
}
}
}
}
addFu(e: Event) {
if (!e) return
if (!SKDataUtil.hasProperty(e.target, "type")) return;
if (!SKDataUtil.hasProperty(e.target, "floor")) return;
if (!SKDataUtil.hasProperty(e.target, "idx")) return;
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
var type = e.target["type"];
var floor = e.target["floor"];
var idx = e.target["idx"];
this.usePos = idx
var list = this.getCanUseFu(type + 1, floor + 1)
this.canUseFuList = list;
var floorWord = ["一", "二", "三", "四", "五"]
FGUtil.getRichTextField(this.factionTalentPanel, "alert/main/useView/title").text = `可裝備[color=#E86425]第${floorWord[floor]}層[/color]天策符`
FGUtil.getControl(this.factionTalentPanel, "alert/main/use").selectedIndex = 1;
var useList = FGUtil.getList(this.factionTalentPanel, "alert/main/useView/list");
useList.numItems = this.canUseFuList.length
}
hideUseView() {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
FGUtil.getControl(this.factionTalentPanel, "alert/main/use").selectedIndex = 0;
}
getCanUseFu(type, floor) {
var list = [];
for (let i = 0; i < this.fcFuList.length; i++) {
if (this.fcFuList[i].oftype == type) {
if (this.fcFuList[i].tier == floor) {
if (this.fcFuList[i].usestate == 0)
list.push(this.fcFuList[i])
}
}
}
list.sort((a, b) => {
return b.addition - a.addition;
})
return list;
}
getUsedFu(type, floor, idx): number {
for (let i = 0; i < this.fcFuList.length; i++) {
if (this.fcFuList[i].oftype == type) {
if (this.fcFuList[i].tier == floor) {
if (this.fcFuList[i].usestate == idx)
return i;
}
}
}
return -1;
}
getIsUsed(skill): any {
for (let i = 0; i < this.fcFuList.length; i++) {
if (this.fcFuList[i].skillid >= skill && this.fcFuList[i].skillid <= skill + 3 && this.fcFuList[i].usestate != 0) {
return this.fcFuList[i];
}
}
return null;
}
getCommonUsedFu(type): number {
for (let i = 0; i < this.fcFuList.length; i++) {
if (this.fcFuList[i].oftype == type)
if (this.fcFuList[i].usestate == 3)
return i;
}
return -1;
}
switchRight() {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
var item = FGUtil.getComponent(this.factionTalentPanel, "alert");
if (!item) return;
var right: fgui.Transition = item.getTransition("right");
right.play();
this.currentType++;
if (this.currentType == 4) this.currentType = 1;
this.initWithType(this.currentType, true);
}
switchLeft() {
if (!SKUIUtil.isFGUIValid(this.factionTalentPanel)) return;
var item = FGUtil.getComponent(this.factionTalentPanel, "alert");
if (!item) return;
var left: fgui.Transition = item.getTransition("left");
left.play();
this.currentType--;
if (this.currentType == 0) this.currentType = 3;
this.initWithType(this.currentType, true);
}
openLevelUpPanel() {
if (GameModel.player.bangid == 0) {
MsgAlert.addMsg("請先加入幫派");
return
}
if (!SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) {
this.factionTalentLevelUpPanel = FGUtil.create("main_ui", "faction_talent_up_panel");
FGUtil.root().addChild(this.factionTalentLevelUpPanel);
this.factionTalentLevelUpPanel.makeFullScreen();
}
var mask = FGUtil.getComponent(this.factionTalentLevelUpPanel, "mask");
var close = FGUtil.getButton(this.factionTalentLevelUpPanel, "alert/close");
this.pushCloseEvent(mask, this.factionTalentLevelUpPanel);
this.pushCloseEvent(close, this.factionTalentLevelUpPanel);
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/n58/title").fontSize = 20;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/n58/title").text = `Lv.${this.factionTalentLevel}/Lv.150`;
FGUtil.getButton(this.factionTalentLevelUpPanel, "alert/n40").onClick(this.upFactionTalentLevel, this);
FGUtil.getButton(this.factionTalentLevelUpPanel, "alert/add").onClick(this.addSliderValueLevelUp, this);
FGUtil.getButton(this.factionTalentLevelUpPanel, "alert/reduce").onClick(this.reduceSliderValueLevelUp, this);
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
if (this.factionTalentLevel >= 150)
FGUtil.getControl(this.factionTalentLevelUpPanel, "alert/max").selectedIndex = 1
else
FGUtil.getControl(this.factionTalentLevelUpPanel, "alert/max").selectedIndex = 0
// 設置滑動條的最大值和默認值
slider.max = 150 - this.factionTalentLevel;
if (slider.max >= 1)
slider.value = 1;
else
slider.value = 0;
slider.on(fgui.Event.STATUS_CHANGED, this.onSliderChangedLevelUp, this);
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `1`;
// 等級進度條
var levelBar = FGUtil.getProgressBar(this.factionTalentLevelUpPanel, "alert/n58");
levelBar.max = 150;
levelBar.value = this.factionTalentLevel;
GameModel.send("c2s_open_levelup", {
roleid: GameModel.player.roleid
})
// 恢復可以發送請求
this.stopTap = false
}
recoverOnce() {
if (!SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) return;
if (this.factionTalentLevel < 150) {
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `1次`;
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
slider.max = 150 - this.factionTalentLevel
slider.value = 1
FGUtil.getControl(this.factionTalentLevelUpPanel, "alert/max").selectedIndex = 0
} else {
FGUtil.getControl(this.factionTalentLevelUpPanel, "alert/max").selectedIndex = 1
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `0次`;
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
slider.max = 150 - this.factionTalentLevel
slider.value = 0
}
}
refreshLevelUpPanel() {
if (!SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) return;
var levelBar = FGUtil.getProgressBar(this.factionTalentLevelUpPanel, "alert/n58");
levelBar.value = this.factionTalentLevel;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/n58/title").text = `Lv.${this.factionTalentLevel}/Lv.150`;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/yy").text = `${GameModel.player.gameData.bangscore}`;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/yyxy").text = `${GameModel.player.gameData.jade}`;
var need = this.getNeedMoney();
this.upLevelNeed = need;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/xh").text = `${need.silver}`;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/xhxy").text = `${need.jade}`;
this.stopTap = false
}
getNeedMoney() {
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
var max = slider.value + this.factionTalentLevel;
var jade = 0, silver = 0;
for (let i = this.factionTalentLevel; i < max; i++) {
jade += 1000 + i * 1888 + 2357;
silver += 888 + i * 1688 + 123;
}
return { jade: jade, silver: silver };
}
/**
*
*/
onSliderChangedLevelUp(e) {
var value = e._value;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `${value}`;
this.refreshLevelUpPanel();
}
/**
*
*/
reduceSliderValueLevelUp() {
if (SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) {
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
if (slider.value > 0) {
slider.value--;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `${slider.value}`;
this.refreshLevelUpPanel();
}
}
}
/**
*
*/
addSliderValueLevelUp() {
if (SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) {
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
if (slider.value < slider.max) {
slider.value++;
FGUtil.getTextField(this.factionTalentLevelUpPanel, "alert/num").text = `${slider.value}`;
this.refreshLevelUpPanel();
}
}
}
upFactionTalentLevel() {
if (this.factionTalentLevel >= 150) {
MsgAlert.addMsg("已經升到滿級");
return;
}
if (!SKUIUtil.isFGUIValid(this.factionTalentLevelUpPanel)) return
var slider = FGUtil.getComponent(this.factionTalentLevelUpPanel, "alert/slider").asSlider;
if (slider.value <= 0) {
MsgAlert.addMsg("請提升大於0的次數");
return;
}
if (!this.upLevelNeed.silver || !this.upLevelNeed.jade) {
MsgAlert.addMsg("數據錯誤");
return
}
if (this.stopTap) {
MsgAlert.addMsg("您點擊太快了");
return;
}
this.stopTap = true;
GameModel.send("c2s_ofuda_levelup", {
roleid: GameModel.player.roleid,
jade: this.upLevelNeed.jade,
score: this.upLevelNeed.silver,
level: slider.value
})
this.upLevelNeed.silver = 0;
this.upLevelNeed.jade = 0;
this.scheduleOnce(() => {
this.stopTap = false
}, 0.3);
}
/**
*
*/
openFcBagPanel() {
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) {
this.fcBagPanel = FGUtil.create("main_ui", "faction_talent_bag_panel");
FGUtil.root().addChild(this.fcBagPanel);
this.fcBagPanel.makeFullScreen();
FGUtil.getControl(this.fcBagPanel, "alert/page").selectedIndex = 2;
}
var mask = FGUtil.getComponent(this.fcBagPanel, "mask");
var close = FGUtil.getButton(this.fcBagPanel, "alert/close");
this.pushCloseEvent(mask, this.fcBagPanel, () => { Transformation.Instance.closeTransPanel(); Bag.Instance.closeBagPanel(); });
this.pushCloseEvent(close, this.fcBagPanel, () => { Transformation.Instance.closeTransPanel(); Bag.Instance.closeBagPanel(); });
// 變身卡按鈕
FGUtil.getButton(this.fcBagPanel, "alert/n56").onClick(this.openTransCardPanel, this);
// 背包按鈕
FGUtil.getButton(this.fcBagPanel, "alert/n57").onClick(this.openBagPanel, this);
// 先都不顯示
FGUtil.getControl(this.fcBagPanel, "alert/noCard").selectedIndex = 2;
// 打開天演策
FGUtil.getButton(this.fcBagPanel, "alert/tianyan").onClick(this.openFactionPanleByBag, this);
// 打開合成
FGUtil.getButton(this.fcBagPanel, "alert/compose").onClick(this.openComposePanel, this);
// 鑑定
FGUtil.getButton(this.fcBagPanel, "alert/jianding").onClick(this.doIdentifyOnce, this);
// 批量鑑定
FGUtil.getButton(this.fcBagPanel, "alert/jiandingMore").onClick(this.openIdentifyMorePanel, this);
// 分解
FGUtil.getButton(this.fcBagPanel, "alert/decompose").onClick(this.decomposeFu, this);
// 開啟批量分解
FGUtil.getButton(this.fcBagPanel, "alert/decomposeMore").onClick(this.openDecomposeFuMore, this);
// 關閉批量分解
FGUtil.getButton(this.fcBagPanel, "alert/closeMoreMode").onClick(this.closeDecomposeFuMore, this);
// 執行批量分解
FGUtil.getButton(this.fcBagPanel, "alert/doMoreDecompose").onClick(this.decomposeFuMore, this);
// 使用
FGUtil.getButton(this.fcBagPanel, "alert/useBtn").onClick(this.useFu, this);
// // 卸下
// FGUtil.getButton(this.fcBagPanel, "alert/useBtn").onClick(this.unUseFu, this);
// 顯示排序
FGUtil.getComponent(this.fcBagPanel, "alert/sort_switch_btn").onClick(this.showSortView, this);
GameModel.send("c2s_own_ofuda", {
roleid: GameModel.player.roleid
})
// 設置物品列表初始化方法
var FuList = FGUtil.getList(this.fcBagPanel, "alert/fu_list");
FuList.itemRenderer = this.initFuItem.bind(this);
// 虛擬列表
FuList.setVirtual();
}
/**
* 使
*/
useFu() {
if (this.unUsefcFuList.length <= 0) return;
if (this.selectFuIdx < 0 || this.selectFuIdx >= this.unUsefcFuList.length) return;
var info = this.unUsefcFuList[this.selectFuIdx];
var typeInfo = FactionTalentData.openLevel[info.oftype - 1]
if (typeInfo && info.tier != null) {
var level = typeInfo[info.tier - 1][0];
if (level >= this.factionTalentLevel) {
MsgAlert.addMsg("天演策等級不夠")
return;
}
} else {
MsgAlert.addMsg("天演符信息錯誤")
return;
}
GameModel.send("c2s_use_ofuda", {
roleid: GameModel.player.roleid,
usestate: 1, // 正在使用的天策符 沒有 為0
ofudaid: this.unUsefcFuList[this.selectFuIdx].ofudaid
})
}
unUseFu() {
if (this.unUsefcFuList.length <= 0) return;
if (this.selectFuIdx < 0 || this.selectFuIdx >= this.unUsefcFuList.length) return;
GameModel.send("c2s_use_ofuda", {
roleid: GameModel.player.roleid,
usestate: 1, // 正在使用的天策符 沒有 為0
ofudaid: 0
})
}
decomposeFu() {
if (this.unUsefcFuList.length <= 0) return;
if (this.selectFuIdx < 0 || this.selectFuIdx >= this.unUsefcFuList.length) return;
FGAlert.show("確定分解該天策符麼?", () => {
FGAlert.hide();
}, () => {
GameModel.send("c2s_resolve_ofuda", {
roleid: GameModel.player.roleid,
ofudaid: this.unUsefcFuList[this.selectFuIdx].ofudaid
})
FGAlert.hide();
})
}
openDecomposeFuMore() {
if (this.unUsefcFuList.length <= 0) return;
this.moreUnComposeMode = true;
this.selectedObj = {};
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) return;
FGUtil.getList(this.fcBagPanel, "alert/fu_list").refreshVirtualList();
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 4;
}
closeDecomposeFuMore() {
if (this.unUsefcFuList.length <= 0) return;
this.moreUnComposeMode = false;
this.selectedObj = {};
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) return;
FGUtil.getList(this.fcBagPanel, "alert/fu_list").refreshVirtualList();
this.clickFuItem(null, 0)
}
decomposeFuMore() {
if (Object.keys(this.selectedObj).length <= 0) {
MsgAlert.addMsg("請選擇需要分解的天策符");
return;
}
FGAlert.show("確定分解這些天策符麼?", () => {
FGAlert.hide();
}, () => {
var list = []
for (let key in this.selectedObj) {
list.push(this.selectedObj[key].ofudaid)
}
GameModel.send("c2s_batchResolve_ofuda", {
roleid: GameModel.player.roleid,
ofudalist: JSON.stringify(list)
})
FGAlert.hide();
this.closeDecomposeFuMore()
})
}
/**
*
*/
showSortView() {
if (this.fcBagPanel && this.fcBagPanel.node) {
var view = FGUtil.getComponent(this.fcBagPanel, "alert/sort");
var mask = FGUtil.getComponent(view, "mask");
mask.onClick(this.hideSortView, this);
var list = FGUtil.getList(view, "sort_list");
for (let i = 0; i < list.numChildren; i++) {
list.getChildAt(i).data = i;
}
list.on(fgui.Event.CLICK_ITEM, this.onClickTypeItem, this);
FGUtil.getControl(this.fcBagPanel, "alert/showSortView").selectedIndex = 1;
}
}
/**
*
*/
hideSortView() {
if (this.fcBagPanel && this.fcBagPanel.node) {
FGUtil.getControl(this.fcBagPanel, "alert/showSortView").selectedIndex = 0;
}
}
/**
*
*/
onClickTypeItem(item: fgui.GObject) {
var list = FGUtil.getList(this.fcBagPanel, "alert/sort/sort_list");
for (let i = 0; i < 4; i++) {
list.getChildAt(i).asCom.getController("selected").selectedIndex = i == item.data ? 1 : 0;
}
this.sortFu(item.data);
this.hideSortView();
}
/**
*
*/
openComposePanel() {
this.closeFCBagPanel();
Transformation.Instance.closeTransPanel();
Bag.Instance.closeBagPanel();
this.openComposeFcFuPanel(ItemUtil.getBagItemCount(100320), true);
}
/**
*
*/
openFactionPanleByBag() {
if (GameModel.player.bangid == 0) {
MsgAlert.addMsg("請先加入幫派");
return
}
this.closeFCBagPanel();
Transformation.Instance.closeTransPanel();
Bag.Instance.closeBagPanel();
this.openFactionTalentPanel();
}
/**
*
*/
initFuItem(idx, obj: fairygui.GObject) {
var item = obj.asCom;
var info = this.unUsefcFuList[idx];
var iconArr = [
["1003200", "100321", "100322", "100323"],
["", "100324", "100325", "100326"],
["", "100327", "100328", "100329"],
["", "100331", "100332", "100333"],
]
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${iconArr[info.oftype][info.grade]}`;
FGUtil.getTextField(item, "name").text = info.name;
item.node["idx"] = idx;
var check = FGUtil.getButton(item, "check");
check.node["idx"] = idx;
check.onClick(this.clickFuCheck, this)
// 是否選中
FGUtil.getControl(item, "selected").selectedIndex = this.selectFuIdx == idx ? 1 : 0;
if (this.moreUnComposeMode && info.oftype > 0) {
// 是否批量模式
FGUtil.getControl(item, "checkMode").selectedIndex = 1;
// 是否批量模式并选中
if (this.selectedObj[`${idx}`]) {
FGUtil.getControl(item, "check/selected").selectedIndex = 1;
}
else
FGUtil.getControl(item, "check/selected").selectedIndex = 0;
} else {
FGUtil.getControl(item, "checkMode").selectedIndex = 0;
}
if (info.oftype == 0) {
// 天策符碎片和未鑑定
if (SKDataUtil.hasProperty(info, "number") && info.number > 0) {
FGUtil.getTextField(item, "num").text = info.number;
}
} else {
// 天策符
FGUtil.getTextField(item, "num").text = `+${info.addition}`;
}
item.onClick(this.clickFuItem, this);
}
clickFuCheck(e: Event, idx: number = 0) {
e.stopPropagation()
var id = idx;
if (e && e.target && SKDataUtil.hasProperty(e.target, "idx"))
id = e.target["idx"];
var info = this.unUsefcFuList[id];
if (this.moreUnComposeMode) {
// 多選模式
if (this.selectedObj[`${id}`]) {
delete this.selectedObj[`${id}`]
} else {
if (Object.keys(this.selectedObj).length >= 10) {
MsgAlert.addMsg("最多可以選擇10個")
return;
}
this.selectedObj[`${id}`] = info;
}
FGUtil.getList(this.fcBagPanel, "alert/fu_list").refreshVirtualList();
}
}
/**
*
* @param e
* @param idx
*/
clickFuItem(e: Event, idx: number = 0) {
var id = idx;
if (e && e.target && SKDataUtil.hasProperty(e.target, "idx"))
id = e.target["idx"];
this.selectFuIdx = id;
var info = this.unUsefcFuList[id];
var infoBox = FGUtil.getComponent(this.fcBagPanel, "alert/info");
FGUtil.getTextField(infoBox, "name").text = info.name;
var iconArr = [
["1003200", "100321", "100322", "100323"],
["", "100324", "100325", "100326"],
["", "100327", "100328", "100329"],
["", "100331", "100332", "100333"],
]
var colorArr = ["", "#60d566", "#5fd5d6", "#b94bd1"]
// 天策符碎片和未鑑定的符
if (info.oftype == 0) {
FGUtil.getTextField(infoBox, "type").text = "物品";
FGUtil.getLoader(infoBox, "icon").url = `ui://main_ui/${iconArr[info.oftype][info.grade]}`;
FGUtil.getRichTextField(infoBox, "des/skillDes").text = "";
FGUtil.getLoader(infoBox, "des/skillIcon").texture = null;
var itemData = ItemUtil.getItemData(info.itemid);
FGUtil.getRichTextField(infoBox, "des/fuDes").text = `${itemData.description}\n[color=#00CC00]數量*${info.number}[/color]`;
}
else {
var typeWordArr = ["", "千鈞符", "載物符", "禦獸符"];
var gradeWordArr = ["", "把玩", "珍藏", "無價"];
FGUtil.getTextField(infoBox, "type").text = "天策符";
FGUtil.getLoader(infoBox, "icon").url = `ui://main_ui/${iconArr[info.oftype][info.grade]}`;
FGUtil.getRichTextField(infoBox, "des/fuDes").text = `描述\n【類型】${typeWordArr[info.oftype]}\n【品階】[color=${colorArr[info.grade]}]${gradeWordArr[info.grade]}[/color]\n【技能】`;
var skillData = SkillUtil.getSkill(info.skillid);
if (skillData) {
FGUtil.getLoader(infoBox, "des/skillIcon").url = `ui://main_ui/${skillData.icon}`;
FGUtil.getRichTextField(infoBox, "des/skillDes").text = `[color=#00CC00]${skillData.name}(+${info.addition})[/color]${skillData.effectDesc}`;
}
}
// 操作
if (this.moreUnComposeMode) {
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 4;
} else {
if (info.oftype == 0) {
if (info.grade == 0) {
// 碎片
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 1;
} else
// 未鑑定
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 2;
} else {
// 天策符
if (info.usestate == 0)
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 0;
else if (info.usestate == 1)
FGUtil.getControl(this.fcBagPanel, "alert/type").selectedIndex = 3;
}
}
FGUtil.getList(this.fcBagPanel, "alert/fu_list").refreshVirtualList();
}
/**
*
* @returns
*/
refreshFcBagPanel() {
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) return;
this.unUsefcFuList = [];
for (let i in this.fcFuList) {
if (this.fcFuList[i].usestate == 0 || this.fcFuList[i].oftype == 0)
this.unUsefcFuList.push(this.fcFuList[i])
}
if (this.unUsefcFuList.length == 0) {
FGUtil.getControl(this.fcBagPanel, "alert/noCard").selectedIndex = 1;
return;
}
this.sortFu()
FGUtil.getControl(this.fcBagPanel, "alert/noCard").selectedIndex = 0;
FGUtil.getList(this.fcBagPanel, "alert/fu_list").numItems = this.unUsefcFuList.length;
this.clickFuItem(null, 0)
}
sortFu(type: number = 0) {
this.unUsefcFuList.sort((a, b) => {
if (a.oftype == 0 && b.oftype == 0) return 0;
if (a.oftype == 0 && b.oftype != 0) return -1;
if (a.oftype != 0 && b.oftype == 0) return 1;
if (type == 0) {
return b.addition - a.addition
}
// 符分類優先
if (a.oftype == type && b.oftype != type) { return -1 }
if (a.oftype == type && b.oftype == type) { return 0 }
})
var sortArr = ["按技能排序", "千鈞符優先", "載物符優先", "禦獸符優先"]
FGUtil.getButton(this.fcBagPanel, "alert/sort_switch_btn").title = sortArr[type];
FGUtil.getList(this.fcBagPanel, "alert/fu_list").refreshVirtualList();
this.clickFuItem(null, 0)
}
/**
*
* @returns
*/
hideFcBagPanel() {
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) return;
this.fcBagPanel.visible = false;
}
/**
*
*/
openBagPanel() {
AudioUtil.playFenyeAudio();
Bag.Instance.openBagPanelByTrans();
this.hideFcBagPanel();
}
/**
*
*/
openTransCardPanel() {
AudioUtil.playFenyeAudio();
Transformation.Instance.openTransPanelByBag();
this.hideFcBagPanel();
}
/**
* /
*/
openFcBagByOther() {
if (SKUIUtil.isFGUIValid(this.fcBagPanel)) {
this.fcBagPanel.visible = true;
FGUtil.getControl(this.fcBagPanel, "alert/page").selectedIndex = 2;
return;
}
this.openFcBagPanel();
}
/**
*
*/
openComposeFcFuPanel(count: number, flag: boolean = false) {
if (!SKUIUtil.isFGUIValid(this.composePanel)) {
this.composePanel = FGUtil.create("main_ui", "faction_compose_panel");
FGUtil.root().addChild(this.composePanel);
this.composePanel.makeFullScreen();
}
// 關閉按鈕
let mask = FGUtil.getButton(this.composePanel, "mask")
let closeBtn = FGUtil.getComponent(this.composePanel, "alert/close")
if (!flag) {
this.pushCloseEvent(closeBtn, this.composePanel);
this.pushCloseEvent(mask, this.composePanel);
}
else {
this.pushCloseEvent(closeBtn, this.composePanel, () => { this.openFcBagPanel() });
this.pushCloseEvent(mask, this.composePanel, () => { this.openFcBagPanel() });
}
var decomposeBtn = FGUtil.getButton(this.composePanel, "alert/do");
var addBtn = FGUtil.getButton(this.composePanel, "alert/add");
var reduceBtn = FGUtil.getButton(this.composePanel, "alert/reduce");
var slider = FGUtil.getComponent(this.composePanel, "alert/slider").asSlider;
// 設置滑動條的最大值和默認值
slider.max = Math.floor(count / 10);
slider.max = slider.max > 10 ? 10 : slider.max;
slider.value = slider.max;
slider.on(fgui.Event.STATUS_CHANGED, this.onSliderChangedCompose, this);
FGUtil.getTextField(this.composePanel, "alert/num").text = `數量:${slider.max}`;
reduceBtn.clearClick();
reduceBtn.onClick(this.reduceSliderValueCompose, this);
addBtn.clearClick();
addBtn.onClick(this.addSliderValueCompose, this);
decomposeBtn.clearClick();
decomposeBtn.onClick(this.composeCard, this);
}
/**
*
*/
onSliderChangedCompose(e) {
var value = e._value;
FGUtil.getTextField(this.composePanel, "alert/num").text = `數量:${value}`;
}
/**
*
*/
reduceSliderValueCompose() {
if (this.composePanel && this.composePanel.node) {
var slider = FGUtil.getComponent(this.composePanel, "alert/slider").asSlider;
if (slider.value > 0) {
slider.value--;
FGUtil.getTextField(this.composePanel, "alert/num").text = `數量:${slider.value}`;
}
}
}
/**
*
*/
addSliderValueCompose() {
if (this.composePanel && this.composePanel.node) {
var slider = FGUtil.getComponent(this.composePanel, "alert/slider").asSlider;
if (slider.value < slider.max) {
slider.value++;
FGUtil.getTextField(this.composePanel, "alert/num").text = `數量:${slider.value}`;
}
}
}
composeCard() {
if (this.stopTap) {
MsgAlert.addMsg("您點擊太快了");
return;
}
if (this.composePanel && this.composePanel.node) {
var slider = FGUtil.getComponent(this.composePanel, "alert/slider").asSlider;
var value = slider.value;
if (value == 0) {
MsgAlert.addMsg("請合成大於0數量的天演符");
return;
}
this.stopTap = true;
GameModel.send("c2s_compound_ofuda", {
roleid: GameModel.player.roleid,
itemid: 100320,
count: value
})
FGUtil.dispose(this.composePanel);
this.scheduleOnce(() => {
this.stopTap = false
}, 0.3);
}
}
/**
*
*/
openIdentifyPanel() {
if (!SKUIUtil.isFGUIValid(this.identifyPanel)) {
this.identifyPanel = FGUtil.create("main_ui", "faction_talent_identify_panel");
FGUtil.root().addChild(this.identifyPanel);
this.identifyPanel.makeFullScreen();
FGUtil.getComponent(this.identifyPanel, "skip").onClick(this.skipIdenifty, this);
FGUtil.getComponent(this.identifyPanel, "res/sure").onClick(this.closeIdenifty, this);
var list = FGUtil.getList(this.identifyPanel, "res/list");
list.itemRenderer = this.initIdneiftyFuItem.bind(this);
// 虛擬列表
list.setVirtual();
}
FGUtil.getControl(this.identifyPanel, "more").selectedIndex = this.identifyRes.length > 1 ? 1 : 0
var iconArr = [
["1003200", "100321", "100322", "100323"],
["", "100324", "100325", "100326"],
["", "100327", "100328", "100329"],
["", "100331", "100332", "100333"]
]
var info = this.identifyRes.pop()
var alert = FGUtil.getComponent(this.identifyPanel, "alert")
FGUtil.getLoader(alert, "fu/icon").url = `ui://main_ui/${iconArr[info.ofudatype][info.grade]}`;
var skillData = SkillUtil.getSkill(info.skillid);
if (skillData) {//有可能找不到技能
FGUtil.getLoader(alert, "skill/icon").url = `ui://main_ui/${skillData.icon}`;
}
FGUtil.getTextField(alert, "grade/title").fontSize = 20;
FGUtil.getLoader(alert, "level").url = `ui://main_ui/accessory_level_${info.grade + 1}`;
var trans: fgui.Transition = alert.getTransition("load");
trans.play();
let progress: fairygui.GProgressBar = FGUtil.getProgressBar(alert, "grade");
progress.value = 0;
this.scheduleOnce(() => {
progress.tweenValue(info.addition, 0.25);
}, 0.25)
this.scheduleOnce(() => {
if (this.identifyRes.length > 0) {
this.openIdentifyPanel()
} else {
this.identifyType = 0;
this.showIdeniftyResult();
}
}, 1.0)
}
closeIdenifty() {
FGUtil.dispose(this.identifyPanel)
this.openFcBagPanel();
}
skipIdenifty() {
this.unscheduleAllCallbacks();
this.showIdeniftyResult();
}
showIdeniftyResult() {
if (!SKUIUtil.isFGUIValid(this.identifyPanel)) return
FGUtil.getControl(this.identifyPanel, "showResult").selectedIndex = 1;
var list = FGUtil.getList(this.identifyPanel, "res/list");
list.numItems = this.identifyShowRes.length;
}
initIdneiftyFuItem(idx, obj: fairygui.GObject) {
var item = obj.asCom;
var skill = SkillUtil.getSkill(this.identifyShowRes[idx].skillid)
FGUtil.getLoader(item, "icon").url = `ui://main_ui/${skill.icon}`;
var name = this.identifyShowRes[idx].name;
FGUtil.getTextField(item, "name").text = name.substr(0, name.length - 1);
FGUtil.getTextField(item, "num").text = `+${this.identifyShowRes[idx].addition}`;
}
/**
*
*/
openIdentifyMorePanel() {
if (!SKUIUtil.isFGUIValid(this.identifyMorePanel)) {
this.identifyMorePanel = FGUtil.create("main_ui", "faction_identify_more_panel");
FGUtil.root().addChild(this.identifyMorePanel);
this.identifyMorePanel.makeFullScreen();
}
// 關閉按鈕
let mask = FGUtil.getButton(this.identifyMorePanel, "mask")
let closeBtn = FGUtil.getComponent(this.identifyMorePanel, "alert/close")
this.pushCloseEvent(closeBtn, this.identifyMorePanel, () => {
this.identifyType = 0;
});
this.pushCloseEvent(mask, this.identifyMorePanel, () => {
this.identifyType = 0;
});
var iconArr = ["", "100321", "100322", "100323"]
FGUtil.getLoader(this.identifyMorePanel, "alert/n17/icon").url = `ui://main_ui/${iconArr[this.unUsefcFuList[this.selectFuIdx].grade]}`;
this.identifyType = this.unUsefcFuList[this.selectFuIdx].grade;
var decomposeBtn = FGUtil.getButton(this.identifyMorePanel, "alert/do");
var addBtn = FGUtil.getButton(this.identifyMorePanel, "alert/add");
var reduceBtn = FGUtil.getButton(this.identifyMorePanel, "alert/reduce");
var slider = FGUtil.getComponent(this.identifyMorePanel, "alert/slider").asSlider;
// 設置滑動條的最大值和默認值
var count = ItemUtil.getBagItemCount(parseInt(iconArr[this.unUsefcFuList[this.selectFuIdx].grade]))
slider.max = count;
slider.max = slider.max > 10 ? 10 : slider.max;
slider.min = 1;
slider.value = slider.max;
slider.on(fgui.Event.STATUS_CHANGED, this.onSliderChangedIdentify, this);
FGUtil.getTextField(this.identifyMorePanel, "alert/num").text = `數量:${slider.max}`;
reduceBtn.onClick(this.reduceSliderValueIdentify, this);
addBtn.onClick(this.addSliderValueIdentify, this);
decomposeBtn.onClick(this.doIdentify, this);
}
/**
*
*/
onSliderChangedIdentify(e) {
var value = e._value;
FGUtil.getTextField(this.identifyMorePanel, "alert/num").text = `數量:${value}`;
}
/**
*
*/
reduceSliderValueIdentify() {
if (this.identifyMorePanel && this.identifyMorePanel.node) {
var slider = FGUtil.getComponent(this.identifyMorePanel, "alert/slider").asSlider;
if (slider.value > 1) {
slider.value--;
FGUtil.getTextField(this.identifyMorePanel, "alert/num").text = `數量:${slider.value}`;
}
}
}
/**
*
*/
addSliderValueIdentify() {
if (this.identifyMorePanel && this.identifyMorePanel.node) {
var slider = FGUtil.getComponent(this.identifyMorePanel, "alert/slider").asSlider;
if (slider.value < slider.max) {
slider.value++;
FGUtil.getTextField(this.identifyMorePanel, "alert/num").text = `數量:${slider.value}`;
}
}
}
/**
*
*/
doIdentify() {
Bag.Instance.closeBagPanel();
Transformation.Instance.closeTransPanel();
this.closeFCBagPanel()
var slider = FGUtil.getComponent(this.identifyMorePanel, "alert/slider").asSlider;
if (!slider.value) return;
GameModel.send("c2s_authenticate_ofuda", {
roleid: GameModel.player.roleid,
ofudatype: this.identifyType,
count: slider.value
})
FGUtil.dispose(this.identifyMorePanel)
}
/**
*
*/
doIdentifyOnce() {
this.identifyType = 0;
if (this.unUsefcFuList.length <= 0) return;
if (this.selectFuIdx < 0 || this.selectFuIdx >= this.unUsefcFuList.length) return;
GameModel.send("c2s_authenticate_ofuda", {
roleid: GameModel.player.roleid,
ofudatype: this.unUsefcFuList[this.selectFuIdx].grade,
count: 1
})
}
/**
*
*/
pushCloseEvent(item: fairygui.GComponent, target: fairygui.GComponent, call: Function = null) {
item.clearClick();
item.onClick(() => {
call && call()
FGUtil.dispose(target);
target = null;
}, this)
}
showInfo(e: Event) {
if (!e || !SKDataUtil.hasProperty(e.target, "skillId")) return;
var skillId = e.target["skillId"];
var itemInfo = SkillUtil.getSkill(skillId);
if (itemInfo != null && this.prefabObject["SkillDetail"] != null) {
let detail = cc.instantiate(this.prefabObject["SkillDetail"]);
detail.parent = this.factionTalentPanel.node;
detail.setPosition(this.factionTalentPanel.node.width / 2, -this.factionTalentPanel.node.height / 2)
detail.name = 'SkillDetail';
var useInfo = this.getIsUsed(skillId)
if (useInfo != null)
detail.getComponent('SkillDetail').loadInfo(skillId, false, useInfo);
else
detail.getComponent('SkillDetail').loadInfo(skillId, true);
}
}
/**
*
*/
closeFCBagPanel() {
if (!SKUIUtil.isFGUIValid(this.fcBagPanel)) return;
FGUtil.dispose(this.fcBagPanel)
this.fcBagPanel = null;
}
}