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 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.