# Dynamic (Yogstation Version)
## Goals
1. Remove the terrible way Antagonists handle their events and keep track of minds.
2. Keep feature parity with the current gamemodes.
3. Allow for new gamemodes to be implemented easily without having to work with a confusing mess.
## Non-Goals
1. Remove any Antagonists
2. Change the functions of any Antagonists, this should not be visible to players at all.
## Maintainer-approved changes
These are things that will be changed in this refactor, with approval from Maintainers to do so. This goes against Goal #2, which is why you need explicit approval to do these changes.
- The announcement of the gamemode and its description. Yogstation runs secret nearly at all times anyways, so it is fine to remove this text. At best, it should be just 'Static' or 'Dynamic', with no explanation on what antagonists the crew will encounter that round.
## The Point
Yogstation's Dynamic has been falling behind on TG's for quite some time now. TG manages to handle Dynamic rulesets pretty well, and it would be nice to update to this.
However, people still want existing gamemodes to exist. Instead of leaving this in limbo for eternity, this is a compromise meant to move the codebase forward and at least remove the technical debt that gamemodes bring us.
## The 'Sole' Gamemode
The Sole Gamemode is the replacement for gamemodes. It is a dynamic ruleset that will completely hijack the round, preventing any future rulesets from being picked for the rest of the round (unless forced by an Admin).
#### Choosing the Gamemode
We will firstly choose if we want a round to be Dynamic or Static.
If it's Static, we will choose one of the following:
- 1 High-Impacting/Lone ruleset (These are Wizards/Nukies/Cultists/Infiltration)
- 2/3 Non-High Impacting rulesets (Traitors/Changelings/Bloodsuckers/Heretics)
This will bring the uniqueness of gamemodes such as Traitor/Bro, Traitor/Chan, Traitor/Sucker, etc. while allowing for new combinations of antagonists to be selected as well.
If it's Dynamic, then we'll bypass this and let it pick out rulesets as normal.
## Rulesets that don't exist on TG
### Internal Affairs Agents
IAAs have never been added to Dynamic, it will need some work to get it functional. https://github.com/fulpstation/fulpstation/pull/563 was the closest it ever got, but it had some minor bugs that need to be worked on. This ruleset can be added by someone in the future, and should not block this refactor from going through just for this one ruleset. It should be fine to remove, with the intent of going back to it in the future.
### Clock Cult
Already exists on Dynamic.
### Devils
Already exists on Dynamic. This is an admin-only gamemode and it's easy to maintain so there's no problem with it. In fact, the main problematic part of Devils is the Antagonist itself, not its gamemode.
### Monkeys
Already exists on Dynamic, but was commented out. Monkey gamemode was removed from TG, but it won't be hard to re-add. This is an admin-only gamemode and it's easy to maintain so there's no problem with it.
### Darkspawn
Already exists on Dynamic.
### Meteors
Should probably be removed, but has no reason why it can't stay for now, as it's admin-only.
### Vampire
Already exists on Dynamic.
### Shadowling
Already exists on Dynamic.
### Infiltration
Already exists on Dynamic. This is admin-only, so doesn't need many changes to it.
###### tags: `Yogstation`