Sandbox target dummy: planted EnemyTag ghost + DevSandbox respawn spawner
GymSub bakes no WaveDirector (why sandbox enemies never spawned); the sandbox's combat target is now a TargetDummyTag'd enemy ghost all five EnemyAISystem passes exclude (planted; knockback stamps inert), spawned at player+3m with 400 HP by an editor-only scene-gated server system, dying through the normal Dying path and respawning 1.5s after the corpse. EnemyTag-reuse audited: sandbox-only by design (cleared-checks would count it elsewhere). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
using Unity.Entities;
|
||||
|
||||
namespace ProjectM.Simulation
|
||||
{
|
||||
/// <summary>07-20 sandbox combat testing: marks a server-spawned enemy ghost as a PLANTED target dummy —
|
||||
/// every EnemyAISystem pass excludes it (no move, no attack, no knockback integration, no depenetration
|
||||
/// nudge), so it stands at its anchor and just takes hits. Server-only (runtime-added at spawn, never
|
||||
/// replicated); the client sees a normal interpolated enemy, so health bars, hit flash, damage, kill pop
|
||||
/// and the death path all exercise the REAL pipeline. Spawned + respawned by TargetDummySpawnSystem in the
|
||||
/// DevSandbox (GymSub bakes no WaveDirector — the sandbox's combat target is this dummy, by design).
|
||||
/// ★ EnemyTag-reuse audit (CLAUDE.md): cleave/projectile damage MUST see it (the point); AI passes exclude
|
||||
/// it; wave/room cleared-checks would count it — acceptable ONLY because the spawner is sandbox-gated.</summary>
|
||||
public struct TargetDummyTag : IComponentData { }
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 013cf2990a041494fa876653dff1d059
|
||||
Reference in New Issue
Block a user