Skip to content

Archived on 2026-10-24. The Godot rewrite is cancelled. Migration decisions and work checklists below are withdrawn. Original claims, code examples, file paths, and completion statements have not all been revalidated. Use the current documentation and issue register for maintenance decisions.

Unity Ability Behavior Catalog

Purpose

Catalog current Unity ability behavior by AbilityType. This is a trace map for auditing the existing code, not a design for another engine.

Global Ability Runtime

Area Current Unity Behavior
Data asset Assets/Script/Game/Data/Ability.cs stores type, cooldownTime, staminaCost, isOnCooldown, and currentCooldownTime.
Registration AbilityFunction.AddAbility appends the asset reference to Player.AbilityHolder.abilities and resets cooldown fields. Character abilities are added by AbilityHolder.PlayerSettingsAbilityFirstTime; upgrade abilities are added by UpgradeFunction.SelectUpgrade.
Cooldown AbilityFunction.UseAbility blocks if the ability is missing or isOnCooldown. Unless bypassed, CooldownTimer sets isOnCooldown, starts CurrentCooldownTimer, waits 0.5 seconds, then waits (cooldownTime - 0.5f) * cooldownModifier, then clears cooldown.
Coroutine ownership AbilityFunction starts behavior coroutines on AbilityHolder and tracks replacement by a string key made from function and ability name.
Behavior location Most ability behavior is not on the Ability asset. It is hardcoded across AbilityHolder, PlayerWeapon, Player, and PlayerAttack.
Asset risk Several ability assets currently serialize runtime cooldown state such as isOnCooldown: 1 or nonzero currentCooldownTime.

Character Ability Catalog

AbilityType Trigger Source Cooldown Behavior Owning Script / Method Related Prefabs Affected Stats / State Dependencies / Notes
Dash Player dash input in AbilityHolder.Update Uses ability cooldown rules but asset cooldown is 0; stamina gate uses character dash cost AbilityHolder.Dash dash audio, roll explosion/vacuum/airstrike/tidal effects via linked abilities stamina, invulnerability, movement force, dash state, DodgeRoll count Triggers many roll abilities: BARoll, TacticalFire, RunandGun, FocusDodge, BombRoll, VacuumDodge, Airstrike, TidalVeil; skips some effects under SuddenDeath.
Frenzy AbilityHolder.Update for Soldier Asset cooldown 30, modifier SoldierFrenzyCDModif AbilityHolder.Frenzy soldierFrenzyEffect SoldierIsFrenzy, weapon/reload behavior Duration scales from max stamina. Soldier dash can reload ammo while frenzy exists.
ProtoBarrier AbilityHolder.Update; auto when shield inactive and stamina/cooldown allow Cooldown is overwritten from reload speed; stamina cost can be rewritten from max stamina threshold AbilityHolder.ProtoBarrier, ProtoSwordActivator, ProtoSword knightProtoBarrier, knightProtoBarrierExplosion, knightSuperSlash shield, stamina, weapon projectile swap, reflected/absorbed damage behavior Player.TakeDamage contains barrier damage behavior; PlayerWeapon triggers sword logic on fire.
StarBurst Star Wanderer weapon fire and charge logic No normal cooldown; tied to charge/projectile state PlayerWeapon.CheckReadyFireWeapon, PlayerWeapon.AttackModify, AbilityHolder.StarBurstShield charge indicator effect projectile type, damage scaling, hit count StarBurstShield is present but appears empty. Unknown / needs manual confirmation.
LusterBurst PlayerWeapon.FireWeapon when ability exists Counter style behavior, not standard cooldown AbilityHolder.LusterBurst Archer burst projectile path projectile swap, magic damage, pierce chance Character evolution hook for Archer.
ArtemisBurst AbilityHolder.Update Standard cooldown, asset cooldown 10 AbilityHolder.ArtemisBurst archerArtemisArrow spawns arrow carriers, damage based on ammo/magic Evolution-like Archer behavior.
GroundBreaker Miner weapon fire and crit/cooldown hooks Cooldown based on reload speed; crit counter coroutine AbilityHolder.GroundBreakerCooldown, GroundBreakerCrit, GroundBreaker Miner attack projectile, minerGem via LuckyFind assured crit count, projectile swap, LuckyFind chance Character evolution hook for Miner.
LuckyFind Triggered by Miner GroundBreaker chance Bypasses cooldown in activator AbilityHolder.LuckyFind minerGem spawns gem item/effect Also appears as ability asset/evolution.
RocketBarrage AbilityHolder.Update when nearest enemy list is nonempty Standard cooldown with Star Wanderer missile cooldown modifier AbilityHolder.RocketBarrage zenovaMissileCarrier spawns homing missiles Depends on player target list.
SkyYingSword Celestial weapon mode and upgrade interactions No standard cooldown PlayerWeapon.CheckReadyFireWeapon, PlayerAttack, AbilityHolder.PlayerSettingsAbilityFirstTime celestialYinSword, lightning, soaring sword weapon exclusivity, lightning mark, companion swords Name appears as SkyYingSword; future docs should preserve current spelling.
HeavenYangSword AbilityHolder.Update while rotator count below target Cooldown based on reload speed AbilityHolder.CelestialYangSword celestialYangSword, celestialYangSwordRotator spawns circular swords Celestial character behavior.
AbyssOrb Priestess weapon exclusivity and orb setup No standard cooldown AbilityHolder.PlayerSettingsAbilityFirstTime, PlayerWeapon.CheckReadyFireWeapon, PlayerAttack priestessAbyssOrb companion orb/projectile behavior Unknown / needs manual confirmation for full orb attack rules.
TidalVeil Dash grants stacks; damage can break/deactivate Stack uses bypass; break uses reload-derived cooldown AbilityHolder.TidalVeilStack, TidalVeilDeactive, Player.TakeDamage priestessTidalVeilObject shield stacks, water projectile flag Priestess character behavior.

