WIP: Nemesis cheats #2729
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "AlexisinGit:NemesisCheats"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cheats for nemesis related content:
(haven't done testing yet)
@ -39,6 +39,7 @@ import { Types } from "mongoose";export const nemesisController: RequestHandler = async (req, res) => {const account = await getAccountForRequest(req);const accountCheats = await getAccountCheats(account._id.toString());Don't do this. The
inventoryis available, you can use far smarter projections.@ -112,3 +119,3 @@{symbol: guess[0],result: result1result: accountCheats.nemesisAlwaysCorrect ? GUESS_CORRECT : result1This is clearly too late to do this, just change
guessdirectly.@ -151,2 +163,3 @@}inventory.Nemesis!.HenchmenKilled += antivirusGain;inventory.Nemesis!.HenchmenKilled +=antivirusGain * (accountCheats.nemesisHenchmenKillsMultiplierInfestation ?? 1);Horrible name for this cheat.
@ -163,3 +176,2 @@inventory.Nemesis!.Weakened = true;const upgrade = getKnifeUpgrade(inventory, dataknifeUpgrades, antivirusMods[passcode]);consumeModCharge(response, inventory, upgrade, dataknifeUpgrades);if (!accountCheats.nemesisAlwaysCorrect) {Why would this cheat not consume mod charges? That's not at all what the name implies.
If a player carries no mod at all, the function would fail at the final stabbing, because there will be no mod charges to be consumed. And that results in not weakening the nemesis. Still the game will play a successful stabbing animation. This could be quite confusing to the user. I think whoever enables this cheat wouldn't mind a little "side-effect"?
Or to make consume mod charges function handle empty mod array correctly. And seperate the cheats.
You saying this now makes me think this
nemesisAlwaysCorrectcheat is very poorly thought out. I think it should at least require a mod to be equipped, and then it would have the charge consumed regardless of type.Then maybe a separate cheat to avoid charges being consumed.
@ -226,15 +246,22 @@ export const nemesisController: RequestHandler = async (req, res) => {const dataknifeUpgrades = inventory.DataKnives[0].Configs[dataknifeConfigIndex].Upgrades!;for (let i = 3; i != 6; ++i) {//logger.debug(`subtracting a charge from ${dataknifeUpgrades[i]}`);if (accountCheats.nemesisAlwaysCorrect){Ditto
@ -232,3 +255,4 @@}} else {// Guess was incorrect, increase rankconst nemesisExtraRank = Math.floor(Math.random() * ((inventory.nemesisGainExtraRank ?? 0) + 1));So confused by this. Who would want a disadvantage? Why is it randomised?
Just to simulate a speed up stabbing process, somewhere between vanilla and always correct.
Honestly just my personal interest. I can remove this...
@ -15,3 +15,3 @@interface ISetAccountCheatRequest {key: keyof IAccountCheats;value: boolean;value: undefined;Absolutely not.
boolean | number.@ -891,10 +931,11 @@ export const addMissionInventoryUpdates = async (att.push(rotBReward);if (value.killed) {const tokenMultiplier = Math.max(1, inventory.nemesisExtraWeaponOnKill ?? 1);Very confusing interaction of this cheat to be dual-purposed as a token multiplier.
for G / C 1 stab = 1 weapon.
for I 1 stab = at least 10 token = 1 weapon.
I think to combine is better and more intuitive. People would just want more token if they have this cheat enabled anyway.
Overall, I think this PR is a shitshow. Try 1 PR per cheat, not such a huge endeavour when you're clearly not familiar with the codebase yet.
Sure. Thanks for the review. I might just close this for now.
Pull request closed