Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deletes all gamemodes in favor of storytellers #22661

Open
wants to merge 160 commits into
base: master
Choose a base branch
from

Conversation

Moltijoe
Copy link
Contributor

@Moltijoe Moltijoe commented Sep 28, 2024

This is an extension of #22565
That pr works (mostly) and is stable enough to leave testmerged for the time being

This pr goes further, removing all gamemodes as storytellers make them obsolete.
Removing gamemodes will improve code maintainability in the future, as well as reduce code bloat.
However, a number of unrelated features relied on game modes to work, so while removing them, i noticed that it would become far more unstable for the time being.

Rather than risk messing up that original pr, i made a new branch, that is this

Now for how the system itself works

Storytellers

It works by using the existing event system that was previously only for midround events, but develops it further
It has 5 different event tracks

  • Mundane - Barely affects the round, whether positive or negative
  • Moderate - Can have an affect on the round, but usually isn't outright destructive
  • Major - Can have significant lasting effects on the round, some lesser ghost role antags are under this track
  • Roleset - Contains the majority of antags, whether ghost role or otherwise
  • Objectives - An objective for the crew to complete that rewards them in some way

Each event also has a list of tags, such as

  • TAG_ALIEN - The event is an alien threat
  • TAG_COMMUNAL - The event impacts most of the crewmembers
  • TAG_DESTRUCTIVE - the event generally causes destruction to the station
  • TAG_SPOOKY - the event can be considered somewhat scary in thematic
  • Others - it's easy to add more tags, allowing for more event selection customization

The storytellers work by having a "storyteller" generate points over time for each track
Once a track reaches a certain threshold, the "storyteller" will buy an event from that track
The event purchased will be determined by

  • The original designated weight
  • How many times it's been run before during the round
  • How the storyteller favours that event's tags

Different types of storytellers can be made to convey different game feelings

  • Guide - regular experience
  • Sleeper - less antags, but more events that are less likely to be destructive or combatitive
  • Mystic - more spooky, magical, or space related events
  • Operative - More antags, and those antags are more likely to come from within the crew, can spawn roundstart antags during the round
  • Clown - admin only - Spawns WAY more mundane and moderate events and they can repeat freely, but far fewer major events

Adding new events to this system is easier than making new event for dynamic, and they're going to spawn in more varied amounts compared to the old events + gamemode system

Why is this good for the game?

Dynamic is less dynamic than would be ideal and requires more work to update, maintain, and improve that we have
Storytellers is both more flexible to start, and is a lot easier to understand from a coding perspective, making it far less of a resource drain on our dev team to maintain

Testing

why should i need to test this

🆑 Biome, Molti, Dwasint, & other Monke devs
rscadd: Adds storytellers
rscdel: Deletes literally all gamemodes, buh bye
tweak: so many round events, like, genuinely so much
/:cl:

@Moltijoe Moltijoe added Test Merge - Scheduled This PR is waiting to be test merged Test Merge - Requested This PR is waiting for a test merge to be scheduled labels Sep 30, 2024
Yogbot-13 added a commit that referenced this pull request Sep 30, 2024
Yogbot-13 added a commit that referenced this pull request Oct 1, 2024
This was referenced Oct 2, 2024
Yogbot-13 added a commit that referenced this pull request Oct 2, 2024
Yogbot-13 added a commit that referenced this pull request Oct 3, 2024
Yogbot-13 added a commit that referenced this pull request Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Revert / Deletion Altoids is probably mad about this Test Merge - Requested This PR is waiting for a test merge to be scheduled Test Merge - Scheduled This PR is waiting to be test merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants