generated from nhcarrigan/template
feat: vampire mode chunk 3 - sync/sanitize and initial state
Add initialVampireState() and vampireSpread validation to mirror the goddess mode pattern. Also lint-fix pre-existing style issues across all Chunk 2 vampire data and type files.
This commit is contained in:
@@ -14,7 +14,6 @@ import type { DailyChallengeState } from "./dailyChallenge.js";
|
||||
import type { Equipment } from "./equipment.js";
|
||||
import type { ExplorationState } from "./exploration.js";
|
||||
import type { GoddessState } from "./goddessState.js";
|
||||
import type { VampireState } from "./vampireState.js";
|
||||
import type { Player } from "./player.js";
|
||||
import type { PrestigeData } from "./prestige.js";
|
||||
import type { Quest } from "./quest.js";
|
||||
@@ -22,6 +21,7 @@ import type { Resource } from "./resource.js";
|
||||
import type { StoryState } from "./story.js";
|
||||
import type { TranscendenceData } from "./transcendence.js";
|
||||
import type { Upgrade } from "./upgrade.js";
|
||||
import type { VampireState } from "./vampireState.js";
|
||||
import type { Zone } from "./zone.js";
|
||||
|
||||
interface GameState {
|
||||
|
||||
@@ -54,9 +54,9 @@ const computeVampireSetBonuses = (
|
||||
for (const threshold of [ 2, 3 ] as const) {
|
||||
if (count >= threshold) {
|
||||
const bonus = set.bonuses[threshold];
|
||||
bloodMultiplier = bloodMultiplier * (bonus.bloodMultiplier ?? 1);
|
||||
bloodMultiplier = bloodMultiplier * (bonus.bloodMultiplier ?? 1);
|
||||
combatMultiplier = combatMultiplier * (bonus.combatMultiplier ?? 1);
|
||||
ichorMultiplier = ichorMultiplier * (bonus.ichorMultiplier ?? 1);
|
||||
ichorMultiplier = ichorMultiplier * (bonus.ichorMultiplier ?? 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,11 +13,11 @@ type SiringUpgradeCategory =
|
||||
| "utility";
|
||||
|
||||
interface SiringUpgrade {
|
||||
id: string;
|
||||
name: string;
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
category: SiringUpgradeCategory;
|
||||
ichorCost: number;
|
||||
category: SiringUpgradeCategory;
|
||||
ichorCost: number;
|
||||
|
||||
/**
|
||||
* Multiplier applied when this upgrade is purchased.
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
import type { AwakeningData } from "./vampireAwakening.js";
|
||||
import type { VampireAchievement } from "./vampireAchievement.js";
|
||||
import type { AwakeningData } from "./vampireAwakening.js";
|
||||
import type { VampireBoss } from "./vampireBoss.js";
|
||||
import type { VampireEquipment } from "./vampireEquipment.js";
|
||||
import type { VampireExplorationState } from "./vampireExploration.js";
|
||||
|
||||
@@ -26,12 +26,12 @@ interface VampireUpgrade {
|
||||
/**
|
||||
* Multiplier applied to the target's output.
|
||||
*/
|
||||
multiplier: number;
|
||||
costBlood: number;
|
||||
costIchor: number;
|
||||
multiplier: number;
|
||||
costBlood: number;
|
||||
costIchor: number;
|
||||
costSoulShards: number;
|
||||
purchased: boolean;
|
||||
unlocked: boolean;
|
||||
purchased: boolean;
|
||||
unlocked: boolean;
|
||||
}
|
||||
|
||||
export type { VampireUpgrade, VampireUpgradeTarget };
|
||||
|
||||
Reference in New Issue
Block a user