dcs-liberation / dcs_liberation

DCS World dynamic campaign.
GNU Lesser General Public License v3.0
712 stars 185 forks source link

Carrier type selection (requested by Ghosti) #1699

Open sgtfuzzle17 opened 2 years ago

sgtfuzzle17 commented 2 years ago

Is your feature request related to a problem? Please describe. Currently Liberation is missing options to choose which carrier type will be used outside of “use Supercarrier” in campaign setup. Lib would benefit from the ability to choose between SC or non-SC Kuz options, Forrestal or Stennis for non-SC players, or even multiple different carriers having different selections to better fit a given campaign designer’s vision or a historical scenario.

Describe the solution you'd like Copied from the Liberation Discord #general channel discussion between myself, Ghosti and Starfire:

You may have already started implementing something, but the most sensible way to handle this (to me at least) would be to have campaign designers set default carriers for given placements in the mission files, then have a drop-down window that comes before the air wing setup screen when starting a campaign which lets you change which carriers use which models. The campaign defaults are preselected much the same way factions are now, so you can reliably get players moved in the right direction but you’re not necessarily locked into a given setup (and you could give more power to groups that fly with wacky setups for player accessibility ie a SC Kuz teaming up with the Forrestal so both kinds of naviators can do their thing).

Additional context I’m aware that the developers may already have this underway and so this FR is moot, but I do think that this may be the best way to implement at least from an end-user perspective so that campaign designers can influence the default state of their campaigns to fit their vision while players can also edit to suit their needs, all while keeping it user-friendly and within the campaign setup dialogue.

MetalStormGhost commented 2 years ago

Thanks for posting this. Currently the carrier types and carrier names are defined in the faction file. What we currently lack is making a link between the two in case several carrier types are defined. The carrier type selection is randomized.

Proposal, instead of this:

  "aircraft_carrier": [
    "Stennis",
    "Forrestal"
  ],
  "carrier_names": [
    "CVN-71 Theodore Roosevelt",
    "CVN-72 Abraham Lincoln",
    "CVN-73 George Washington",
    "CVN-74 John C. Stennis",
    "CVN-75 Harry S. Truman",
    "CV-59 Forrestal",
    "CV-60 Saratoga",
    "CV-61 Ranger",
    "CV-62 Independence"
  ],

We could define the carriers something like this:

  "carriers": {
    "Stennis": [
      "CVN-71 Theodore Roosevelt",
      "CVN-72 Abraham Lincoln",
      "CVN-73 George Washington",
      "CVN-74 John C. Stennis",
      "CVN-75 Harry S. Truman"
    ],
    "Forrestal": [
      "CV-59 Forrestal",
      "CV-60 Saratoga",
      "CV-61 Ranger",
      "CV-62 Independence"
    ]
  }
MetalStormGhost commented 2 years ago

The we could have an optional link in the campaign file to a carrier type in case the campaign designer wishes to define their own squadrons for the Nimitz class and Forrestal class separately?

@DanAlbert any comments on the above?

DanAlbert commented 2 years ago

I kind of hate everything about carrier selection in Liberation. The faction change you have helps, but I think the campaign should (optionally) be picking more specifically rather than just by type.

Not necessarily this, but something like:

carriers:
  Carrier Group Name from miz:
    preferred_name: CVN-71 Theodore Roosevelt
    preferred_type: ID of Roosevelt

If the faction doesn't have the preferred type then it goes back to the old behavior of picking something from the faction.

If it does, then it checks to see if the specific carrier is available by name. If it is that gets used, otherwise it picks a different name from the faction.

And in the process we can fix the "bug" where the carrier name and model change every turn and only match the name in the campaign if the dice roll the right way. We can still allow upgrading/downgrading the carrier in the options, but as long as the game options match the campaign it'll be consistent.