-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
[WIP] Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it. #41067
Conversation
This reverts commit fb8db0a.
I like the idea, however I'm not sure how they fit our lore. |
I'm not seeing the reason for the option, we've long ago moved away from gating content on options, we use mods for that instead. |
Option is the wrong way to go here. The relevant systems should be jsonized so this can go in a mod. |
This, 100% this! ^^^ A jsonized system to spawn monster through weather sounds great! |
The idea with making it an option was to initially gate it and then toy with balance until removing the option sorta like random npc spawns and hordes. That said I considered using json and will use that instead, hadn't thought of allowing other weather similar effects. I didn't make this magiclysm partially because I've never played it but also because this is inspired by Stephen King's The Mist which isn't fantasy and in which the military tampers with something and unleashes the mist and that seemed like a perfect fit for regular cataclysm. |
Moved all mist options and ability to spawn monsters based on weather into json, in regional_map_settings.json in the weather element. Mist is now on in default json. Updated docs to reflect this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is inappropriate content for core and it hardcodes too much when we're trying to split content from engine functionality. The groundwork for jsonizing weather should be done first.
@@ -916,7 +916,51 @@ | |||
"base_acid": 0.0, | |||
"base_wind": 3.4, | |||
"base_wind_distrib_peaks": 80, | |||
"base_wind_season_variation": 50 | |||
"base_wind_season_variation": 50, | |||
"mist": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be generalized to an array of localized weather objects with jsonized properties and effects.
"mist_active": true, | ||
"mist_scaling": 1.0, | ||
"mist_frequency": 7, | ||
"mist_length": 8, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duration should be randomized between a [ min, max ]
pair rather than fixed randomization around a value.
"mist_thick_threshold": 10, | ||
"mist_stifling_threshold": 20 | ||
}, | ||
"weather_spawn": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spawns should be part of the weather objects.
"category": "mist_arrives", | ||
"text": [ | ||
"You blink and there is dense mist as far as you can see, which is much less than it used to be.", | ||
"In an instant a thick mist descends upon the world, far too fast to be natural. Or are you finally losing it?." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"In an instant a thick mist descends upon the world, far too fast to be natural. Or are you finally losing it?." | |
"In an instant a thick mist descends upon the world, far too fast to be natural." |
I think the 'losing it' bit inserts too much of the character's thoughts
"I can do better, I promise, please!", | ||
"I'm going to kill that son of a bitch!", | ||
"That's no excuse!" | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider importing other snippets here, to make the mist more confusing. eg.
"<im_leaving_you>",
"<ill_kill_you>",
"<ill_die>",
"<wait>",
"<drop_it>",
"<hands_up>",
"<fuck_you>",
"<general_danger_h>",
"<kill_npc>",
"<kill_npc_h>",
"<speech_warning>"
This is a batch of generally concerning-sounding snippets that NPCs say, and if the mist often sounds like NPCs it will be really disorienting.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered. |
Summary
SUMMARY: Content "Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it."
Purpose of change
Add more content. Got inspired to try something other than damage as a player challenge.
Describe the solution
Add new json configurable option to have weather spawn monsters.
Mist will occur after a random number of days based on json, overriding the current weather.
Mist makes it harder to see and as long as you are outdoors will spawn various enemies based on its intensity, which increases over time.
Every time the mist appears its starting and ending intensity are a little higher and on average it lasts longer and comes sooner.
All of the spawned enemies have 1 hp and are killed after attacking. They do no damage but give you negative effects.
Some are hallucination copies of nearby real enemies.
Some drain your stamina and fatigue.
Some make you scream and lower morale.
And the worst of all steal your substance and briefly make you invincible. For the minor cost of dealing no damage and your items keeping their substance and subsequently falling to the ground.
Also added a bunch of snippets all over to add some atmosphere.
Also created an enemy which summons the mist upon death. At present it does not spawn out of debug but is more a proof of concept for future PRs.
Describe alternatives you've considered
Testing
Additional context