Skip to content

Mythic Masters: co-op PvE, two friends against a wild one (needs a 2v1 sim) #3929

Open

Description

@QuinnsCode

The owner asked for three ways to fight with friends in Mythic Masters: PvP, co-op PvE, and both straight into the arena. The duel PR (fight a friend) shipped the PvP one: Qollab friends and challenges, then a lockstep duel on a Duel Durable Object (src/edge/duel.ts, src/net/duel.ts). This issue is the co-op one.

Why it wasn't in that PR: the fight sim is strictly one on one. Match.f is [Fighter, Fighter], every rule in src/sim.ts reads m.f[side ? 0 : 1] as "the other one", and sim-rs/src/sim.rs mirrors it bit for bit (CI checks every tick). Two players against one wild means a sim that knows teams.

What co-op needs:

  1. Sim: fighters as a list with a team each. Targeting (the lock-on, a heavy's sweep, ranged shapes aimed at the target) picks the nearest foe. Body push between all pairs. KO ends the round when one team is down. Change sim.ts and sim.rs together; test/sim-rust.test.ts keeps them in step.
  2. Bot: bot.ts picks a target (nearest, or whoever hit it last). opener.ts already wraps it.
  3. Wire: Lockstep in src/net/duel.ts carries two inputs a tick. With N it's the same scheme: the room relays each seat's inputs to the others, and a tick plays when all are in. The Duel room grows to 2-4 seats, or a Coop room sits beside it.
  4. Where: a wild den or a keeper while walking together (?room=) would be the natural door: a friend in the same region joins your fight. The other way in is "Fight a Friend → Team up vs the wilds".
  5. HUD and camera: bars for 3+ fighters; the camera locks on your target.

Rough size: the sim and its Rust twin are most of it (a day or two with the tuner kept balanced); the room and page are smaller since the duel's lockstep carries over.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions