feat: death marks (#1205)

Reviewed-on: OpenWF/SpaceNinjaServer#1205
This commit is contained in:
Sainan 2025-03-16 04:33:21 -07:00
parent b7f05e851c
commit 651ab5f6f1
3 changed files with 21 additions and 1 deletions

View File

@ -1400,7 +1400,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
//Discount Coupon //Discount Coupon
PendingCoupon: pendingCouponSchema, PendingCoupon: pendingCouponSchema,
//Like BossAladV,BossCaptainVor come for you on missions % chance //Like BossAladV,BossCaptainVor come for you on missions % chance
DeathMarks: [String], DeathMarks: { type: [String], default: [] },
//Zanuka //Zanuka
Harvestable: Boolean, Harvestable: Boolean,
//Grustag three //Grustag three

View File

@ -294,6 +294,25 @@ export const addMissionInventoryUpdates = async (
inventory.SeasonChallengeHistory.push(...processedCompletions); inventory.SeasonChallengeHistory.push(...processedCompletions);
break; break;
} }
case "DeathMarks": {
for (const deathMark of value) {
if (!inventory.DeathMarks.find(x => x == deathMark)) {
// It's a new death mark; we have to say the line.
await createMessage(inventory.accountOwnerId.toString(), [
{
sub: "/Lotus/Language/G1Quests/DeathMarkTitle",
sndr: "/Lotus/Language/G1Quests/DeathMarkSender",
msg: "/Lotus/Language/G1Quests/DeathMarkMessage",
icon: "/Lotus/Interface/Icons/Npcs/Stalker_d.png",
highPriority: true
}
]);
// TODO: This type of inbox message seems to automatically delete itself. Figure out under which conditions.
}
}
inventory.DeathMarks = value;
break;
}
default: default:
// Equipment XP updates // Equipment XP updates
if (equipmentKeys.includes(key as TEquipmentKey)) { if (equipmentKeys.includes(key as TEquipmentKey)) {

View File

@ -107,6 +107,7 @@ export type IMissionInventoryUpdateRequest = {
DropTable: string; DropTable: string;
DROP_MOD: number[]; DROP_MOD: number[];
}[]; }[];
DeathMarks?: string[];
} & { } & {
[K in TEquipmentKey]?: IEquipmentClient[]; [K in TEquipmentKey]?: IEquipmentClient[];
}; };