feat: add equipment set bonuses and boss bounty runestones

- Define EquipmentSet type + computeSetBonuses utility in packages/types
- Add setId field to Equipment type and assign sets to 27 equipment items
- Create 9 named equipment sets (Iron Vanguard → Eternal Throne) with 2pc/3pc bonuses
- Apply set combat multiplier in boss route
- Apply set gold/click multipliers in tick engine and click handler
- Include set bonuses in anti-cheat delta validation
- Show active set bonus strip + set badge per card in EquipmentPanel
- Add boss first-kill bounty runestones (scaling 1–10 per boss tier)
- Update AboutPanel and IDEAS.md
This commit is contained in:
2026-03-06 23:56:45 -08:00
committed by Naomi Carrigan
parent 48bf74e713
commit 078ae50e69
19 changed files with 488 additions and 20 deletions
+27
View File
@@ -21,6 +21,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
id: "enchanted_blade",
@@ -42,6 +43,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
cost: { gold: 0, essence: 500, crystals: 0 },
setId: "shadow_infiltrator",
},
{
id: "flame_lance",
@@ -52,6 +54,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 1.7 },
owned: false,
equipped: false,
setId: "volcanic_forger",
},
{
id: "vorpal_sword",
@@ -115,6 +118,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
id: "hide_armour",
@@ -146,6 +150,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
cost: { gold: 0, essence: 400, crystals: 0 },
setId: "shadow_infiltrator",
},
{
id: "volcanic_plate",
@@ -156,6 +161,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 1.65, combatMultiplier: 1.15 },
owned: false,
equipped: false,
setId: "volcanic_forger",
},
{
id: "dragon_scale",
@@ -208,6 +214,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 1.25 },
owned: false,
equipped: false,
setId: "iron_vanguard",
},
{
id: "frost_rune",
@@ -248,6 +255,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 1.55, goldMultiplier: 1.1 },
owned: false,
equipped: false,
setId: "volcanic_forger",
},
{
id: "void_compass",
@@ -259,6 +267,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
owned: false,
equipped: false,
cost: { gold: 0, essence: 350, crystals: 0 },
setId: "shadow_infiltrator",
},
{
id: "frost_crystal",
@@ -310,6 +319,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 3.5 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "angels_halo",
@@ -320,6 +330,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 2.75, goldMultiplier: 1.3 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "celestial_armour",
@@ -330,6 +341,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 2.75 },
owned: false,
equipped: false,
setId: "celestial_guardian",
},
{
id: "divine_edge",
@@ -361,6 +373,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 4.5 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "leviathan_eye",
@@ -371,6 +384,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 3.0, goldMultiplier: 1.35 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "pressure_plate",
@@ -381,6 +395,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 3.25 },
owned: false,
equipped: false,
setId: "abyssal_predator",
},
{
id: "abyssal_edge",
@@ -412,6 +427,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 3.75 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "hellfire_edge",
@@ -422,6 +438,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 5.5 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "soul_gem",
@@ -432,6 +449,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 3.25, goldMultiplier: 1.4 },
owned: false,
equipped: false,
setId: "infernal_conqueror",
},
{
id: "infernal_edge",
@@ -463,6 +481,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 6.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "faceted_armour",
@@ -473,6 +492,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 4.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "prism_eye",
@@ -483,6 +503,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 3.5, goldMultiplier: 1.5 },
owned: false,
equipped: false,
setId: "crystal_domain",
},
{
id: "crystal_sovereign_blade",
@@ -514,6 +535,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 8.0 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "eternal_shroud",
@@ -524,6 +546,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 5.5 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "void_heart_gem",
@@ -534,6 +557,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 4.0, goldMultiplier: 1.6 },
owned: false,
equipped: false,
setId: "void_emperor",
},
{
id: "sanctum_breaker",
@@ -565,6 +589,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { goldMultiplier: 7.0 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
{
id: "throne_blade",
@@ -575,6 +600,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { combatMultiplier: 10.0 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
{
id: "apex_sword",
@@ -605,6 +631,7 @@ export const DEFAULT_EQUIPMENT: Equipment[] = [
bonus: { clickMultiplier: 5.0, goldMultiplier: 2.0, combatMultiplier: 1.5 },
owned: false,
equipped: false,
setId: "eternal_throne",
},
// ── Purchasable endgame sinks ─────────────────────────────────────────────
{