General Ability Catalog

AbilityType Trigger Source Cooldown Behavior Owning Script / Method Related Prefabs Affected Stats / State Dependencies / Notes
NoRefereces Placeholder/default None known Data enum / assets with type 0 None known None known Several assets use type 0 while their behavior is upgrade-switch based. Unknown / needs manual confirmation.
FreezingPendant Weapon hit modifier No standard cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D hit/freeze effects from attack prefab freeze/slow status on enemies Projectile flag copied into spawned explosions/vacuum.
ExplodingEnchantment Weapon hit modifier No standard cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D explosion prefab on attack extra magic explosion damage Carries poison/freeze/CImpact flags into explosion.
Ricochet Projectile hit No standard cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D bounce projectile from current attack additional chained projectile Uses nearest enemy search/list; special handling for Celestial/Priestess projectile types.
FuturePills Upgrade/passive Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Enum and asset exist; behavior not confirmed in inspected core methods.
PoisonVial Weapon hit modifier No standard cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D poison status effect poison ticks, damage based on skill amp Also applied by vacuum.
FailedVitamin Health/stat update and evolution timer Evolution waits 120 seconds Player stat checks, UpgradeEvoFunction None known health-related behavior Exact runtime stat effect Unknown / needs manual confirmation.
DoubleEdge Weapon damage calculation No standard cooldown PlayerWeapon.AttackModify None known +60 percent damage style modifier May combine with SuddenDeath.
FleeBoots After taking damage Standard cooldown Player.TakeDamage, AbilityHolder.FleeBoots None known temporary movement/escape effect Exact stat change Unknown / needs manual confirmation.
FocusDodge Dash Standard cooldown AbilityHolder.FocusDodge None known dodge-linked effect Exact stat change Unknown / needs manual confirmation.
ThornArmor After taking damage No standard cooldown; evolution tracks reflected damage Player.TakeDamage, UpgradeEvoFunction reflected damage effect via player damage code reflect damage count Evolves after ReflectedDamageCount >= 500.
SurvivalFitness Dash and damage reactions No standard cooldown AbilityHolder.Dash, Player.TakeDamage None known stamina cost reduction/recovery Affects dash stamina cost and post-hit stamina behavior.
QuickHand Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset/enum exists, behavior not confirmed in inspected paths.
FirstAid After taking damage Standard cooldown Player.TakeDamage, AbilityHolder.FirstAid None known healing/recovery Exact values Unknown / needs manual confirmation.
TrueVitamin Health/stat update No standard cooldown Player stat checks None known health-related evolved effect Evolved from FailedVitamin; exact values Unknown / needs manual confirmation.
DemonPact Upgrade/passive Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists; current runtime hook not confirmed.
JetPropulsion After taking damage and upgrade activation Standard cooldown for start/crash cycle UpgradeFunction, Player.TakeDamage, AbilityHolder.JetPropulsionStart, JetPropulsionCrashed crash effect movement/bonus buildup, crash state UpgradeFunction.JETPROP starts activator and resets bonus.
LightBlessing AbilityHolder.Update Standard cooldown AbilityHolder.LightBlessingCycle lightBlessEffect, lightBlessFail blessing/fail state Exact effects Unknown / needs manual confirmation.
FatalFK Critical hit No standard cooldown PlayerWeapon.AttackModify None known crit/stat bonuses Name likely Fatal Flow Knowledge.
PiercingBullet Critical hit No standard cooldown PlayerWeapon.AttackModify current projectile projectile hit/pierce behavior Exact fields changed Unknown / needs manual confirmation.
CCombo Weapon fire Standard cooldown PlayerWeapon.FireWeapon, AbilityHolder.CCombo None known combo counter/attack behavior Ignored when fixed modifier disables CCombo.
PotOverlord Potion system Unknown / needs manual confirmation AbilityFunction.CallPotion likely adjacent Unknown potion state Behavior not confirmed.
MageApp Upgrade stat modification No standard cooldown UpgradeFunction.SelectUpgrade None HP/STM/SAMP scaling HP/STM gains halved, skill amp gains doubled.
PSkin Upgrade/stat and evolution timer Evolution waits 120 seconds UpgradeFunction, Player stat checks, UpgradeEvoFunction None known damage taken reduction, stamina to HP conversion Also one of evolution paths.
FailedSupplement Upgrade/stat and evolution timer Evolution waits 120 seconds Player stat checks, UpgradeEvoFunction None known stamina/skill related Exact runtime effect Unknown / needs manual confirmation.
TrueSupplement Evolved effect No standard cooldown Player stat checks None known stamina/skill related Evolved from FailedSupplement; exact values Unknown / needs manual confirmation.
TacticalFire Dash Standard cooldown AbilityHolder.TacticalFire None known attack/fire modifier Exact stat changes Unknown / needs manual confirmation.
RunandGun Dash Standard cooldown AbilityHolder.RunandGun None known move/fire modifier Current spelling is RunandGun.
CImpact Critical hit and projectile hit No standard cooldown; evolution tracks crit count PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D, UpgradeEvoFunction stun/impact effect from attack stun flag, crit counter Evolves after CImpactCritCount >= 100.
PanicFrenzy After taking damage Standard cooldown or passive trigger Player.TakeDamage, AbilityHolder.PFrenzy berserkEffect maybe frenzy-like state Exact behavior Unknown / needs manual confirmation.
BARoll Dash Standard cooldown; skipped by SuddenDeath AbilityHolder.AidRoll None known heal/support on roll Asset name Band Aid Roll.
RPGBuff Upgrade/passive Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset/enum exists; behavior not confirmed.
UMalice Dash No standard cooldown AbilityHolder.Dash None known self damage/stat gain Paired with CMalice.
BerserkerBlood Weapon fire No standard cooldown PlayerWeapon.FireWeapon None known attack behavior Exact values Unknown / needs manual confirmation.
EmergencyShield Low health or lethal damage Standard cooldown Player.TakeDamage, AbilityHolder.EmergencyBarrier emergencyBarrierObject, emergencyBarrierExplodeObject blocks/prevents lethal damage, shield explosion Called EmergencyBarrier in script methods/prefabs.
Revive Upgrade selection No ability cooldown UpgradeFunction.SelectUpgrade None revives inactive players, restores HP/stamina, camera, cooldowns UpgradeList.REVIVE handles behavior, not ability coroutine.
Multishoot Weapon fire No standard cooldown PlayerWeapon.FireWeapon, AttackModify, AbilityHolder upgrade handling extra projectiles/extra swords/orbs adds two projectiles, damage multiplier 0.3 Special handling with SkyYingSword and AbyssOrb.
SuperMagnet Evolution condition/collectible behavior Evolution waits for coin count >= 300 UpgradeEvoFunction, collection code magnet/vacuum effects magnet radius/collection Evolved from magnet path; full runtime effect Unknown / needs manual confirmation.
GKStaff Boss upgrade selection No cooldown UpgradeFunction.SelectUpgrade None crit damage/chance/skill amp Boss upgrade.
GKArmor Boss upgrade selection No behavior in switch beyond comment UpgradeFunction.SelectUpgrade None Unknown Case exists but no effect found. Unknown / needs manual confirmation.
UltraMagnet AbilityHolder.Update Standard cooldown, asset cooldown 30 AbilityHolder.UltraMagnetCycle magnet effect if assigned magnet/collection behavior Exact effect Unknown / needs manual confirmation.
ADPact Upgrade/passive Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset Ancient Demon Pact exists.
CMalice Dash No standard cooldown AbilityHolder.Dash None known self damage/stat gain Paired with UMalice.
ETArmor After taking damage Standard cooldown for triggered effect; evolution target from ThornArmor Player.TakeDamage, AbilityHolder.ETArmorTriggered, UpgradeEvoFunction explosion effect reflect/explosion/Judgement chance Evolved thorn armor behavior.
Sniper Passive/weapon Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown range/damage likely Behavior not confirmed in inspected paths.
SurvivalInstinct AbilityHolder.Update, Player stat checks No cooldown found AbilityHolder.SurvivalInstinctActivator, Player None known survival stat behavior Exact thresholds Unknown / needs manual confirmation.
Strafe Passive/weapon Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown movement/attack likely Behavior not confirmed.
Sharpshooter Passive/weapon Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown crit/range likely Behavior not confirmed.
Assassination Weapon fire with target conditions Standard cooldown, asset cooldown 3 PlayerWeapon.FireWeapon, AbilityHolder.Assassination None known execute/bonus attack behavior Exact thresholds Unknown / needs manual confirmation.
AdrenalineRush After taking damage Standard cooldown, asset cooldown 3 Player.TakeDamage, AbilityHolder.AdrenalineRushStart None known temporary stat boost Exact stat changes Unknown / needs manual confirmation.
PManiac Potion system Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown potion behavior Asset Potion Maniac exists.
BombRoll Dash Standard cooldown, asset cooldown 5 AbilityHolder.BombRoll rollExplosion explosion around player Uses pool.
Armored Upgrade selection No ability cooldown UpgradeFunction.SelectUpgrade None bonus damage and HP from attack speed Caps derived bonus at 150.
AdeptLearner Upgrade stat gains No cooldown UpgradeFunction.SelectUpgrade None increases most basic stat upgrade gains by 1.5x Passive ability check.
AcidicPool In-development/special Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists, not confirmed in core behavior.
Opportunist Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists, behavior not confirmed.
Invigorate Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists, behavior not confirmed.
Chainmail Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists, behavior not confirmed.
FinalForm After taking damage Standard cooldown/one-shot style trigger Player.TakeDamage, AbilityHolder.FinalFormBoost finalformEffect final form boost, prevents repeat with state flags Skipped/altered by SuddenDeath.
VampireBE Weapon hit heal No standard cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D None known heals on hit Disabled by SuddenDeath.
UniqueCons Damage intake No cooldown Player.TakeDamage None stamina conversion to reduce damage Current spelling is UniqueCons; asset name Unique Constitution.
SuddenDeath Multiple damage/heal exclusions No cooldown Player, PlayerWeapon, PlayerAttack, AbilityHolder None blocks revive/heal/vampiric/roll aid; changes damage rules Cross-cutting passive.
AlchemistTouch Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset exists; behavior not confirmed.
SWBody Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown Unknown Asset Stalwart Body exists.
JetCrash Jet propulsion crash Triggered from JetPropulsion state AbilityHolder.JetPropulsionCrashed crash effect crash damage/state Enum exists; current asset/upgrade mapping Unknown / needs manual confirmation.
SureFire Weapon fire No standard cooldown PlayerWeapon.FireWeapon None assured shot/crit behavior Exact effect Unknown / needs manual confirmation.
LateBloomer Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown stat scaling likely Behavior not confirmed.
UnsteadyHand Weapon fire No standard cooldown PlayerWeapon.FireWeapon, AttackModify None unstable shot/damage behavior Exact effect Unknown / needs manual confirmation.
Enrage After taking damage Triggered if not already enraged Player.TakeDamage, AbilityHolder.Enrage enragedEffect enraged state Exact stat changes Unknown / needs manual confirmation.
Quartet Reward rolling No cooldown RewardRoller reward UI special reward choices may increase to 4 Behavior found in reward selection.
Quintet Reward rolling Unknown / needs manual confirmation RewardRoller or related reward UI reward choice count likely Exact behavior not confirmed.
SoulWager Weapon damage calculation No cooldown PlayerWeapon.AttackModify None random HP/damage tradeoff Disabled/altered by SuddenDeath.
BloodThirst Weapon fire/damage taken Standard cooldown, asset cooldown 60 PlayerWeapon.FireWeapon, Player.TakeDamage, AbilityHolder.BloodThirst blood effect if assigned healing/attack state Need exact trigger thresholds. Unknown / needs manual confirmation.
DePetrify Evolved PSkin behavior No cooldown Player stat checks, UpgradeEvoFunction None damage/stamina behavior Evolved from PSkin; exact values Unknown / needs manual confirmation.
Rebuke Damage taken and weapon fire Bypass/standard mixed Player.TakeDamage, PlayerWeapon.FireWeapon, AbilityHolder.Rebuke rebuke effect if assigned retaliatory/projectile behavior Exact state Unknown / needs manual confirmation.
VacuumDodge Dash Standard cooldown, asset cooldown 5 AbilityHolder.VacuumRoll, PlayerAttack rollVacuum vacuum plus poison/freeze application Named Vacuum Roll in asset.
ReloadShield Reload start/weapon state Standard cooldown, asset cooldown 7 PlayerWeapon, AbilityHolder.ReloadShieldDuration, Player.TakeDamage reloadShieldObject absorbs damage during reload shield Current shield HP/duration in script state.
StaminaBoost Passive/upgrade Unknown / needs manual confirmation Unknown / needs manual confirmation Unknown stamina behavior Asset exists, behavior not confirmed.
Shrapnel Weapon hit modifier No cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D split/bounce projectiles projectile split behavior Exact spawn pattern Unknown / needs manual confirmation.
Airstrike Dash Standard/uses current cooldown field AbilityHolder.Airstrike, PlayerAttackCarrier airstrikeBomb spawns bombs In-development asset also exists.
StellarShield AbilityHolder.Update Standard cooldown, asset cooldown 30 AbilityHolder.StellarShield, Player.TakeDamage stellarShieldObject, stellarShieldExplodeObject blocks/absorbs damage and explodes Similar to EmergencyShield but proactive cooldown cycle.
HydraBarrage Weapon hit modifier No cooldown PlayerWeapon.AttackModify, PlayerAttack.OnTriggerEnter2D split projectiles splits to nearest enemy, split count scales by level/10 Depends on target search.
LastStand Lethal damage Standard cooldown/one-shot behavior Player.TakeDamage, AbilityHolder.LastStand lastStandEffect prevents death / last stand state Exact recovery values Unknown / needs manual confirmation.
TranscendEclipse AbilityHolder.Update Standard cooldown, asset cooldown 3 AbilityHolder.TranscendOn, EclipseOn transcendArea, eclipseArea alternates area effects Eclipse damage scales with missing HP in PlayerAttack.
WarCry AbilityHolder.Update Standard cooldown, asset cooldown 6 AbilityHolder.WarCryRoar, PlayerAttack warCryRoar enemy slow/freeze and area effect Area applies WarCry flag to attacks.
Meditate AbilityHolder.Update Mixed heal and cooldown methods AbilityHolder.MeditateHeal, MeditateCooldown, Player stat checks meditateEffect heal/cooldown cycle In progress/unclear. Unknown / needs manual confirmation.
Judgement Damage reaction / ETArmor chance Standard cooldown through activator Player.TakeDamage, AbilityHolder.JudgementSword judgementSword sword spawn/damage Method marked in progress. Unknown / needs manual confirmation.

