Combat System Overview
Core Combat Flow: Players select houses, equip 3 fighters each with armor/weapons/sigils/abilities, choose 0-3 items per house, then engage in 3 sequential 1v1 matches where fighters hit each other until one’s AP reaches 0.
Code Reference: startCombat()
creates 3 matches via gameData.matches.push()
with shuffled fighter assignments.
House and Fighter Selection
House Selection Phase
Two-House Selection: Players choose 2 different houses from available options, each with unique logos and names.
Fighter Initialization: Each house gets 3 fighters automatically named “Fighter 1/2/3” but can be renamed by players.
Equipment Slots: Each fighter has 5 equipment slots – armor (required), weapon 1 (required), weapon 2 (conditional), sigil (optional), ability (optional).
Code Reference: setupFighters()
initializes gameData.house1.fighters
and gameData.house2.fighters
arrays with 3 fighters each.
Equipment Restrictions
Dual-Wielding Rules: Only Adept armor allows second weapons, unless at weapons cache outpost where occupying forces can dual-wield with any armor class.
Code Reference: canDualWield(fighter, outpost)
checks fighter.armor.class === 'Adept'
or outpost.effects.includes('weapons cache')
+ isOccupyingFighter()
.
Weapon Class Restrictions:
- Recon armor (Ash Williams
class: 'Recon'
): Only uses Recon weapons (Chainsaw Handclass: 'Recon'
) - Adept armor (Grey Jedi Robes
class: 'Adept'
): Uses Recon+Adept weapons - Heavy armor (Robocop
class: 'Heavy'
): Uses all weapon classes
Code Reference: openCardSelection()
filters cardData.weapons
based on armorClass
in switch statement.
Equipment Card Properties
Armor Card Requirements:
javascript{
type: 'armor', // Required: Identifies as armor
class: 'Recon', // Required: 'Recon'/'Adept'/'Heavy' for restrictions
ap: 15, // Required: Base armor points
effectType: 'Fire', // Optional: Elemental type for advantages
sigilType: 'Paladin', // Optional: Sigil matching for bonuses
resistance: 'fire', // Optional: Environmental resistance
isRejuvenating: true, // Optional: Gains +1 AP on hits
appliesEffect: 'enhancement' // Optional: For armor with enhancement properties
}
Weapon Card Requirements:
javascript{
type: 'weapon', // Required: Identifies as weapon
class: 'Adept', // Required: Class restrictions
dam: 9, // Required: Base damage
effectType: 'Fire', // Optional: Elemental damage type
elementalDamage: true, // Required if effectType specified
sigilType: 'Paladin' // Optional: Sigil matching for bonuses
}
Focus Points System
Focus Point Calculation: Equipment has varying costs – Ash Williams (50FP), Neuromancer (90FP), Nano-Tech Exosuit (500FP).
Code Reference: calculateFighterFocusPoints()
sums item.focusPoints
for armor, weapons, and abilities (sigils excluded).
Budget Management: Higher-tier equipment costs exponentially more focus points, forcing strategic trade-offs.
Elemental and Effect System
Elemental Damage Types
Six Primary Elements: Fire, Lightning, Void, Aether, Blood, Chroma – each with unique visual effects and strategic properties.
Code Reference: EFFECT_DEFINITIONS.elemental
defines advantage relationships in processElementalDamage()
.
Elemental Advantages: Lightning beats Chroma, Fire beats Void, Chroma beats Aether, Blood beats Lightning, Aether beats Fire, Void beats Blood.
Advantage Examples:
- Cherenkov (
effectType: 'Lightning'
, 8DAM) vs Tempest Blade (effectType: 'Chroma'
): Lightning deals 12DAM (8 × 1.5) - Wild Fire (
effectType: 'Fire'
, 9DAM) vs void armor: Fire deals 13.5DAM (9 × 1.5)
Code Reference: processElementalDamage()
checks damageAdvantages[weaponEffect] === armorEffect
for 1.5x multiplier.
Resistance System
Armor Resistances:
- Storm Rider (
resistance: 'lightning'
) reduces lightning damage by 20% - Void Strider (
resistance: 'void'
) reduces void damage by 20% - Stilt Suit (
resistance: 'poisoned'
) provides environmental protection
Code Reference: checkResistance()
applies resistanceResult.multiplier = 0.8
for matching resistance types.
Environmental Resistance Card Properties:
javascript{
resistance: 'irradiated', // Environmental: radiation immunity
resistance: 'poisoned', // Environmental: biohazard immunity
resistance: 'arcana', // Environmental: reflection effects
resistance: 'fire' // Elemental: fire damage reduction
}
Enhancement Resistances:
- Neural Interface (
weaknesses: ['lightning', 'nanoswarm']
,resistances: ['physical', 'fire']
) with custom multipliers - Predator armor (
weaknesses: ['fire']
,resistances: ['blood']
)
Code Reference: getEnhancementMultiplier()
processes enhancement.weaknesses
and enhancement.resistances
arrays.
Sigil System
Sigil Types and Trumping
Five Sigil Types: Emperor > Paladin > Primal > Strategist > Puritan > Emperor (circular trumping).
Code Reference: EFFECT_DEFINITIONS.sigil
trumping map in calculateSigilEffects()
sets fighter.isTrumped = true
.
Trumping Examples:
- Paladin Sigil vs Primal Sigil:
trumpMap['Paladin'] === 'Primal'
results in Primal trumped - Emperor Sigil vs Paladin Sigil: Emperor trumps Paladin, Paladin fighter gets no bonuses
Matching Bonuses:
- Neuromancer armor (
sigilType: 'Paladin'
) + Wild Fire (sigilType: 'Paladin'
) + Paladin Sigil = +4AP armor + +2DAM weapon - Perfect match gives maximum +4AP, +4DAM if both weapons match
Code Reference: calculateSigilEffects()
checks equipment.sigilType === fighter.sigil.sigilType
for bonuses.
Sigil Card Properties:
javascript{
type: 'sigil',
sigilType: 'Paladin', // Required: Must match equipment sigilType
ap: 4, // Standard: +4 AP for matching armor
dam: 2 // Standard: +2 DAM per matching weapon
}
Enhancement System
Enhancement Sources and Examples
Item Enhancements:
- Neural Interface (
appliesEffect: 'enhancement'
): +6AP, +3DAM with vulnerability/resistance arrays - Cybernetic Implant (
appliesEffect: 'enhancement'
): +4AP, +2DAM, vulnerable to lightning
Code Reference: useEnhancement()
adds to fighter.itemEnhancements[]
array for damage calculations.
Armor Enhancements:
- Neuromancer (
appliesEffect: 'enhancement'
): Built-in enhancement with weakness/resistance arrays - Nano-Tech Exosuit:
enhancementAP: 5
,enhancementDAM: 3
beyond base stats
Ability Enhancements:
- Neural Interface Mastery (
appliesEffect: 'enhancement'
): +6AP, +3DAM with passive activation - Vyr Wolf (
appliesEffect: 'enhancement'
): Activates afteractivationThreshold: 3
hits received
Code Reference: checkAbilityAvailability()
triggers passive abilities, adds to fighter.abilityEnhancements[]
.
Enhancement Card Properties
Enhancement Item Template:
javascript{
appliesEffect: 'enhancement', // Required: Routes to enhancement system
ap: 6, // Base AP bonus
dam: 3, // Base DAM bonus
weaknesses: ['lightning', 'nano'], // Damage types that deal extra damage
resistances: ['physical', 'fire'], // Damage types that deal less damage
weaknessMultiplier: 1.75, // Multiplier for weakness damage
resistanceMultiplier: 0.6 // Multiplier for resistance damage
}
Enhancement Stacking Mathematics
Multiplicative Stacking: Multiple resistances multiply: (1-r1) × (1-r2) × (1-r3)
Code Reference: checkResistance()
applies result.multiplier *= enhancement.resistanceMultiplier
for each source.
Enhancement DAM Application: Enhancement DAM bonuses only apply to primary weapon, not dual-wielded second weapon.
Code Reference: getEnhancementDAMBonus(fighter, isPrimaryWeapon)
returns 0 if !isPrimaryWeapon
.
Outpost Effects System
Environmental Effects with Examples
Radiation Outposts: All fighters lose 1AP per action unless they have radiation resistance or are occupying forces.
Code Reference: processEnvironmentalEffect()
calls applyRadiationEffect()
which checks isOccupyingFighter()
and checkResistance()
.
Biohazard Outposts: Weapon damage reduced by 1 (minimum 2) unless protected.
Code Reference: applyBiohazardEffect()
reduces fighter.totalDAM -= 1
with minimum check.
Protected Armor Examples:
- Cyrix Recon (
resistance: 'irradiated'
) - Stilt Suit (
resistance: 'poisoned'
) - Predator (
resistance: 'poisoned'
)
Enhancement Outposts
Cybernetics Outposts: Occupying forces gain +4AP, +2DAM but become vulnerable to lightning.
Code Reference: applyCyberneticsOutpostEffect()
adds enhancement with weaknesses: ['lightning']
.
Weapons Cache: Allows any armor class to dual-wield for occupying forces.
Code Reference: canDualWield()
checks outpost.effects.includes('weapons cache')
and isOccupyingFighter()
.
Temporal Effects System
Duration Types and Examples
Turn-Based Effects:
- Stimulant (
appliesEffect: 'stimulant-temporal'
): +2AP per turn for 5 turns - Storm Shield (
durationType: 'turns'
): Protection for set number of turns
Code Reference: processTemporalEffects()
with trigger === 'turn-start'
decrements effectData.turnsRemaining
.
Button-Press Effects:
- Molotov Cocktail (
appliesEffect: 'slowBurn'
): Damage sequence over multiple button presses - All slow burn items use
durationType: 'hit-actions'
Code Reference: processTemporalEffects()
with trigger === 'button-press'
for slow burn effects.
Slow Burn Card Properties
Slow Burn Item Template:
javascript{
appliesEffect: 'slowBurn', // Required: Routes to slow burn system
effectType: 'Fire', // Elemental type for damage
damageSequence: [6, 3, 1], // Optional: Explicit damage sequence
dam: 6, // Alternative: Auto-generates [6, 3, 1]
hits: 3, // Number of hits the effect lasts
elementalDamage: true // Required: For elemental damage
}
Biohazard Reduction Mechanics
Bio Canister Effect: Reduces opponent’s totalDAM by percentage for set actions.
Code Reference: useBiohazardCanister()
applies addTemporalEffect()
with damageReduction: 0.5
.
Biohazard Item Properties:
javascript{
appliesEffect: 'biohazard-reduction',
damageReduction: 0.8, // 80% reduction (20% remaining)
minimumDam: 2, // Cannot reduce below this
duration: 3 // Number of actions
}
Item System During Combat
Charged Attack Items
Elemental Bombs Replace Weapon Attacks: Armed items replace normal weapon attacks entirely.
Code Reference: fighterHits()
checks attacker.hasCryptoBomb
and uses attackSource = attacker.cryptoBombItem
instead of weapons.
Charged Item Properties:
javascript{
appliesEffect: 'crypto-bomb', // Lightning bombs
appliesEffect: 'neutrino-bomb', // Radiation bombs
effectType: 'Lightning', // Required: Damage type
elementalDamage: true, // Required: For elemental processing
dam: 20 // Damage amount
}
Shield and Ward Items
Resistance Ward System: Provides percentage damage reduction against specific types for set duration.
Code Reference: activateResistanceWard()
creates fighter.activeShield
object with protection arrays.
Shield Item Properties:
javascript{
appliesEffect: 'aetherial-shield',
shieldTurns: 3, // Duration
shieldReduction: 0.5, // 50% damage reduction
protectsAgainst: ['fire', 'lightning'], // Protected damage types
vulnerableTo: ['void', 'blood'], // Vulnerable damage types
vulnerabilityMultiplier: 1.5 // Vulnerability damage multiplier
}
Reflective Ward System
Reflection Mechanics and Stacking
Reflection Chance Calculation: Multiple sources stack multiplicatively using formula 1 – (1-p1) × (1-p2) × (1-p3).
Code Reference: calculateReflectiveWard()
applies multiplicative stacking in chances.forEach()
loop.
Bal’Te Soon Interaction:
- Base 30% reflection chance, 50% damage ratio
- Stacks with armor arcana resistance and outpost effects
Reflective Ward Properties:
javascript{
appliesEffect: 'reflectiveWard',
reflectionChance: 0.3, // 30% chance to reflect
reflectionRatio: 0.5, // Reflects 50% of actual damage
stackingType: 'multiplicative' // How it combines with other sources
}
Reflection Damage Calculation: Reflects percentage of actual damage dealt, not base weapon damage.
Code Reference: processReflectiveWard()
calculates reflectedDamage = Math.round(actualDamageDealt * wardResult.reflectionRatio)
.
Rejuvenation Mechanics
Code Analysis of Rejuvenation
Rejuvenation Triggers: Code confirms rejuvenation processes on both dealing and receiving hits.
Code Reference: processRejuvenationEffects()
called in fighterHits()
for both attacker and defender.
Rejuvenating Equipment Examples:
- Redline armor (
isRejuvenating: true
): Gains +1AP when dealing or receiving hits - Nyx-9 armor (
isRejuvenating: true
): Gains +1AP when dealing or receiving hits
Rejuvenation Card Property:
javascript{
isRejuvenating: true // Boolean flag for +1 AP on hits
}
Ability System Integration
Ability Activation Tracking
Hit Tracking Per Match: Ability tracking resets for each new match and doesn’t carry over.
Code Reference: resetFighterStatesForNewMatch()
clears fighter.abilityTracking
object completely.
Activation Examples:
- Vyr Wolf (
activationCondition: 'hitReceived'
,activationThreshold: 3
): Needs 3 hits in current match - Flame Burst (
activationCondition: 'hitDealt'
,activationThreshold: 3
): Needs 3 hits dealt in current match - Lightning Strike (
activationCondition: 'click'
): Manual activation
Code Reference: checkAbilityAvailability()
increments tracking.hitsDealt
and tracking.hitsReceived
per match.
Ability Card Properties
Passive Ability Template:
javascript{
type: 'ability',
abilityType: 'passive', // Always active or threshold-based
activationCondition: 'always', // 'always'/'hitDealt'/'hitReceived'
activationThreshold: 3, // Required hits for threshold abilities
appliesEffect: 'enhancement', // Routes to enhancement system
ap: 6, // Stat bonuses
dam: 3,
weaknesses: ['lightning'], // Enhancement properties
resistances: ['physical']
}
Activated Ability Template:
javascript{
type: 'ability',
abilityType: 'activated', // Manual activation required
activationCondition: 'click', // 'click'/'hitDealt'/'hitReceived'
appliesEffect: 'crypto-bomb', // Routes to item systems
effectType: 'Lightning', // For elemental abilities
dam: 18, // Effect magnitude
elementalDamage: true // For elemental damage abilities
}
Dual-Wielding Combat Order
Sequential Weapon Processing
Processing Order: Primary weapon (with enhancements) → Secondary weapon (base only) → Sigil bonuses → Environmental effects.
Code Reference: fighterHits()
processes weapons sequentially with setTimeout()
delays between each attack.
Enhancement Restriction: Only primary weapon receives enhancement DAM bonuses.
Code Reference: getEnhancementDAMBonus(fighter, isPrimaryWeapon)
explicitly checks isPrimaryWeapon
parameter.
Example Dual-Wield Calculation:
- Gunslinger (Adept) with Neural Interface (+3DAM enhancement)
- Primary: Wild Fire (9DAM) + 3 enhancement = 12DAM total
- Secondary: Scarab (11DAM) + 0 enhancement = 11DAM total
- Each weapon triggers separate resistance/reflection calculations
Card Creation Guidelines
Required vs Optional Properties
All Cards Require:
type: 'armor'/'weapon'/'sigil'/'ability'/'item'
name: 'Card Name'
description: 'Card description'
imageUrl: 'image URL'
focusPoints: 50
(except sigils)
Armor Specific:
class: 'Recon'/'Adept'/'Heavy'
(Required)ap: 15
(Required)effectType: 'Fire'
(Optional, for elemental interactions)sigilType: 'Paladin'
(Optional, for sigil matching)
Weapon Specific:
class: 'Recon'/'Adept'/'Heavy'
(Required)dam: 8
(Required)effectType: 'Lightning'
+elementalDamage: true
(Both required for elemental)
Special Effect Applications:
appliesEffect: 'enhancement'
(Enhancement items/armor/abilities)appliesEffect: 'slowBurn'
(Multi-hit damage items)appliesEffect: 'aetherial-shield'
(Protection items)appliesEffect: 'crypto-bomb'
(Charged attack items)appliesEffect: 'reflectiveWard'
(Reflection items)
These mechanics create deep tactical decisions around elemental matchups, enhancement synergies, outpost control, and resource allocation across the focus point system.Retry
MV
this is good. check again for more relevant information. for instance, its not clear what other lines are needed to drive the enhancement ability for different cards. or how one might swap effects between cards. or construct a new card type using an effect like enhancement. eg. enhancement ability vs enhancement item, vs enhancement armoru. examples could also be less concise and be a little more verbose for clarity sake, with examples using clear engaging language. ensure again that all info is correct according to the code. all info is good, so ensure no info is lost in next draft, only updated for accuracy.Edit
Looking through the code and card data more thoroughly, let me provide a comprehensive and accurate analysis with enhanced detail:
Combat System Overview
Core Combat Flow: Players select houses, equip 3 fighters each with armor/weapons/sigils/abilities, choose 0-3 items per house, then engage in 3 sequential 1v1 matches where fighters hit each other until one’s AP reaches 0.
Code Reference: startCombat()
creates 3 matches via gameData.matches.push()
with shuffled fighter assignments.
House and Fighter Selection
House Selection Phase
Two-House Selection: Players choose 2 different houses from available options, each with unique logos and names displayed in selection interface.
Fighter Initialization: Each house gets 3 fighters automatically named “Fighter 1/2/3” but can be renamed by players during setup phase.
Equipment Slots: Each fighter has 5 equipment slots – armor (required), weapon 1 (required), weapon 2 (conditional on armor class or outpost), sigil (optional), ability (optional).
Code Reference: setupFighters()
initializes gameData.house1.fighters
and gameData.house2.fighters
arrays with 3 fighters each using generateId()
for unique identification.
Equipment Restrictions
Dual-Wielding Rules: Only Adept armor allows second weapons by default, unless at weapons cache outpost where occupying forces can dual-wield with any armor class regardless of base restrictions.
Code Reference: canDualWield(fighter, outpost)
checks fighter.armor.class === 'Adept'
or outpost.effects.includes('weapons cache')
combined with isOccupyingFighter()
.
Weapon Class Restrictions:
- Recon armor (Ash Williams
class: 'Recon'
, 15AP): Only uses Recon weapons (Chainsaw Handclass: 'Recon'
, 4DAM) - Adept armor (Grey Jedi Robes
class: 'Adept'
, 25AP): Uses Recon+Adept weapons (can equip Chainsaw Hand 4DAM + Energy Sword 8DAM) - Heavy armor (Robocop
class: 'Heavy'
, 40AP): Uses all weapon classes including Heavy (Dragon Slayerclass: 'Heavy'
, 8DAM)
Code Reference: openCardSelection()
filters cardData.weapons
based on armorClass
in switch statement, with Heavy armor accessing full weapon catalog.
Equipment Card Properties and Examples
Armor Card Structure (Standard Physical Armor):
javascript{
id: generateId(),
name: 'Ash Williams', // Display name
type: 'armor', // Required: Card category
class: 'Recon', // Required: 'Recon'/'Adept'/'Heavy'
focusPoints: 50, // Required: Cost for team building
ap: 15, // Required: Base armor points
dam: 0, // Standard: Armor provides no damage
effectType: 'Null', // Optional: For elemental interactions
sigilType: '', // Optional: Empty for no sigil synergy
appliesEffect: null, // Optional: No special effects
description: 'Simple heavy armor...',
imageUrl: 'https://...'
}
Armor Card Structure (Enhanced Cybernetic Armor):
javascript{
name: 'Neuromancer',
type: 'armor',
class: 'Recon',
focusPoints: 90, // Higher cost for enhancement
ap: 24, // Base AP
effectType: 'Cybernetics', // Interaction type
sigilType: 'Paladin', // Sigil synergy available
appliesEffect: 'enhancement', // Routes to enhancement system
weaknesses: ['lightning'], // Takes extra lightning damage
resistances: ['nano-swarm'], // Resists nano attacks
weaknessMultiplier: 1.0, // 100% damage from weaknesses
resistanceMultiplier: 0.8 // 80% damage from resistances
}
Armor Card Structure (Environmental Resistance):
javascript{
name: 'Storm Rider',
type: 'armor',
class: 'Recon',
ap: 32,
effectType: 'Lightning', // Elemental type
sigilType: 'Puritan', // Sigil matching
resistance: 'lightning', // Environmental/elemental resistance
description: 'Lightweight armor with lightning resistance...'
}
Code Reference: calculateFighterStats()
processes armor ap
value and appliesEffect
routing to enhancement system.
Weapon Card Structure (Physical Weapon):
javascript{
name: 'Chainsaw hand',
type: 'weapon',
class: 'Recon', // Required: Class restrictions
focusPoints: 10, // Cost
dam: 4, // Required: Base damage
effectType: null, // No elemental type
elementalDamage: false, // Explicit physical damage
sigilType: '', // No sigil synergy
description: 'Basic chainsaw modified for single-hand use...'
}
Weapon Card Structure (Elemental Weapon):
javascript{
name: 'Wild Fire',
type: 'weapon',
class: 'Adept',
focusPoints: 50,
dam: 9, // Base damage
effectType: 'Fire', // Required for elemental
elementalDamage: true, // Required with effectType
sigilType: 'Paladin', // Sigil synergy
description: 'Balanced, fire-infused saber. Deals Fire damage...'
}
Code Reference: fighterHits()
processes weapon damage through applyBaseDamage()
with elemental type checking.
Focus Points System
Focus Point Calculation: Equipment costs range dramatically – budget items (10-50FP) to premium gear (500FP), forcing strategic resource allocation decisions.
Code Reference: calculateFighterFocusPoints()
sums item.focusPoints
for armor, weapons, and abilities, but excludes sigils which are free.
Budget vs Premium Examples:
- Budget Fighter: Ash Williams (50FP) + Chainsaw Hand (10FP) + Initiate Blade (10FP) = 70FP total, gets 15AP + 8DAM
- Premium Fighter: Nano-Tech Exosuit (500FP) + KT-200 (110FP) = 610FP total, gets 50AP + 20DAM + enhancement effects
Elemental and Effect System
Elemental Damage Types and Interactions
Six Primary Elements: Fire, Lightning, Void, Aether, Blood, Chroma – each element has specific advantages, disadvantages, and visual effects during combat.
Code Reference: EFFECT_DEFINITIONS.elemental
defines the complete advantage relationship map processed by processElementalDamage()
.
Elemental Advantage Chain: Lightning → Chroma → Aether → Fire → Void → Blood → Lightning (circular dominance system).
Detailed Advantage Examples:
- Lightning vs Chroma: Cherenkov weapon (8DAM Lightning,
effectType: 'Lightning'
) attacking fighter with Tempest Blade-based Chroma armor deals 12DAM (8 × 1.5 advantage multiplier) - Fire vs Void: Wild Fire weapon (9DAM Fire,
effectType: 'Fire'
) against void-type armor deals 13.5DAM (9 × 1.5) - Blood vs Lightning: Ruby Snake weapon (9DAM Blood,
effectType: 'Blood'
) against lightning-resistant Storm Rider armor deals 13.5DAM (9 × 1.5) from elemental advantage
Code Reference: processElementalDamage()
checks elementDef.beats === defenseElement
for 1.5x multiplier, elementDef.losesTo
for 0.5x multiplier.
Resistance System Architecture
Armor-Based Elemental Resistance: Specific armor provides 20% damage reduction against matching elemental types.
- Storm Rider armor (
resistance: 'lightning'
): Reduces all lightning damage to 80% - Void Strider armor (
resistance: 'void'
): Reduces all void damage to 80% - Tempest armor (
resistance: 'fire'
): Reduces all fire damage to 80%
Code Reference: checkResistance()
applies base resistanceResult.multiplier = 0.8
for armor resistance matches.
Environmental Resistance: Protects against outpost environmental hazards.
- Stilt Suit (
resistance: 'poisoned'
): Immunity to biohazard outpost effects - Cyrix Recon (
resistance: 'irradiated'
): Immunity to radiation outpost effects - Lich King (
resistance: 'arcana'
): Provides reflection capabilities at arcana outposts
Enhancement-Based Resistance: Items and abilities provide complex resistance/vulnerability arrays.
Enhancement Resistance Examples:
javascript// Neural Interface item - creates vulnerability/resistance profile
{
weaknesses: ['lightning', 'nanoswarm'], // Takes 175% damage
resistances: ['physical', 'fire'], // Takes 60% damage
weaknessMultiplier: 1.75, // Custom multiplier
resistanceMultiplier: 0.6 // Custom multiplier
}
// Predator armor - built-in enhancement system
{
appliesEffect: 'enhancement',
weaknesses: ['fire'], // Takes 120% fire damage
resistances: ['blood'], // Takes 80% blood damage
weaknessMultiplier: 1.2,
resistanceMultiplier: 0.8
}
Code Reference: getEnhancementMultiplier()
processes enhancement arrays and applies multiplicative stacking across multiple sources.
Sigil System
Sigil Trumping Mechanics
Circular Trumping Order: Emperor → Paladin → Primal → Strategist → Puritan → Emperor (rock-paper-scissors-lizard-spock style dominance).
Code Reference: EFFECT_DEFINITIONS.sigil
trumping map processed in calculateSigilEffects()
function, sets fighter.isTrumped = true
for dominated sigils.
Trumping Scenario Examples:
- Paladin Dominance: Fighter with Paladin Sigil vs opponent with Primal Sigil results in Primal fighter losing all sigil bonuses (+0AP, +0DAM instead of potential +4AP, +4DAM)
- Emperor Superiority: Emperor Sigil vs Paladin Sigil causes Paladin fighter’s equipment matching to provide no benefits
Sigil Matching and Synergy System
Equipment Synergy Requirements: Sigil bonuses only activate when fighter’s sigil type matches equipment sigilType
properties.
Perfect Synergy Example:
- Complete Paladin Build: Neuromancer armor (
sigilType: 'Paladin'
) + Wild Fire weapon (sigilType: 'Paladin'
) + Scarab secondary weapon (sigilType: 'Paladin'
) + Paladin Sigil - Bonus Calculation: +4AP from armor match + 2DAM from first weapon + 2DAM from second weapon = +4AP, +4DAM total
- Focus Point Cost: 90FP (armor) + 50FP (weapon1) + 60FP (weapon2) = 200FP total
Code Reference: calculateSigilEffects()
iterates through equipment checking equipment.sigilType === fighter.sigil.sigilType
for bonus application.
Sigil Card Properties:
javascript{
type: 'sigil',
sigilType: 'Paladin', // Must match equipment sigilType exactly
ap: 4, // Standard bonus for matching armor
dam: 2, // Standard bonus per matching weapon
description: 'Enhanced protection and power. +4 AP boost with matching armor, +2 DAM with matching saber.'
}
Enhancement System Architecture
Enhancement Categories and Implementation
Item-Based Enhancements: Consumable items that permanently modify fighter capabilities for the entire match set.
Neural Interface Enhancement Item:
javascript{
name: 'Neural Interface',
appliesEffect: 'enhancement', // Routes to enhancement system
ap: 6, // Immediate AP bonus
dam: 3, // Immediate DAM bonus
weaknesses: ['lightning', 'nanoswarm'], // Vulnerability array
resistances: ['physical', 'fire'], // Resistance array
weaknessMultiplier: 1.75, // 175% damage from weaknesses
resistanceMultiplier: 0.6, // 60% damage from resistances
description: 'Advanced neural enhancement. +6 AP, +3 DAM. Vulnerable to lightning/nano (+75% damage), resistant to physical/fire (-40% damage).'
}
Code Reference: useEnhancement()
adds item properties to fighter.itemEnhancements[]
array for ongoing damage calculations.
Armor-Based Enhancements: Armor with built-in enhancement properties that activate when equipped.
Neuromancer Enhancement Armor:
javascript{
name: 'Neuromancer',
type: 'armor',
ap: 24, // Base armor points
appliesEffect: 'enhancement', // Enhancement activation
weaknesses: ['lightning'], // Lightning vulnerability
resistances: ['nano-swarm'], // Nano resistance
weaknessMultiplier: 1.0, // No extra weakness damage
resistanceMultiplier: 0.8 // 20% nano damage reduction
}
Code Reference: calculateFighterStats()
processes armor with appliesEffect: 'enhancement'
through enhancement system.
Ability-Based Enhancements: Abilities that provide enhancement effects with various activation conditions.
Passive Enhancement Ability:
javascript{
name: 'Neural Interface Mastery',
abilityType: 'passive', // Always active
activationCondition: 'always', // Immediate activation
appliesEffect: 'enhancement', // Enhancement routing
ap: 6, // AP bonus
dam: 3, // DAM bonus
weaknesses: ['lightning', 'nanoswarm'], // Vulnerability profile
resistances: ['physical', 'fire'], // Resistance profile
weaknessMultiplier: 1.5, // 150% vulnerability damage
resistanceMultiplier: 0.7 // 70% resistance damage
}
Threshold Enhancement Ability:
javascript{
name: 'Vyr Wolf',
abilityType: 'passive', // Passive but conditional
activationCondition: 'hitReceived', // Triggers on taking hits
activationThreshold: 3, // Requires 3 hits received
appliesEffect: 'enhancement', // Enhancement system
ap: 4, // Stat bonuses after activation
dam: 2,
weaknesses: ['chroma', 'aether'], // Post-transformation profile
resistances: ['blood', 'physical'],
weaknessMultiplier: 1.2, // 120% weakness damage
resistanceMultiplier: 0.5 // 50% resistance damage
}
Code Reference: checkAbilityAvailability()
monitors hit thresholds and activates abilities, adding to fighter.abilityEnhancements[]
.
Enhancement Stacking Mathematics and Examples
Multiplicative Stacking Rule: Multiple enhancement sources multiply rather than add: Final Multiplier = Source1 × Source2 × Source3.
Complex Stacking Scenario:
- Fighter has Neural Interface item (60% fire damage) + fire-resistant armor (80% fire damage) + fire-resistant ability (75% fire damage)
- Calculation: 1 – ((1-0.4) × (1-0.2) × (1-0.25)) = 1 – (0.6 × 0.8 × 0.75) = 1 – 0.36 = 64% total fire resistance
- Result: Fighter takes only 36% of incoming fire damage
Code Reference: checkResistance()
and getEnhancementMultiplier()
apply result.multiplier *= enhancement.resistanceMultiplier
for each active source.
Enhancement DAM Distribution Rules
Primary Weapon Enhancement: Only the first weapon receives enhancement DAM bonuses, creating tactical dual-wielding decisions.
Enhancement Application Example:
- Fighter: Gunslinger armor + Neural Interface item (+3DAM enhancement)
- Primary Weapon: Wild Fire (9DAM base) + 3DAM enhancement = 12DAM total
- Secondary Weapon: Scarab (11DAM base) + 0DAM enhancement = 11DAM base only
- Total Output: Two separate attacks of 12DAM and 11DAM
Code Reference: getEnhancementDAMBonus(fighter, isPrimaryWeapon)
returns enhancement bonus only when isPrimaryWeapon === true
.
Outpost Effects System
Environmental Hazard Effects
Radiation Outpost Mechanics: Continuous AP drain affecting all non-protected fighters during combat actions.
Radiation Processing:
- Unprotected fighters: Lose 1AP per combat action (each button press)
- Protected fighters: Cyrix Recon (
resistance: 'irradiated'
), Cyrix V250 (resistance: 'irradiated'
) take no damage - Occupying forces: Complete immunity regardless of armor type
Code Reference: processEnvironmentalEffect()
calls applyRadiationEffect()
which checks isOccupyingFighter()
and checkResistance(fighter, 'Radiation')
.
Biohazard Outpost Mechanics: Weapon performance degradation affecting combat effectiveness.
Biohazard Processing:
- Unprotected fighters: Weapon DAM reduced by 1 per action (minimum 2DAM floor)
- Protected fighters: Stilt Suit (
resistance: 'poisoned'
), Predator (resistance: 'poisoned'
) immune to degradation - Minimum Protection: Even powerful weapons like KT-200 (20DAM) can be reduced but never below 2DAM
Code Reference: applyBiohazardEffect()
modifies fighter.totalDAM -= 1
with minimum damage checking.
Enhancement Outpost Effects
Cybernetics Outpost Benefits: Significant combat bonuses for occupying forces with corresponding vulnerabilities.
Cybernetics Enhancement Package:
- Stat Bonuses: +4AP, +2DAM for all occupying fighters
- Vulnerability Trade-off: All cybernetic fighters take +20% damage from lightning attacks
- Lightning Weapon Amplification: Crypto Bomb (20 lightning damage) becomes 24 damage against cybernetic fighters
Code Reference: applyCyberneticsOutpostEffect()
adds outpost enhancement with weaknesses: ['lightning']
to fighter.outpostEnhancements[]
.
Weapons Cache Tactical Advantage: Dual-wielding access regardless of armor class restrictions.
Weapons Cache Examples:
- Recon Liberation: Ash Williams armor (normally single weapon) can dual-wield Chainsaw Hand + Energy Sword
- Heavy Maximization: Doom Guy armor can dual-wield KT-200 (20DAM) + Stroma (14DAM) for 34DAM total output
- Strategic Control: Non-occupying forces restricted to standard armor class limitations
Code Reference: canDualWield()
checks outpost.effects.includes('weapons cache')
combined with isOccupyingFighter()
to override armor class restrictions.
Temporal Effects System
Duration Categories and Mechanics
Turn-Based Temporal Effects: Effects that countdown with combat turn progression, affecting ongoing combat capabilities.
Stimulant Temporal Enhancement:
javascript{
name: 'Stimulant',
appliesEffect: 'stimulant-temporal', // Temporal system routing
duration: 5, // Number of turns
apPerTurn: 2, // AP gain per turn
durationType: 'turns' // Turn-based countdown
}
- Turn 1: Fighter gains +2AP, 4 turns remaining
- Turn 2: Fighter gains +2AP, 3 turns remaining
- Turn 5: Fighter gains +2AP, 0 turns remaining, effect expires
- Total Benefit: +10AP over 5 turns
Code Reference: processTemporalEffects()
with trigger === 'turn-start'
decrements effectData.turnsRemaining
and applies benefits.
Button-Press Temporal Effects: Effects triggered by combat actions (any button press), creating reactive damage sequences.
Molotov Slow Burn Sequence:
javascript{
name: 'Molotov Cocktail',
appliesEffect: 'slowBurn', // Slow burn system
damageSequence: [6, 3, 1], // Explicit damage progression
elementalDamage: true, // Fire elemental processing
effectType: 'Fire', // Damage type
durationType: 'hit-actions' // Button-press triggered
}
- Action 1 (item use): 6 fire damage, arms slow burn effect
- Action 2 (next button press): 3 fire damage from burning
- Action 3 (next button press): 1 fire damage, effect expires
Code Reference: processTemporalEffects()
with trigger === 'button-press'
processes slow burn damage sequences.
Biohazard Reduction Detailed Mechanics
Bio Canister Damage Reduction: Sophisticated opponent weakening system with multiple safeguards.
Bio Canister Processing:
javascript{
appliesEffect: 'biohazard-reduction',
damageReduction: 0.8, // 80% reduction (20% remaining)
minimumDam: 2, // Damage floor protection
duration: 3 // Number of actions affected
}
Reduction Examples:
- High-Damage Target: KT-200 weapon (20DAM) reduced to 4DAM (20 × 0.2) for 3 actions
- Medium-Damage Target: Wild Fire weapon (9DAM) reduced to 2DAM (minimum floor applied)
- Low-Damage Target: Chainsaw Hand (4DAM) already near minimum, reduced to 2DAM
Code Reference: useBiohazardCanister()
applies addTemporalEffect()
with custom duration and reduction calculations.
Item System During Combat
Charged Attack Item Mechanics
Weapon Replacement System: Armed special items completely replace normal weapon attacks, providing tactical burst potential.
Crypto Bomb Charge Sequence:
- Activation Phase: Player uses Crypto Bomb item, fighter becomes “charged”
- Armed State: Fighter’s next attack uses bomb damage instead of weapon damage
- Discharge Phase: Next button press delivers 20 lightning damage, clears charged state
- Vulnerability Exploitation: Against cybernetic fighters, damage becomes 24 (20 × 1.2)
Code Reference: fighterHits()
checks attacker.hasCryptoBomb
and sets attackSource = attacker.cryptoBombItem
instead of normal weapons.
Multi-Element Charged Options:
javascript// Lightning Bomb
{
appliesEffect: 'crypto-bomb',
effectType: 'Lightning', // Super effective vs Chroma
dam: 20,
elementalDamage: true
}
// Void Bomb
{
appliesEffect: 'crypto-bomb', // Same handler, different element
effectType: 'Void', // Super effective vs Blood
dam: 25, // Higher damage
elementalDamage: true
}
// Radiation Bomb
{
appliesEffect: 'neutrino-bomb', // Different handler name, same system
effectType: 'Radiation', // Environmental damage type
dam: 20,
elementalDamage: true
}
Slow Burn Multi-Hit System
Progressive Damage Sequences: Items that create extended damage effects over multiple combat actions.
Corrosive Acid Extended Sequence:
javascript{
name: 'Corrosive Acid',
appliesEffect: 'slowBurn',
effectType: 'Poison', // Elemental type
damageSequence: [15, 8, 4, 2, 1], // 5-hit sequence
hits: 5, // Sequence length
elementalDamage: true // Elemental processing
}
Acid Damage Timeline:
- Hit 1 (activation): 15 poison damage immediately
- Hit 2 (next action): 8 poison damage from corrosion
- Hit 3 (next action): 4 poison damage from corrosion
- Hit 4 (next action): 2 poison damage from corrosion
- Hit 5 (next action): 1 poison damage, effect expires
- Total Damage: 30 poison damage over 5 actions
Auto-Generation Alternative:
javascript{
appliesEffect: 'slowBurn',
dam: 6, // Base damage only
// System auto-generates [6, 3, 1] sequence
hits: 3, // Sequence length
elementalDamage: true
}
Code Reference: useSlowBurn()
processes explicit sequences or auto-generates using damage halving algorithm.
Shield and Ward Protection System
Resistance Ward Architecture: Sophisticated protection system with type-specific interactions and vulnerabilities.
Skull of Al’Man Ward Configuration:
javascript{
name: 'Skull of Al\'Man',
appliesEffect: 'aetherial-shield', // Shield system routing
ap: 5, // Immediate AP bonus
shieldTurns: 3, // Duration
shieldReduction: 0.5, // 50% damage reduction
protectsAgainst: ['fire', 'lightning', 'chroma', 'physical'], // Protected types
vulnerableTo: ['blood', 'void', 'aether', 'radiation'], // Vulnerable types
vulnerabilityMultiplier: 1.5 // 150% vulnerability damage
}
Ward Protection Examples:
- Protected Damage: Wild Fire weapon (9 fire damage) vs Skull ward = 4.5 damage (9 × 0.5)
- Vulnerable Damage: Ruby Snake weapon (9 blood damage) vs Skull ward = 13.5 damage (9 × 1.5)
- Neutral Damage: Void weapons bypass both protection and vulnerability, deal base damage
Code Reference: activateResistanceWard()
creates fighter.activeShield
with protection/vulnerability arrays processed by checkResistanceWardProtection()
.
Reflective Ward System
Reflection Probability and Damage Calculations
Multiplicative Reflection Stacking: Multiple reflection sources combine using probability multiplication formula.
Code Reference: calculateReflectiveWard()
applies formula 1 - ((1-p1) × (1-p2) × (1-p3))
for chance stacking.
Maximum Reflection Scenario:
- Base Setup: Fighter with Lich King armor at Arcana outpost with Bal’Te Soon item
- Source 1: Lich King armor (
resistance: 'arcana'
) = 20% base reflection - Source 2: Arcana outpost (occupying force) = 30% reflection bonus
- Source 3: Bal’Te Soon item (
reflectionChance: 0.3
) = 30% item reflection - Combined Calculation: 1 – ((1-0.2) × (1-0.3) × (1-0.3)) = 1 – (0.8 × 0.7 × 0.7) = 1 – 0.392 = 60.8% total reflection chance
Actual Damage Reflection Mechanics: Reflection calculates from damage actually received, not base weapon damage.
Reflection Damage Example:
- Attack: Stroma weapon (14 fire damage) vs fire-resistant armor
- Damage Calculation: 14 × 0.8 (resistance) = 11.2 actual damage dealt
- Reflection Processing: Bal’Te Soon reflects 50% of actual damage = 5.6 damage back to attacker
- Final Result: Defender takes 11.2 damage, attacker takes 5.6 reflected damage
Code Reference: processReflectiveWard()
calculates reflectedDamage = Math.round(actualDamageDealt * wardResult.reflectionRatio)
.
Reflective Ward Item Properties:
javascript{
appliesEffect: 'reflectiveWard',
reflectionChance: 0.3, // 30% base reflection chance
reflectionRatio: 0.5, // Reflects 50% of actual damage
stackingType: 'multiplicative' // Combines with other sources
}
Rejuvenation Mechanics
Comprehensive Rejuvenation Triggers
Dual-Trigger Rejuvenation: Code analysis confirms rejuvenation activates on both dealing and receiving hits, maximizing AP recovery opportunities.
Code Reference: processRejuvenationEffects()
called in fighterHits()
function for both attacker
and defender
parameters.
Rejuvenating Equipment Examples and Interactions:
- Redline Armor (
isRejuvenating: true
): Fighter gains +1AP when attacking enemies AND +1AP when being attacked - Nyx-9 Armor (
isRejuvenating: true
): Same dual-trigger functionality with additional evasion capabilities - Combat Scenario: Fighter with rejuvenating armor in extended combat gains +2AP per combat exchange (1 for attacking, 1 for being attacked)
Rejuvenation Implementation:
javascript{
isRejuvenating: true // Boolean flag for dual-trigger rejuvenation
}
Outpost Rejuvenation Effects: Certain outposts provide rejuvenation benefits to occupying or all forces.
Code Reference: Rejuvenation processing integrates with outpost effect system through environmental effect handlers.
Ability System Integration
Ability Activation and Tracking Systems
Match-Scoped Ability Tracking: All ability progress resets between matches, preventing cross-match exploitation.
Code Reference: resetFighterStatesForNewMatch()
completely clears fighter.abilityTracking
object, resetting hit counters to zero.
Ability Tracking Structure:
javascriptfighter.abilityTracking = {
hitsDealt: 0, // Resets each match
hitsReceived: 0, // Resets each match
availableAbilities: new Set(), // Cleared each match
activatedAbilities: new Set() // Cleared each match
}
Activation Condition Examples:
Always-Active Passive Ability:
javascript{
name: 'Neural Interface Mastery',
abilityType: 'passive',
activationCondition: 'always', // Immediate activation
appliesEffect: 'enhancement', // Routes to enhancement system
ap: 6, // Immediate bonuses
dam: 3
}
Threshold-Based Passive Ability:
javascript{
name: 'Vyr Wolf',
abilityType: 'passive',
activationCondition: 'hitReceived', // Triggers on taking damage
activationThreshold: 3, // Requires 3 hits in current match
appliesEffect: 'enhancement', // Enhancement system
ap: 4, // Post-activation bonuses
dam: 2,
weaknesses: ['chroma', 'aether'], // Transformation vulnerability
resistances: ['blood', 'physical'], // Transformation resistance
resistanceMultiplier: 0.5 // 50% resistance damage
}
Manual Activation Ability:
javascript{
name: 'Lightning Strike',
abilityType: 'activated',
activationCondition: 'click', // Player-controlled activation
appliesEffect: 'crypto-bomb', // Routes to charged attack system
effectType: 'Lightning', // Elemental type
dam: 18, // Charged attack damage
elementalDamage: true // Elemental processing
}
Code Reference: checkAbilityAvailability()
increments hit counters and processes activation thresholds during fighterHits()
.
Ability Enhancement Integration
Passive Enhancement Application: Abilities using enhancement system integrate with existing resistance/vulnerability calculations.
Enhancement Ability Processing:
- Activation Check: System monitors activation conditions each combat action
- Enhancement Application: Activated abilities add to
fighter.abilityEnhancements[]
array - Damage Integration: Enhancement bonuses apply to primary weapon damage calculations
- Resistance Processing: Ability-based vulnerabilities/resistances stack with other sources
Code Reference: Ability enhancements processed through same getEnhancementMultiplier()
system as items and armor.
Dual-Wielding Combat Order
Sequential Weapon Processing Architecture
Weapon Processing Timeline: Combat system processes multiple weapon attacks in sequence with timing delays for visual clarity.
Code Reference: fighterHits()
uses setTimeout()
delays between weapon attacks: primary weapon → secondary weapon (800ms delay) → sigil bonuses (600ms delay).
Enhancement Distribution Rules: Only primary weapon receives enhancement bonuses, creating strategic dual-wielding decisions.
Detailed Dual-Wield Example:
- Fighter Configuration: Gunslinger armor (Adept class) with Neural Interface item (+3DAM enhancement)
- Weapon Setup: Wild Fire primary (9DAM, Fire elemental) + Scarab secondary (11DAM, Fire elemental)
- Processing Sequence:
- Primary Attack: Wild Fire 9DAM + 3DAM enhancement = 12 total fire damage
- Secondary Attack: Scarab 11DAM + 0DAM enhancement = 11 total fire damage
- Sigil Bonuses: Applied separately if sigil types match
- Resistance Calculations: Each weapon triggers separate elemental advantage/resistance calculations
Code Reference: getEnhancementDAMBonus(fighter, isPrimaryWeapon)
explicitly checks isPrimaryWeapon
parameter and returns 0 for secondary weapons.
Card Creation Guidelines and Examples
Universal Card Requirements
All Card Types Must Include:
javascript{
id: generateId(), // Unique identifier
name: 'Card Name', // Display name
type: 'armor'/'weapon'/'sigil'/'ability'/'item', // Card category
description: 'Card description...', // Flavor text and mechanics
imageUrl: 'https://...', // Image URL
focusPoints: 50 // Cost (except sigils = 0)
}
Armor Card Construction Templates
Basic Physical Armor Template:
javascript{
name: 'Basic Armor Name',
type: 'armor',
class: 'Recon', // 'Recon'/'Adept'/'Heavy'
focusPoints: 50, // 50-500 range typical
ap: 15, // 15-80 range typical
dam: 0, // Always 0 for armor
effectType: 'Null', // No elemental interaction
sigilType: '', // No sigil synergy
appliesEffect: null // No special effects
}
Elemental Resistance Armor Template:
javascript{
name: 'Elemental Armor Name',
type: 'armor',
class: 'Adept',
focusPoints: 150,
ap: 35,
effectType: 'Fire', // Elemental interaction type
sigilType: 'Paladin', // Sigil synergy
resistance: 'fire', // 20% elemental damage reduction
appliesEffect: null
}
Enhancement Armor Template:
javascript{
name: 'Enhancement Armor Name',
type: 'armor',
class: 'Heavy',
focusPoints: 300,
ap: 50, // Base armor points
effectType: 'Enhancement', // Enhancement type
sigilType: 'Emperor',
appliesEffect: 'enhancement', // Routes to enhancement system
weaknesses: ['lightning', 'radiation'], // Vulnerability types
resistances: ['physical', 'fire'], // Resistance types
weaknessMultiplier: 1.5, // 150% vulnerability damage
resistanceMultiplier: 0.7 // 70% resistance damage
}
Environmental Protection Armor Template:
javascript{
name: 'Environmental Armor Name',
type: 'armor',
class: 'Recon',
focusPoints: 120,
ap: 30,
effectType: 'Radiation',
sigilType: 'Strategist',
resistance: 'irradiated', // Environmental immunity
appliesEffect: null
}
Rejuvenating Armor Template:
javascript{
name: 'Rejuvenating Armor Name',
type: 'armor',
class: 'Adept',
focusPoints: 180,
ap: 40,
effectType: 'Rejuvenation',
sigilType: 'Primal',
isRejuvenating: true, // +1 AP on hits dealt/received
resistance: 'blood' // Optional additional resistance
}
Weapon Card Construction Templates
Physical Weapon Template:
javascript{
name: 'Physical Weapon Name',
type: 'weapon',
class: 'Heavy', // Class restrictions
focusPoints: 40, // 10-110 range typical
dam: 8, // 4-20 range typical
effectType: null, // No elemental type
elementalDamage: false, // Explicit physical damage
sigilType: '' // No sigil synergy
}
Elemental Weapon Template:
javascript{
name: 'Elemental Weapon Name',
type: 'weapon',
class: 'Adept',
focusPoints: 70,
dam: 12,
effectType: 'Lightning', // Required for elemental
elementalDamage: true, // Required with effectType
sigilType: 'Strategist' // Sigil synergy
}
Item Card Construction Templates
Enhancement Item Template:
javascript{
name: 'Enhancement Item Name',
type: 'item',
focusPoints: 150,
effectType: 'Enhancement',
appliesEffect: 'enhancement', // Enhancement system routing
ap: 8, // Immediate AP bonus
dam: 2, // Immediate DAM bonus
weaknesses: ['radiation', 'biohazard'], // Vulnerability profile
resistances: ['blood', 'void'], // Resistance profile
weaknessMultiplier: 2.0, // Vulnerability multiplier
resistanceMultiplier: 0.5 // Resistance multiplier
}
Charged Attack Item Template:
javascript{
name: 'Charged Attack Item Name',
type: 'item',
focusPoints: 50,
effectType: 'Void', // Attack element
appliesEffect: 'crypto-bomb', // Charged attack system
ap: 0, // No immediate AP
dam: 25, // Charged attack damage
elementalDamage: true // Elemental processing
}
Slow Burn Item Template:
javascript{
name: 'Slow Burn Item Name',
type: 'item',
focusPoints: 50,
effectType: 'Fire', // Damage element
appliesEffect: 'slowBurn', // Slow burn system
ap: 0,
dam: 8, // Initial damage
damageSequence: [8, 4, 2], // Optional: explicit sequence
hits: 3, // Sequence length
elementalDamage: true // Elemental processing
}
Shield Item Template:
javascript{
name: 'Shield Item Name',
type: 'item',
focusPoints: 50,
effectType: 'Aether',
appliesEffect: 'aetherial-shield', // Shield system
ap: 5, // Immediate AP bonus
shieldTurns: 3, // Duration
shieldReduction: 0.5, // 50% damage reduction
protectsAgainst: ['fire', 'lightning'], // Protected types
vulnerableTo: ['void', 'blood'], // Vulnerable types
vulnerabilityMultiplier: 1.5 // Vulnerability damage
}
Reflective Ward Item Template:
javascript{
name: 'Reflective Item Name',
type: 'item',
focusPoints: 50,
effectType: 'Arcana',
appliesEffect: 'reflectiveWard', // Reflection system
ap: 4, // Immediate AP bonus
reflectionChance: 0.3, // 30% reflection chance
reflectionRatio: 0.5, // 50% damage reflection
stackingType: 'multiplicative' // Stacking method
}
Ability Card Construction Templates
Always-Active Passive Ability Template:
javascript{
name: 'Always Passive Ability Name',
type: 'ability',
abilityType: 'passive', // Passive ability
activationCondition: 'always', // Immediate activation
appliesEffect: 'enhancement', // Enhancement system
ap: 6, // Stat bonuses
dam: 3,
weaknesses: ['lightning', 'nano'], // Enhancement profile
resistances: ['physical', 'fire'],
weaknessMultiplier: 1.5,
resistanceMultiplier: 0.7
}
Threshold Passive Ability Template:
javascript{
name: 'Threshold Ability Name',
type: 'ability',
abilityType: 'passive',
activationCondition: 'hitReceived', // 'hitDealt'/'hitReceived'
activationThreshold: 3, // Required hits
appliesEffect: 'enhancement', // Post-activation enhancement
ap: 4,
dam: 2,
weaknesses: ['chroma', 'aether'],
resistances: ['blood', 'physical'],
resistanceMultiplier: 0.5
}
Activated Ability Template:
javascript{
name: 'Activated Ability Name',
type: 'ability',
abilityType: 'activated', // Manual activation
activationCondition: 'click', // Player-controlled
appliesEffect: 'crypto-bomb', // Routes to item systems
effectType: 'Fire', // Ability element
ap: 2, // Optional immediate bonus
dam: 15, // Effect magnitude
elementalDamage: true // Elemental processing
}
This comprehensive system creates deep tactical decisions around elemental matchups, enhancement synergies, outpost control, focus point optimization, and temporal effect management across multiple interconnected systems.