09183cc1393c6d4cf5c22143eafe2c9d905d0b0e
Operator: turrets were "super duper cheap", spammable "unlimited", "spaced weirdly", "massive and not textured". All four were real and independently rooted (placement grid was actually fine). - Cost: TurretCostOre 10 -> 40 (authoring default + the serialized Gameplay subscene value, which overrides the code default). A node yields 30 Ore, so a turret is now ~1.3 nodes instead of 1/3 of one. - Cap: new Tuning.TurretCap=6, enforced server-authoritatively in BuildPlaceSystem (count live Base turrets while building the occupancy set; reject placement at the cap, same-tick-safe). Was unlimited. - Model: the 1.6x Synty ballista (~5m on a 1m cell, clipping neighbours) scaled to 0.8 to fit one cell; the C5 BoxCollider shrunk to match (0.8x1.2x0.8, center y 0.6); all 6 sub-renderers swapped off the flat untextured teal Mat_StructureOwned_Cyan to the Synty atlas PolygonFantasyKingdom_Mat_01_A (textured). Play-verified TurretCost=40 Ore / cap=6 baked; no exceptions. Also fixes 3 EditMode tests that pinned the old dash knobs (the prior tuning commit changed iframe 12->14 / cooldown 45->36 but I committed it without re-running tests): DashSystemTests now derives the expected dash speed from TuningConfig.Defaults() (robust to future tuning) + asserts now+14/+36; TuningConfigTests pins the new defaults. 390/390 EditMode green. Investigation: wf_c6c87dc5-9c3 (turret lane). Operator fork: 40 Ore + cap 6 (stricter). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
No description provided
Languages
yaml
98.3%
json
0.7%
GLSL
0.7%
C#
0.3%