Feel: attack distinctness — per-kind telegraph colours, windup voices, spit light
Every enemy kind now has a unique read on the existing replicated state (client-only, zero netcode): - Telegraph COLOURS per EnemyTelegraph.Kind: grunt orange, charger crimson (boss shares it - shapes already differ: cone/wedge/ring), spitter toxic-green lane, swarmer yellow. Shapes were already per-kind; they all rendered the same HDR red. - Windup VOICES at the onset edge (the existing _prevWindup edge + strike-beep distance gate): grunt low thud, charger rising roar, spitter wet hiss, swarmer chitter - kinds read by EAR before the telegraph ramps. - Projectile light colour by ownership in DynamicLightSystem: owned shots stay player-cyan, un-owned (Spitter spit) glows toxic green (EnemyProjectileColor knob). Verified live: 12 s combat histogram shows zones rendering with EnemyDanger_K0 (grunt) + EnemyDanger_K1 (charger) materials keyed to real windups (screenshot); 466/466 EditMode; console clean. Remaining distinctness depth (per-kind anim clips, creature locomotion) rides the parallel Blender workstream. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using ProjectM.Simulation;
|
||||
using Unity.Entities;
|
||||
using Unity.NetCode;
|
||||
using Unity.Transforms;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -74,6 +75,7 @@ namespace ProjectM.Client
|
||||
Color projColor = cfg != null ? cfg.ProjectileColor : new Color(0.45f, 0.85f, 1f, 1f);
|
||||
float projIntensity = cfg != null ? cfg.ProjectileIntensity : 2.6f;
|
||||
float projRange = cfg != null ? cfg.ProjectileRange : 7f;
|
||||
Color enemyProjColor = cfg != null ? cfg.EnemyProjectileColor : new Color(0.55f, 1f, 0.35f, 1f);
|
||||
_seen.Clear();
|
||||
foreach (var (lt, entity) in SystemAPI.Query<RefRO<LocalTransform>>().WithAll<Projectile>().WithEntityAccess())
|
||||
{
|
||||
@@ -84,7 +86,8 @@ namespace ProjectM.Client
|
||||
light = Rent();
|
||||
_projectileLights[entity] = light;
|
||||
}
|
||||
light.color = projColor;
|
||||
// Attack-distinctness: owned shots glow the player cyan; un-owned (enemy spit) glows toxic green.
|
||||
light.color = EntityManager.HasComponent<GhostOwner>(entity) ? projColor : enemyProjColor;
|
||||
light.intensity = projIntensity;
|
||||
light.range = projRange;
|
||||
var p = lt.ValueRO.Position;
|
||||
|
||||
Reference in New Issue
Block a user