CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.65k stars 4.18k forks source link

Shadow Liutenant warning pops up a bit too much #71672

Closed fairyarmadillo closed 9 months ago

fairyarmadillo commented 9 months ago

Describe the bug

The text for the shadow liutenant warnings is really well written and I was immediately interested in what was going on when I saw my first one, and I saw a post on reddit saying about the same thing so it's not just me, but then I got the same popup like 3 times in the same night. It started to get a bit annoying, which took away the immersive creepiness of the messages (which I have to stress are extremely effective and a good model for this kind of stuff in the future).

Attach save file

N/A

Steps to reproduce

Go stand in the woods on day 1 and try sleeping or waiting for a while, get spammed a bit.

Expected behavior

I think once per night would be appropriate, and once you've been made aware by a couple of popups that something doesn't feel right, we probably don't need to warn the player every single night. A solution that works here might be to add a couple of invisible effects that last a week or so, and have them serve as variables for whether the player has seen each individual message. The EOCs could even be fine tuned a bit to really make sure you see the message if you're not spending all that much time out in the woods and the deadline's getting closer.

Pinging @Inglonias since this was their project.

Screenshots

No response

Versions and configuration

Additional context

The non-popup messages are fine and don't need any tweaking. In fact, there could even be a few more of those, maybe starting out pretty rare but increasing in frequency as the monster draws near.

One of the messages talks about machine gun fire in the distance, implying other survivors are fighting the monster. Could an EOC be made which would spawn patches of bare grass and the remains of a battle in a nearby field, maybe with a mission to go check it out? Like imagine you just find a few empty casings and a single flashlight with a dead battery in it. It's both creepy, and a hint about what to do. You could even place a map marker for it, so the player could go over there and realize that something terrible can happen to them too. That's a bigger project though.

Inglonias commented 9 months ago

I'll take a look, but the implementer of the warning ended up being @RenechCDDA

Last I checked this is only supposed to pop up once

Inglonias commented 9 months ago

Please try the linked PR. I've adjusted things so you get one warning before the 7 day mark, and one warning after the 7 day mark.

fairyarmadillo commented 9 months ago

Will do

RenechCDDA commented 9 months ago

Just checking, were you outside on those nights? Warnings should only fire when shadow has a chance of actually spawning (it's not dead, you meet all the spawn conditions, it just failed on the 1/6 roll). It's like hearing the click when playing Russian roulette, it lets you know you're safe... for now.

fairyarmadillo commented 9 months ago

Yes, I was on night 1 testing some stuff. I walked out into the woods and hit "wait until midnight" and then "wait until noon" and saw the popup several times over the course of that one night. I tested the first two or three nights out there in a row several times (was working on something else) and every single night I got multiple popups every night. The monster never spawned, I'm not even sure it can spawn on night 1.

I don't have my save so it's possible it was actually later than night 1, but I don't think it was, and in any event I was seeing the popup multiple times per night.

Inglonias commented 9 months ago

Current behavior requires that you get at least one warning and that seven days have passed before the monster actually spawns.

Inglonias commented 9 months ago

Just checking, were you outside on those nights? Warnings should only fire when shadow has a chance of actually spawning (it's not dead, you meet all the spawn conditions, it just failed on the 1/6 roll). It's like hearing the click when playing Russian roulette, it lets you know you're safe... for now.

If this is intended, I can adjust the linked PR such that you can have as many late warnings as you like, but only one early warning.

RenechCDDA commented 9 months ago

Just some quick back of the napkin maths here: The reoccurrence time to try spawning Shadow is 30 minutes-9 hours, giving an average spawn time of 4 hours and 15 minutes. This only happens during the night, although the check is happening all the time we can solely look at the night portion to see how often this should occur.

On Spring 61 the night time is about 10 hours long, giving you somewhat more than two (10/4.25=2.35) chances on average to get warnings. But it is not expected that players are outside fulfilling the spawn conditions all night.

Yes, I was on night 1 testing some stuff.

OK that makes perfect sense, I think we can clamp warnings to one before it is capable of spawning. Past that it's still russian roulette and if players are capable of ignoring the warnings they should also be capable of killing it.

Inglonias commented 9 months ago

Just some quick back of the napkin maths here: The reoccurrence time to try spawning Shadow is 30 minutes-9 hours, giving an average spawn time of 4 hours and 15 minutes. This only happens during the night, although the check is happening all the time we can solely look at the night portion to see how often this should occur.

On Spring 61 the night time is about 10 hours long, giving you somewhat more than two (10/4.25=2.35) chances on average to get warnings. But it is not expected that players are outside fulfilling the spawn conditions all night.

Yes, I was on night 1 testing some stuff.

OK that makes perfect sense, I think we can clamp warnings to one before it is capable of spawning. Past that it's still russian roulette and if players are capable of ignoring the warnings they should also be capable of killing it.

Alright. I've adjusted the linked PR to remove the two-warning maximum. Try it and let me know what you think.

fairyarmadillo commented 9 months ago

I really think multiple popups on any night are going to feel annoying, especially when you're seeing the same message over and over. Why do the popups have to be tied to the spawn chance at all? They could be a separate EOC, and the player honestly only ever needs to see one or two in their entire run. They're not going to suddenly forget that they got the warning two nights ago.

And forests and fields are the most common tiles in the game, so expecting players to not be in them often enough to mind is not quite right I don't think. Plenty of players just sleep in a car or a tent somewhere random.

Inglonias commented 9 months ago

I really think multiple popups on any night are going to feel annoying, especially when you're seeing the same message over and over. Why do the popups have to be tied to the spawn chance at all? They could be a separate EOC, and the player honestly only ever needs to see one or two in their entire run. They're not going to suddenly forget that they got the warning two nights ago.

And forests and fields are the most common tiles in the game, so expecting players to not be in them often enough to mind is not quite right I don't think. Plenty of players just sleep in a car or a tent somewhere random.

The EOCs don't fire if the player is sleeping, or if they are some form of indoors. Pretty sure a tent qualifies as indoors, but I will run tests to make sure.

fairyarmadillo commented 9 months ago

Cars don't count as indoors, and anyway relying on what you think is likely behavior is never gonna cover every case. You could just slap an effect on the player that says they've seen the popup and don't need to see it again for the rest of the night. It could instead run a different EOC that prints a smaller warning in the log, since at that point the player cannot possibly have missed the warning. Less spam, everyone's happy, no?

Inglonias commented 9 months ago

I agree with you, but after my tests, oddly enough, cars do count as indoors for the purposes of this EOC, or prevent it from firing in some other way. Ditto with tents.

Still, I agree that we can fall into another warning that's less obtrusive after 7 days.

Inglonias commented 9 months ago

The popup warning now falls into a non-popup version with the same conditions if it fails. It's tested - we just need to see if the unit tests pass, which they should, since I didn't change any code.

EDIT: If everyone is happy, I would appreciate some sort of nod of approval on the PR.