mirror of
https://github.com/asphyxia-core/plugins.git
synced 2026-03-21 17:34:46 -05:00
178 lines
7.2 KiB
TypeScript
178 lines
7.2 KiB
TypeScript
import { IIDX_CPUS } from "../models/arena";
|
|
import { GetVersion } from "../util";
|
|
|
|
export const gssysteminfo: EPR = async (info, data, send) => {
|
|
const version = GetVersion(info);
|
|
if (version < 24) return send.success();
|
|
|
|
let result: any = {
|
|
arena_schedule: {
|
|
phase: K.ITEM("u8", U.GetConfig("ArenaPhase")),
|
|
start: K.ITEM("u32", 1605784800),
|
|
end: K.ITEM("u32", 4102326000)
|
|
},
|
|
arena_music_difficult: [],
|
|
maching_class_range: [],
|
|
arena_cpu_define: [],
|
|
}
|
|
|
|
// following datas are made up needs to figure out correct way to do it //
|
|
let music_open = JSON.parse(await IO.ReadFile("data/music_open.json", "utf-8"));
|
|
if (!_.isNil(music_open[version])) {
|
|
result = Object.assign(result, { music_open: [] });
|
|
|
|
Object.keys(music_open).forEach(v => {
|
|
Object.keys(music_open[v]).forEach(m => {
|
|
if (Number(v) > version) return;
|
|
|
|
result.music_open.push({
|
|
music_id: K.ITEM("s32", Number(m)),
|
|
kind: K.ITEM("s32", music_open[v][m].kind),
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
switch (version) {
|
|
case 32:
|
|
result.arena_schedule.phase = K.ITEM("u8", 3);
|
|
result.arena_schedult = Object.assign(result.arena_schedule, { season: K.ITEM("u8", 0) }); // arena season for online //
|
|
|
|
case 31:
|
|
result.arena_schedult = Object.assign(result.arena_schedule, { rule_type: K.ITEM("u8", 0) }); // arena rule for online //
|
|
|
|
result = Object.assign(result, { grade_course: [] });
|
|
|
|
// following datas are made up needs to figure out correct way to do it //
|
|
let grade = JSON.parse(await IO.ReadFile("data/grade.json", "utf-8"));
|
|
if (!_.isNil(grade[version])) {
|
|
Object.keys(grade[version]).forEach(s => {
|
|
Object.keys(grade[version][s]).forEach(c => {
|
|
result.grade_course.push({
|
|
play_style: K.ITEM("s32", Number(s)),
|
|
grade_id: K.ITEM("s32", Number(c)),
|
|
is_valid: K.ITEM("bool", true),
|
|
music_id_0: K.ITEM("s32", grade[version][s][c].music_id[0]),
|
|
class_id_0: K.ITEM("s32", grade[version][s][c].class_id[0]),
|
|
music_id_1: K.ITEM("s32", grade[version][s][c].music_id[1]),
|
|
class_id_1: K.ITEM("s32", grade[version][s][c].class_id[1]),
|
|
music_id_2: K.ITEM("s32", grade[version][s][c].music_id[2]),
|
|
class_id_2: K.ITEM("s32", grade[version][s][c].class_id[2]),
|
|
music_id_3: K.ITEM("s32", grade[version][s][c].music_id[3]),
|
|
class_id_3: K.ITEM("s32", grade[version][s][c].class_id[3]),
|
|
index: K.ITEM("s32", result.grade_course.length),
|
|
cube_num: K.ITEM("s32", 0),
|
|
kind: K.ITEM("s32", grade[version][s][c].kind),
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// arena_music_difficult //
|
|
for (let s = 0; s < 2; ++s) {
|
|
for (let c = 0; c < 20; ++c) {
|
|
result.arena_music_difficult.push({
|
|
play_style: K.ITEM("s32", s),
|
|
arena_class: K.ITEM("s32", c),
|
|
low_difficult: K.ITEM("s32", 1),
|
|
high_difficult: K.ITEM("s32", 12),
|
|
is_leggendaria: K.ITEM("bool", 1),
|
|
force_music_list_id: K.ITEM("s32", 0),
|
|
});
|
|
|
|
result.maching_class_range.push({
|
|
play_style: K.ITEM("s32", s),
|
|
matching_class: K.ITEM("s32", c),
|
|
low_arena_class: K.ITEM("s32", 1),
|
|
high_arena_class: K.ITEM("s32", 20),
|
|
});
|
|
|
|
result.arena_cpu_define.push({
|
|
play_style: K.ITEM("s32", s),
|
|
arena_class: K.ITEM("s32", c),
|
|
grade_id: K.ITEM("s32", IIDX_CPUS[s][c][0]),
|
|
low_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][1]),
|
|
high_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][2]),
|
|
is_leggendaria: K.ITEM("bool", IIDX_CPUS[s][c][3]),
|
|
});
|
|
}
|
|
}
|
|
|
|
switch (version) {
|
|
case 29:
|
|
result = Object.assign(result, {
|
|
CommonBossPhase: K.ATTR({ val: String(3) }),
|
|
Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("ch_event")) }),
|
|
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ch_extraboss")) }),
|
|
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
|
gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }),
|
|
isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
|
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
|
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
|
});
|
|
break;
|
|
case 30:
|
|
result = Object.assign(result, {
|
|
CommonBossPhase: K.ATTR({ val: String(3) }),
|
|
Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("rs_event")) }),
|
|
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("rs_extraboss")) }),
|
|
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
|
gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }),
|
|
isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
|
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
|
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
|
})
|
|
break;
|
|
case 31:
|
|
let totalMetron = 0;
|
|
let eventData = await DB.Find(null, {
|
|
collection: "event_1",
|
|
version: version,
|
|
event_data: "myepo_map",
|
|
});
|
|
|
|
if (!_.isNil(eventData)) {
|
|
eventData.forEach((res: any) => {
|
|
totalMetron += Number(res.metron_total_get);
|
|
});
|
|
}
|
|
|
|
Object.assign(result, {
|
|
CommonBossPhase: K.ATTR({ val: String(3) }),
|
|
Event1Value: K.ATTR({ val: String(U.GetConfig("ep_event")) }),
|
|
Event1Phase: K.ATTR({ val: String(U.GetConfig("ep_event1")) }),
|
|
Event2Phase: K.ATTR({ val: String(U.GetConfig("ep_event2")) }),
|
|
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ep_extraboss")) }),
|
|
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
|
isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
|
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
|
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
|
UnlockLeggendaria: K.ATTR({ val: String(1) }),
|
|
BPLSerialCodePhase: K.ATTR({ val: String(0) }),
|
|
Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(totalMetron) }), // total amount of all users metron //
|
|
});
|
|
break;
|
|
case 32:
|
|
result = Object.assign(result, {
|
|
Event1Value: K.ATTR({ val: String(U.GetConfig("pc_event")) }), // TEST //
|
|
Event1Phase: K.ATTR({ val: String(U.GetConfig("pc_event1")) }), // TEST //
|
|
Event2Phase: K.ATTR({ val: String(U.GetConfig("pc_event2")) }), // TEST //
|
|
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("pc_extraboss")) }), // TEST //
|
|
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
|
isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
|
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
|
OldBPLBattleOpenPhase: K.ATTR({ val: String(3) }),
|
|
});
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return send.object(result);
|
|
};
|