Skip to content

Archived on 2026-10-24. The Godot rewrite is cancelled. This handoff is historical evidence, not an active Unity task or verified runtime behavior. See the current documentation.

Phase 8 migration manifest

This package contains evidence only. It exports no Unity source or production assets. Paths and GUIDs below are provenance references into the original Unity project.

XP pickup provenance

Unity source GUID / serialized evidence Methods or fields Output fields
Assets/Prefab/Enemy/Stage 1/Creep/Slime 1.prefab a9e3bb63690e61c4ebf30f8b9249a500; killId=KILL_SLIME_1; first reward item GUID 9e97...; 100/100, dropMin=dropMax=1; exp=1, gold=1 normal Slime 1 reward entry xp_pickup.enemy_experience_to_pickup_value, drop_amount, calculation notes
Assets/Prefab/Items/GeneralItem/Soul A.prefab 9e97f22f7bbceca4ebb0ab669cf65789; GameObject Soul A, layer 11, tag Item, scale 0.7; CircleCollider2D trigger radius 0.3 offset (0,-0.3); Items fields itemCount=1, value=1, goldValue=1, lifeTime=90, activeTime=0.5, type=0, magneted=1 authoritative pickup serialization; no separate item-data asset reference all identity, base value, collision, lifetime, and initial reset fields in xp_pickup.json
Assets/Script/Game/Items/Items.cs script GUID 620fc1e5866f4384798f44c201370776 OnEnable, Update, Reset, IsCollecting, Collecting, Collect, ActiveTime, DestroyAfterTime, ReturnPool, MergeChecking, ItemDropAnimation, ItemType attraction, collection distance/order, release conditions, reuse state, item type, scatter
Assets/Script/TinyChaos/Utilities/Anim.cs 13506de61a6571c4e9d23d980c78880a EaseFunc.EaseInBack exact movement curve in xp_pickup.attraction.acceleration
Assets/Script/Game/Entities/Enemies/Enemy.cs d006941bf7508b04c9d08f7fbf338017 Death, DeathAnimation, Rewarding, DropReward, DeathTimer normal-death timing, pool creation, value/gold assignment, border no-drop behavior
Assets/Script/Game/Managers/PoolManager.cs 8620310d3b3839e44adf3704199ecc19 RegisterNewObject, GetFromPool, SpawnNewObject, DeactivateObject, GetObjectNameWithoutClone pool key, lazy allocation/prewarm 0, activation/deactivation order
Assets/Prefab/Player/Player.prefab 476567accc704ed448c38f93a5af596d; Player layer 9; PlayerCollectItem magnetRadius=1.5, magnetSpeed=15 collector serialization activation radius and unused serialized speed provenance
Assets/Script/Game/Entities/Player/Collectibles/PlayerCollectItem.cs fa4770a348a51ac49967cacaa3c590bc Update, ItemTrigger, HandleCoin, DifficultyBonus, ShopExpBonus neutral-to-player target claim, duplicate behavior, shared XP/gold collection order
ProjectSettings/TagManager.asset layer 9 Player, layer 11 SoulPoint, tag Item project collision identities xp_pickup.collision layer/tag
ProjectSettings/Physics2DSettings.asset m_QueriesHitTriggers=1; global layer matrix; no Soul A per-collider include/exclude override global physics configuration collision mask note; collection remains distance-driven
Assets/Script/Game/Items/ItemsMerger.cs merger aggregation fields and SpawnNewCoin combines itemCount, XP, and gold into a pooled condensed soul release/reset caveat and proof that count/value/gold are distinct

Level and reward provenance

