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 Upgrade Effect Catalog¶
Purpose¶
Map every Upgrade.UpgradeList enum entry to current behavior in UpgradeFunction.SelectUpgrade.
Global Upgrade Selection Flow¶
RewardRollerchooses eligibleUpgradeassets from basic, special, boss, or ultimate reward tables.UpgradeSelectioncallsUpgradeFunction.SelectUpgrade(player, upgrade).SelectUpgradeincrementsupgrade.upgradeTakenif the asset has amaxUpgradeand has not exceeded it.- The
upgrade.upgradeListswitch mutates player stats, modifier fields, ability lists, run state, or evolution state. - Some upgrade behavior is immediate; some only grants an
Abilityasset whose behavior is triggered elsewhere.
UpgradeList Behavior Map¶
| UpgradeList | Current Behavior | Player / Modifier Fields Changed | Adds Ability / Spawns / Evolves | Dependencies / Notes |
|---|---|---|---|---|
DMG |
Adds flat damage. Boosted by AdeptLearner. |
PlayerModifier.AddDMG |
No | Basic stat upgrade. |
ASP |
Adds attack speed. Boosted by AdeptLearner. |
PlayerModifier.AddASP |
No | Basic stat upgrade. |
CDMG |
Adds critical damage. Boosted by AdeptLearner. |
PlayerModifier.AddCDMG |
No | Basic stat upgrade. |
CCH |
Adds critical chance. Boosted by AdeptLearner. |
PlayerModifier.AddCCH |
No | Basic stat upgrade. |
RS |
Adds reload speed. Boosted by AdeptLearner; reduced when certain character ability types are present. |
PlayerModifier.AddRS |
No | Value is divided for ProtoBarrier or GroundBreaker by 16, RocketBarrage by 8, SkyYingSword by 4. |
MS |
Adds movement speed. Boosted by AdeptLearner. |
PlayerModifier.AddMS |
No | Basic stat upgrade. |
AMMO |
Adds max ammo. Boosted by AdeptLearner. |
PlayerModifier.AddAMMO |
No | Basic stat upgrade. |
HP |
Adds max health. Boosted by AdeptLearner; halved by MageApp. |
PlayerModifier.AddHP |
No | Also affects current survivability through modifier recalculation. |
STM |
Adds max stamina. Boosted by AdeptLearner; halved by MageApp. |
PlayerModifier.AddSTM |
No | Basic stat upgrade. |
SAMP |
Adds skill amp. Boosted by AdeptLearner; doubled by MageApp. |
PlayerModifier.AddSAMP |
No | Basic stat upgrade. |
DMGMODIF |
Adds damage modifier. | modifier.ModifDMG |
No | Modifier field, not flat stat. |
ASPMODIF |
Adds attack speed modifier. | modifier.ModifASP |
No | Modifier field. |
CDMGMODIF |
Adds critical damage modifier. | modifier.ModifCDMG |
No | Modifier field. |
CCHMODIF |
Adds critical chance modifier. | modifier.ModifCCH |
No | Modifier field. |
RSMODIF |
Adds reload speed modifier. | modifier.ModifRS |
No | Modifier field. |
MSMODIF |
Adds movement speed modifier. | modifier.ModifMS |
No | Modifier field. |
AMMOMODIF |
Adds ammo modifier. | modifier.ModifAMMO |
No | Modifier field. |
HPMODIF |
Adds health modifier. | modifier.ModifHP |
No | Modifier field. |
STMMODIF |
Adds stamina modifier. | modifier.ModifSTM |
No | Modifier field. |
SAMPMODIF |
Adds skill amp modifier. | modifier.ModifSAMP |
No | Modifier field. |
EQUIPABILITY |
Adds upgrade.ability to the player's ability list. |
Ability list only, plus possible companion count side effects | Adds ability | AbilityFunction.AddAbility; special handling for Multishoot with SkyYingSword or AbyssOrb to spawn extra sword/orb structures. |
MAGNET |
Increases collect radius. | player.collectItem.magnetRadius |
No | Directly mutates collection component. |
REROLL |
Adds reward rerolls. | GameManager.rerollAmount |
Mutates run state | Singleton dependency. |
STAMINAREGEN |
Adds stamina regeneration amount. | modifier.bonusRegenStaminaAmount |
No | Basic/special stat. |
REVIVE |
Reactivates inactive players and restores half health/stamina. | player active state, health/stamina, reload/invulnerability/regen/dash/cooldown state | Revives players | Also updates camera target list and drone master. No effect if no inactive player? Unknown / needs manual confirmation. |
POTIONBAG |
Increases potion capacity and current potion amount. | modifier.bonusMaxPotion, potion count |
No | Direct potion state mutation. |
WEAPONLEVELUP |
Adds weapon levels up to level 10 and invokes character weapon evolution hooks. | modifier.finalWeaponLevel via AddWeaponLevel |
Can invoke evolution method | Uses WeaponEvoData.instance.evoCharacterList, selects by character id and weapon level index. |
MECHANICENCHANMENT |
Converts bonus critical chance into damage and clears bonus critical chance. | modifier.bonusDamage, modifier.bonusCritChance |
No | Enum spelling is MECHANICENCHANMENT. |
TRUESTAMINA |
Sets bonus/shop stamina to bonus/shop health. | bonusMaxStamina, shopMaxStamina |
No | Direct stat equivalence. |
SENDURANCE |
Converts total bonus skill amp into health/stamina and clears skill amp bonuses. | bonusMaxHealth, bonusMaxStamina, bonusSkillAmp, shopSkillAmp |
No | Named Skillful Endurance in assets. |
PSKIN |
Reduces damage taken, converts stamina into HP, lowers stamina/current stamina. | damageTaken, HP/stamina fields |
No | Also has evolution path through UpgradeEvoFunction. |
DRONE |
Spawns companion drone and assigns player master. | companion list/state | Spawns abilityUser.spawnDrone |
Uses PoolManager; no cap found here. |
ARCHMAGE |
Adds skill amp and damage based on current skill amp. | AddSAMP, AddDMG |
No | Uses final/total skill amp values. |
JETPROP |
Starts jet propulsion activator and resets bonus. | abilityHolder.jetPropulsionBonus |
Starts ability cycle | Depends on AbilityHolder.JetPropulsionActivator. |
GKCROWN |
Adds several style modifiers by 20 percent of current values. | damage, attack speed, reload speed, movement speed modifiers | No | Boss upgrade. |
GKSTAFF |
Adds critical damage, critical chance, and skill amp. | crit damage/chance/skill amp | No | Boss upgrade. |
GKARMOR |
Case exists but no behavior found except comment. | None confirmed | No | Unknown / needs manual confirmation. |
ARMORED |
Calculates bonus from inverse attack speed and adds capped damage plus HP. | damage, health | No | Bonus is capped at 150. |
VAMPIRICCHANCE |
Adds vampiric chance up to a cap. | bonusVampiricChance through AddVampiricChance |
No | Returns early if bonus chance is already at least 5. |
PS |
Adds projectile speed. | PlayerModifier.AddProjectileSpeed |
No | Projectile stat modifier. |
VAMPIRICPOWER |
Adds vampiric healing power. | PlayerModifier.AddVampiricPower |
No | Vampiric hit behavior lives in PlayerAttack. |
DRONEMK2 |
No switch case found in UpgradeFunction.SelectUpgrade. |
None confirmed | Unknown | Enum exists, in-development upgrade asset exists. Unknown / needs manual confirmation. |
KARMAYANA |
Applies randomized stat modifiers in a broad range. | multiple stat modifiers | No | Uses random values; exact distribution should be tested. |
DMGTAKEN |
Adds damage taken modifier. | PlayerModifier.AddDMGTaken |
No | Reduces or increases damage depending on sign/value. |
EVOUPGRADE |
Starts evolution logic for upgrade.evolve. |
evolution coroutine/state | Starts evolution | Calls UpgradeEvoFunction.Instance.StartEvo(upgrade, player); logs if evolve is null. |
Evolution Upgrade Behavior¶
| Source Ability / Upgrade | Completion Condition | Result |
|---|---|---|
SuperMagnet path |
GameDataCount.SuperMagnetCoinCount >= 300 |
Applies evolved upgrade and removes old ability. |
CImpact path |
GameDataCount.CImpactCritCount >= 100 |
Applies evolved upgrade and removes old ability. |
FailedVitamin path |
120 seconds elapsed | Applies evolved upgrade and removes old ability. |
FailedSupplement path |
120 seconds elapsed | Applies evolved upgrade and removes old ability. |
ThornArmor path |
GameDataCount.ReflectedDamageCount >= 500 |
Applies evolved upgrade and removes old ability. |
PSkin path |
120 seconds elapsed | Applies evolved upgrade and removes old ability. |
Problems / Risks¶
UpgradeFunction.SelectUpgradeis a single switch that mutates stats, run state, ability lists, companions, save-like progression state, and evolution state.- Upgrade assets store
upgradeTaken, so reward choices can mutate ScriptableObject assets. - Several upgrades add abilities, but the granted ability's behavior is elsewhere.
DRONEMK2is present in the enum but no behavior case was found in the inspected switch.GKARMORhas a case but no confirmed behavior.
Open Questions¶
- Are
DRONEMK2andGKARMORintentionally unfinished? - Which upgrade paths are reachable in production tables?
- Should
upgradeTakenpersist across runs, or is it meant to be per-run only? - Unknown / needs manual confirmation.