Aurora.3
Aurora.3 copied to clipboard
Dynamic Gamdemodes -Revive
Copied from the original PR #11008
Implements the dynamic gamemode, Aurora style.
Players are presented with 2 votes in sequence: one for intensity, one for antag types.
Intensity works as follows. It's a scale of 0 to 3, inclusive. 0 denotes extended: no antags. The rest all will dynamically compose an antagonist set. Each antagonist datum is given an intensity of their own (1 to 3), and so the algorithm will compose an antagonist template set such that the total intensity of the chosen antagonist templates is equal to the intensity of the round. If no such set can be composed, no antags are used.
Voting is also changed. It is no longer a "Winner takes all" system. Instead, antag templates are chosen through weighted selection, with the weight being the amount of votes that specific antag receiving vs the total number of antag votes issued. This means that more voted antags have a higher chance of winning, but will not always get in. This should make it so that voting is a lot more varied, as there is no benefit to hobbling a single antag type.
TODO:
- [ ] The removal of game modes as a concept is mildly untested, but it should be fine. Might need deeper review, though.
- [ ] Testing.
- [ ] Check how dynamic reacts to "start failures"
- [ ] (opt) Improve Antag Type Selection to Account for: required players, required antags, antag readies. (check logs of cHc-aivg)
- [ ] (opt) Change intensity type of the antags to be based on the individual antags instead of the "antag teams"
- [ ] (opt) Add the capability to dynamically add antags during a ongoing round (as a replacement for "autotraitor")
There are other things as well. Like reworking the atrocious vote controller and making all antags into datums for more uniform inround spawning. This can be done off the back of this PR, and over time. Small victories, lads, small victories.
How does this affect gamemodes like "meteors" where there are no antags?? Would it be considered a antag intensity of 0 or given a intensity rating depending on severity?