111
This commit is contained in:
428
Project/AradPass/AradPass_Reward.nut
Normal file
428
Project/AradPass/AradPass_Reward.nut
Normal file
@@ -0,0 +1,428 @@
|
||||
/*
|
||||
文件名:AradPass_Reward.nut
|
||||
路径:Project/AradPass/AradPass_Reward.nut
|
||||
创建日期:2024-08-13 22:17
|
||||
文件用途:奖励
|
||||
*/
|
||||
class AradPass_RewardC extends LenheartNewUI_Windows {
|
||||
//调试模式
|
||||
// DeBugMode = true;
|
||||
|
||||
//不是窗口
|
||||
// NoWindow = true;
|
||||
|
||||
//是否可见
|
||||
Visible = false;
|
||||
|
||||
//等级按钮数组
|
||||
LevelButton = null;
|
||||
|
||||
//当前页面
|
||||
Page = 0;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
Childrens = [];
|
||||
LevelButton = [];
|
||||
//注册控件
|
||||
RegisterWidget();
|
||||
|
||||
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
}
|
||||
|
||||
//因为要重载LenheartNewUI_Windows的构造函数
|
||||
function ResetFocus() {
|
||||
|
||||
}
|
||||
|
||||
function ChangePage(ToPage) {
|
||||
foreach(ButtonObj in LevelButton) {
|
||||
ButtonObj.State = 0;
|
||||
}
|
||||
LevelButton[ToPage].State = 1;
|
||||
Page = ToPage;
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
//注册等级按钮
|
||||
local LevelButton_1 = LenheartNewUI_TabbarsText(61, 215, "1 - 10", 88, 25);
|
||||
LevelButton_1.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
||||
LevelButton_1.SetTextOffset(42 - LenheartTextClass.GetStringLength("1 - 10") / 2, 6);
|
||||
LevelButton_1.State = 1;
|
||||
LevelButton_1.OnClick = function() {
|
||||
ChangePage(0);
|
||||
}.bindenv(this);
|
||||
AddChild(LevelButton_1);
|
||||
LevelButton.append(LevelButton_1);
|
||||
|
||||
local LevelButton_2 = LenheartNewUI_TabbarsText(154, 215, "11 - 20", 88, 25);
|
||||
LevelButton_2.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
||||
LevelButton_2.SetTextOffset(42 - LenheartTextClass.GetStringLength("11 - 20") / 2, 6);
|
||||
LevelButton_2.OnClick = function() {
|
||||
ChangePage(1);
|
||||
}.bindenv(this);
|
||||
AddChild(LevelButton_2);
|
||||
LevelButton.append(LevelButton_2);
|
||||
|
||||
local LevelButton_3 = LenheartNewUI_TabbarsText(247, 215, "21 - 30", 88, 25);
|
||||
LevelButton_3.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
||||
LevelButton_3.SetTextOffset(42 - LenheartTextClass.GetStringLength("11 - 20") / 2, 6);
|
||||
LevelButton_3.OnClick = function() {
|
||||
ChangePage(2);
|
||||
}.bindenv(this);
|
||||
AddChild(LevelButton_3);
|
||||
LevelButton.append(LevelButton_3);
|
||||
|
||||
local LevelButton_4 = LenheartNewUI_TabbarsText(340, 215, "31 - 40", 88, 25);
|
||||
LevelButton_4.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
||||
LevelButton_4.SetTextOffset(42 - LenheartTextClass.GetStringLength("11 - 20") / 2, 6);
|
||||
LevelButton_4.OnClick = function() {
|
||||
ChangePage(3);
|
||||
}.bindenv(this);
|
||||
AddChild(LevelButton_4);
|
||||
LevelButton.append(LevelButton_4);
|
||||
|
||||
local LevelButton_5 = LenheartNewUI_TabbarsText(433, 215, "41 - 50", 88, 25);
|
||||
LevelButton_5.SetFrame("interface2/ui/aradpass/chn/aradpass.img", 15);
|
||||
LevelButton_5.SetTextOffset(42 - LenheartTextClass.GetStringLength("11 - 20") / 2, 6);
|
||||
LevelButton_5.OnClick = function() {
|
||||
ChangePage(4);
|
||||
}.bindenv(this);
|
||||
AddChild(LevelButton_5);
|
||||
LevelButton.append(LevelButton_5);
|
||||
|
||||
//全部领取按钮
|
||||
local ClaimAllButton = LenheartNewUI_ButtonText(460, 440, 15, "全部领取");
|
||||
ClaimAllButton.SetFrame(null, 323);
|
||||
ClaimAllButton.SetTextOffset(-7, 1);
|
||||
ClaimAllButton.OnClick = function() {
|
||||
local T = {
|
||||
op = 20059009
|
||||
}
|
||||
SendPackEx(T);
|
||||
}.bindenv(this);
|
||||
AddChild(ClaimAllButton);
|
||||
}
|
||||
|
||||
//绘制主界面
|
||||
function DrawMain(obj) {
|
||||
if (!Parent.BaseInfo) return;
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 1, X + 11, Y - 210 + 50 + 162);
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 2, X + 11, Y - 210 + 50 + 162 + 214);
|
||||
|
||||
L_sq_DrawCode("区", X + 11 + 14, Y - 210 + 50 + 162 + 14, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
L_sq_DrawCode("间", X + 11 + 14, Y - 210 + 50 + 162 + 14 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
|
||||
L_sq_DrawCode("免", X + 11 + 14, Y - 210 + 50 + 162 + 14 + 19 + 47, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
L_sq_DrawCode("费", X + 11 + 14, Y - 210 + 50 + 162 + 14 + 19 + 47 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
|
||||
L_sq_DrawCode("追", X + 11 + 14, Y - 210 + 50 + 162 + 14 + 19 + 47 + 19 + 54, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
L_sq_DrawCode("加", X + 11 + 14, Y - 210 + 50 + 162 + 14 + 19 + 47 + 19 + 54 + 19, sq_RGBA(179, 169, 135, 255), 1, 1);
|
||||
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 19, X + 11, Y - 210 + 240);
|
||||
|
||||
if (LevelButton.len() > 0) {
|
||||
foreach(Pos, Value in LevelButton) {
|
||||
if (Value.State == 1) {
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 18, X + 11 + 50 + (Pos * 93), Y - 210 + 215);
|
||||
}
|
||||
//绘制是否可领取奖励的感叹号
|
||||
if (Parent.RewardSuccessTips[Pos] == 1) {
|
||||
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 301, X + 125 + (Pos * 93), Y - 210 + 224, 0, sq_RGBA(255, 255, 255, 210), 0.8, 0.8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (local i = 0; i< 10; i++) {
|
||||
DrawSmallNumber(i + 1 + (Page * 10), 124 - 91 + (i * 47));
|
||||
}
|
||||
|
||||
DrawRewardItem(obj);
|
||||
|
||||
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y - 210 + 438, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8);
|
||||
L_sq_DrawImg("interface/Lenheartwindowcommon.img", 504, X + 24, Y - 210 + 460, 0, sq_RGBA(255, 255, 255, 250), 0.8, 0.8);
|
||||
L_sq_DrawCode("获得的物品将发放至物品栏。", X + 44, Y - 210 + 438, sq_RGBA(179, 169, 135, 150), 1, 1);
|
||||
L_sq_DrawCode("未使用的奖励道具将在本季通行券结束时删除。", X + 44, Y - 210 + 460, sq_RGBA(179, 169, 135, 150), 1, 1);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//绘制奖励
|
||||
function DrawRewardItem(obj) {
|
||||
local Idx = Page * 10;
|
||||
for (local i = 0; i< 10; i++) {
|
||||
//奖励下标
|
||||
local RealPos = Idx + i;
|
||||
|
||||
if (RealPos in Parent.RewardInfoObject) {
|
||||
|
||||
local RewardObject = Parent.RewardInfoObject[RealPos];
|
||||
|
||||
//普通道具
|
||||
if ("itemid" in RewardObject) {
|
||||
//普通底
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 21, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 61);
|
||||
|
||||
DrawItemBase(X + 64 + (i * 47), Y - 210 + 296, RewardObject.itemid, RewardObject.num);
|
||||
|
||||
//已领取
|
||||
if (RewardObject.isOrdinary) {
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 23, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 61);
|
||||
}
|
||||
//未领取
|
||||
else if (!RewardObject.isOrdinary) {
|
||||
//快达到等级
|
||||
if ((RealPos + 1) == Parent.MyPassLevel + 1) {
|
||||
|
||||
}
|
||||
//已达到等级
|
||||
else if ((RealPos + 1) <= Parent.MyPassLevel) {
|
||||
local A = 60;
|
||||
if (Parent.RewardInfoEffTimer) {
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 1000) {
|
||||
A = sq_GetUniformVelocity(60, 255, Clock() - Parent.RewardInfoEffTimer, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 2000 && Clock() - Parent.RewardInfoEffTimer > 1000) {
|
||||
A = sq_GetUniformVelocity(255, 60, Clock() - Parent.RewardInfoEffTimer - 1000, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer > 2000) {
|
||||
Parent.RewardInfoEffTimer = Clock();
|
||||
}
|
||||
}
|
||||
L_sq_SetDrawImgModel(2, 0);
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 29, X + 7 + 45 + (i * 47), Y - 210 + 50 + 162 + 58, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
||||
L_sq_ReleaseDrawImgModel();
|
||||
|
||||
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y - 210 + 50 + 162 + 58, 44, 74)) {
|
||||
if (MouseClickFlag) {
|
||||
local T = {
|
||||
op = 20059007,
|
||||
Type = 0,
|
||||
lv = RealPos + 1,
|
||||
}
|
||||
SendPackEx(T);
|
||||
}
|
||||
}
|
||||
}
|
||||
//未达到等级
|
||||
else {
|
||||
//普通底Eff 未领取
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 61);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//是不是VIP
|
||||
local IsVip = Parent.BaseInfo.isVip;
|
||||
|
||||
//进阶道具
|
||||
if ("additionalItemId" in RewardObject && "additionalItemId2" in RewardObject) {
|
||||
//普通底
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 26, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
|
||||
DrawItemBase(X + 64 + (i * 47), Y - 210 + 356, RewardObject.additionalItemId, RewardObject.additionalNum);
|
||||
DrawItemBase(X + 64 + (i * 47), Y - 210 + 390, RewardObject.additionalItemId2, RewardObject.additionalNum2);
|
||||
|
||||
if (RewardObject.isadditional) {
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 28, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
} else {
|
||||
if (!IsVip) {
|
||||
//普通底
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 32, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
} else {
|
||||
//快达到等级
|
||||
if ((RealPos + 1) == Parent.MyPassLevel + 1) {
|
||||
|
||||
}
|
||||
//已达到等级
|
||||
else if ((RealPos + 1) <= Parent.MyPassLevel) {
|
||||
local A = 60;
|
||||
if (Parent.RewardInfoEffTimer) {
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 1000) {
|
||||
A = sq_GetUniformVelocity(60, 255, Clock() - Parent.RewardInfoEffTimer, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 2000 && Clock() - Parent.RewardInfoEffTimer > 1000) {
|
||||
A = sq_GetUniformVelocity(255, 60, Clock() - Parent.RewardInfoEffTimer - 1000, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer > 2000) {
|
||||
Parent.RewardInfoEffTimer = Clock();
|
||||
}
|
||||
}
|
||||
L_sq_SetDrawImgModel(2, 0);
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y - 210 + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
||||
L_sq_ReleaseDrawImgModel();
|
||||
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y - 210 + 45 + 162 + 138, 44, 74)) {
|
||||
if (MouseClickFlag) {
|
||||
local T = {
|
||||
op = 20059007,
|
||||
Type = 1,
|
||||
lv = RealPos + 1,
|
||||
}
|
||||
SendPackEx(T);
|
||||
}
|
||||
}
|
||||
}
|
||||
//未达到等级
|
||||
else {
|
||||
//普通底Eff 未领取
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
//普通底
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 25, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
|
||||
DrawItemBase(X + 64 + (i * 47), Y - 210 + 373, RewardObject.additionalItemId, RewardObject.additionalNum);
|
||||
|
||||
|
||||
if (RewardObject.isadditional) {
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 27, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
} else {
|
||||
if (!IsVip) {
|
||||
//普通底
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 31, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
} else {
|
||||
//快达到等级
|
||||
if ((RealPos + 1) == Parent.MyPassLevel + 1) {
|
||||
|
||||
}
|
||||
//已达到等级
|
||||
else if ((RealPos + 1) <= Parent.MyPassLevel) {
|
||||
local A = 60;
|
||||
if (Parent.RewardInfoEffTimer) {
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 1000) {
|
||||
A = sq_GetUniformVelocity(60, 255, Clock() - Parent.RewardInfoEffTimer, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer <= 2000 && Clock() - Parent.RewardInfoEffTimer > 1000) {
|
||||
A = sq_GetUniformVelocity(255, 60, Clock() - Parent.RewardInfoEffTimer - 1000, 1000);
|
||||
}
|
||||
if (Clock() - Parent.RewardInfoEffTimer > 2000) {
|
||||
Parent.RewardInfoEffTimer = Clock();
|
||||
}
|
||||
}
|
||||
L_sq_SetDrawImgModel(2, 0);
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 30, X + 7 + 45 + (i * 47), Y - 210 + 45 + 162 + 138, 0, sq_RGBA(255, 255, 255, A), 1.0, 1.0);
|
||||
L_sq_ReleaseDrawImgModel();
|
||||
|
||||
if (sq_IsIntersectRect(IMouse.GetXPos(), IMouse.GetYPos(), 1, 1, X + 7 + 45 + (i * 47), Y - 210 + 45 + 162 + 138, 44, 74)) {
|
||||
if (MouseClickFlag) {
|
||||
local T = {
|
||||
op = 20059007,
|
||||
Type = 1,
|
||||
lv = RealPos + 1,
|
||||
}
|
||||
SendPackEx(T);
|
||||
}
|
||||
}
|
||||
}
|
||||
//未达到等级
|
||||
else {
|
||||
//普通底Eff 未领取
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", 33, X + 11 + 45 + (i * 47), Y - 210 + 50 + 162 + 138);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Parent.MyPassLevel >= Page * 10) {
|
||||
|
||||
//是不是VIP
|
||||
local IsVip = false;
|
||||
if ("isVip" in Parent.BaseInfo && Parent.BaseInfo.isVip) IsVip = true;
|
||||
|
||||
local MyExp;
|
||||
local Rate;
|
||||
if (Parent.MyPassLevel == Page * 10) {
|
||||
MyExp = (Parent.BaseInfo.Exp + 1000.0) % 10000.0;
|
||||
Rate = MyExp.tofloat() / 10000.0;
|
||||
} else if (Parent.MyPassLevel<(Page + 1) * 10) {
|
||||
MyExp = Parent.BaseInfo.Exp % 10000.0 + 1000.0;
|
||||
Rate = MyExp.tofloat() / 10000.0;
|
||||
} else {
|
||||
Rate = 100.0;
|
||||
}
|
||||
local ImgIndex = 34;
|
||||
if (IsVip) ImgIndex = 35;
|
||||
|
||||
if (Rate <= 0) Rate = 0.01;
|
||||
setClip(X + 11 + 45, Y - 210, X + 11 + 45 + (470 * Rate).tointeger(), Y - 210 + 264 + 4); //开始裁切
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex, X + 11 + 45, Y - 210 + 264);
|
||||
releaseClip(); //裁切结束
|
||||
|
||||
L_sq_SetDrawImgModel(2, 0);
|
||||
L_sq_DrawImg("interface2/ui/aradpass/chn/aradpass.img", ImgIndex + 2, X + 11 + 34 + (470 * Rate).tointeger(), Y - 210 + 255);
|
||||
L_sq_ReleaseDrawImgModel();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//绘制等级数字
|
||||
function DrawSmallNumber(num, bx) {
|
||||
num = num.tostring();
|
||||
local x = X + 38 + bx;
|
||||
local y = Y + 40;
|
||||
if (num.len() == 2) x = X + 33 + bx;
|
||||
for (local i = 0; i< num.len(); i++) {
|
||||
local n = num.slice(i, i + 1);
|
||||
n = n.tointeger();
|
||||
local Img = "interface2/ui/aradpass/chn/aradpassnum.img";
|
||||
if ("isVip" in Parent.BaseInfo && Parent.BaseInfo.isVip) Img = "interface2/ui/aradpass/chn/aradpassnumy.img";
|
||||
L_sq_DrawImg(Img, n, x + (i * 9), y, 0, sq_RGBA(255, 255, 255, 255), 0.5, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
MouseClickFlag = false;
|
||||
//鼠标左键弹起回调
|
||||
function OnMouseLbUp(MousePos_X, MousePos_Y) {
|
||||
MouseClickFlag = true;
|
||||
LenheartNewUI_Windows.OnMouseLbUp(MousePos_X, MousePos_Y);
|
||||
}
|
||||
|
||||
function Show(obj) {
|
||||
DrawMain(obj);
|
||||
LenheartNewUI_Windows.Show(obj);
|
||||
|
||||
MouseClickFlag = false;
|
||||
}
|
||||
|
||||
//逻辑入口
|
||||
function Proc(obj) {
|
||||
LenheartNewUI_Windows.SyncPos(X, Y - 210);
|
||||
|
||||
if (Parent && Parent.Visible && Parent.PageSelectM == 0) {
|
||||
Visible = true;
|
||||
X = Parent.X;
|
||||
Y = Parent.Y + 210;
|
||||
} else {
|
||||
Visible = false;
|
||||
}
|
||||
|
||||
if (IMouse.IsWheelUp()) {
|
||||
if (Page > 0) {
|
||||
ChangePage(Page - 1);
|
||||
};
|
||||
}
|
||||
if (IMouse.IsWheelDown()) {
|
||||
if (Page< 4) {
|
||||
ChangePage(Page + 1);
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// getroottable().rawdelete("AradPass_Obj");
|
||||
|
||||
|
||||
// local T = {
|
||||
// op = 20059015,
|
||||
// }
|
||||
// Rindro_BaseToolClass.SendPackEx(T);
|
||||
Reference in New Issue
Block a user