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

feat: noNemesis cheat (#3720)

Closes #3709 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3720 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: Animan8000 <187183497+veniman8000@users.noreply.github.com> Co-committed-by: Animan8000 <187183497+veniman8000@users.noreply.github.com>

822db1e4
Animan8000 <187183497+veniman8000@users.noreply.github.com>
提交于

代码差异

12 个文件 +53 -27
Modified src/controllers/api/nemesisController.ts +29 -27
@@ -245,7 +245,7 @@ export const nemesisController: RequestHandler = async (req, res) => {
245 245 await inventory.save();
246 246 res.json({ LastEnc: inventory.Nemesis!.LastEnc });
247 247 } else if ((req.query.mode as string) == "s") {
248 const inventory = await getInventory(account._id, "Nemesis");
248 const inventory = await getInventory(account._id, "Nemesis noNemesis");
249 249 if (inventory.Nemesis) {
250 250 logger.warn(`overwriting an existing nemesis as a new one is being requested`);
251 251 }
@@ -275,32 +275,34 @@ export const nemesisController: RequestHandler = async (req, res) => {
275 275 }
276 276 }
277 277
278 inventory.Nemesis = {
279 fp: body.target.fp,
280 manifest: body.target.manifest,
281 KillingSuit: body.target.KillingSuit,
282 killingDamageType: body.target.killingDamageType,
283 ShoulderHelmet: body.target.ShoulderHelmet,
284 WeaponIdx: weaponIdx,
285 AgentIdx: body.target.AgentIdx,
286 BirthNode: body.target.BirthNode,
287 Faction: body.target.Faction,
288 Rank: 0,
289 k: false,
290 Traded: false,
291 d: new Date(),
292 InfNodes: getInfNodes(manifest, 0),
293 GuessHistory: [],
294 Hints: [],
295 HintProgress: 0,
296 Weakened: false,
297 PrevOwners: 0,
298 HenchmenKilled: 0,
299 SecondInCommand: false,
300 MissionCount: 0,
301 LastEnc: 0
302 };
303 await inventory.save();
278 if (!inventory.noNemesis) {
279 inventory.Nemesis = {
280 fp: body.target.fp,
281 manifest: body.target.manifest,
282 KillingSuit: body.target.KillingSuit,
283 killingDamageType: body.target.killingDamageType,
284 ShoulderHelmet: body.target.ShoulderHelmet,
285 WeaponIdx: weaponIdx,
286 AgentIdx: body.target.AgentIdx,
287 BirthNode: body.target.BirthNode,
288 Faction: body.target.Faction,
289 Rank: 0,
290 k: false,
291 Traded: false,
292 d: new Date(),
293 InfNodes: getInfNodes(manifest, 0),
294 GuessHistory: [],
295 Hints: [],
296 HintProgress: 0,
297 Weakened: false,
298 PrevOwners: 0,
299 HenchmenKilled: 0,
300 SecondInCommand: false,
301 MissionCount: 0,
302 LastEnc: 0
303 };
304 await inventory.save();
305 }
304 306
305 307 res.json({
306 308 target: inventory.toJSON().Nemesis
Modified src/models/inventoryModels/inventoryModel.ts +1 -0
@@ -1595,6 +1595,7 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
1595 1595 noVendorPurchaseLimits: Boolean,
1596 1596 noNodeEntryFees: Boolean,
1597 1597 noDeathMarks: Boolean,
1598 noNemesis: Boolean,
1598 1599 noKimCooldowns: Boolean,
1599 1600 noBlessingCooldown: Boolean,
1600 1601 claimingBlueprintRefundsIngredients: Boolean,
Modified src/services/cheatsService.ts +11 -0
@@ -48,6 +48,17 @@ export const lockCheats: Partial<Record<keyof IAccountCheats, ILockCheat>> = {
48 48 }
49 49 },
50 50
51 noNemesis: {
52 projection: "Nemesis NemesisAbandonedRewards NemesisTaxedCredits",
53 isInventoryInIdealState: (inventory: TInventoryDatabaseDocument) =>
54 !inventory.Nemesis && !inventory.NemesisAbandonedRewards.length && !inventory.NemesisTaxedCredits,
55 cleanupInventory: (inventory: TInventoryDatabaseDocument) => {
56 inventory.Nemesis = undefined;
57 inventory.NemesisAbandonedRewards.splice(0);
58 inventory.NemesisTaxedCredits = undefined;
59 }
60 },
61
51 62 noMasteryRankUpCooldown: {
52 63 projection: "TrainingDate",
53 64 isInventoryInIdealState: (inventory: TInventoryDatabaseDocument) =>
Modified src/types/inventoryTypes/inventoryTypes.ts +1 -0
@@ -67,6 +67,7 @@ export const accountCheatBooleans = [
67 67 "noVendorPurchaseLimits",
68 68 "noNodeEntryFees",
69 69 "noDeathMarks",
70 "noNemesis",
70 71 "noKimCooldowns",
71 72 "noBlessingCooldown",
72 73 "claimingBlueprintRefundsIngredients",
Modified static/webui/index.html +4 -0
@@ -1049,6 +1049,10 @@
1049 1049 <input class="form-check-input" type="checkbox" id="noDeathMarks" />
1050 1050 <label class="form-check-label" for="noDeathMarks" data-loc="cheats_noDeathMarks"></label>
1051 1051 </div>
1052 <div class="form-check">
1053 <input class="form-check-input" type="checkbox" id="noNemesis" />
1054 <label class="form-check-label" for="noNemesis" data-loc="cheats_noNemesis"></label>
1055 </div>
1052 1056 <div class="form-check">
1053 1057 <input class="form-check-input" type="checkbox" id="noKimCooldowns" />
1054 1058 <label class="form-check-label" for="noKimCooldowns" data-loc="cheats_noKimCooldowns"></label>
Modified static/webui/translations/de.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `Keine Kaufbeschränkungen bei Händlern`,
266 266 cheats_noNodeEntryFees: `Keine Node Kosten`,
267 267 cheats_noDeathMarks: `Keine Todesmarkierungen`,
268 cheats_noNemesis: `Keine Nemesis`,
268 269 cheats_noKimCooldowns: `Keine Wartezeit bei KIM`,
269 270 cheats_noBlessingCooldown: `Keine Wartezeit für Gaben`,
270 271 cheats_fullyStockedVendors: `Händler haben volles Inventar`,
Modified static/webui/translations/en.js +1 -0
@@ -264,6 +264,7 @@ dict = {
264 264 cheats_noVendorPurchaseLimits: `No Vendor Purchase Limits`,
265 265 cheats_noNodeEntryFees: `No Node Entry Fees`,
266 266 cheats_noDeathMarks: `No Death Marks`,
267 cheats_noNemesis: `No Nemesis`,
267 268 cheats_noKimCooldowns: `No KIM Cooldowns`,
268 269 cheats_noBlessingCooldown: `No Blessing Cooldown`,
269 270 cheats_fullyStockedVendors: `Fully Stocked Vendors`,
Modified static/webui/translations/es.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `Sin límite de compras de vendedores`,
266 266 cheats_noNodeEntryFees: `[UNTRANSLATED] No Node Entry Fees`,
267 267 cheats_noDeathMarks: `Sin marcas de muerte`,
268 cheats_noNemesis: `[UNTRANSLATED] No Nemesis`,
268 269 cheats_noKimCooldowns: `Sin tiempo de espera para conversaciones KIM`,
269 270 cheats_noBlessingCooldown: `[UNTRANSLATED] No Blessing Cooldown`,
270 271 cheats_fullyStockedVendors: `Vendedores con stock completo`,
Modified static/webui/translations/fr.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `Aucune limite d'achat chez les PNJ`,
266 266 cheats_noNodeEntryFees: `Aucun frais de lancement de mission`,
267 267 cheats_noDeathMarks: `Aucune marque d'assassin`,
268 cheats_noNemesis: `[UNTRANSLATED] No Nemesis`,
268 269 cheats_noKimCooldowns: `Aucun cooldown sur le KIM`,
269 270 cheats_noBlessingCooldown: `Pas de temps de recharge pour les bénédictions`,
270 271 cheats_fullyStockedVendors: `Les vendeurs ont un stock à 100%`,
Modified static/webui/translations/ru.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `Отсутствие лимитов на покупки у торговцев`,
266 266 cheats_noNodeEntryFees: `[UNTRANSLATED] No Node Entry Fees`,
267 267 cheats_noDeathMarks: `Без меток смерти`,
268 cheats_noNemesis: `[UNTRANSLATED] No Nemesis`,
268 269 cheats_noKimCooldowns: `Чаты KIM без кулдауна`,
269 270 cheats_noBlessingCooldown: `Благословения без кулдауна`,
270 271 cheats_fullyStockedVendors: `Полностью укомплектованные торговцы`,
Modified static/webui/translations/uk.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `Відсутність лімітів на купівлю у продавців`,
266 266 cheats_noNodeEntryFees: `[UNTRANSLATED] No Node Entry Fees`,
267 267 cheats_noDeathMarks: `Без позначок смерті`,
268 cheats_noNemesis: `[UNTRANSLATED] No Nemesis`,
268 269 cheats_noKimCooldowns: `Чати KIM без очікування`,
269 270 cheats_noBlessingCooldown: `Благословіння без очікування`,
270 271 cheats_fullyStockedVendors: `Повністю укомплектовані продавці`,
Modified static/webui/translations/zh.js +1 -0
@@ -265,6 +265,7 @@ dict = {
265 265 cheats_noVendorPurchaseLimits: `商城或商人无购买限制`,
266 266 cheats_noNodeEntryFees: `[UNTRANSLATED] No Node Entry Fees`,
267 267 cheats_noDeathMarks: `无死亡标记(不会被 Stalker/Grustrag 三霸/Zanuka 猎人等标记)`,
268 cheats_noNemesis: `[UNTRANSLATED] No Nemesis`,
268 269 cheats_noKimCooldowns: `即时通无冷却时间`,
269 270 cheats_noBlessingCooldown: `祝福无冷却时间`,
270 271 cheats_fullyStockedVendors: `商人贩卖所有商品`,