import type { AlignmentGate } from '../NPCs/types'; export type StatType = 'body' | 'mind' | 'heart'; export type CardCategory = 'fallacy' | 'paradox'; export type CardTier = 1 | 2 | 3; export type CardTarget = 'self' | 'enemy'; export interface CombatResources { heart: number; body: number; mind: number; fallacy: number; paradox: number; } export interface CardLearningRequirement { level: number; statRequirementType?: StatType; statRequirementValue?: number; prerequisiteSkill?: string; requiresAlignment?: AlignmentGate; } export interface CardCombatEffects { effectId: string; appliedTo: 'self' | 'opponent'; description?: string; intensity?: number; duration?: number; } export type CardSpecialMechanic = { kind: 'strip_random_buff'; appliedTo: 'self' | 'enemy'; } | { kind: 'convert_enemy_buff_to_self'; } | { kind: 'secondary_heal_self'; stat: StatType; multiplier?: number; } | { kind: 'befriend_attempt'; } | { kind: 'guard'; amount: number; } | { kind: 'rupture'; bonusPct?: number; } | { kind: 'compound'; perDebuff: number; } | { kind: 'siphon'; pct: number; } | { kind: 'barrier'; amount: number; } | { kind: 'riposte'; damage: number; reduce: number; } | { kind: 'execute'; hpPct: number; dotStacks: number; recoilPct?: number; } | { kind: 'amplify'; multiplier: number; }; export interface SynergyPredicate { effectId: string; on: 'caster' | 'target'; intensityMin?: number; durationMin?: number; } export interface CardSynergy { predicate?: SynergyPredicate; bonusDamage?: number; durationDamageMul?: number; intensityDamageMul?: number; resourceTokenDamageMul?: number; consumeMatched?: boolean; consumeAllResources?: boolean; clearAllEffectsBothSides?: boolean; applyEffectOnFire?: CardCombatEffects; } export interface Card { id: string; name: string; category: CardCategory; philosophicalAspect: StatType; description: string; tier: CardTier; targetType: CardTarget; basePower: number; scalingStat: StatType; scalingMultiplier?: number; combatEffects?: CardCombatEffects[]; specialMechanics?: CardSpecialMechanic[]; learningRequirement?: CardLearningRequirement; synergy?: CardSynergy; incrementsFriendship?: number; addedIn?: string; tags?: string[]; } //# sourceMappingURL=types.d.ts.map