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.
Script Inventory¶
Purpose¶
This inventory lists the main first-party scripts, what system they belong to, and whether they should be migrated conceptually, redesigned, or removed. It focuses on behavior and responsibility, not line-by-line C# translation.
Inventory Legend¶
| Status | Meaning |
|---|---|
| Keep concept | Preserve the behavior with a cleaner Godot implementation. |
| Redesign | Preserve player-facing behavior, but split or replace the architecture. |
| Remove / tool only | Do not migrate to runtime unless needed. |
| Confirm | Unknown / needs manual confirmation. |
Highest-Risk Large Scripts¶
| Path | Script | Lines | System | What It Does | Cleanliness | Godot Direction |
|---|---|---|---|---|---|---|
Assets/Script/Game/Entities/Player/Core/AbilityHolder.cs |
AbilityHolder |
1512 | Ability/player | Stores unlocked abilities, character ability state, general ability state, cooldown activators, projectile/effect spawning, dash, shields, buffs, and many character-specific behaviors. | Too large / mixed | Redesign into AbilityRegistry, AbilityRunner, and one behavior script/resource per ability. |
Assets/Script/Game/Entities/Player/Core/Player.cs |
Player |
960 | Player/combat | Movement, input, target list, damage/shields, death, health/stamina regen, animation/particles. | Too large / mixed | Split into movement, health/damage, target sensor, character loadout, feedback. |
Assets/Script/Game/Entities/Player/Weapons/PlayerWeapon.cs |
PlayerWeapon |
816 | Weapon/projectile/ability hooks | Aims, reloads, fires, applies ability flags, calculates damage/crit, handles multishot and character weapon behavior. | Too large / mixed | Redesign into weapon runner plus attack modifiers/effects. |
Assets/Script/Game/Managers/GameManager.cs |
GameManager |
769 | Run loop | Singleton run authority, UI refs, score, rewards, game over, save updates, leaderboard payloads, stage unlocks. | Too large / mixed | Split into run state, score, reward, game over, UI flow, progression, leaderboard. |
Assets/Script/Game/Entities/Enemies/Enemy.cs |
Enemy |
748 | Enemy | Enemy health, state machine, player targeting, damage, rewards, death, CC, flee logic. | Mixed | Keep concept, split health/reward/state/targeting. |
Assets/Script/Game/Entities/Player/Stats/PlayerModifier.cs |
PlayerModifier |
589 | Stats | Calculates final stats from base, shop, upgrade, temporary, ability modifiers. | Mixed | Keep concept as stat model/calculator; replace direct ability checks with effect stack. |
Assets/Script/Shared/GameDataCount.cs |
GameDataCount |
546 | Progression/achievements | Runtime counters, save aggregation, achievement triggering. | Mixed | Keep concept, split run counters from achievement rule evaluation. |
Assets/Script/External/Network/LeaderboardManager.cs |
LeaderboardManager |
565 | Network/platform | HTTP leaderboard retrieval/posting, local cache, UI coordination, popularity. | Mixed | Confirm if needed; isolate platform/network outside core run. |
Assets/Script/Game/GameSystem/Rewards/RewardRoller.cs |
RewardRoller |
485 | Rewards/UI | Queues reward events, rolls upgrade choices, animates cards/chests, handles reroll. | Mixed but better bounded | Keep concept, split roll logic from UI animation. |
Assets/Script/Game/GameSystem/Upgrades/UpgradeFunction.cs |
UpgradeFunction |
468 | Upgrades | Giant switch applying upgrade enum effects to players. | Too large / hardcoded | Redesign into UpgradeEffect resources/scripts. |
Assets/Script/Game/Entities/EnemySpawner/SpawnerEventManager.cs |
SpawnerEventManager |
414 | Spawn/stage | Runs creep/special/boss spawn schedules, suppresses creep spawns during miniboss/special, boss transition. | Mixed | Keep concept as SpawnDirector; clarify event state. |
Runtime Core Scripts¶
| Path | Script | System | Important Public Fields / Methods | Dependencies | Cleanliness | Migration |
|---|---|---|---|---|---|---|
Assets/Script/Game/GameSystem/Bootstrap/GameInitializer.cs |
GameInitialization |
Run bootstrap | ImportRewardTable, PrepareSpawnAndGameManagerData, PreparePlayer; flags rewardPreparationInit, spawnerManagerInit, gameManagerInit, characterInit. |
GameManager, GameSession, GameDataLoader, CameraController. |
Mixed but understandable | Keep concept as stage/run bootstrap. |
Assets/Script/Game/GameSystem/GameState/GameStateService.cs |
GameStateService |
Run state | IsPaused, IsRewarding, IsGameOver, IsBossDefeated, OnStateChanged, UpdateTimeScale. |
Unity Time.timeScale. |
Clean | Keep concept; Godot should emit signals and control pause mode. |
Assets/Script/Game/GameSystem/Player/PlayerManager.cs |
PlayerManager |
Level/XP | AddExperience, EvaluatePendingLevel, OnRewardReady; applies Future Pills and RPG buff on level-up. |
Player, AbilityFunction, AbilityResources. |
Mostly clean, some ability coupling | Keep concept; move ability side effects elsewhere. |
Assets/Script/Game/Stage/Timer.cs |
Timer |
Time | currentTime, currentSpawnerTime, currentGameTime, start/stop methods. |
GameManager, UI text. |
Clean/simple | Keep concept. |
Assets/Script/Game/Managers/PoolManager.cs |
PoolManager |
Pooling | GetFromPool, DeactivateObject, dynamic registration. |
Prefab names, Unity instantiate. | Simple but risk-prone | Redesign with prewarm limits and metrics. |
Assets/Script/Game/Events/GameEvents.cs |
GameEvents |
Events | Static events for enemy death, achievement, counters, target add/remove. | Many systems. | Clean but global | Keep concept as Godot signals/event bus. |
Player and Ability Scripts¶
| Path | Script | System | What It Does | Cleanliness | Migration |
|---|---|---|---|---|---|
Assets/Script/Game/Entities/Player/Core/AbilityHolder.cs |
AbilityHolder |
Ability | Central ability state and behavior for dash, character abilities, general upgrades, shields, buffs, projectiles. | Too large | Redesign. |
Assets/Script/Game/Utilities/AbilityFunction.cs |
AbilityFunction |
Ability runtime | Adds/removes abilities, checks ability presence, starts cooldown coroutines, queues visual effects/potion effects. | Mixed singleton | Keep concept but split into registry/cooldown/effect queue. |
Assets/Script/Shared/ScriptableObjects/Ability.cs |
Ability |
Ability data | AbilityType, cooldownTime, staminaCost, runtime isOnCooldown, currentCooldownTime. |
Data mixed with runtime state | Redesign as immutable data plus per-player runtime state. |
Assets/Script/Game/Entities/Player/Combat/PlayerAttack.cs |
PlayerAttack |
Projectile/hitbox | Lifetime, hit detection, damage flags, CC, ricochet, explosions, vampiric, sky sword mark. | Mixed | Split base projectile from hit effects/modifiers. |
Assets/Script/Game/Entities/Player/Combat/PlayerAttackCarrier.cs |
PlayerAttackCarrier |
Projectile carrier | Rockets, explosions, airstrike carriers, delayed attacks. | Mixed | Keep behaviors as separate ability projectile scenes. |
Assets/Script/Game/Entities/Player/Combat/PlayerAOE.cs |
PlayerAOE |
Area effects | Player area damage/slow style effects. | Confirm | Keep concept if active. |
Assets/Script/Game/Entities/Player/Companion*.cs |
Companion, CompanionSword, CompanionOrb, CompanionDrone |
Companion weapons | Orbiting/following/targeting companions and attacks. | Mixed | Keep concept; make each companion a scene with small controller. |
Assets/Script/Game/Entities/Player/Circular*.cs |
CircularRotator, CircularWeapon |
Orbit weapons | Rotating weapon holder and homing/spawn behavior. | Mostly focused | Keep concept. |
Assets/Script/Game/Entities/Player/Presentation/AbilityPanel.cs |
AbilityPanel |
HUD | Ability/cooldown panel display. | Small | Keep concept. |
Assets/Script/Game/Entities/Player/Presentation/StatusPanel.cs |
StatusPanel |
HUD | Shows player stats, ammo/reload/cooldown, HP/stamina. | Mixed UI/data | Keep concept; bind to stat signals. |
Upgrade and Reward Scripts¶
| Path | Script | System | What It Does | Cleanliness | Migration |
|---|---|---|---|---|---|
Assets/Script/Shared/ScriptableObjects/Upgrade.cs |
Upgrade |
Upgrade data | Upgrade id/name/rarity/effects/values/ability/requirements/evolve/weight/unlock. | Useful data, runtime fields mixed in | Keep as Godot resource, move runtime state out. |
Assets/Script/Game/GameSystem/Upgrades/UpgradeFunction.cs |
UpgradeFunction |
Upgrade apply | Applies every upgrade effect through one switch. | Too large | Redesign as effect scripts/resources. |
Assets/Script/Game/GameSystem/Upgrades/UpgradeSelection.cs |
UpgradeSelection |
Reward input | Card navigation/selecting for one/two players. | UI/input coupled | Keep behavior, rebuild with Godot UI signals. |
Assets/Script/Game/GameSystem/Upgrades/UpgradeEvoFunction.cs |
UpgradeEvoFunction |
Upgrade evolution | Starts counter/time-gated evolution coroutines and swaps abilities/upgrades. | Hardcoded | Keep concept as EvolutionCondition. |
Assets/Script/Game/GameSystem/Upgrades/WeaponEvoData.cs |
WeaponEvoData |
Character weapon evolution | Character weapon level effects. | Confirm | Keep concept; inspect manually during character migration. |
Assets/Script/Game/UI/GameHUD/Upgrades/UpgradeButton.cs |
UpgradeButton |
Reward UI | Holds selected upgrade data and calls UpgradeFunction.SelectUpgrade. |
Simple | Replace with UI card node emitting selected upgrade. |
Assets/Script/Game/UI/GameHUD/RewardUIController.cs |
RewardUIController |
UI placeholder | TODO placeholder. | Empty | Use as conceptual future split. |
Enemy and Stage Scripts¶
| Path | Script | System | What It Does | Cleanliness | Migration |
|---|---|---|---|---|---|
Assets/Script/Game/Entities/EnemySpawner/SpawnerData.cs |
SpawnerData, SpawnEvent |
Spawn data | Time windows, spawn rate, enemy prefab, spawn directions, runtime flags. | Data mixed with runtime flags | Split data and runtime state. |
Assets/Script/Game/Entities/EnemySpawner/SpawnerEventManager.cs |
SpawnerEventManager |
Spawn director | Creep/special spawn loops, boss transition, stage/battle state. | Mixed | Keep concept, redesign state machine. |
Assets/Script/Game/Entities/Enemies/Enemy.cs |
Enemy |
Enemy core | Health, state machine, target finding, damage, rewards, death, CC. | Too broad | Split into components. |
Assets/Script/Game/Entities/Enemies/EnemyCore/*.cs |
EnemyBaseState, EnemyAttackState, EnemyAttack, EnemyMechanic |
Enemy state/attack | Base state machine and enemy attack primitives. | Mostly focused | Keep concept. |
Assets/Script/Game/Entities/Enemies/EnemyState/*.cs |
ES*, EAS* |
Enemy states | Chase, idle, spawn, stroll, suicide, warp, normal/ranged/mortar/boss-style attacks. | Mostly focused but prefab-coupled | Migrate concept per enemy behavior. |
Assets/Script/Game/Entities/Enemies/Boss/*.cs |
SAGoblinKing, SAHydra, SAMinotaur |
Boss behavior | Boss-specific special attack states. | Mixed | Keep behavior; rebuild as boss state scripts. |
Assets/Script/Game/Stage/*.cs |
CameraController, MapGenerator, EndlessTileMap, ScreenBounds, SkillIndicator, DamagePopUp |
Stage helpers | Camera follow, procedural ornaments/tilemap, indicators, popups. | Varied | Keep concept as needed. |
App, Save, UI, and Platform Scripts¶
| Path | Script | System | What It Does | Cleanliness | Migration |
|---|---|---|---|---|---|
Assets/Script/App/Core/AppInitiator.cs |
AppInitiator |
App boot | Initializes static managers, data loader, Steam id, services, save, settings, main menu load. | Reasonably clear | Keep boot flow concept. |
Assets/Script/App/Core/SaveManager.cs |
SaveManager |
Save | Loads/migrates/saves encrypted player data and config. | Mostly clean | Keep data model; rewrite platform file handling. |
Assets/Script/TinyChaos/Services/Save/SaveService.cs |
SaveService |
Save IO | New/legacy paths, JSON/binary read/write, backup. | Mostly clean | Keep concept. |
Assets/Script/App/Data/Save.cs |
Save |
Save facade | Static shortcuts into SaveManager and Steam nickname. |
Convenient but global | Replace with explicit service/autoload. |
Assets/Script/App/Managers/AchievementManager.cs |
AchievementManager |
Achievements | Unlocks achievements, rewards, Steam sync, popups. | Mostly clean but static | Keep concept. |
Assets/Script/App/Managers/ShopManager.cs |
ShopManager |
Permanent upgrades | Loads/saves shop levels, buys/refunds, applies modifiers to GameSession. |
Mostly clean but static | Keep concept. |
Assets/Script/App/Managers/InputManager.cs |
InputManager |
Input | Keyboard/joystick mapping and images. | Mixed | Rebuild with Godot InputMap; preserve bindings. |
Assets/Script/App/UI/** |
Controllers/views/buttons/shared UI | App UI | Main menu, shop, achievements, collections, leaderboard, tooltips, pages. | Varied | Rebuild UI flow conceptually. |
Assets/Script/External/Steamworks.NET/* |
SteamManager, SteamScript |
Steam | Steam init and helper glue. | Platform-specific | Confirm Godot platform plan. |
Assets/Script/External/Network/LeaderboardManager.cs |
LeaderboardManager |
Leaderboard | HTTP get/post, filtering, local cache, UI population. | Mixed | Isolate from run; confirm service endpoint. |
Assets/Script/External/Tutorial/* |
Tutorial scripts | Tutorial | Separate tutorial player/enemy/manager/spawner. | Separate implementation | Confirm whether to port or replace. |
Assets/Script/External/Editor/* |
Editor tools | Editor only | Cheat window, upgrade/spawn editors. | Tooling | Remove from runtime migration unless useful as reference. |
ScriptableObject Definitions¶
| Path | Script | Key Data | Migration |
|---|---|---|---|
Assets/Script/Shared/ScriptableObjects/Character.cs |
Character |
id, weapon, animator, icon, ability, base stats, footstep, UI/lore/unlock/price | Godot CharacterResource. |
Assets/Script/Shared/ScriptableObjects/Ability.cs |
Ability |
type, cooldown, stamina, runtime cooldown fields | Split AbilityResource and AbilityRuntimeState. |
Assets/Script/Shared/ScriptableObjects/Upgrade.cs |
Upgrade |
id, rarity, effect enum list, values, ability, stage filters, requirements, evolution, weight | Godot UpgradeResource plus effect resources. |
Assets/Script/Shared/ScriptableObjects/LevelData.cs |
LevelData, StageMap |
stage index/name, boss, music, per-difficulty map/spawner data/dialog | Godot StageResource. |
Assets/Script/Shared/ScriptableObjects/ShopUpgrade.cs |
ShopUpgrade |
shop type, value/cost list, current level | Reference/save-conversion data only. Do not rebuild the old shop system as-is. |
Assets/Script/Shared/ScriptableObjects/Achievement.cs |
Achievement |
id, title, rewards, icon, secret/unlocked | Godot AchievementResource, runtime unlock in save. |
Open Questions¶
- Some class names were hard to infer from simple inventory because comments contain the word
class; use source files as authority during detailed porting. External/Tutorialappears separate from main gameplay. Unknown / needs manual confirmation whether to migrate it.InDevelopment,Testing,Need Revamp, andDraftassets should be triaged before data conversion.