OpenRA / OpenRA/OpenRA

Campaign progression: mission browser integration

Open
#22,603 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
17.4k
Forks
3k
Avg merge
1d 12h
Merged PRs (30d)
14

Description

Part 3 of #22600, depends on #22602. Make the existing mission browser progression-aware: locked missions are hidden until unlocked, and completed missions show their playthrough record. This is the display side of @pchote's original steps 2–3, and the modern take on what #15020 attempted in 2018.

Design

  • The browser reads the progress store (C#; no Lua involved on the read side).
  • The existing browser layout and missions.yaml grouping stay — this decorates, it does not redesign (the campaign-specific selection screen is milestone 5's separate UI).
  • Locked missions are hidden (not greyed) by default, matching #17067's "unavailable missions" behavior; an unlock-all button will likely need to be added to not regress the experience for players that don't care about the campaign progression.

Work items

  • Hide missions whose unlock state (from the store's standard schema) says locked; missions with no campaign data behave exactly as today
  • Show playthrough info for completed missions: beaten difficulty, completion time, score
  • Coordinate with #22321 (mission browser setting saving) so the two features don't collide

Out of scope

Choosing the next mission mid-campaign (milestone 5), any changes to how missions launch.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the existing mission browser, its missions.yaml grouping, and the C# progress store's standard schema. Implement the display behavior without redesigning the layout: hide locked missions, preserve missions with no campaign data, and show difficulty, completion time, and score for completed missions. Check coordination with #22321 so setting persistence does not conflict.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.