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

[WIP] Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it. #41067

Closed
wants to merge 28 commits into from

Conversation

Ramza13
Copy link
Contributor

@Ramza13 Ramza13 commented Jun 4, 2020

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

@Ramza13 Ramza13 requested a review from I-am-Erk as a code owner June 4, 2020 02:14
@anothersimulacrum anothersimulacrum added <Enhancement / Feature> New features, or enhancements on existing [C++] Changes (can be) made in C++. Previously named `Code` Character / World Generation Issues and enhancements concerning stages of creating a character or a world Mechanics: Weather Rain, snow, portal storms and non-temperature environment Monsters Monsters both friendly and unfriendly. Spawn Creatures, items, vehicles, locations appearing on map labels Jun 4, 2020
data/json/monsters/mist.json Outdated Show resolved Hide resolved
data/json/monsters/mist.json Outdated Show resolved Hide resolved
@Night-Pryanik
Copy link
Contributor

I like the idea, however I'm not sure how they fit our lore.
Also I'd prefer option turned on on default.

@kevingranade
Copy link
Member

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.

@ymber
Copy link
Member

ymber commented Jun 4, 2020

Option is the wrong way to go here. The relevant systems should be jsonized so this can go in a mod.

@Fris0uman
Copy link
Contributor

Fris0uman commented Jun 4, 2020

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!
(Flavour wise this mist might fit Magiclysm better)

@Ramza13
Copy link
Contributor Author

Ramza13 commented Jun 4, 2020

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.
Thanks for the feedback!

@Ramza13 Ramza13 changed the title New weather / monster faction: Mist [WIP] New weather / monster faction: Mist Jun 4, 2020
@Ramza13
Copy link
Contributor Author

Ramza13 commented Jun 8, 2020

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.

@Ramza13 Ramza13 changed the title [WIP] New weather / monster faction: Mist Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it. Jun 8, 2020
Copy link
Member

@ymber ymber left a 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": {
Copy link
Member

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,
Copy link
Member

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": [
Copy link
Member

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.

@Ramza13 Ramza13 changed the title Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it. [WIP] Adds ability for weather to spawn monsters, and a new weather type, Mist, which uses it. Jun 9, 2020
"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?."
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
"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!"
]
Copy link
Member

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.

@stale
Copy link

stale bot commented Jul 10, 2020

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.

@stale stale bot added the stale Closed for lack of activity, but still valid. label Jul 10, 2020
@anothersimulacrum anothersimulacrum removed the stale Closed for lack of activity, but still valid. label Jul 10, 2020
@Ramza13 Ramza13 closed this Aug 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` Character / World Generation Issues and enhancements concerning stages of creating a character or a world <Enhancement / Feature> New features, or enhancements on existing Mechanics: Weather Rain, snow, portal storms and non-temperature environment Monsters Monsters both friendly and unfriendly. Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants