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

Add Skunks! #73537

Merged
merged 9 commits into from
May 9, 2024
Merged

Add Skunks! #73537

merged 9 commits into from
May 9, 2024

Conversation

TheMurderUnicorn
Copy link
Contributor

@TheMurderUnicorn TheMurderUnicorn commented May 5, 2024

Summary

Content "Added Skunks"

Purpose of change

Skunks did not exist in game but existed in New England, as was pointed out by NetSysFire in #70220 It wasn't clear if they were going to add them or if they were inviting others to contribute so I decided to give it a shot myself.

Describe the solution

  • Add Skunk to data/json/monsters/mammal.json around opossum around 2625
    • Skunk Notes: Most was copied from Opossum entry
    • Weight – Site says 6-14 lb, so 5 kilo
    • HP - Cats and Opossum have 12 hp, so makes sense for Skunk
    • Vision - Not sure why the Opossum has such good day vision and such bad night vision, but skunks are mostly nocturnal so although they aren’t regarded as having great vision, its decent night vision. I’ve assigned. I saw various reports of possum sights, ranging from ‘they can barely see 10 feet in front of them regardless of conditions’ to ‘they see better than humans at night’, neither of which seems correct. Soooo… I arbitrarily assigned values, I know, it’s not great. They seem to overall have okay night vision but are regarded as poor sighted animals.
    • Flags – Because their eyesight is so poor, they seem to rely on hearing and smell to navigate, most resources point out that they hear and smell very well, so I’ve given them keennose and good hearing
    • Aggression – Unfortunately, to enable the skunk spray I had to make them somewhat aggressive. They often flip between aggro and fleeing, and have very poor vision so theyre not going to come screaming out of the darkness for players. This is a terrible solution, but no matter what aggro flags I used, they did not achieve the desired result. This was the only way I could get them to use their spray, I’m not happy about it.
  • Add Skunk Special Attack Spell – data/json/monster_special_attacks/spell.json, a 0 damage spell that triggers an effect after attack resolves.
  • Add Skunk Spray Effect to data/json/effects.json, the actual effect, which lowers perception and int slightly and has a handful of social-related effects, like making you less appealing when meeting an NPC, lowering your ability to persuade others, etc. It also increases your scent for the purposes of scent tracking by other monsters.
  • Add Skunk Skull item to data/json/items/generic/skulls.json, it's just a skull, you should like skulls.
  • Add Skunk harvest to data/json/harvest.json, basically identical to possum harvest except for size differences
  • Add Skunk to a few wildlife spawns, this is the part I don’t really know how to balance so they will probably end up underspawning in general to avoid messing up.
    • GROUP_WILDERNESS_FOREST_MAMMAL line 148ish
    • GROUP_PARK_ANIMAL no way to specify rural park v city park, tiny chance.
  • Did NOT add to tameable wildlife mod as I initially planned. Unfortunately, I had to make them somewhat hostile in order to get the skunk spray to work. As a result, they flip between hostile and fleeing most of the time, making it very unlikely they would be tameable. The solution here is to add a skunk kit, without the spray/aggression and allow them to be tameable. Unfortunately, I don’t know how to add babies/reproduction and I really don’t want to learn, my motivation has fled, someone else can do this if they want to/whoever maintains tameable wildlife can handle that I guess. Sorry about that.

Describe alternatives you've considered

I tried lots of things but this is what ultimately made sense for how to do it.

Testing

Lots of trial and error with the spell system, thanks to those who helped me through discord, notably GuardianDLL. I tested the skunk, the harvest, the spawns, the magic effect, the spell itself, everything seems to be working properly, with the exception of a little undesirable behavior from their aggression, which I outlined above.

Additional context

image
image

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Spawn Creatures, items, vehicles, locations appearing on map Mechanics: Enchantments / Spells Enchantments and spells astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels May 5, 2024
@worm-girl
Copy link
Contributor

If skunk spray gets in your eyes IRL it is completely blinding. It also impairs breathing and should probably induce nausea.

It doesn't always get in your eyes, especially if you're a human, but it could conceivably be a big deal if this happened while you were fighting for your life.

@TheMurderUnicorn
Copy link
Contributor Author

Unfortunately, because I made the effect hours long for the stinky spray part, I'm not sure how to make a separate blindness that won't last for hours. Slash I don't know how to make it target the eyes. Slash... I don't really know what I'm doing. This does cause nausea, the vomit chance is low (in testing I vomited like once in the three hour span) but had the recovery from nausea message about a dozen times, so unless I'm mistaken it will cause nausea or at least... printed the nausea recovery message for some reason idk. But again I don't know how to cause nausea without having it span hours, which I think would be a lot for a player, when for example the boomer nausea only lasts like a minute iirc. I agree there should probably be these things I'm just maybe not the one to properly execute it.

@worm-girl
Copy link
Contributor

Oh crap, sorry. Skimming your PR body, I didn't see that you had effects other than just the stat mods. Ignore me.

For the blindness it'd probably be a matter of running an EOC when the effect is added that checks if it gets in the character's eyes. That's probably more complicated than the PR needs to be, it's just something I was coincidentally thinking about last night.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label May 6, 2024
@PatrikLundell
Copy link
Contributor

Is it possible to trigger several EoCs by the same attack? That would allow you to have different durations on different effects (e.g. nausea for a limited time, but stinky for a whole lot longer, and ideally a short blinding effect if it hits the eyes).

@GuardianDll
Copy link
Member

GuardianDll commented May 6, 2024

Re: multiple effects, you can make subspell that run after the first, that applies blindness, nausea etc etc with some chance, but i'd say to not bother if you find it difficult

Co-authored-by: Anton Simakov <[email protected]>
@github-actions github-actions bot removed json-styled JSON lint passed, label assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions labels May 6, 2024
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions labels May 6, 2024
@Maleclypse Maleclypse merged commit 1d5dcfa into CleverRaven:master May 9, 2024
24 checks passed
@TheMurderUnicorn TheMurderUnicorn deleted the ILikeSkunks branch May 9, 2024 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Mechanics: Enchantments / Spells Enchantments and spells Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants