Skip to content

Conversation

@gcabbage
Copy link
Contributor

Start work on updating the Charon raider behavior (used for frigates etc in Korolov missions) to be more flexible and use more recent game features.

Removes Ship / Encounter table <OnCreate>(objFireEvent gSource ... calls. These date back to very early versions - before the introduction of eventHandlers - and can be replaced with the OnCreateOrders event

To do:

  • Improved wander behavior
    • hunt and loot from freighters
    • Return to stronghold when appropriate
    • Repair at stronghold
  • raid transport behavior
    • retreat if heavily damaged
    • control over choice of waiting on transport path or waiting near (but not on) path
  • Improve raider reuse in chrDeployFrigateRaid to avoid overfilling the system with wandering pirate

@FlufflesTheMicrosaur
Copy link
Contributor

Should some of this be moved to a base type where the frigate and the drake can inherit this, so that drakes can be used much more frequently in the commerce raiding role (both in and out of missions) to provide smoother progression between drakes and frigates?

Atm the drake is meant to be an intermediate step, but the current system makes them simultaneously too rare, and also skips ahead to frigates way too quickly.

Getting to master rank in korolov requires utilizing metagame knowledge to skip most of the new escort missions you unlock at journeyman rank to avoid frigates spawning that kick you ahead to legend rank instead and lock you out of further missions, and even then its a small chance that you even are able to get drakes to spawn if you are just farming EI100 and EI200 missions (The Antares II has a chance of spawning a frigate depending on what it rolls for cargo, and its essentially guaranteed for Antares V and EI7000). This isnt helped by the current system of having wandering frigates too that the player might end up having to deal with which still count towards the frigate kill count counter.

@gcabbage
Copy link
Contributor Author

Most of the behaviour logic has already been moved to a separate event handler that can be used with both Drakes and Frigates. The only code left on the Frigate class is counting the number of frigates destroyed (this should still be updated or moved to the Charon sovereign to better deal with cases like someone creating a frigate with a different sovereign)

I agree that the progression should be smoother (more Drakes, fewer frigates), this could be done by increasing the thresholds in chrRaidTransport, or by reducing the korolov.containerPrices. I’m slightly in favour of reducing the container prices as that lets you make changes on a per-freighter basis.

FYI - George copied the current behaviour from an early version of my Korolov/Charon mod (forum post code change: b1742f1) which swapped frigates at lower cargo values to use drakes. My original intention was to have the rough progression: apprentices face gunships, journeymen mostly get drakes, and masters get frigates. However, at a later point the korolov.containerPrices for journeymen were increased so Drake spawns became rarer and journeymen mostly face frigates again.

Anyway, regardless of the cargoValue / containerPrice thresholds used to select Drakes or frigates. This PR should (when complete) make the player experience a bit less punishing once they reach journeyman:

  • The "improved wander" behaviour is heavily based on EP NAU mission 3. This means frigates (or drakes) will attempt to hunt other freighters when they're not in use by player missions. The frigates will be more likely to be in a suitable position to be reused in the next mission (so we don't spawn multiple frigates at the same time).
  • Having the frigate/drake retreat when heavily damaged means it's easier to get through journeyman without killing 4+ frigates (or using metagame knowledge to skip high value missions)
  • I plan to change the frigate reuse code in chrDeployFrigateRaid. Currently it will only reuse frigates which are already within 300 ls of the ambush point. This will be changed to any one that can reach the ambush point in time
    • can include a margin so sometimes the frigate is late to the ambush
    • can include some flexibility - e.g. if there are already 2 drakes in position use those instead of adding a frigate
  • The thresholds / encounter lists in chrRaidTransport will be read from properties on the Charon sovereign so they're easier to modify etc

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants