Rindro-Sqr/Project/Fiendwar/FiendwarFightSituation.nut

703 lines
29 KiB
Plaintext
Raw Permalink Normal View History

2025-05-27 21:24:22 +08:00
/*
文件名:FiendwarFightSituation.nut
路径:Project/Fiendwar/FiendwarFightSituation.nut
创建日期:2024-11-26 14:44
文件用途:
*/
//复选框
class Fiendwar_LenheartNewUI_SwitchButton extends LenheartNewUI_CommonUi {
//透明度
AlphaValue = 1.0;
State = 0;
ImgIndex = null;
constructor(X, Y) {
LenheartNewUI_CommonUi.constructor(X, Y, 14, 15);
}
function SyncAlpha(Value) {
AlphaValue = Value;
}
function Show(obj) {
//不可用
if (State == 8) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 3 : 141, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
} else {
//悬停
if (isLBDown) {
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//按下
else if (isInRect) {
if (State == 0)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 1 : 139, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
if (State == 1)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//普通
else {
if (State == 0)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex : 138, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
if (State == 1)
L_sq_DrawImg("interface/lenheartwindowcommon.img", ImgIndex ? ImgIndex + 2 : 140, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
}
}
}
class Fiendwar_LenheartNewUI_ProgressIndicator extends LenheartNewUI_CommonUi {
//透明度
AlphaValue = 1.0;
//宽
DWidth = null;
//控制者
Controller = 0;
//回调函数
OnChangeControl = null;
//球的偏移 因为除不尽 所以这个最好单独写
BXposOffset = 0;
constructor(X, Y, W, H) {
this.DWidth = W;
LenheartNewUI_CommonUi.constructor(X, Y, W, H);
}
function Show(obj) {
//绘制左
L_sq_DrawImg("hud/fiendwarl.img", 19, X, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
local OffserIndex = 0;
//绘制中
for (local i = 0; i< this.DWidth; i++) {
if (i > (Controller * this.DWidth).tointeger())
OffserIndex = 0;
else OffserIndex = 1;
L_sq_DrawImg("hud/fiendwarl.img", 21 + OffserIndex, X + 8 + i, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//绘制右
L_sq_DrawImg("hud/fiendwarl.img", 20, X + 8 + this.DWidth, Y, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
// local BXposOffset = 0;
// if (BaseX && EndX) BXposOffset = EndX - BaseX;
//绘制球
L_sq_DrawImg("hud/fiendwarl.img", 23, X + BXposOffset + 1, Y + 1, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
//按下时的基准X
BaseX = null;
EndX = null;
//鼠标左键按下回调
function OnMouseLbDown(MousePos_X, MousePos_Y) {
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + BXposOffset + 1, Y + 1, 15, 14)) {
isLBDown = true;
if (!BaseX) BaseX = MousePos_X;
}
}
//鼠标事件回调
function OnMouseProc(Flag, MousePos_X, MousePos_Y) {
if (isLBDown && Flag == 1) {
if (MousePos_X > (X + DWidth + 8))
MousePos_X = (X + DWidth + 8);
else if (MousePos_X<(X + 8))
MousePos_X = (X + 8);
EndX = MousePos_X;
if (BaseX && EndX) {
BXposOffset = EndX - BaseX;
Controller = BXposOffset.tofloat() / DWidth.tofloat();
AlphaValue = Controller;
if (AlphaValue< 0.4) AlphaValue = 0.4;
if (OnChangeControl) OnChangeControl(Controller);
}
}
}
//鼠标左键弹起回调
function OnMouseLbUp(MousePos_X, MousePos_Y) {
isLBDown = false;
}
}
class FiendwarFightSituationC extends LenheartNewUI_Windows {
Visible = false;
//调试模式
// DeBugMode = true;
//透明度
AlphaValue = 1.0;
//简易战况表复选框
BaseSituationBtn = null;
//简易战况表是否开启
BaseSituationFlag = 0;
ExternalWindow = null;
//雷达是否存在
RadarFlag = true;
//turret2
turret2 = true;
MonsterFace = {
m20413 = 1,
m20412 = 3,
m20411 = 4,
m20415 = 15,
m20408 = 9,
m20409 = 8,
m20405 = 5,
m20404 = 6,
m20406 = 12,
m20401 = 13,
m20402 = 10,
m20403 = 11,
};
SlotPos = [
[50, 479],
[50, 374],
[50, 270],
[140, 167],
[186, 89],
[275, 36],
[275, 141],
[411, 11],
[365, 88],
[455, 141],
[545, 36],
[141, 427],
[185, 348],
[185, 245],
[321, 271],
[411, 219],
[546, 245],
[591, 166],
[141, 530],
[276, 505],
[320, 375],
[410, 478],
[546, 504],
[456, 401],
[681, 478],
[545, 348],
[680, 374],
[725, 244],
[690, 53],
[727, 129],
]
Info = null;
PackCurT = null;
EndTime = null;
function InfoCallBack(Chunk) {
// print(Chunk);
local Jso = Json.Decode(Chunk);
Info = Jso.fightInfo.platVos;
EndTime = Jso.fightInfo.endTime;
RadarFlag = Jso.fightInfo.radar;
turret2 = Jso.fightInfo.turret2;
RinDro_Fiendwar_Obj.EndTime = Jso.fightInfo.endTime;
local Pt = Clock();
PackCurT = Pt;
RinDro_Fiendwar_Obj.PackCurT = Pt;
// local Win = LenheartNewUI_CreateWindow(Rindro_FiendwarPartyInfoC, "超时空我的队伍窗口", 430, 15, 354, 290, 18);
// Win.CloseWindow();
// local Win = LenheartNewUI_CreateWindow(Rindro_Fiendwar_PartyHallC, "超时空攻坚队伍列表", 320, 40, 478, 434, 18);
// Win.CloseWindow();
}
//收到进入BOSS请求包
function GoBossCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
local Win = LenheartNewUI_CreateWindow(FiendwarHallGoBossDgnC, "超时空攻坚进入罗什", 273, 225, 270, 120, 19);
Win.Visible = true;
Win.Dark = Jso.boss1;
Win.Light = Jso.boss2;
Win.RegisterWidget();
}
PlayerGiveUpTime = null;
PlayerGiveUpFlagTime = null;
//放弃副本包
function PlayerGiveUpCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
PlayerGiveUpTime = Jso.endTime;
PlayerGiveUpFlagTime = Clock();
}
function GetInfo() {
local T = {
op = 20063053,
// teamsId = RinDro_Fiendwar_Obj.MyPartyId
}
Rindro_BaseToolClass.SendPackEx(T);
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20063016, InfoCallBack.bindenv(this));
Pack_Control.rawset(20063022, GoBossCallBack.bindenv(this));
Pack_Control.rawset(20063024, PlayerGiveUpCallBack.bindenv(this));
ExternalWindow = Rindro_Fiendwar_FightSituatioExternalC("超时空攻坚战况表外部窗口", getroottable().Rindro_Scr_Width.tointeger() - 296, 8, 103, 22, 0);
ExternalWindow.AddParentWin(this);
GetInfo();
}
function RegisterWidget() {
// //关闭按钮
// local CloseButton = LenheartNewUI_BaseButton(770, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
// CloseButton.OnClick = function() {
// local Win = LenheartNewUI_CreateWindow(FiendwarFightSituationC, "超时空战况表开关", 770, 9, 30, 30, 0);
// Win.ResetFocus();
// this.Visible = false;
// }.bindenv(this);
// Childrens.append(CloseButton);
local PIButton = Fiendwar_LenheartNewUI_ProgressIndicator(264, 11, 80, 10);
PIButton.Controller = 1.0;
PIButton.BaseX = 273;
PIButton.EndX = 352;
PIButton.BXposOffset = 79;
PIButton.OnChangeControl = function(Controller) {
AlphaValue = Controller;
if (AlphaValue< 0.4) AlphaValue = 0.4;
}.bindenv(this);
Childrens.append(PIButton);
//简易战况表复选框
BaseSituationBtn = Fiendwar_LenheartNewUI_SwitchButton(198, 9);
BaseSituationBtn.State = 0;
BaseSituationBtn.ImgIndex = 358;
BaseSituationBtn.Width = 19;
BaseSituationBtn.Height = 19;
BaseSituationBtn.OnClick = function() {
switch (BaseSituationFlag) {
case 0:
BaseSituationFlag = 1;
break;
case 1:
BaseSituationFlag = 0;
break;
}
BaseSituationBtn.State = BaseSituationFlag;
}.bindenv(this);
AddChild(BaseSituationBtn);
}
//绘制简易动态Ani // obj -- ani路径 -- X -- Y -- ani名字
function T_DrawDynamicAni(obj, aniFileName, x, y, aniname, Alpha) {
local ani = obj.getVar().GetAnimationMap(aniname, aniFileName);
ani.setRGBA(255, 255, 255, Alpha);
sq_AnimationProc(ani);
sq_drawCurrentFrame(ani, x, y, true);
return ani;
}
function DrawParty() {
//绘制我的队伍
if (RinDro_Fiendwar_Obj.MyRaidTeam) {
local Mt = RinDro_Fiendwar_Obj.MyRaidTeam;
if (!Mt) return;
local PartyMaster;
foreach(index, PartyMasterIcon in Mt.MembersList) {
local XOffset = 0;
local YOffset = 9 + (index * 22);
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", 0, X + XOffset + 10, Y + YOffset);
DrawImg("interface2/fiendwar_kr/navigation/partyseatnumber.img", PartyMasterIcon.InfoObj.TeamId, X + XOffset + 10, Y + YOffset + 1);
sq_DrawBox(X + 30 + XOffset, Y + 1 + YOffset, 22, 18, PartyMasterIcon.HandBoxColor[PartyMasterIcon.InfoObj.TeamId]);
// //绘制队长头像
foreach(AvatarObj in PartyMasterIcon.InfoObj.EquVos) {
local AXpos = AvatarObj.F[0][2] + X + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][0] + XOffset - 12;
local AYpos = AvatarObj.F[1][3] + Y + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][1] + YOffset;
setClip(AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2], AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3], AXpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][2] + 22, AYpos + PartyMasterIcon.OffsetArr[PartyMasterIcon.InfoObj.Job][3] + 18); //开始裁切
DrawImg("character/" + AvatarObj.B + ".img", AvatarObj.F[0][0], AXpos, AYpos);
releaseClip(); //裁切结束
}
local RgbaValue = sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger());
if (PartyMasterIcon.InfoObj.Captain) RgbaValue = sq_RGBA(247, 214, 90, (250 * AlphaValue).tointeger());
if (PartyMasterIcon.InfoObj.Captain) DrawImg("hud/fiendwarl.img", 18, X + 42 + XOffset, Y + 1 + YOffset);
local DrawName = PartyMasterIcon.InfoObj.Name;
if (PlayerGiveUpTime && PlayerGiveUpTime[index]) {
local STime = ((PlayerGiveUpTime[index] - (Clock() - PlayerGiveUpFlagTime)) / 1000);
DrawName = "复活时间: " + STime.tostring() + "秒";
if (STime <= 0) DrawName = PartyMasterIcon.InfoObj.Name;
}
//绘制名字
L_sq_DrawCode(DrawName, X + XOffset + 58, Y + YOffset + 4, RgbaValue, 0, 1);
}
}
}
//绘制主界面
function DrawMain(obj) {
//绘制背景框
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 0, X + 7, Y);
//绘制建议进度表文字
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 71, X + 130, Y + 10);
//绘制透明度文字
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 72, X + 220, Y + 10);
DrawParty();
//Boss底层特效
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/boss_effect.ani", X + 720, Y + 110, "超时空战况表背景图BOSS区域", (250 * AlphaValue).tointeger());
//下路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linebottom.ani", X + 7, Y, "超时空战况表背景图下路特效B");
//中路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linemiddle.ani", X + 7, Y, "超时空战况表背景图中路特效B");
//上路特效
Rindro_BaseToolClass.T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/linetop.ani", X + 7, Y, "超时空战况表背景图上路特效B");
//绘制地图
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 64, X + 7, Y + 1);
if (Info) {
foreach(Index, Value in Info) {
if (Value.id != -1) {
//裁切比例
local SliceRate = 0;
if (Value.e && Value.s) {
SliceRate = (Value.e.tofloat() - (Clock().tofloat() - PackCurT.tofloat())) / Value.s.tofloat();
}
//BOSS暗
if (Value.id == 28) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 60, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
}
//BOSS光
else if (Value.id == 29) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 61, X - 68 + SlotPos[Value.id][0], Y - 56 + SlotPos[Value.id][1]);
}
//兵营
else if (Value.id == 10 || Value.id == 17 || Value.id == 27) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 5 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
//复活
if (!Value.m) {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 55, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
//生成小怪
else {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
}
//前哨
else if (Value.id == 7 || Value.id == 15 || Value.id == 24) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 4 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 54, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(50, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
} else if (Value.id == 6 || Value.id == 23) {
//雷达
if (Value.id == 6) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 2 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
}
//炮塔
else if (Value.id == 23) {
local Offset = 0;
if (!Value.m) Offset = 7;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 3 + Offset, X - 14 + SlotPos[Value.id][0], Y - 4 + SlotPos[Value.id][1]);
}
}
//基地和出发点一定有框
if (Value.id == 0 || Value.id == 1 || Value.id == 11 || Value.id == 18) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
//基地两边都画
if (Value.id == 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X + 33 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
}
} else {
//有怪物
if (Value.m || Value.n) {
if (Value.m) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 27, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
//如果不是这些 那就是移动怪 并且活着
if (Value.id != 10 && Value.id != 17 && Value.id != 27 && Value.id != 28 && Value.id != 29 && Value.id != 7 && Value.id != 15 && Value.id != 24 && Value.id != 6 && Value.id != 23 && !Value.n) {
//没人打
if (Value.u.len()< 1) {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 56, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(52, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
//战斗中
else {
if (SliceRate != 0) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 53, X - 24 + SlotPos[Value.id][0], Y + 45 + SlotPos[Value.id][1]);
DrawProgress(49, SliceRate, X - 10 + SlotPos[Value.id][0], Y + 51 + SlotPos[Value.id][1]);
}
}
}
} else if (Value.n) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 59, X + 36 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
}
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", 14, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 98, X + 38 + SlotPos[Value.id][0], Y + 37 + SlotPos[Value.id][1]);
}
}
//如果有玩家
if (Value.u.len() >= 1) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 25, X - 10 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 26, X - 30 + SlotPos[Value.id][0], Y - 1 + SlotPos[Value.id][1]);
//说明有战斗
if (Value.m) {
//战斗特效
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_red.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表战斗方格", (250 * AlphaValue).tointeger());
} else {
//TODO 这里判断有没有商人 没有商人画绿色 有画黄色
T_DrawDynamicAni(obj, "common/fiendwar_kr/navigation/common/hexagon_ef_green.ani", X - 32 + SlotPos[Value.id][0], Y - 25 + SlotPos[Value.id][1], "超时空战况表安全方格", (250 * AlphaValue).tointeger());
}
//绘制队伍编号
foreach(index, pos in Value.u) {
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 28 + pos, X - 24 + SlotPos[Value.id][0], Y + (index * 11) + 2 + SlotPos[Value.id][1]);
}
}
//雷达死完要绘制怪物头像
if (!RadarFlag) {
if (Value.m || Value.n) {
local ImgIndex = 0;
if (Value.m && MonsterFace.rawin("m" + Value.m)) ImgIndex = MonsterFace["m" + Value.m];
DrawImg("interface2/fiendwar_kr/navigation/monsterface.img", ImgIndex, X + 37 + SlotPos[Value.id][0], Y + SlotPos[Value.id][1]);
}
}
}
}
}
DrawFightTime(obj);
}
function DrawImg(Path, Index, XPos, YPos) {
L_sq_DrawImg(Path, Index, XPos, YPos, 1, sq_RGBA(255, 255, 255, (250 * AlphaValue).tointeger()), 1.0, 1.0);
}
function DrawProgress(Index, SliceRate, X, Y) {
if (!turret2) return;
if (RadarFlag) SliceRate = 1.0;
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 48, X, Y);
setClip(X, Y, X + (SliceRate * 61.0).tointeger(), Y + 3); //开始裁切
DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", Index, X, Y);
releaseClip(); //裁切结束
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//攻坚时间
function DrawFightTime(obj) {
L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 47, X + 576, Y - 9);
if (EndTime) {
local RealTime = EndTime - (Clock() - PackCurT);
local seconds = RealTime / 1000;
local hours = seconds / 3600;
local minutes = seconds / 60;
seconds %= 60;
hours = format("%02d", hours);
seconds = format("%02d", seconds).slice(-2);
minutes = format("%02d", minutes).slice(-2);
local Offset = 0;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", hours.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", minutes.slice(1).tointeger(), X + 669 + Offset, Y + 2);
Offset += 38;
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(0, 1).tointeger(), X + 657 + Offset, Y + 2);
L_sq_DrawImg("interface2/fiendwar_kr/navigation/timenumberset.img", seconds.slice(1).tointeger(), X + 669 + Offset, Y + 2);
}
}
//逻辑入口
function Proc(obj) {
//在基地
if (RinDro_Fiendwar_Obj.BaseConfig && RinDro_Fiendwar_Obj.BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == RinDro_Fiendwar_Obj.BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) DrawParty();
// if (getroottable().rawin("FiendwarTotal") && RinDro_Fiendwar_Obj.EndTime) {
// DrawFightTime(obj);
// L_sq_DrawImg("interface2/fiendwar_kr/navigation/navigationframe.img", 13, X + 770, Y);
// }
// //界面未打开
// if (!this.Visible) {
// //在甲板
// if (RinDro_Fiendwar_Obj.BaseConfig && RinDro_Fiendwar_Obj.BaseConfig.channel_index.find("20") && L_sq_GetTownIndex() == RinDro_Fiendwar_Obj.BaseConfig.town_index && L_sq_GetRegionIndex() >= 1) {
// if (!MainButton) {
// MainButton = LenheartBaseButton(X + 770, Y, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
// } else {
// MainButton.Show();
// if (MainButton.isLBActive()) {
// this.Visible = true;
// GetInfo();
// }
// }
// }
// }
LenheartNewUI_Windows.SyncPos(X, Y);
}
MainButton = null;
CloseMainButton = null;
CloseFlag = false;
//顶层绘制
function TopDraw(obj) {
//界面未打开
if (!this.Visible) {
//在甲板
if (RinDro_Fiendwar_Obj.BaseConfig && "channel_index" in RinDro_Fiendwar_Obj.BaseConfig && RinDro_Fiendwar_Obj.BaseConfig.channel_index.find("19") && "town_index" in RinDro_Fiendwar_Obj.BaseConfig && L_sq_GetTownIndex() == RinDro_Fiendwar_Obj.BaseConfig.town_index && (RinDro_Fiendwar_Obj.MyRaidState == 1 || RinDro_Fiendwar_Obj.MyRaidState == 3) && !CloseFlag) {
}
if (CloseFlag) {
if (Clock() - CloseFlag >= 10)
CloseFlag = false;
}
} else {
}
ExternalWindow.Show(obj);
}
}
class Rindro_Fiendwar_FightSituatioExternalC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//不是窗口
NoWindow = true;
//操作窗口
Window = null;
//是否可见
// Visible = false;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
}
function RegisterWidget() {
//开启按钮
local CloseButton = LenheartNewUI_BaseButton(0, 0, 30, 30, "interface2/fiendwar_kr/navigation/navigationframe.img", 13);
CloseButton.OnClick = function() {
if (!Window.Visible) {
Window.Visible = true;
Window.ResetFocus();
Window.GetInfo();
} else {
Window.CloseWindow();
}
}.bindenv(this);
CloseButton.SetCallBackFunc(function(button) {
if (!Window.Visible) {
button.Idx = 13;
} else {
button.Idx = 13;
}
}.bindenv(this));
Childrens.append(CloseButton);
}
function AddParentWin(Win) {
Window = Win;
}
//绘制主界面
function DrawMain(obj) {}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
function TopShow(obj) {
//结束时间
if (RinDro_Fiendwar_Obj.EndTime) {
Window.DrawFightTime(obj);
}
// Window.DrawSimpleSituation();
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
//在甲板
if (RinDro_Fiendwar_Obj.BaseConfig && "channel_index" in RinDro_Fiendwar_Obj.BaseConfig && RinDro_Fiendwar_Obj.BaseConfig.channel_index.find("20") && "town_index" in RinDro_Fiendwar_Obj.BaseConfig && L_sq_GetTownIndex() == RinDro_Fiendwar_Obj.BaseConfig.town_index && (RinDro_Fiendwar_Obj.RaidStage == 1 || RinDro_Fiendwar_Obj.RaidStage == 3)) {
Visible = true;
} else {
Visible = false;
}
}
}