Rindro-Sqr/Project/Fiendwar copy/Fiendwar.nut

188 lines
5.6 KiB
Plaintext

/*
文件名:Fiendwar.nut
路径:Project/Fiendwar/Fiendwar.nut
创建日期:2024-11-16 20:19
文件用途:
*/
dofile("sqr/Project/Fiendwar/FiendwarHall.nut"); //大厅
dofile("sqr/Project/Fiendwar/FiendwarHallParty.nut"); //大厅的队伍
dofile("sqr/Project/Fiendwar/FiendwarPartyInfo.nut"); //攻坚队具体信息窗口
dofile("sqr/Project/Fiendwar/FiendwarPartyMemberInfo.nut"); //攻坚队具体信息中的队员信息UI
dofile("sqr/Project/Fiendwar/FiendwarPlayerInteractive.nut"); //攻坚队玩家交互
dofile("sqr/Project/Fiendwar/FiendwarPartyFormation.nut"); //攻坚队具体信息中的编队
dofile("sqr/Project/Fiendwar/FiendwarHallCreateParty.nut");
dofile("sqr/Project/Fiendwar/FiendwarHallApplyJoin.nut");
dofile("sqr/Project/Fiendwar/FiendwarFightSituation.nut"); //战况表
dofile("sqr/Project/Fiendwar/FiendwarHallGoBossDgn.nut"); //前往BOSS框
dofile("sqr/Project/Fiendwar/FiendwarNoti.nut"); //超时空信息分发
dofile("sqr/Project/Fiendwar/FiendReward.nut"); //超时空奖励
dofile("sqr/Project/Fiendwar/FiendFightLogic.nut"); //战斗逻辑
class FiendwarTotal extends Rindro_BaseToolClass {
//基础配置
BaseConfig = null;
/*
town_index 城镇编号
channel_index 频道编号
*/
//我的客户端cid
MyCid = null;
//我的攻坚队ID
MyPartyId = null;
//我是否是攻坚队队长
IsCaptain = null;
//我的队伍
MyTeam = null;
//开始攻坚动画
StartAniFlag = false;
//攻坚结束时间
EndTime = null;
PackCurT = null;
//全局获取对象方法
function GetInstance() {
if (getroottable().rawin("FiendwarCObj"))
return getroottable()["FiendwarCObj"];
else {
local RootTab = getroottable();
local Cobj = FiendwarTotal();
RootTab.rawset("FiendwarCObj", Cobj);
Cobj.InitWindow();
return Cobj;
}
}
//请求基础信息配置
function GetFiendwarBase() {
local T = {
op = 20063501,
}
SendPack(T);
}
//请求掉线配置信息
function GetFiendwarDown() {
local T = {
op = 20063063,
}
SendPack(T);
}
//基础信息配置
function FiendwarBase(Chunk) {
BaseConfig = Json.Decode(Chunk);
FiendwarChannelTownLogicCallBack();
}
//团本专属频道上线城镇移动包
function FiendwarChannelTownLogicCallBack() {
if (BaseConfig.channel_index.find("20")) {
if (L_sq_GetTownIndex() != BaseConfig.town_index) {
L_sq_MoveTown(BaseConfig.town_index, 0, 474, 249);
}
} else {
//在超时空区域的 要转移回普通城镇
if (L_sq_GetTownIndex() == BaseConfig.town_index) {
L_sq_MoveTown(1, 1, 474, 249);
}
}
}
//开团Flag包
function StartFight(Chunk) {
FiendwarTotal.GetInstance().StartAniFlag = true;
}
FiendwarHallC_Window = null;
FiendwarFightSituationSwitchC_Window = null;
FiendwarNotiC_Window = null;
FiendRewardC_Window = null;
FiendFightLogicC_Object = null;
constructor() {
//获取基础配置回调包
Pack_Control.rawset(20063502, FiendwarBase.bindenv(this));
Pack_Control.rawset(20063028, StartFight.bindenv(this));
//第一次上线要重新请求一下位置信息
GetFiendwarBase();
//请求掉线配置信息
GetFiendwarDown();
}
//初始化窗口
function InitWindow() {
FiendwarHallC_Window = LenheartNewUI_CreateWindow(FiendwarHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
FiendwarFightSituationSwitchC_Window = LenheartNewUI_CreateWindow(FiendwarFightSituationSwitchC, "超时空战况表开关", 770, 9, 30, 30, 0);
FiendwarNotiC_Window = LenheartNewUI_CreateWindow(FiendwarNotiC, "超时空攻坚队伍消息分发", 0, 0, 0, 0, 0);
FiendRewardC_Window = LenheartNewUI_CreateWindow(FiendRewardC, "超时空奖励界面", 0, 0, 800, 600, 0);
FiendFightLogicC_Object = FiendFightLogicC();
}
function ClearInfo() {
//我的客户端cid
MyCid = null;
//我的攻坚队ID
MyPartyId = null;
//我是否是攻坚队队长
IsCaptain = null;
//我的队伍
MyTeam = null;
//开始攻坚动画
StartAniFlag = false;
//攻坚结束时间
EndTime = null;
PackCurT = null;
}
function Proc(obj) {
//开始攻坚动画
if (FiendwarTotal.GetInstance().StartAniFlag) {
local Ani = Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/common/title/start_back.ani", 400, 260, "超时空开始攻坚Ani1");
if (sq_IsEnd(Ani)) {
FiendwarTotal.GetInstance().StartAniFlag = false;
sq_Rewind(Ani);
}
}
if (FiendFightLogicC_Object) FiendFightLogicC_Object.Proc(obj);
}
}
getroottable().rawdelete("FiendwarCObj");
function LenheartFiendwar(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("FiendwarCObj")) {
local Cobj = FiendwarTotal();
RootTab.rawset("FiendwarCObj", Cobj);
Cobj.InitWindow();
} else {
RootTab["FiendwarCObj"].Proc(obj);
}
}
if (getroottable().rawin("LenheartTopFuncTab")) {
getroottable()["LenheartTopFuncTab"].rawset("LenheartFiendwarFunc", LenheartFiendwar);
} else {
local T = {};
T.rawset("LenheartFiendwarFunc", LenheartFiendwar);
getroottable().rawset("LenheartTopFuncTab", T);
}