Unity source GUID / serialized evidence Methods or fields Output fields
Assets/Scenes/Arena Stage 1.unity 2cda990e2423bbf4892e6590ba056729; embedded PlayerManager level=0, currentExp=0, expToNextLevel=10, expLeft=0 clean Stage 1 scene values initial progression fields and reset requirements
Assets/Script/Game/GameSystem/Player/PlayerManager.cs 8b3cc5e98329b314bb58ee5398e4db9b Initialize, AddExperience, CheckLevelUp, EvaluatePendingLevel, ApplyFuturePills, ApplyRPGBuff, OnRewardReady threshold formula, carry, event order, shared ownership, deferred multi-level behavior
Assets/Script/Game/Managers/GameManager.cs 366485313eaa6504699ce5b2b9a9b942 Awake, Update, EnqueueReward, AddExp, PauseGame, ResumeGame, isPaused setter event subscription, queue processing, pause/time-scale and pending-level recheck
Assets/Script/TinyChaos/Utilities/Difficulty.cs b8738aa5b1090644980c02ecdc7cb963; Easy EXP_BONUS=0 Difficulty.GetValue Easy collection calculation note
Assets/Script/Game/GameSystem/Rewards/RewardRoller.cs 0be9e7f85abbc874395f5c93a19a29d3 EnqueueReward, ProcessRewardQueue, RollTheUpgradeTable, DisplayAnimation, RerollUpgrade, StartRerollUpgrade, CompleteReward all queue, phase, realtime UI, reroll, and completion evidence
Assets/Script/Game/GameSystem/GameState/GameStateService.cs 7f7059ae24b3fbc40be9be1231ad4cad ShouldTimeBePaused, CanPause, SetRewarding, UpdateTimeScale intended vs actual time-scale behavior and pause conflict
Assets/Script/Game/GameSystem/Upgrades/UpgradeSelection.cs 8155cd49c8946f7468934d613e6ba0e7 Update, ButtonNavigation, SelectingUpgrade, ConfirmSelect, DestroyButton input gates, one/two-player application, confirmation/resume order
Assets/Script/Game/Managers/GameMenuManager.cs b9f962cace4e53f4a8f299cd35d79ab3 HandleBackButton settings-page rejection and already-open settings conflict

Basic reward pool and winner

Assets/Scenes/Bootloader.unity (GUID 0b78d5aa9961921419e499ac2598843b) is the stable serialized AppInitiator.basicUpgrades list. AppInitiator passes it to GameDataLoader.Initialize; GameDataLoader creates the basic dictionary, and GameInitialization.ImportRewardTable imports its values into GameManager.BasicRewardTable. The source currently checks only appearsInStages.Length > 0 for basic entries and does not inspect the Stage 1 boolean value.

All qualifying general stat candidates and indices are stored in data/basic_stat_upgrade.json. The deterministic winner is serialized pool index 0:

Source Evidence Output fields
Assets/Resources/Upgrade/Upgrade_ASP 1.asset GUID dfe87eae4d3f167468494e44be6c0de0; idname=ASP1; upgradeName=ATTACK SPEED; rarity 0; upgradeList=ASP; value=0.15; stages bytes 0101010000; icon GUID 6f6c...; weight 1400; basic true; max 0; no requirements all fully extracted winner fields
Assets/Script/Shared/ScriptableObjects/Upgrade.cs b5d033e87f6659940a1c3b4a0817ac0a; enum values, GetDescription Basic rarity, ASP category, BasicUpgrade/ASP1 description key, unlimited meaning
Assets/Language/Table/BasicUpgrade/BasicUpgrade Shared Data.asset and BasicUpgrade_en.asset table BasicUpgrade, entry ASP1, English raw +0.15 ... Attack speed description key and raw-number presentation only; localization assets are not exported
Assets/Script/Game/GameSystem/Upgrades/UpgradeFunction.cs 8cf789fd5ea6ff043a581713535de986; SelectUpgrade, ASP case selecting-player scope, AdeptLearner conditional, AddASP call
Assets/Script/Game/Entities/Player/Stats/PlayerModifier.cs 36eec97b4ce087f47ba2d0e50befd50f; AddASP, UpdateValue attack-speed formula target stat, flat-add operation, runtime recalculation
Assets/Script/Game/GameSystem/Bootstrap/GameInitializer.cs 17f9a31d924df83418b200f391c83333; ImportRewardTable, PrepareRewardTable production pool eligibility and upgradeTaken run reset
Assets/Script/Game/Resources/GameDataLoader.cs b90b5e4b4d60bf44fbff792336390a78; Initialize, GetAllBasicUpgrades serialized-list-to-runtime-pool path

Rejected serialized pool entries

These are production entries in the same 50-entry list but are not qualifying immediately eligible general player-stat upgrades:

Indices / IDs Reason
5 ASPX, 21 DMGX, 22 DR4, 23 DR5, 28 HPX, 32 MS_5, 33 OMNI_X, 47 STMX, 48 VMPC empty appearsInStages; not imported into the normal basic pool by the production importer
10 CCH5, 15 CDMG5 empty appearsInStages; not imported
34 REROLL_1, 35 REROLL_2 run reward-currency utility, not a player stat
36 REVIVE revive ability/feature; also filtered from a normal all-players-active start
49 WPEV weapon evolution/weapon-level feature, explicitly excluded

No assets under Assets/Scriptable Object were considered.