XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +11 -2
Modified src/services/guildService.ts +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 => {