Commit Graph

18 Commits

Author SHA1 Message Date
kronic 5de30bd9c7 SL-4: structure cyan-emissive pass (owned faction colour)
Owned structures (Turret/Wall/Fabricator/Pylon) now read cyan-owned via a dedicated Mat_StructureOwned_Cyan (dark desaturated-cyan body + a subtle cyan self-illum below the bloom gate) - replacing the shared PolygonFantasyKingdom atlas + M_Turret so there's no atlas bleed. Tuned dimmer than the Core so the Engine Core stays the single luminance peak. Completes the faction palette: dark ground / cyan owned (Core bright, structures muted) / amber Ore / orange Husks. Edit-mode-instantiated + screenshot-verified. Follow-up (deferred): the research's dark-when-unpowered dynamic (emissive only on active/powered structures) needs a small presentation system reading structure state.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 17:59:06 -07:00
kronic fc27b9ff76 SL-1/SL-4: dark-frontier visual cohesion pass (camera, grade, bullseye)
Research-grounded transform of the base arena from a bright meadow into a dark 'Aether Siege Outpost' reading as a concentric bullseye (Core -> Ore ring -> dark perimeter). Camera (Game.unity): pitch 45->58, FOV 55->44, dist 13->17, lead 1->0.5, follow 8->6, targetH 1.3 (telephoto so Core + arena read together, near-iso enemy spacing). Lighting: sun dimmed+cooled 1.6->0.9, ambient 1.0->0.62 dark-cool, fog Linear 18->42 dark; WorldAtmosphere base darkened. Post-FX (PostFX_Daylight): ACES kept, bloom gated (thr 1.0->1.2 + clamp 10), exposure/contrast up, saturation +6->0, added ShadowsMidtonesHighlights cool-shadow/warm-highlight split, vignette 0.15->0.32. Ground re-tinted dark teal-grey; ~390 meadow-cheer objects cut. Core staged as hero (crystal 14m->4.6m cyan glow + cyan beacon light). Ore ring pulled into the arena (23.5-27m -> 6-11.5m, count 10->12) and recoloured AMBER (new Mat_OreNode_Amber, emissive, no atlas bleed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 14:07:53 -07:00
kronic 2da29783fd EB-2: felt spend - turrets burn a shared Charge pool, ledger-fed Fabricator mints it from Ore
Mined Ore now has an ongoing sink: a ledger-fed Fabricator converts Ore->Charge
(1 Ore -> 3 Charge / 30t) and turrets spend Charge per shot, soft-failing (no
shot, no cooldown burn) when the shared pool runs dry.

- ResourceId.Charge=4 rides the existing [GhostField] StorageEntry ledger (no new wire).
- TurretFireSystem: single ledger resolve + atomic spend / soft-fail / partial-refund.
- Fabricator.InputFromLedger (byte, server-only) feeds input from the shared ledger,
  read live in-loop so two machines split a finite pool; both modes deposit to ledger.
- HudSystem: violet Charge chip + global quiet-turret cue when siege && Charge==0.
- StorageMath.TotalOf backs the affordability read; catalog re-enables the Fabricator (4 entries).

See DR-033.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 19:14:52 -07:00
kronic 11ff043d6a Assets: real Synty models for ore/turret/structures; base-field + schedule wiring
Replace every placeholder-cube ghost prefab with nested Synty (PolygonFantasyKingdom) models: ResourceNode->crystal, Turret->ballista, Wall->spike palisade, Pylon->crystal beacon, Storage->chest, UpgradePickup->gem, BlightClutter->rock chunk (nest as a Model child, strip colliders, reset the [GhostField] root Scale, atlas for bare FBXs). Gameplay subscene: place the BaseFieldSpawner, trim Harvester/Fabricator/Conveyor from the build palette. CycleDirector prefab bakes the schedule siege config. See DR-031.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 15:00:18 -07:00
kronic da522efe7a Vault Re-Alignment 2026-06-09 23:26:20 -07:00
kronic 2fcff9a7a1 Animate enemies: client-derived Rukhanka rigs (Werewolf/Kaiju Husks)
Extends the DR-022 player pipeline to Husk enemies. A Husk is an ownerless
interpolated ghost = structurally a remote player, so the new client-only
EnemyAnimationDriveSystem mirrors PlayerAnimationDriveSystem's remote path:
velocity from LocalTransform-delta (prevPos cache, pruned every frame), facing
from LocalTransform.Rotation (AnimParamMath.PlanarForward), maxSpeed from baked
EnemyStats, IsAttacking from the already-replicated AttackWindup telegraph. No
new [GhostField], no server/asmdef/ghost-hash change.

Monster-mash roster: Werewolf (Grunt), Werewolf-Undead (Swarmer), Kaiju (Brute),
built by the reusable, GUID-preserving EnemyRigTools editor tool (materials +
AC_EnemyTopDown + EnemyAttackWindup clip + 3 rigged prefabs). WaveSystem now
preserves the baked variant Scale (was reset to 1 by LocalTransform.FromPosition).

See DR-023. EditMode 208/208; validated in Play (rigs skin, scales replicate,
locomotion + attack telegraph drive correctly).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 23:30:03 -07:00
kronic 951b7ec273 Animate the player: Rukhanka skeletal locomotion (client-derived)
Replace the capsule with a rigged Synty SciFiSpace soldier driven by Rukhanka 2.9 (netcode replication off; animation derived client-side from replicated state). Adds a slim top-down AnimatorController (idle / 2D-strafe locomotion / death) from Synty clips; client-only PlayerAnimationDriveSystem (local CC-velocity + remote position-delta paths); AnimParamMath (+10 EditMode tests); ServerStripAnimationSystem (disables Rukhanka on the server, zero server-side animation). Client.asmdef gains Rukhanka.Runtime/CharacterController/Physics. EditMode 204/204; Play-validated. See DR-022.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 18:18:11 -07:00
kronic f3f65bccbf M7 Automation: deterministic Harvester to Conveyor to Fabricator chains
Server-only production chains (never predicted): components + server systems + pure byte-only math (ProductionMath/ConveyorMath/MachineSlotMath), authoring + 3 machine prefabs wired into the Gameplay subscene, StructureCatalog rows, BuildPlace Direction/RuntimePlacedTag, Tuning, and 35 EditMode tests (catch-up gating, conveyor shuffle-invariance, SaveData v2 round-trip).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 15:05:15 -07:00
kronic 15bc1022ee Map Updates 2026-06-04 21:49:03 -07:00
kronic 51401d2c2b Further Tests & Progress 2026-06-04 11:35:57 -07:00
kronic 5c11ff4fad Continued 2026-06-04 00:06:18 -07:00
kronic 8e9b4412ce Core Game Loop Additions 2026-06-03 22:41:27 -07:00
kronic 9091388bc2 Asset Dump 2026-06-03 13:46:13 -07:00
kronic e362aaeb43 Import art/VFX asset packs + game-feel systems; normalize texture extensions to lowercase for LFS
Add BefourStudios SciFi environment packs, Gabriel Aguiar VFX, and the
ShaderCrew Toon Shader embedded packages, plus combat/enemy/wave/death
gameplay systems and supporting vault docs/screenshots.

Rename 11 vendor textures from uppercase .PNG/.HDR to lowercase so the
case-sensitive Git LFS filters (*.png/*.hdr) match on case-sensitive
filesystems (Linux CI, case-sensitive macOS), not just locally where
core.ignorecase=true masks the gap. Each .meta moved with its asset so
GUID references are preserved. All ~1000 binaries tracked via LFS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 22:50:43 -07:00
kronic dd0064c377 Init Homebase 2026-06-02 18:28:23 -07:00
kronic 2ee30c01fd CC Package and Physics 2026-06-02 08:56:26 -07:00
Luis Gonzalez 1f647dd5e1 Initial Combat Implementation 2026-05-31 21:35:12 -07:00
Luis Gonzalez 7fa77ce821 Netcode Bootstrap 2026-05-31 14:27:52 -07:00