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 6 First Stage 1 Enemy Migration Manifest¶
Scope and deterministic selection¶
This package contains data evidence only. It includes no Unity source or binary assets and no spawn schedule beyond the selected event.
| Evidence | Unity source | GUID / serialized reference | Receiving field |
|---|---|---|---|
| Production stage | Assets/Resources/Stage/Stage_1.asset, stageName: Meadow, stageMap[0].id: 1_EASY |
Stage GUID 50c0a6b961a71b64094ffb929f6d6020; creepSpawnerData GUID d702411ec5bd24846b59cfbdc753364c |
stage_id, source_spawner_* |
| Production Easy spawner | Assets/Scriptable Object/Spawner/Stage 1/1-Creep-1-Easy.asset |
GUID d702411ec5bd24846b59cfbdc753364c |
source_spawner_path, source_spawner_guid |
| Earliest event | spawnEvents[0] |
timeSpawn: 0, maxTimeToSpawn: 150, spawnRate: 1, top/bottom/left/right false, random true |
source_spawn_* |
| Selected serialized prefab reference | spawnEvents[0].enemy |
fileID 778803973857807412, GUID a9e3bb63690e61c4ebf30f8b9249a500 |
source_enemy_prefab_guid |
| Selected prefab | Assets/Prefab/Enemy/Stage 1/Creep/Slime 1.prefab |
GUID a9e3bb63690e61c4ebf30f8b9249a500 |
all enemy and state data |
There is only one event at the earliest timeSpawn value, so no tie exists. Array index 0 wins directly. Stage_1.asset maps 1_EASY to the regular-folder spawner GUID above, proving the selection comes from Assets/Scriptable Object/Spawner/Stage 1, not Stage 1 new.
Prefab and component mapping¶
| Prefab object/component | Serialized evidence | Receiving field(s) |
|---|---|---|
Root Slime 1 GameObject |
layer 3, tag Enemy, scale (1,1,1) |
body_collision |
Enemy component |
script GUID d006941bf7508b04c9d08f7fbf338017; type: 0, maxHealth: 14, damage: 2, damageOnContact: 0, killId: KILL_SLIME_1, reward and cleanup fields |
identity, stats, rewards, cleanup |
Root CircleCollider2D |
trigger, radius 0.3, offset (0,0.3), enabled |
body/hurtbox collision; no separate contact hitbox |
No root Rigidbody2D |
root component list has Enemy, ESChase, EASNormalAttack, Animator, SpriteRenderer, CircleCollider2D only | body_collision.physics_body_type, rigidbody_2d_present |
Child Slime 1/HitPoiht |
local position (0,0.25,0); HitPoints[0].hitPointSize: 0.25 |
target_point |
Root ESChase |
script GUID 8c0327aa23d2e8446973dee05b0486b5; first state component |
initial_state_id, chase state |
Root EASNormalAttack |
script GUID 6912a57e811dbd64496f0acff3dc1712 |
contact-attack state |
| Animator controller | Assets/Animation/Enemy/Stage1/Stage1_Creep_Slime_Animator.controller, GUID c1876236c2b0dfb40b43387564e06295 |
animation dependencies |
| Attack clip | Assets/Animation/Enemy/Stage1/Stage1_Creep_Slime_Attack.anim, GUID fa37a319c95e4d8419dda19112a35252, stop time 0.4166667, empty events |
visual-only attack duration |
| Death clip | Assets/Animation/Enemy/Creep_Death.anim, GUID f9a9c947137e86345b158e2f996365be, stop time 0.9166666, empty events |
death timing note |
The prefab is a normal EnemyType.Creep (type: 0) with chase plus direct normal melee. It has no idle component, but it does match the basic chase/contact-or-melee portion of Phase 6; this absence is explicit in the state JSON.
Reward mapping¶
| Enemy reward entry | Referenced prefab | Serialized rule | Receiving entry |
|---|---|---|---|
reward[0] |
Assets/Prefab/Items/GeneralItem/Soul A.prefab, GUID 9e97f22f7bbceca4ebb0ab669cf65789, fileID 2634370191308731793 |
chance 100 of exclusive range 0..99; min/max 1; no substitute |
reward_entries[0] |
reward[1] |
Assets/Prefab/Items/GeneralItem/Potion.prefab, GUID 6d206914bbd49ac41b7feb2cee3d1f53, fileID 8531361603272003022 |
chance 1 of exclusive range 0..249; min/max 1; no substitute |
reward_entries[1] |
Inspected scripts and methods¶
| Script (GUID) | Methods / declarations used as evidence |
|---|---|
Assets/Script/Game/Entities/EnemySpawner/SpawnerData.cs (bc416e9b3763e534a96a94462e5d6840) |
SpawnEvent fields, SpawnerData.spawnEvents |
Assets/Script/Game/Entities/EnemySpawner/SpawnerEventManager.cs (662371068777a5d41b37c988c5c52688) |
SpawnEnemyToLocation, spawn-direction coroutine branch, call to pool |
Assets/Script/Game/Entities/Enemies/Enemy.cs (d006941bf7508b04c9d08f7fbf338017) |
Awake, OnEnable, SetStatusDifficulty, FindNearestPlayer, CheckBeforeAction, TakeDamage, KnockbackSystem, CCDuration, Death, DeathAnimation, DeathTimer, Rewarding, DropReward, HitPoint, EnemyReward, EnemyType |
Assets/Script/Game/Entities/Entity.cs (5e2096653b558bb419244561da1c3fac) |
Awake, OnEnable, ReturnToPool, crowd-control fields and timing |
Assets/Script/Game/Entities/Enemies/EnemyCore/EnemyBaseState.cs (1631774530cee31488e949474414ceed) |
Initialize, StartState, EnterState, ExitState, EnterNextState |
Assets/Script/Game/Entities/Enemies/EnemyCore/EnemyAttackState.cs (b2e07e52e962af5448031dc8644fc2d5) |
EnterState, component Update, UpdateState, ExitState, ActionState, AttackConditions, ResetAttackSpeed, AttackSpeed |
Assets/Script/Game/Entities/Enemies/EnemyState/ESChase.cs (8c0327aa23d2e8446973dee05b0486b5) |
Awake, OnEnable, EnterState, UpdateState, Move, TargetMove, AvoidOtherEnemies, AvoidObstacle |
Assets/Script/Game/Entities/Enemies/EnemyState/EASNormalAttack.cs (6912a57e811dbd64496f0acff3dc1712) |
Attack |
Assets/Script/TinyChaos/Utilities/Difficulty.cs (b8738aa5b1090644980c02ecdc7cb963) |
GetValue("ENEMY_HP"), Easy branch -20f |
Assets/Script/Game/Managers/PoolManager.cs (8620310d3b3839e44adf3704199ecc19) |
Start, RegisterNewObject, both GetFromPool overloads, SpawnNewObject, DeactivateObject, GetObjectNameWithoutClone |
Assets/Script/Game/Events/GameEvents.cs (05a6b1dc223f0bc40b5b1565be96ea38) |
OnEnemySpawn, OnEnemyDeath, OnRemoveTarget, OnDataCount |
Assets/Script/Game/Entities/Player/Core/Player.cs (356f47d481d1e4c45bb59d5253aded49) |
AddEnemyLocations, UpdateEnemyLocations target-distance formula |
ProjectSettings/TagManager.asset was inspected for layer index 3 = Enemy and layer index 12 = Obstacle. ProjectSettings/Physics2DSettings.asset was inspected for global 2D trigger-query and collision settings.