返回提交历史
Modified
src/services/guildService.ts
+11
-2
XFEstudio/XFESpaceNinjaServer
fix: refund personal decos when destroying dojo room (#2522)
Closes #2521 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2522 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
62314e89
代码差异
1 个文件
+11
-2
@@ -13,6 +13,7 @@ import {
13
13
IDojoComponentDatabase,
14
14
IDojoContributable,
15
15
IDojoDecoClient,
16
IDojoDecoDatabase,
16
17
IGuildClient,
17
18
IGuildMemberClient,
18
19
IGuildMemberDatabase,
@@ -309,7 +310,7 @@ export const removeDojoRoom = async (
309
310
guild.DojoEnergy -= meta.energy;
310
311
}
311
312
moveResourcesToVault(guild, component);
312
component.Decos?.forEach(deco => moveResourcesToVault(guild, deco));
313
component.Decos?.forEach(deco => refundDojoDeco(guild, component, deco));
313
314
314
315
if (guild.RoomChanges) {
315
316
const index = guild.RoomChanges.findIndex(x => x.componentId.equals(component._id));
@@ -344,6 +345,14 @@ export const removeDojoDeco = (
344
345
component.Decos!.findIndex(x => x._id.equals(decoId)),
345
346
1
346
347
)[0];
348
refundDojoDeco(guild, component, deco);
349
};
350
351
export const refundDojoDeco = (
352
guild: TGuildDatabaseDocument,
353
component: IDojoComponentDatabase,
354
deco: IDojoDecoDatabase
355
): void => {
347
356
const meta = Object.values(ExportDojoRecipes.decos).find(x => x.resultType == deco.Type);
348
357
if (meta) {
349
358
if (meta.capacityCost) {
@@ -369,7 +378,7 @@ export const removeDojoDeco = (
369
378
]);
370
379
}
371
380
}
372
moveResourcesToVault(guild, deco);
381
moveResourcesToVault(guild, deco); // Refund resources spent on construction
373
382
};
374
383
375
384
const moveResourcesToVault = (guild: TGuildDatabaseDocument, component: IDojoContributable): void => {