chore: some minor improvements to nemesis mode=s #2126

Merged
Sainan merged 2 commits from improve-nemesis-spawn into main 2025-06-07 02:17:06 -07:00

View File

@ -170,6 +170,9 @@ export const nemesisController: RequestHandler = async (req, res) => {
res.json({ LastEnc: inventory.Nemesis!.LastEnc });
} else if ((req.query.mode as string) == "s") {
const inventory = await getInventory(account._id.toString(), "Nemesis");
if (inventory.Nemesis) {
logger.warn(`overwriting an existing nemesis as a new one is being requested`);
}
const body = getJSONfromString<INemesisStartRequest>(String(req.body));
body.target.fp = BigInt(body.target.fp);
@ -185,13 +188,15 @@ export const nemesisController: RequestHandler = async (req, res) => {
const weapons: readonly string[] = manifest.weapons;
const initialWeaponIdx = new SRng(body.target.fp).randomInt(0, weapons.length - 1);
weaponIdx = initialWeaponIdx;
do {
const weapon = weapons[weaponIdx];
if (body.target.DisallowedWeapons.indexOf(weapon) == -1) {
break;
}
weaponIdx = (weaponIdx + 1) % weapons.length;
} while (weaponIdx != initialWeaponIdx);
if (body.target.DisallowedWeapons) {
do {
const weapon = weapons[weaponIdx];
if (body.target.DisallowedWeapons.indexOf(weapon) == -1) {
break;
}
weaponIdx = (weaponIdx + 1) % weapons.length;
} while (weaponIdx != initialWeaponIdx);
}
}
inventory.Nemesis = {
@ -212,10 +217,10 @@ export const nemesisController: RequestHandler = async (req, res) => {
GuessHistory: [],
Hints: [],
HintProgress: 0,
Weakened: body.target.Weakened,
Weakened: false,
PrevOwners: 0,
HenchmenKilled: 0,
SecondInCommand: body.target.SecondInCommand,
SecondInCommand: false,
MissionCount: 0,
LastEnc: 0
};
@ -276,7 +281,7 @@ interface INemesisStartRequest {
KillingSuit: string;
killingDamageType: number;
ShoulderHelmet: string;
DisallowedWeapons: string[];
DisallowedWeapons?: string[];
WeaponIdx: number;
AgentIdx: number;
BirthNode: string;