Initial I Want to Heal app

This commit is contained in:
Warren H
2026-06-17 20:04:36 -04:00
parent 3880db1b58
commit 3c90998a61
109 changed files with 32775 additions and 0 deletions
+157
View File
@@ -0,0 +1,157 @@
export type Role = 'Tank' | 'Healer' | 'Damage'
export type PartyMember = {
id: string
name: string
role: Role
health: number
maxHealth: number
shield: number
hotTicks: number
debuff?: string
debuffTicks?: number
poisonStacks?: number
maxHealthPenaltyTicks?: number
healingReductionTicks?: number
}
export type Spell = {
id: string
key: string
name: string
description: string
cost: number
cooldown: number
power: number
glyph: string
kind: 'direct' | 'hot' | 'group' | 'shield' | 'cleanse'
}
export type Encounter = {
id: string
enemyName: string
description: string
maxHealth: number
damage: number
tankDamage: number
partyDamage: number
isBoss: boolean
}
export type CombatLogEntry = {
id: number
text: string
tone: 'system' | 'heal' | 'danger' | 'loot'
}
export const INITIAL_PARTY: PartyMember[] = [
{ id: 'brann', name: 'Brann', role: 'Tank', health: 150, maxHealth: 150, shield: 0, hotTicks: 0 },
{ id: 'mira', name: 'Mira', role: 'Healer', health: 100, maxHealth: 100, shield: 0, hotTicks: 0 },
{ id: 'kael', name: 'Kael', role: 'Damage', health: 105, maxHealth: 105, shield: 0, hotTicks: 0 },
{ id: 'ves', name: 'Ves', role: 'Damage', health: 95, maxHealth: 95, shield: 0, hotTicks: 0 },
{ id: 'orin', name: 'Orin', role: 'Damage', health: 110, maxHealth: 110, shield: 0, hotTicks: 0 },
]
export const RAID_PARTY: PartyMember[] = [
{ id: 'brann', name: 'Brann', role: 'Tank', health: 165, maxHealth: 165, shield: 0, hotTicks: 0 },
{ id: 'tala', name: 'Tala', role: 'Tank', health: 155, maxHealth: 155, shield: 0, hotTicks: 0 },
{ id: 'mira', name: 'Mira', role: 'Healer', health: 100, maxHealth: 100, shield: 0, hotTicks: 0 },
{ id: 'seren', name: 'Seren', role: 'Healer', health: 102, maxHealth: 102, shield: 0, hotTicks: 0 },
{ id: 'kael', name: 'Kael', role: 'Damage', health: 105, maxHealth: 105, shield: 0, hotTicks: 0 },
{ id: 'ves', name: 'Ves', role: 'Damage', health: 95, maxHealth: 95, shield: 0, hotTicks: 0 },
{ id: 'orin', name: 'Orin', role: 'Damage', health: 110, maxHealth: 110, shield: 0, hotTicks: 0 },
{ id: 'lyra', name: 'Lyra', role: 'Damage', health: 98, maxHealth: 98, shield: 0, hotTicks: 0 },
{ id: 'dax', name: 'Dax', role: 'Damage', health: 108, maxHealth: 108, shield: 0, hotTicks: 0 },
{ id: 'nyx', name: 'Nyx', role: 'Damage', health: 100, maxHealth: 100, shield: 0, hotTicks: 0 },
]
export const SPELLS: Spell[] = [
{
id: 'mend',
key: '1',
name: 'Mend',
description: 'A fast, efficient single-target heal.',
cost: 5,
cooldown: 0.5,
power: 30,
glyph: '+',
kind: 'direct',
},
{
id: 'renew',
key: '2',
name: 'Renew',
description: 'Heals now and continues healing over time.',
cost: 7,
cooldown: 0.5,
power: 12,
glyph: '~',
kind: 'hot',
},
{
id: 'radiance',
key: '3',
name: 'Radiance',
description: 'Restores health to every living party member.',
cost: 12,
cooldown: 8,
power: 18,
glyph: '*',
kind: 'group',
},
{
id: 'ward',
key: '4',
name: 'Sun Ward',
description: 'Places a damage-absorbing shield on your target.',
cost: 8,
cooldown: 7,
power: 36,
glyph: 'O',
kind: 'shield',
},
{
id: 'purify',
key: '5',
name: 'Purify',
description: 'Removes a harmful effect and restores a little health.',
cost: 5,
cooldown: 5,
power: 10,
glyph: 'x',
kind: 'cleanse',
},
]
export const ENCOUNTERS: Encounter[] = [
{
id: 'ashfang-pack',
enemyName: 'Ashfang Pack',
description: 'Three beasts snap at random party members.',
maxHealth: 390,
damage: 13,
tankDamage: 7,
partyDamage: 24,
isBoss: false,
},
{
id: 'cinder-adepts',
enemyName: 'Cinder Adepts',
description: 'Cultists pressure the tank while throwing embers into the group.',
maxHealth: 470,
damage: 16,
tankDamage: 10,
partyDamage: 25,
isBoss: false,
},
{
id: 'warden-vhal',
enemyName: 'Warden Vhal',
description: 'Boss: cleanse Searing Mark and prepare group healing for Cinder Pulse.',
maxHealth: 820,
damage: 18,
tankDamage: 13,
partyDamage: 27,
isBoss: true,
},
]