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

Adds Global Event Cooldowns for Storyteller #2101

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

Conversation

BurgerLUA
Copy link
Contributor

@BurgerLUA BurgerLUA commented Sep 20, 2024

About The Pull Request

Adds a "breathing room" feature for storyteller that prevents storyteller point gains if a chaotic event ran.

Adds minimum cooldowns for all track types, preventing two tracks firing in quick succession due to excessive points.

Why It's Good For The Game

Minimum cooldowns and breathing room prevent the storyteller from suddenly waking up and deciding "Hey lets spawn blob, spiders, and meteors at the same time because we can now afford all these events now." While Blob, Spiders, and Meteors can still all occur in the same round, it just won't spawn them all within 1 minute of eachother.

Proof Of Testing

Can't really test. Recommend testmerge.

Changelog

🆑 BurgerBB
add: Adds Cooldowns for Storyteller
/:cl:

@BurgerLUA
Copy link
Contributor Author

Does this fix storyteller? Only one aspect of it, which is there not being a reasonable delay between events and allowing crazy shit to happen even on the calmest of storytellers.

What is basically happening is that storyteller saves up their points for all tracks and then all at the same time (pretty much), starts running events for each track, which results in the funny Blob into Meteors into Malf spawn.

Copy link
Contributor

@Majkl-J Majkl-J left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cooldown delays should be tied to storytellers themselves, and block points from being added into all the tracks instead of blocking events for running. Probably with a lower amount of time, suggesting defaults of none for mundane, 10 min for moderate, 20 min for major. It feels needlessly convoluted running several cooldowns at once, and makes it fairly hard to read.

Reason to move it to the points is that the current code it will just pile up more points in the back so you'll get unintended behavior of having tracks be filled to 500% due to everything else running before and blocking them (This was an issue with the mundane track on the original predictable chaos)

@BurgerLUA
Copy link
Contributor Author

The cooldown delays should be tied to storytellers themselves, and block points from being added into all the tracks instead of blocking events for running. Probably with a lower amount of time, suggesting defaults of none for mundane, 10 min for moderate, 20 min for major. It feels needlessly convoluted running several cooldowns at once, and makes it fairly hard to read.

Reason to move it to the points is that the current code it will just pile up more points in the back so you'll get unintended behavior of having tracks be filled to 500% due to everything else running before and blocking them (This was an issue with the mundane track on the original predictable chaos)

I can implement half of what you suggested. Problem is that blocking points gains does not stop already saved points from being spent.

@BurgerLUA
Copy link
Contributor Author

Multiple cooldowns I think is the best way to do it.

Single cooldowns means that all tracks won't be able to gain points, meaning that even with lower cooldowns, it is possible for major events not to occur because the amount of points it gets is extremely little.

@BurgerLUA BurgerLUA changed the title Adds Global Event Cooldowns for Storyteller + Prioritizes Crew Antag Spawns (until the 1 hour mark) Adds Global Event Cooldowns for Storyteller Sep 20, 2024
@Majkl-J
Copy link
Contributor

Majkl-J commented Sep 20, 2024

I can implement half of what you suggested. Problem is that blocking points gains does not stop already saved points from being spent.

Points are only ever spent when the track is full so at worse we'll have the rare case of 2 events syncing up perfectly which is already very rare with the new implementation and it's fine if that happens here and there

@Majkl-J
Copy link
Contributor

Majkl-J commented Sep 20, 2024

Multiple cooldowns I think is the best way to do it.

Single cooldowns means that all tracks won't be able to gain points, meaning that even with lower cooldowns, it is possible for major events not to occur because the amount of points it gets is extremely little.

That is a fair point, let's see how this works as of current and we can work from there.

@Majkl-J Majkl-J added Test Merge Candidate this is good to test merge Test Merged labels Sep 20, 2024
@Majkl-J
Copy link
Contributor

Majkl-J commented Sep 20, 2024

Also as for the ghost/crew rolls I think that maybe making the antag cap rise less / sec member could be of better help currently, antags are usually given equipment to fight off multiple seccies so having it 1sec = 1antag is probably dumb and why default andy sometimes feels nuclear. Feel free to make a new atomized PR that changes it to 0.5 cap for sec, unless I do it first once I get off lunch.

@BurgerLUA
Copy link
Contributor Author

Also as for the ghost/crew rolls I think that maybe making the antag cap rise less / sec member could be of better help currently, antags are usually given equipment to fight off multiple seccies so having it 1sec = 1antag is probably dumb and why default andy sometimes feels nuclear. Feel free to make a new atomized PR that changes it to 0.5 cap for sec, unless I do it first once I get off lunch.

I removed that feature because the only reason it existed is because I needed to decide which gets priority when it comes to the "add antag" cooldown. This PR just does the cooldown thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Test Merge Candidate this is good to test merge Test Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants