185 lines
5.4 KiB
TypeScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import GameModel from "../core/GameModel";
import ItemUtil from "../core/ItemUtil";
import MsgAlert from "../game/msg/MsgAlert";
import FGUtil from "../gear_2.3.4/fgui/FGUtil";
import SKDataUtil from "../gear_2.3.4/util/SKDataUtil";
import SKUIUtil from "../gear_2.3.4/util/SKUIUtil";
import SKTimeUtil from "../../ts/gear_2.3.4/util/SKTimeUtil";
const { ccclass, property } = cc._decorator;
export default class TianTiPanel extends cc.Component {
/**
*
*/
public static Instance: TianTiPanel = null;
/**
*
*/
hasTeam: Boolean = false;
/**
* ID
*/
teamId: number = 0;
/**
*
*/
isLeader: Boolean = false;
/**
*
*/
ManiPanel: fgui.GComponent = null;
/**
*
*/
alrt: fgui.GComponent = null;
countDownTime: number = 13;
quxiaopipei: fgui.GButton = null;
/**阻止點擊 */
stopTap: boolean = false;
timestr: fgui.GTextField
count = 0;
callback: Function = null;
/**
*
*/
prefabObject: any = {};
onLoad() {
if (TianTiPanel.Instance === null) {
TianTiPanel.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;
}
})
}
}
/**
*
*/
openTianTiPiPeiPanel(refresh: boolean = false, data: any = null) {
if (!this.ManiPanel || (this.ManiPanel && !this.ManiPanel.node && !SKUIUtil.isValid(this.ManiPanel.node))) {
this.ManiPanel = FGUtil.create("main_ui", "pipei");//面板
FGUtil.root().addChild(this.ManiPanel);
this.ManiPanel.makeFullScreen();
}
// 設置是否有隊伍、是否為隊長;關閉速度顯示 B
this.isLeader = GameModel.player.isleader;
this.teamId = GameModel.player.teamid;
this.hasTeam = this.teamId > 0;
this.quxiaopipei = FGUtil.getButton(this.ManiPanel, `n0/quxiaopipei`);
this.pushCloseEvent(this.quxiaopipei, this.ManiPanel, () => {//取消匹配
GameModel.send('c2s_tianfu_quxiao', {
roleid: GameModel.player.roleid,
});
});
this.timestr = FGUtil.getTextField(this.ManiPanel, `n0/TIME`);
var memberList = GameModel.player.teamInfo.objlist;
for (let i in memberList) {
//頭像
// FGUtil.getLoader(this.ManiPanel, `n0/L${i}`).texture = GameModel.getRoleHead(memberList[i].resid);
FGUtil.getLoader(this.ManiPanel, `n0/L${i}`).url = `ui://main_ui/roleB_${memberList[i].resid}`
FGUtil.getTextField(this.ManiPanel, `n0/N${i}`).text = `${memberList[i].name}`
}
this.timestr.text = `匹配中。 。 。 `
}
reShow(data: any) {
this.timestr.text = `匹配成功! `
let teamS = data.teamS;
let teamE = data.teamE;
for (const indx in teamS) {
let valuestr = teamS[indx];
console.log(valuestr.resid)
console.log(valuestr.name)
console.log(valuestr.level)
FGUtil.getLoader(this.ManiPanel, `n0/L${indx}`).url = `ui://main_ui/roleB_${valuestr.resid}`
// FGUtil.getLoader(this.ManiPanel, `n0/L${indx}`).texture = GameModel.getRoleHead(valuestr.resid);
FGUtil.getTextField(this.ManiPanel, `n0/N${indx}`).text = `${valuestr.name}`
}
for (const indx in teamE) {
let valuestr = teamE[indx];
console.log(valuestr.resid)
console.log(valuestr.name)
console.log(valuestr.level)
FGUtil.getLoader(this.ManiPanel, `n0/LL${indx}`).url = `ui://main_ui/roleB_${valuestr.resid}`
// FGUtil.getLoader(this.ManiPanel, `n0/LL${indx}`).texture = GameModel.getRoleHead(valuestr.resid);
FGUtil.getTextField(this.ManiPanel, `n0/NN${indx}`).text = `${valuestr.name}`
}
this.count = 10;
//10秒倒計時
//interval -以秒為單位的Tick間隔。 0表示每幀打勾。 (人話:多久執行一次
//repeat -選擇器將被執行(重複+ 1)次你可以使用cc.macro。 REPEAT_FOREVER表示無限滴答。 (人話:總共執行多少次)
this.unschedule(this.task1);
this.schedule(this.task1, 1, 10, 1);
}
task1() {
this.count = this.count - (1);
console.log("執行任務1開始==", this.count);
this.timestr.text = `${this.count}`
if (this.count <= 0) {
console.log("倒計時完成");
this.unschedule(this.task1);
FGUtil.dispose(this.ManiPanel);
}
}
/**
*
*/
pushCloseEvent(item: fairygui.GComponent, target: fairygui.GComponent, call: Function = null) {
item.clearClick();
item.onClick(() => {
if (this.stopTap) return
call && call();
FGUtil.dispose(target);
}, this)
}
}