Rindro-Sqr/Project/Torturegift/Torturegift.nut

174 lines
4.8 KiB
Plaintext
Raw Normal View History

2026-01-20 02:55:29 +08:00
class TorturegiftC extends LenheartNewUI_Windows {
//调试模式
// DeBugMode = true;
//状态 0展示状态 1滚动状态
MacState = 0;
ItemNameColor = [
0xffffffff, //白装
0xffedd568, //蓝装
0xffff6bb3, //紫装
0xfff000ff, //粉装
0xff0082ff, //传说
0xff00b1ff //史诗
]
//红眼闪光动画
EyesAnimotion = null;
//当前道具组
ItemShowArr = null;
//轮播时间
PlayT = 0;
//轮播速度
PlayRate = 2;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
ItemShowArr = [];
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
local FrameArr = [];
for (local i = 0; i< 23; i++) {
local T = {
ImgIndex = 3 + i,
Delay = 60,
Pos = [0, 0]
}
FrameArr.append(T);
}
EyesAnimotion = Lenheart_Ani("null", FrameArr, [100, 100]);
EyesAnimotion.ImgPath = "contents/2022/bakalraid/ui/bakal_reward/title.img";
for (local i = 0; i< 50; i++) {
local T = {
XOffset = (i * 170),
YOffset = 213,
ItemId = 3037,
ItemCount = 100,
Grade = 5,
Name = "无色小晶体"
}
ItemShowArr.append(T);
}
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(432, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
this.Visible = false;
}.bindenv(this);
Childrens.append(CloseButton);
}
//绘制卡牌
function DrawRewardCard(CardInfo) {
//绘制卡牌底
L_sq_DrawImg("rindro_ui/torturegift.img", 4, X + CardInfo.XOffset, Y + CardInfo.YOffset);
//绘制品级框底槽
L_sq_DrawImg("rindro_ui/torturegift_grade.img", CardInfo.Grade, X + CardInfo.XOffset + 64, Y + CardInfo.YOffset + 26);
//绘制名称
L_sq_DrawCode(CardInfo.Name, X + CardInfo.XOffset + 82 - LenheartTextClass.GetStringLength(CardInfo.Name) / 2, Y + CardInfo.YOffset + 70, ItemNameColor[CardInfo.Grade], 0, 1);
//绘制物品
DrawItemBase(X + CardInfo.XOffset + 67, Y + CardInfo.YOffset + 29, CardInfo.ItemId, CardInfo.ItemCount);
}
//绘制主界面
function DrawMain(obj) {
//绘制背景框标题栏
L_sq_DrawImg("rindro_ui/torturegift.img", 0, X, Y);
//轨道底层
L_sq_DrawImg("rindro_ui/torturegift.img", 1, X + 6, Y + 198);
//上牛头
L_sq_DrawImg("rindro_ui/torturegift.img", 2, X + 114, Y + 175);
//下
L_sq_DrawImg("rindro_ui/torturegift.img", 3, X + 114, Y + 336);
//指针
L_sq_DrawImg("rindro_ui/torturegift.img", 5, X + 215, Y + 320);
}
function Show(obj) {
DrawMain(obj);
setClip(X + 30, Y, X + 422, Y + 454); //开始裁切
local AddOffset = 0;
PlayT += Duration;
if (PlayT >= 30) {
AddOffset = (1 * PlayRate);
PlayT = 0;
}
foreach(_index, infoobj in ItemShowArr) {
if (AddOffset) {
infoobj.XOffset -= AddOffset;
// if (_index == 0) print(infoobj.XOffset);
if (infoobj.XOffset <= -200) infoobj.XOffset += (ItemShowArr.len()) * 170;
}
DrawRewardCard(infoobj);
}
releaseClip(); //裁切结束
if (ItemInfoDrawS && MacState == 0) {
PlayRate = 0;
} else if (MacState == 0) {
PlayRate = 1;
}
LenheartNewUI_Windows.Show(obj);
// L_sq_SetDrawImgModel(2, 0);
// EyesAnimotion.X = X - 122;
// EyesAnimotion.Y = Y + 110;
// EyesAnimotion.Show(Duration);
// L_sq_ReleaseDrawImgModel();
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
}
}
L_Windows_List <- [];
getroottable().rawdelete("LenheartPluginsInitFlag");
getroottable().rawdelete("EventList_Obj")
getroottable().rawdelete("TorturegiftC_Obj");
getroottable().rawdelete("L_Each_Obj");
function Lenheart_Torturegift_New(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("TorturegiftC_Obj")) {
RootTab.rawset("TorturegiftC_Obj", true);
LenheartNewUI_CreateWindow(TorturegiftC, "折磨之礼窗口", 210, 64, 452, 454, 22);
}
}
if (getroottable().rawin("LenheartFuncTab")) {
getroottable()["LenheartFuncTab"].rawset("Lenheart_Torturegift_NewFunc", Lenheart_Torturegift_New);
} else {
local T = {};
T.rawset("Lenheart_Torturegift_NewFunc", Lenheart_Torturegift_New);
getroottable().rawset("LenheartFuncTab", T);
}