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.