diff --git a/content/LAST.EGG b/content/LAST.EGG index 61255bd..1e8a83c 100644 --- a/content/LAST.EGG +++ b/content/LAST.EGG @@ -1,8 +1,8 @@ [mission] adventure=BattleTech -map=grass +map=cavern scenario=freeforall -time=day +time=night weather=clear temperature=27 length=600 @@ -156,8 +156,9 @@ x=128 y=32 width=8 [pilots] -pilot=200.0.0.96 -[200.0.0.96] +pilot=127.0.0.1:1502 +pilot=127.0.0.1:1602 +[127.0.0.1:1502] hostType=0 advancedDamage=1 loadzones=1 @@ -171,6 +172,20 @@ dropzone=one vehicle=bhk1 vehicleValue=1000 color=White +[127.0.0.1:1602] +hostType=0 +advancedDamage=1 +loadzones=1 +name=Boreas +bitmapindex=2 +experience=expert +badge=VGL +patch=Yellow +role=Role::Default +dropzone=one +vehicle=bhk1 +vehicleValue=1000 +color=Red [largebitmap] bitmap=BitMap::Large::Aeolus [BitMap::Large::Aeolus] @@ -227,3 +242,4 @@ width=4 model=dfltrole [Role::NoReturn] model=noretun + diff --git a/context/multiplayer.md b/context/multiplayer.md index 038b565..a56f332 100644 --- a/context/multiplayer.md +++ b/context/multiplayer.md @@ -58,6 +58,29 @@ Cross-pod COMBAT (target a replicant + route damage to the owning master — Ent reroutes); interactive 2-window driving; replicant GAIT animation (derive from replicated velocity); the pod-LAN config (real IPs, bare-IP pilot entries). See [[open-questions]]. [T3] +## MP-front scout (task #45, 2026-07-09) — the P6 chain SURVIVES the combat/HUD rework [T2] +Re-ran the one-box smoke test on the current build (world-pick targeting, weapon groups, death +transition, HUD all landed since P6): console egg → mesh → RunningMission on BOTH instances, 174+ +×144-byte update records EACH side (msgID=6), 2 mech trees per instance, 0 crashes over ~6 min. +**Gap map to a first playable LAN fight** (in wiring order): +1. **Enemy selection**: the world-pick tests only `gEnemyMech` (the solo dummy, btplayer.cpp:791). + MP: the pick must test every OTHER mech (the peer replicants) — generalize to a candidate walk + (mech entities != viewpoint). Small. +2. **Cross-pod damage**: dispatch TakeDamage at the REPLICANT → verify the engine reroute carries + it to the owning master (the KB claims Dispatch reroutes; not yet exercised with our STEP-6 + handler). The master takes real zone damage + runs its own death transition (task #42 placed the + death dispatch victim-side — MP-correct by construction). +3. **Victim visuals on the shooter's screen**: the wreck swap gates on zone/graphic state the + REPLICANT copy may never see (zone damage may not replicate — only pose updates confirmed). + Check DamageZone/subsystem state in the update stream; else replicate the death as an event. +4. **Cross-pod beam visuals**: replicant emitters don't run the local trigger sim, so the peer's + beams never draw today. ⭐ The authentic path exists: ServiceDischarge/ContinueDischarge SEND + **beam-keepalive messages** (`FUN_0041c350`, templates @0x511e6c/@0x511e78, emitter.cpp already + stubs them) — decode + route those to drive replicant beam draws. +5. **2-window driving**: input gates on window focus (alternate windows; `BT_KEY_NOFOCUS` for + harness). DEATHS scoring should light via the existing BTPostKillScore MP branch. Respawn = + the P5 teardown debt (deferred until needed). + ## Key Relationships - Base: [[wintesla-port]] (L4NET). Depends on: [[locomotion]] (update writer), [[combat-damage]] (entity lifecycle). Detail: `docs/HARD_PROBLEMS.md` (P6).