Compare commits
3 Commits
28a683b358
...
4ae022c5ad
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ae022c5ad | |||
| 8c2bf3c37b | |||
| 53bc21143d |
@@ -27,7 +27,7 @@ Transform:
|
|||||||
m_GameObject: {fileID: 1085570720822716955}
|
m_GameObject: {fileID: 1085570720822716955}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: -1, z: 0}
|
||||||
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
|
m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
@@ -40,7 +40,7 @@ MeshFilter:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1085570720822716955}
|
m_GameObject: {fileID: 1085570720822716955}
|
||||||
m_Mesh: {fileID: 4300000, guid: d8de5840b690b8c4cb783b65f1196981, type: 3}
|
m_Mesh: {fileID: 4300000, guid: ad7e0b3cc539c4c4d9adbe26d67de586, type: 3}
|
||||||
--- !u!23 &2902084588362297385
|
--- !u!23 &2902084588362297385
|
||||||
MeshRenderer:
|
MeshRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -175,7 +175,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6b1aa9b83194a2c41b940dd9532377f4, type: 3}
|
m_Script: {fileID: 11500000, guid: 6b1aa9b83194a2c41b940dd9532377f4, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.BlightClutterAuthoring
|
m_EditorClassIdentifier: ProjectM.Authoring::ProjectM.Authoring.BlightClutterAuthoring
|
||||||
Remaining: 8
|
Remaining: 2
|
||||||
ScrapPerHit: 2
|
ScrapPerHit: 2
|
||||||
HitRadius: 1
|
HitRadius: 1
|
||||||
Variant: 0
|
Variant: 0
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace ProjectM.Authoring
|
|||||||
public class BlightClutterAuthoring : MonoBehaviour
|
public class BlightClutterAuthoring : MonoBehaviour
|
||||||
{
|
{
|
||||||
[Tooltip("Hit-points before the clutter shatters.")]
|
[Tooltip("Hit-points before the clutter shatters.")]
|
||||||
[Min(1)] public int Remaining = 8;
|
[Min(1)] public int Remaining = 2; // one-hit pop: both hit paths decrement by max(1,(int)ScrapPerHit)
|
||||||
|
|
||||||
[Tooltip("Scrap (Biomass) yielded per projectile hit — the 'minor scrap' trickle.")]
|
[Tooltip("Scrap (Biomass) yielded per projectile hit — the 'minor scrap' trickle.")]
|
||||||
[Min(1f)] public float ScrapPerHit = 2f;
|
[Min(1f)] public float ScrapPerHit = 2f;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ namespace ProjectM.Server
|
|||||||
public partial struct RoomFieldSystem : ISystem
|
public partial struct RoomFieldSystem : ISystem
|
||||||
{
|
{
|
||||||
/// <summary>Max clutter pieces per room — cosmetic ghosts still cost relevancy, keep the dressing light.</summary>
|
/// <summary>Max clutter pieces per room — cosmetic ghosts still cost relevancy, keep the dressing light.</summary>
|
||||||
const int MaxClutterPerRoom = 6;
|
const int MaxClutterPerRoom = 8;
|
||||||
|
|
||||||
EntityQuery m_RoomTagged;
|
EntityQuery m_RoomTagged;
|
||||||
|
|
||||||
|
|||||||
@@ -26,18 +26,18 @@ Material:
|
|||||||
m_Ints: []
|
m_Ints: []
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _Brightness: 1.1
|
- _Brightness: 1.1
|
||||||
- _ColorLevels: 12
|
- _ColorLevels: 27.561403
|
||||||
- _Contrast: 1.05
|
- _Contrast: 1.05
|
||||||
- _DepthEdgesEnabled: 1
|
- _DepthEdgesEnabled: 0
|
||||||
- _DepthThreshold: 0.08
|
- _DepthThreshold: 0.08
|
||||||
- _EdgeStrength: 1
|
- _EdgeStrength: 1
|
||||||
- _MasterEnabled: 0
|
- _MasterEnabled: 0
|
||||||
- _NormalEdgesEnabled: 1
|
- _NormalEdgesEnabled: 0
|
||||||
- _NormalThreshold: 1
|
- _NormalThreshold: 1
|
||||||
- _OutlineThickness: 1
|
- _OutlineThickness: 1
|
||||||
- _PixelHeight: 399.82455
|
- _PixelHeight: 501.22803
|
||||||
- _PixelateEnabled: 1
|
- _PixelateEnabled: 1
|
||||||
- _PosterizeEnabled: 1
|
- _PosterizeEnabled: 0
|
||||||
- _Saturation: 1.35
|
- _Saturation: 1.35
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _OutlineColorInner: {r: 0, g: 0, b: 0, a: 1}
|
- _OutlineColorInner: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
|||||||
@@ -136,8 +136,9 @@ attacks/animations/effects**. Art direction deliberately UNDECIDED — lighting
|
|||||||
later (sharpen/vignette/grade variants — backlog). Every later visual choice keys off clean dark-Synty.
|
later (sharpen/vignette/grade variants — backlog). Every later visual choice keys off clean dark-Synty.
|
||||||
4. **Ambient motion layer (client-only, zero netcode):** foliage sway/rustle on walk-through, per-biome dust/embers/fog
|
4. **Ambient motion layer (client-only, zero netcode):** foliage sway/rustle on walk-through, per-biome dust/embers/fog
|
||||||
drift particles, critters that scatter, flags/banners. Biggest bang-per-effort for "not static".
|
drift particles, critters that scatter, flags/banners. Biggest bang-per-effort for "not static".
|
||||||
5. **Breakable clutter with drops:** Hades-style urns/crates/Blight growths seeded per room; shatter on hit → small
|
5. ~~Breakable clutter with drops~~ **DONE (2026-07-09, `53bc21143`)** — the BlightClutter chain already
|
||||||
resource drops. Reuses the destructible-ghost + `BlightClutter` + pickup patterns — netcode-cheap.
|
existed end-to-end (seeding/unified-sweep/drops); the gap was feel: barrels (SM_Prop_Barrel_01) replace the
|
||||||
|
rock chunk, ONE-hit pop (Remaining 8→2), density 6→8/room. Live-verified pop + drop credit.
|
||||||
6. **Attack distinctness:** every enemy kind + class ability gets a unique read — anim + VFX + effect shape (not more
|
6. **Attack distinctness:** every enemy kind + class ability gets a unique read — anim + VFX + effect shape (not more
|
||||||
hit-stop). Builds on the shipped Blender clip pipeline + sword-combo work; creature locomotion for monsters still
|
hit-stop). Builds on the shipped Blender clip pipeline + sword-combo work; creature locomotion for monsters still
|
||||||
open from Phase 1.3.
|
open from Phase 1.3.
|
||||||
|
|||||||
@@ -189,13 +189,26 @@ console clean.
|
|||||||
- Unity 6.5: `Scene.handle` int conversions are deprecated-as-error (key caches on `scene.path`); bare
|
- Unity 6.5: `Scene.handle` int conversions are deprecated-as-error (key caches on `scene.path`); bare
|
||||||
`Time` in a `SystemBase` binds to the deprecated ECS `ComponentSystemBase.Time` (qualify `UnityEngine.Time`).
|
`Time` in a `SystemBase` binds to the deprecated ECS `ComponentSystemBase.Time` (qualify `UnityEngine.Time`).
|
||||||
|
|
||||||
|
## Part H — breakable clutter feel pass (`53bc21143`)
|
||||||
|
|
||||||
|
Grounding revealed the roadmap item was ~90% BUILT already: the `BlightClutter` destructible-ghost chain
|
||||||
|
(per-room `RoomTag` seeding, the DR-018-safe UNIFIED node+clutter sweep, melee + projectile breaking,
|
||||||
|
personal-inventory drops with ledger spill) has existed since the expedition redesign — no design review
|
||||||
|
needed, zero netcode delta. The actual gap was FEEL: the visual was a rock chunk (read as scenery) taking
|
||||||
|
4 hits. Shipped: prefab mesh → `SM_Prop_Barrel_01` (FantasyKingdom, same proven atlas mat; Model child
|
||||||
|
offset −1 — scatter y=1 is the capsule plane, base-pivot props float there), `Remaining` 8→2 = ONE-hit pop
|
||||||
|
on both paths (`max(1,(int)ScrapPerHit)=2`), `MaxClutterPerRoom` 6→8. Verified live: 8 grounded barrels in
|
||||||
|
a combat room; an injected projectile through the real sweep popped one in ONE hit (8→7, 2 Biomass credited);
|
||||||
|
466/466; console clean. Also committed the operator's own F3-panel slider drags from the art-look lap
|
||||||
|
(`8c2bf3c37` — master stays OFF).
|
||||||
|
|
||||||
## Next-session intent
|
## Next-session intent
|
||||||
|
|
||||||
Phase 1.5 continues under the LOCKED clean dark-Synty look: **breakable clutter with drops** (Hades-style
|
Phase 1.5 short-term wins remaining: **attack distinctness** (unique read per enemy kind + class ability —
|
||||||
urns/growths — destructible-ghost + pickup patterns, netcode-cheap) → attack distinctness. Also queued:
|
anim + VFX + effect shape, on the Blender clip pipeline). Long-term 1.5 (hazards, destructible cover) =
|
||||||
re-enable curated base flora (barren hub) · retune arid brightness to taste (all knobs live) · long-term 1.5
|
adversarial design-review-first. Queued taste items: re-enable curated base flora (barren hub) · arid
|
||||||
items (hazards, destructible cover) need the adversarial design review first. Feel items for the operator's
|
brightness · craters-as-blocks call · B5 split-panels smoke. Then Phase 1.7 boon overhaul (design review
|
||||||
next lap: ambient motion + dark look in motion, craters-as-blocks call, B5 split-panels smoke.
|
required — replicated ability swaps).
|
||||||
|
|
||||||
Related: [[Iteration_2026-07_CoopHades]] · [[2026-07-07_Workflow_Consolidation]] ·
|
Related: [[Iteration_2026-07_CoopHades]] · [[2026-07-07_Workflow_Consolidation]] ·
|
||||||
[[2026-07-07_Expedition_Enemy_Stuck_Harvest_Feedback]]
|
[[2026-07-07_Expedition_Enemy_Stuck_Harvest_Feedback]]
|
||||||
|
|||||||
Reference in New Issue
Block a user