Futura Game Development: An update

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 Hand class: '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:

Weapon Card Requirements:

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:

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:

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 after activationThreshold: 3 hits received

Code Reference: checkAbilityAvailability() triggers passive abilities, adds to fighter.abilityEnhancements[].

Enhancement Card Properties

Enhancement Item Template:

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:

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:

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:

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:

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:

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:

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:

Activated Ability Template:

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 Hand class: '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 Slayer class: '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):

Armor Card Structure (Enhanced Cybernetic Armor):

Armor Card Structure (Environmental Resistance):

Code Reference: calculateFighterStats() processes armor ap value and appliesEffect routing to enhancement system.

Weapon Card Structure (Physical Weapon):

Weapon Card Structure (Elemental Weapon):

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:

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:

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:

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:

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:

Threshold Enhancement Ability:

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:

  • 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:

  • 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:

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:

  1. Activation Phase: Player uses Crypto Bomb item, fighter becomes “charged”
  2. Armed State: Fighter’s next attack uses bomb damage instead of weapon damage
  3. Discharge Phase: Next button press delivers 20 lightning damage, clears charged state
  4. 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:

Slow Burn Multi-Hit System

Progressive Damage Sequences: Items that create extended damage effects over multiple combat actions.

Corrosive Acid Extended Sequence:

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:

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:

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:

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:

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:

Activation Condition Examples:

Always-Active Passive Ability:

Threshold-Based Passive Ability:

Manual Activation Ability:

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:

  1. Activation Check: System monitors activation conditions each combat action
  2. Enhancement Application: Activated abilities add to fighter.abilityEnhancements[] array
  3. Damage Integration: Enhancement bonuses apply to primary weapon damage calculations
  4. 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:
    1. Primary Attack: Wild Fire 9DAM + 3DAM enhancement = 12 total fire damage
    2. Secondary Attack: Scarab 11DAM + 0DAM enhancement = 11 total fire damage
    3. 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:

Armor Card Construction Templates

Basic Physical Armor Template:

Elemental Resistance Armor Template:

Enhancement Armor Template:

Environmental Protection Armor Template:

Rejuvenating Armor Template:

Weapon Card Construction Templates

Physical Weapon Template:

Elemental Weapon Template:

Item Card Construction Templates

Enhancement Item Template:

Charged Attack Item Template:

Slow Burn Item Template:

Shield Item Template:

Reflective Ward Item Template:

Ability Card Construction Templates

Always-Active Passive Ability Template:

Threshold Passive Ability Template:

Activated Ability Template:

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.

recent matches

Leave a Reply

guildmaster registration

This registration form is for Club Managers and existing Guild Masters.

Instructor Details
Qualifications

Note: File sizes must not exceed 2MB

Training Centre Details
Next of Kin
Confirmation