Rindro-Sqr/Project/HorseGuessing/HorseGuessing.nut

223 lines
5.9 KiB
Plaintext

/*
文件名:HorseGuessing.nut
路径:Project/HorseGuessing/HorseGuessing.nut
创建日期:2024-09-25 20:30
文件用途:骑士马战
*/
dofile("sqr/Project/HorseGuessing/HorseGuessing_Guide.nut"); //骑士马战指引
dofile("sqr/Project/HorseGuessing/HorseGuessing_KnightInfo.nut"); //骑士马战资料
class HorseGuessingC extends LenheartNewUI_Windows {
//调试模式
//DeBugMode = true;
//不是窗口
// NoWindow = true;
//是否可见
// Visible = false;
//标题栏
Title = null;
//当前页面
Page = 0;
//页面选择器
PageSelectM = 0;
//指引页面
GuidePage = null;
//骑士资料页面
KnightInfoPage = null;
//过往战绩页面
PastRecordPage = null;
//骑手名称
RiderName = [
"伊撒尔",
"理查德",
"席恩",
"吉尔特",
"爱德华",
"罗兰",
"莱奥",
"贝奥武夫",
];
//当前选择骑手
NowSelectRider = 0;
//下注
BetItem = 0;
//剩余可下注数量
ResidueCoin = 10000;
//骑手信息
RiderInfo = null;
//获取选手具体信息
function GetRiderInfo() {
local T = {
op = 20055003,
code = NowSelectRider,
}
SendPack(T);
}
//获取选手具体信息回调包
function GetRiderInfoCallBack(Chunk) {
local Jso = Json.Decode(Chunk);
RiderInfo = [];
for (local i = 0; i< Jso.outcome.len(); i++) {
RiderInfo.append(Jso.outcome[i]);
}
}
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
Childrens = [];
Title = [];
RiderInfo = [];
//读取配置文件
local Config = R_Utils.ReadScriptConfig("etc/rindro/horseguessing/horseguessing.dat", 1024, "utf8");
RiderName = Config.RiderInfo;
BetItem = Config.ItemId;
//把big的名字 转成 utf8
for (local i = 0; i< RiderName.len(); i++) {
RiderName[i] = Sq_ConvertWideChar(RiderName[i], "big5");
}
//注册控件
RegisterWidget();
LenheartNewUI_Windows.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
GuidePage = HorseGuessing_GuideC("骑士马战_指引窗口", X + 7, Y + 50, 214, 480, 0);
KnightInfoPage = HorseGuessing_KnightInfoC("骑士马战_资料窗口", X + 7, Y + 50, 214, 480, 0);
//默认构造时切换到0页
ChangePage(1);
}
function ChangePage(ToPage) {
foreach(ButtonObj in Title) {
ButtonObj.State = 0;
}
Page = ToPage;
Title[ToPage].State = 1;
RemoveChild("骑士马战_指引窗口");
RemoveChild("骑士马战_资料窗口");
RemoveChild("骑士马战_战绩窗口");
PageSelectM = ToPage;
switch (ToPage) {
case 0: {
AddChild(GuidePage);
break;
}
case 1: {
AddChild(KnightInfoPage);
break;
}
case 2:
AddChild(PastRecordPage);
break;
}
}
function RegisterWidget() {
//关闭按钮
local CloseButton = LenheartNewUI_BaseButton(750, 0, 11, 12, "interface/lenheartwindowcommon.img", 276);
CloseButton.OnClick = function() {
this.Visible = false;
}.bindenv(this);
Childrens.append(CloseButton);
local Tabbars1 = LenheartNewUI_TabbarsText(12, 27, "指引");
Tabbars1.State = 1;
AddChild(Tabbars1);
Tabbars1.OnClick = function() {
ChangePage(0);
}.bindenv(this);
Title.append(Tabbars1);
local Tabbars2 = LenheartNewUI_TabbarsText(74, 27, "骑士资料");
AddChild(Tabbars2);
Tabbars2.OnClick = function() {
ChangePage(1);
}.bindenv(this);
Tabbars2.SetTextOffset(7, 3);
Title.append(Tabbars2);
local Tabbars3 = LenheartNewUI_TabbarsText(136, 27, "过往战绩");
AddChild(Tabbars3);
Tabbars3.OnClick = function() {
ChangePage(2);
}.bindenv(this);
Tabbars3.SetTextOffset(7, 3);
Title.append(Tabbars3);
}
function DrawInfo(obj) {
}
//绘制主界面
function DrawMain(obj) {
//绘制窗口
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 33, X, Y);
//绘制左边底槽窗口
L_sq_DrawWindow(X + 2, Y + 46, 210, 435, "interface/lenheartwindowcommon.img", 97, 11, 12, 11, 13);
//绘制详情页
DrawInfo(obj);
//BackGround
L_sq_DrawImg("interface2/event/chn_event_2016/160927_joustmatches/joustmatches_ui.img", 0, X + 227, Y + 26);
// L_sq_DrawCode(L_sq_StringBinById(271069), X + 400, Y + 386, sq_RGBA(255, 255, 255, 250), 0, 1);
}
function Show(obj) {
DrawMain(obj);
LenheartNewUI_Windows.Show(obj);
}
//逻辑入口
function Proc(obj) {
LenheartNewUI_Windows.SyncPos(X, Y);
//主动调用子对象窗口的Proc
foreach(Object in Childrens) {
if (Object instanceof LenheartNewUI_Windows)
Object.Proc(obj);
}
}
function OpenCallBack() {
this.Visible = true;
ResetFocus();
}
}
getroottable().rawdelete("HorseGuessing_Obj");
function Lenheart_HorseGuessing_Fun(obj) {
local RootTab = getroottable();
if (!RootTab.rawin("HorseGuessing_Obj")) {
RootTab.rawset("HorseGuessing_Obj", true);
local Winobj = LenheartNewUI_CreateWindow(HorseGuessingC, "骑士马战窗口", ((getroottable().Rindro_Scr_Width - 772) / 2).tointeger(), 30, 772, 539, 28);
EventList_Obj.AddEvent("骑士马战", 106, Winobj, "interface2/yosin/eventsystemlist2.img");
}
}
getroottable()["LenheartFuncTab"].rawset("HorseGuessingFuncN", Lenheart_HorseGuessing_Fun);