This commit is contained in:
2025-08-27 08:45:37 +08:00
parent f3d0cbd222
commit 0d0465fad3
20 changed files with 2263 additions and 330 deletions

View File

@@ -18,6 +18,8 @@ class WorldBossC extends LenheartNewUI_Windows {
WindowImg = Rindro_Image("hud/worldboss.img");
WindowTimeImg = Rindro_Image("hud/worldboss_time.img");
WindowTimeNumImg = Rindro_Image("hud/worldboss_timenum.img");
WindowLogoImg = Rindro_Image("hud/worldboss_logo.img");
WindowInfoImg = Rindro_Image("hud/worldboss_info.img");
//基础信息
BaseInfo = null;
@@ -28,12 +30,30 @@ class WorldBossC extends LenheartNewUI_Windows {
//伤害列表
RankList = null;
//标题栏
Title = null;
//组队榜单按钮
TeamRankBtn = null;
//个人榜单按钮
PersonalRankBtn = null;
//页面
Page = 0;
//查询排名页数
CheckPage = 1;
MaxPage = 50;
//查询排名
CheckType = 0; //0组队 1个人
RankPage = 0; //当前页数
MaxRankPage = 1; //最大页数
//奖励
RewardList = null;
RewardType = 0;
//排行榜
RankObject = null;
MyRankObject = null;
//计时器
@@ -46,21 +66,81 @@ class WorldBossC extends LenheartNewUI_Windows {
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
InitButtonConfig();
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
Pack_Control.rawset(20060002, function(Chunk) {
local Jso = Json.Decode(Chunk);
BaseInfo = Jso;
//临时
for (local i = 0; i< BaseInfo.info.len(); i++) {
if (i == 0) BaseInfo.info[i].boss_name <- "斯卡萨侵袭";
else BaseInfo.info[i].boss_name <- "世界BOSS" + i;
}
RegisterBossPage();
ChangePage(0);
}.bindenv(this));
//获取奖励
Pack_Control.rawset(20060012, function(Chunk) {
local Jso = Json.Decode(Chunk);
RewardList = [];
RewardList.append(Jso.rewards);
RewardList.append(Jso.rewards2);
}.bindenv(this));
Pack_Control.rawset(20060006, function(Chunk) {
local Jso = Json.Decode(Chunk);
RankList = Jso.list;
MaxRankPage = Jso.maxPage;
RankObject = [];
foreach(Info in Jso.list) {
local T = {
idx = Info.rank,
name = Info.name,
time = "15:20",
damage = Info.damage,
teamid = Info.teamId,
};
local Buffer = WorldBossC_Item(this, T);
RankObject.append(Buffer);
}
if (Jso.rawin("myteam")) {
MyRankObject = WorldBossC_Item(this, {
idx = Jso.myteam.rank,
name = "我的队伍",
time = "15:20",
damage = Jso.myteam.damage,
teamid = Jso.myteam.teamId,
self = true
})
}
}.bindenv(this));
Pack_Control.rawset(20060026, function(Chunk) {
local Jso = Json.Decode(Chunk);
MaxRankPage = Jso.maxPage;
RankObject = [];
foreach(Info in Jso.list) {
local T = {
idx = Info.rank,
name = Info.name,
time = Info.time,
damage = Info.damage,
};
local Buffer = WorldBossC_Item(this, T);
RankObject.append(Buffer);
}
if (Jso.rawin("myteam")) {
MyRankObject = WorldBossC_Item(this, {
idx = Jso.myteam.rank,
name = "我的队伍",
time = Jso.myteam.time,
damage = Jso.myteam.damage,
self = true
})
}
}.bindenv(this));
Pack_Control.rawset(20060014, function(Chunk) {
@@ -69,7 +149,6 @@ class WorldBossC extends LenheartNewUI_Windows {
TiemrCache = Jso.endTime;
}.bindenv(this));
PushDamageFontFuncTab.rawset("DamagePerSecondCFunc", function(ObjAddress, MySelfAddress, Value) {
if (!SendDamagePackFlag) return;
if (ObjAddress == 0 || ObjAddress == MySelfAddress) {
@@ -79,147 +158,174 @@ class WorldBossC extends LenheartNewUI_Windows {
}.bindenv(this));
// ChangePage(1);
// SendPackEx({
// op = 20060005,
// page = 1
// })
// RankObject = [];
// for (local i = 0; i< 7; i++) {
// local Buffer = WorldBossC_Item(this, {
// idx = i,
// name = "倾泪寒的队伍" + i,
// time = "15:20",
// damage = Clock().tostring(),
// });
// RankObject.append(Buffer);
// }
// MyRankObject = WorldBossC_Item(this, {
// idx = 56,
// name = "我的队伍",
// time = "15:20",
// damage = Clock().tostring(),
// self = true
// });
}
function InitButtonConfig() {
PvfInfo = Rindro_Script.GetFileData("etc/rindro/worldboss/worldboss.etc", function(DataTable, Data) {
while (!Data.Eof()) {
local Key = Data.Get();
if (Key == "[Enter Button]") {
DataTable.EnterButton <- {
x = Data.Get(),
y = Data.Get(),
width = Data.Get(),
height = Data.Get()
}
} else if (Key == "[Refresh Button]") {
DataTable.RefreshButton <- {
x = Data.Get(),
y = Data.Get(),
width = Data.Get(),
height = Data.Get()
}
} else if (Key == "[Rank List]") {
DataTable.RankList <- {
x = Data.Get(),
y = Data.Get()
}
} else if (Key == "[Time Countdown]") {
DataTable.Countdown <- {
x = Data.Get(),
y = Data.Get()
}
}
}
}.bindenv(this));
//请求奖励信息
function RequestRewardInformation() {
if (Page == null) return;
local T = {
op = 20060001,
index = Page
}
SendPackEx(T);
}
//标题栏
Title = null;
function ChangePage(ToPage) {
foreach(ButtonObj in Title) {
ButtonObj.State = 0;
}
Page = ToPage;
Title[ToPage].State = 1;
RankPage = 0; //重置页数
CheckRank();
RequestRewardInformation();
}
function CheckRank() {
local T = {
//0查组队 否则查个人
op = (CheckType == 0 ? 20060005 : 20060025),
index = Page,
page = RankPage
}
SendPackEx(T);
}
function RegisterBossPage() {
Title = [];
local LogicFunc = function(Btn) {
foreach(Pos, obj in Title) {
if (obj != Btn) obj.State = 0;
else {
obj.State = 1;
ChangePage(Pos);
}
}
};
//遍历有多少个Boss
foreach(Pos, Info in BaseInfo.info) {
local Tabbars1 = LenheartNewUI_TabbarsText(6 + (Pos * 61), 23, Info.boss_name);
if (Pos == 0) Tabbars1.State = 1;
Tabbars1.SetTextOffset(31 - LenheartTextClass.GetStringLength(Info.boss_name) / 2, 4);
AddChild(Tabbars1);
Tabbars1.OnClickEx = LogicFunc.bindenv(this);
Title.append(Tabbars1);
}
}
function RegisterWidget() {
Title = [];
local Tabbars1 = LenheartNewUI_TabbarsText(2, 27, "玩法简介");
Tabbars1.State = 1;
Tabbars1.SetTextOffset(7, 4);
AddChild(Tabbars1);
Tabbars1.OnClick = function() {
ChangePage(0);
}.bindenv(this);
Title.append(Tabbars1);
local Tabbars2 = LenheartNewUI_TabbarsText(64, 27, "世界BOSS");
Tabbars2.SetTextOffset(7, 4);
AddChild(Tabbars2);
Tabbars2.OnClick = function() {
ChangePage(1);
}.bindenv(this);
Title.append(Tabbars2);
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(600, 5, 11, 12, "interface/lenheartwindowcommon.img", 276);
local CloseButton = LenheartNewUI_BaseButton(738, 3, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
this.Visible = false;
}.bindenv(this);
Childrens.append(CloseButton);
//进入按钮
local EnterButton = LenheartNewUI_BaseButton(PvfInfo.EnterButton.x, PvfInfo.EnterButton.y, PvfInfo.EnterButton.width, PvfInfo.EnterButton.height, "hud/worldboss.img", 1);
EnterButton.OnClick = function() {
SendPackEx({
op = 20060007
})
local RankingRewardsButton = LenheartNewUI_ButtonText(42, 472, 40, "排名奖励");
RankingRewardsButton.SetTextOffset(6, 1);
RankingRewardsButton.OnClickEx = function(Btn) {
RewardType = 0;
}.bindenv(this);
EnterButton.SetCallBackFunc(function(Btn) {
if (Page == 1)
Btn.Visible = true;
else
Btn.Visible = false;
}.bindenv(this))
Childrens.append(EnterButton);
//刷新按钮
local RefreshButton = LenheartNewUI_BaseButton(PvfInfo.RefreshButton.x, PvfInfo.RefreshButton.y, PvfInfo.RefreshButton.width, PvfInfo.RefreshButton.height, "hud/worldboss.img", 5);
RefreshButton.OnClick = function() {
AddChild(RankingRewardsButton);
local BasicRewardsButton = LenheartNewUI_ButtonText(170, 472, 40, "基础奖励");
BasicRewardsButton.SetTextOffset(6, 1);
BasicRewardsButton.OnClickEx = function(Btn) {
RewardType = 1;
}.bindenv(this);
RefreshButton.SetCallBackFunc(function(Btn) {
if (Page == 1)
Btn.Visible = true;
else
Btn.Visible = false;
}.bindenv(this))
Childrens.append(RefreshButton);
AddChild(BasicRewardsButton);
local PurchaseTicketsButton = LenheartNewUI_ButtonText(420, 478, 150, "开始挑战");
PurchaseTicketsButton.SetTextOffset(59, 1);
PurchaseTicketsButton.OnClickEx = function(Btn) {
local T = {
op = 20060007,
index = Page
}
SendPackEx(T);
}.bindenv(this);
AddChild(PurchaseTicketsButton);
//左按钮
local LeftButton = LenheartNewUI_BaseButton(PvfInfo.RankList.x + 150, PvfInfo.RankList.y + 284, 12, 9, "interface/lenheartwindowcommon.img", 511);
TeamRankBtn = LenheartNewUI_TabbarsText(305, 84, "组队榜单");
TeamRankBtn.State = 1;
TeamRankBtn.SetTextOffset(7, 4);
TeamRankBtn.OnClickEx = function(Btn) {
if (Btn.State == 1) return;
PersonalRankBtn.State = 0;
Btn.State = 1;
CheckType = 0;
CheckRank();
}.bindenv(this);
AddChild(TeamRankBtn);
PersonalRankBtn = LenheartNewUI_TabbarsText(366, 84, "个人榜单");
PersonalRankBtn.SetTextOffset(7, 4);
PersonalRankBtn.OnClickEx = function(Btn) {
if (Btn.State == 1) return;
TeamRankBtn.State = 0;
Btn.State = 1;
CheckType = 1;
CheckRank();
}.bindenv(this);
AddChild(PersonalRankBtn);
//左翻页按钮
local LeftButton = LenheartNewUI_BaseButton(480, 416, 15, 15, "interface/lenheartwindowcommon.img", 34);
LeftButton.OnClick = function() {
if (CheckPage > 1) CheckPage--;
SendPackEx({
op = 20060005,
Page = CheckPage
})
if (RankPage > 0) {
RankPage--;
CheckRank();
}
}.bindenv(this);
LeftButton.SetCallBackFunc(function(Btn) {
if (Page == 1)
Btn.Visible = true;
else
Btn.Visible = false;
}.bindenv(this))
Childrens.append(LeftButton);
//关闭按钮
local RightButton = LenheartNewUI_BaseButton(PvfInfo.RankList.x + 196, PvfInfo.RankList.y + 284, 12, 9, "interface/lenheartwindowcommon.img", 521);
AddChild(LeftButton);
//右翻页按钮
local RightButton = LenheartNewUI_BaseButton(550, 416, 15, 15, "interface/lenheartwindowcommon.img", 38);
RightButton.OnClick = function() {
if (CheckPage< MaxPage) CheckPage++;
SendPackEx({
op = 20060005,
page = CheckPage
})
if (RankPage<(MaxRankPage - 1)) {
RankPage++;
CheckRank();
}
}.bindenv(this);
RightButton.SetCallBackFunc(function(Btn) {
if (Page == 1)
Btn.Visible = true;
else
Btn.Visible = false;
}.bindenv(this))
Childrens.append(RightButton);
AddChild(RightButton);
for (local i = 0; i< 8; i++) {
local ButtonBuffer = LenheartNewUI_BaseButton(700, 139 + (i * 40), 25, 25, "interface/lenheartwindowcommon.img", 362);
ButtonBuffer.Data = i;
ButtonBuffer.OnClickEx = function(Btn) {
if (RankObject && Btn.Data< RankObject.len()) {
local T = {
op = 20060003,
index = Page,
teamId = RankObject[Btn.Data].Info.teamid
}
SendPackEx(T);
}
}.bindenv(this);
ButtonBuffer.SetCallBackFunc(function(Btn) {
if (RankObject && Btn.Data< RankObject.len() && CheckType == 0) Btn.Visible = true;
else Btn.Visible = false;
}.bindenv(this));
Childrens.append(ButtonBuffer);
}
}
//悬停层绘制Flag
@@ -227,73 +333,66 @@ class WorldBossC extends LenheartNewUI_Windows {
//绘制主界面
function DrawMain(obj) {
//玩法简介
if (Page == 0) {
WindowImg.DrawPng(0, X, Y);
if (Page != null) {
WindowLogoImg.DrawExPng(Page, X + 1, Y + 19, 0, sq_RGBA(255, 255, 255, 220), 1.0, 1.0);
}
//世界BOSS
else if (Page == 1) {
WindowImg.DrawPng(9, X, Y);
WindowImg.DrawPng(10, X + PvfInfo.RankList.x, Y + PvfInfo.RankList.y);
//绘制查询页数
local Str = CheckPage + "/" + MaxPage;
L_sq_DrawCode(Str, X + PvfInfo.RankList.x + 179 - LenheartTextClass.GetStringLength(Str) / 2, Y + PvfInfo.RankList.y + 283, sq_RGBA(230, 200, 155, 255), 0, 1);
WindowImg.DrawPng(0, X, Y);
HoverFlag = null;
//绘制排行榜
if (RankList) {
foreach(Pos, info in RankList) {
local Rank = info.rank.tostring();
L_sq_DrawCode(Rank, X + PvfInfo.RankList.x + 18 - LenheartTextClass.GetStringLength(Rank) / 2, Y + PvfInfo.RankList.y + 10 + (Pos * 20), sq_RGBA(230, 200, 155, 255), 0, 1);
if (Page != null) {
WindowInfoImg.DrawExPng(Page, X + 19, Y + 66, 0, sq_RGBA(255, 255, 255, 220), 1.0, 1.0);
}
local TeamName = info.teamName;
L_sq_DrawCode(TeamName, X + PvfInfo.RankList.x + 70 - LenheartTextClass.GetStringLength(TeamName) / 2, Y + PvfInfo.RankList.y + 10 + (Pos * 20), sq_RGBA(230, 200, 155, 255), 0, 1);
DrawNineBox(X + 26, Y + 416, 260, 42, "interface/lenheartwindowcommon.img", 213); //背景框
DrawNineBox(X + 308, Y + 106, 433, 26, "interface/lenheartwindowcommon.img", 213); //榜单表头
L_sq_DrawCode("名次", X + 330, Y + 113, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode(CheckType == 0 ? "队伍名称" : "玩家名称", X + 408, Y + 113, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode("战斗时长", X + 510, Y + 113, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode("总伤害", X + 604, Y + 113, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode("详细", X + 700, Y + 113, sq_RGBA(230, 200, 155, 255), 0, 1);
local Damage = info.totalDamage.tostring();
L_sq_DrawCode(Damage, X + PvfInfo.RankList.x + 150 - LenheartTextClass.GetStringLength(Damage) / 2, Y + PvfInfo.RankList.y + 10 + (Pos * 20), sq_RGBA(230, 200, 155, 255), 0, 1);
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + PvfInfo.RankList.x, Y + PvfInfo.RankList.y + (Pos * 20), 200, 20)) {
HoverFlag = Pos;
}
}
local RankPageStr = (RankPage + 1) + "/" + MaxRankPage;
L_sq_DrawCode(RankPageStr, X + 524 - LenheartTextClass.GetStringLength(RankPageStr) / 2, Y + 418, sq_RGBA(230, 200, 155, 255), 0, 1);
if (RewardList) {
foreach(Pos, ItemId in RewardList[RewardType]) {
DrawItemEx(X + 34 + (Pos * 36), Y + 423, ItemId, 1);
}
}
//悬停层
if (HoverFlag != null) {
L_sq_DrawWindow(X + PvfInfo.RankList.x, Y + PvfInfo.RankList.y + (HoverFlag * 20), 200, 100, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
L_sq_DrawWindow(X + PvfInfo.RankList.x, Y + PvfInfo.RankList.y + (HoverFlag * 20), 200, 100, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
if (RankObject) {
foreach(Pos, Object in RankObject) {
Object.Show(X + 309, Y + 132 + (Pos * 40));
}
}
if (MyRankObject) {
MyRankObject.Show(X + 309, Y + 434);
}
}
L_sq_DrawCode(RankList[HoverFlag].teamName, X + PvfInfo.RankList.x + 104 - LenheartTextClass.GetStringLength(RankList[HoverFlag].teamName) / 2, Y + PvfInfo.RankList.y + (HoverFlag * 20) + 14, sq_RGBA(83, 205, 255, 255), 0, 1);
local Yoffset = 40;
for (local Pos = 0; Pos < 4; Pos++) {
local info = {
name = "无队员",
job = "无职业",
damage = "0",
color = sq_RGBA(174, 174, 174, 255)
}
if(RankList[HoverFlag].team.len() > Pos) {
info = RankList[HoverFlag].team[Pos];
info.color <- sq_RGBA(218, 248, 129, 255);
}
local Name = info.name;
L_sq_DrawCode(Name, X + PvfInfo.RankList.x + 28 - LenheartTextClass.GetStringLength(Name) / 2, Y + PvfInfo.RankList.y + (HoverFlag * 20) + Yoffset + (Pos * 20), info.color, 0, 1);
local Job = info.job;
L_sq_DrawCode(Job, X + PvfInfo.RankList.x + 110 - LenheartTextClass.GetStringLength(Job) / 2, Y + PvfInfo.RankList.y + (HoverFlag * 20) + Yoffset + (Pos * 20), info.color, 0, 1);
local Damage = info.damage.tostring();
L_sq_DrawCode(Damage, X + PvfInfo.RankList.x + 202 - LenheartTextClass.GetStringLength(Damage), Y + PvfInfo.RankList.y + (HoverFlag * 20) + Yoffset + (Pos * 20), info.color, 0, 1);
function TopShow(obj) {
LenheartNewUI_Windows.TopShow(obj);
local MousePos_X = IMouse.GetXPos();
local MousePos_Y = IMouse.GetYPos();
if (RankObject) {
foreach(Pos, Object in RankObject) {
if (sq_IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, X + 309, Y + 131 + (Pos * 39), 433, 39)) {
Object.HoverShow(X + 309, Y + 132 + (Pos * 40));
}
}
}
DrawTime(obj);
}
function DrawTime(obj) {
if (!TiemrCache || !Timer) return;
local DrawX = PvfInfo.Countdown.x;
local DrawY = PvfInfo.Countdown.y;
local CountdownX = 300;
local CountdownY = 0;
local DrawX = CountdownX;
local DrawY = CountdownY;
//背景绘制
WindowTimeImg.DrawPng(1, DrawX, DrawY);
WindowTimeImg.DrawPng(0, DrawX, DrawY + 2);
@@ -316,8 +415,11 @@ class WorldBossC extends LenheartNewUI_Windows {
}
function DrawNum(time, Xoffset) {
local DrawX = PvfInfo.Countdown.x;
local DrawY = PvfInfo.Countdown.y;
if (!TiemrCache || !Timer) return;
local CountdownX = 300;
local CountdownY = 0;
local DrawX = CountdownX;
local DrawY = CountdownY;
for (local i = 0; i< time.len(); i++) {
local DrawNum = time.slice(i, i + 1);
WindowTimeNumImg.DrawPng(DrawNum.tointeger(), DrawX + Xoffset + (i * 15), DrawY + 21);
@@ -338,18 +440,26 @@ class WorldBossC extends LenheartNewUI_Windows {
function DungeonLogic() {
local stage = sq_GetGlobaludpModuleStage();
local mapIndex = sq_GetMapIndex(stage);
if (mapIndex == -1) {
SendDamagePackFlag = false;
EnterMapPackFlag = false;
TiemrCache = null;
Timer = null;
}
local dungeon = sq_GetDungeonByStage(stage);
local dungeonIndex = sq_GetDuegonIndex(dungeon);
if (dungeonIndex == BaseInfo.dgn && mapIndex == BaseInfo.map) {
if (dungeonIndex == BaseInfo.info[Page].dgn && mapIndex == BaseInfo.info[Page].map) {
if (!EnterMapPackFlag) {
EnterMapPackFlag = true;
SendPackEx({
op = 20060013
op = 20060013,
index = Page
})
}
SendDamagePackFlag = true;
} else {
SendDamagePackFlag = false;
EnterMapPackFlag = false;
TiemrCache = null;
Timer = null;
}
@@ -369,32 +479,31 @@ class WorldBossC extends LenheartNewUI_Windows {
if (SendDamagePackFlag) {
SendDamageT += Rindro_Duration;
if (SendDamageT > 5000) {
SendDamageT = 0;
SendPackEx({
op = 20060017,
Damage = TotalDamage.Value
})
TotalDamage = null;
// SendDamageT = 0;
// SendPackEx({
// op = 20060017,
// Damage = TotalDamage.Value
// })
// TotalDamage = null;
}
}
//结束时再发一次
else {
SendPackEx({
op = 20060017,
index = Page,
Damage = TotalDamage.Value
})
// print("发送伤害: " + TotalDamage.Value)
TotalDamage = null;
}
}
}
function OpenCallBack() {
Visible = true;
SendPackEx({
op = 20060005,
page = 1
})
}
}
@@ -403,10 +512,61 @@ function Lenheart_WorldBoss_Fun(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("WorldBoss_Obj")) {
RootTab.rawset("WorldBoss_Obj", true);
local Win = LenheartNewUI_CreateWindow(WorldBossC, "阿拉德守卫战窗口", ((getroottable().Rindro_Scr_Width - 620) / 2).tointeger(), 64, 620, 430, 28);
local Win = LenheartNewUI_CreateWindow(WorldBossC, "阿拉德守卫战窗口", ((getroottable().Rindro_Scr_Width - 753) / 2).tointeger(), 40, 753, 518, 20);
EventList_Obj.AddEvent("阿拉德守卫战", 1001, Win);
}
}
getroottable()["LenheartFuncTab"].rawset("WorldBossFuncN", Lenheart_WorldBoss_Fun);
L_Windows_List <- [];
getroottable().rawdelete("LenheartPluginsInitFlag");
getroottable().rawdelete("EventList_Obj")
getroottable().rawdelete("WorldBoss_Obj");
class WorldBossC_Item {
//Img
Img = null;
//父对象
Parent = null;
//信息
Info = null;
constructor(Window, Info) {
Parent = Window;
Img = Window.WindowImg;
this.Info = Info;
}
function Show(X, Y) {
if (!Info.rawin("self")) Img.DrawPng(1, X, Y);
else Parent.DrawNineBox(X + 0, Y + 2, 432, 35, "interface/lenheartwindowcommon.img", 204);
local IdxStr = Info.idx.tostring();
L_sq_DrawCode(IdxStr, X + 32 - LenheartTextClass.GetStringLength(IdxStr) / 2, Y + 10, sq_RGBA(230, 200, 155, 255), 2, 1);
L_sq_DrawCode(Info.name, X + 125 - LenheartTextClass.GetStringLength(Info.name) / 2, Y + 14, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode(Info.time.tostring(), X + 230 - LenheartTextClass.GetStringLength(Info.time.tostring()) / 2, Y + 14, sq_RGBA(230, 200, 155, 255), 0, 1);
L_sq_DrawCode(Info.damage, X + 313 - LenheartTextClass.GetStringLength(Info.damage) / 2, Y + 14, sq_RGBA(230, 200, 155, 255), 0, 1);
}
function HoverShow(X, Y) {
Img.DrawPng(2, X, Y);
}
}
// L_sq_GoDungeon(20501);