Ability Logic Stored Together In One Script

Assets/Script/Game/Entities/Player/Core/AbilityHolder.cs currently stores character-specific abilities, general passives, dash-linked abilities, shield abilities, attack-spawning abilities, companion spawns, cooldown overrides, and several in-progress methods together.

Notable method groups:

Group Methods
Character startup PlayerSettingsAbilityFirstTime
Update activators DashInput, FrenzyActivator, ArtemisBurstActivator, ProtoBarrierActivator, StarWandererMissileActivator, CelestialYangSwordActivator, LightBlessActivator, UltraMagnetActivator, SurvivalInstinctActivator, StellarShieldActivator, TranscendandEclipseActivator, WarCryActivator, MeditateActivator
Character abilities Dash, Frenzy, ProtoBarrier, ProtoSword, NeoSword, LusterBurst, ArtemisBurst, GroundBreaker*, LuckyFind, RocketBarrage, CelestialYangSword, TidalVeil*
General abilities EmergencyBarrier, StellarShield, JetPropulsion*, AdrenalineRushStart, FinalFormBoost, ETArmorTriggered, TacticalFire, RunandGun, FocusDodge, BloodThirst, AidRoll, BombRoll, VacuumRoll, ReloadShieldDuration, LastStand, EclipseOn, TranscendOn, Rebuke, Airstrike, Meditate*, WarCryRoar, JudgementSword

Open Questions

  • Which ability assets with type: 0 are intentional data-only upgrade labels versus broken references?
  • Which in-development abilities are reachable in production reward tables?
  • Are cooldown fields on assets expected to be reset manually after play mode?
  • Exact behavior for abilities marked Unknown / needs manual confirmation.