IIDX: Added OMEGA-Attack saving support

This commit is contained in:
duel0213 2024-02-29 18:24:46 +09:00
parent bb3333152f
commit e55e659b3b
3 changed files with 71 additions and 22 deletions

View File

@ -9,6 +9,7 @@ import { world_tourism } from "../models/worldtourism";
import { shop_data } from "../models/shop";
import { tutorial } from "../models/tutorial";
import { expert } from "../models/ranking";
import { blueboss } from "../models/event";
export const pccommon: EPR = async (info, data, send) => {
const version = GetVersion(info);
@ -24,6 +25,7 @@ export const pccommon: EPR = async (info, data, send) => {
// exposing these to plugin setting or use static value //
switch (version) {
case 15:
break;
case 16:
result = {
...result,
@ -593,14 +595,16 @@ export const pcget: EPR = async (info, data, send) => {
else if (version == 20) {
if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = Base64toBuffer(pcdata.st_stamp).toString("hex");
if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).toString("hex");
if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // temp //
let link5 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "link5" });
let tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "tricolettepark" });
let redboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "redboss" });
let blueboss = await DB.FindOne<blueboss>(refid, { collection: "event_1", version: version, event_name: "blueboss" });
let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" });
if (!_.isNil(blueboss)) blueboss.durability = Base64toBuffer(blueboss.durability).toString("hex");
return send.pugFile("pug/LDJ/pcget.pug", {
profile,
pcdata,
@ -611,6 +615,7 @@ export const pcget: EPR = async (info, data, send) => {
link5,
tricolettepark,
redboss,
blueboss,
yellowboss,
shop_data,
});
@ -1446,6 +1451,53 @@ export const pcsave: EPR = async (info, data, send) => {
pcdata.orb += parseInt($(data).attr("commonboss").orb);
}
if (!_.isNil($(data).element("redboss"))) {
let event_data = {
progress: parseInt($(data).attr("redboss").progress),
crush: parseInt($(data).attr("redboss").crush),
open: parseInt($(data).attr("redboss").open),
}
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "redboss",
},
{
$set: event_data,
}
);
}
if (!_.isNil($(data).element("blueboss"))) {
let event_data: blueboss = {
level: Number($(data).attr("blueboss").level),
gauge: Number($(data).attr("blueboss").gauge),
item: Number($(data).attr("blueboss").item),
item_flg: Number($(data).attr("blueboss").item_flg),
row0: Number($(data).attr("blueboss").row0),
row1: Number($(data).attr("blueboss").row1),
column0: Number($(data).attr("blueboss").column0),
column1: Number($(data).attr("blueboss").column1),
general: Number($(data).attr("blueboss").general),
first_flg: Number($(data).element("blueboss").bool("first_flg")),
sector: Number($(data).element("blueboss").bool("sector")),
durability: $(data).element("blueboss").buffer("durability").toString("base64"),
}
await DB.Upsert<blueboss>(refid,
{
collection: "event_1",
version: version,
event_name: "blueboss",
},
{
$set: event_data,
}
);
}
if (!_.isNil($(data).element("yellowboss"))) {
let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" });
let event_data;
@ -1477,7 +1529,7 @@ export const pcsave: EPR = async (info, data, send) => {
event_data.pbest_attack[a] = Math.max(event_data.pbest_attack[a], p_attack[a]);
}
}
await DB.Upsert(refid,
{
@ -1490,25 +1542,6 @@ export const pcsave: EPR = async (info, data, send) => {
}
);
}
if (!_.isNil($(data).element("redboss"))) {
let event_data = {
progress: parseInt($(data).attr("redboss").progress),
crush: parseInt($(data).attr("redboss").crush),
open: parseInt($(data).attr("redboss").open),
}
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "redboss",
},
{
$set: event_data,
}
);
}
}
else if (version == 21) {
pcdata.rtype = parseInt($(data).attr().rtype);

View File

@ -0,0 +1,14 @@
export interface blueboss {
level: number;
gauge: number;
item: number;
item_flg: number;
row0: number;
row1: number;
column0: number;
column1: number;
general: number;
first_flg: number;
sector: number;
durability: string;
}

View File

@ -38,7 +38,9 @@ pc(status="0")
commonboss(deller=pcdata.deller orb=pcdata.orb baron="0")
if redboss != null
redboss(progress=redboss.progress crush=redboss.crush open=redboss.open)
//-blueboss(level gauge item item_flg column0 column1 sector first_flg general)
if blueboss != null
blueboss(level=blueboss.level gauge=blueboss.gauge item=blueboss.item item_flg=blueboss.item_flg row0=blueboss.row0 row1=blueboss.row1 column0=blueboss.column0 column1=blueboss.column1 sector=blueboss.sector first_flg=blueboss.first_flg general=blueboss.general)
durability(__type="bin") #{blueboss.durability}
if yellowboss != null
yellowboss(join_num="1" first_flg=yellowboss.first_flg level=yellowboss.level heroic0=yellowboss.heroic0 heroic1=yellowboss.heroic1 critical=yellowboss.critical destiny="0" last_select=yellowboss.last_select shop_message="SHOP MESSAGE" special_move="SPECIAL MOVE")
//-shop_damage(__type="s32" __count="7")