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

[Limb Mod] Limbify Feathered Arms, rework Bird Wings and gliding checks #72867

Merged
merged 3 commits into from
Apr 21, 2024

Conversation

Venera3
Copy link
Member

@Venera3 Venera3 commented Apr 6, 2024

Summary

Features "Limbify Feathered Arms, rework gaining Bird Wings"

Purpose of change

Move the Feathered Arms -> Bird Wings progression over to the eoc-based limb progression framework.
Stamp some weirdness that came out along the way.

Describe the solution

Limbified gaining Bird Wings

  • Added Changing Arms, a pre-threshold bird/raptor trait that triggers a progression EoC every two hours - either printing a snippet, or triggering a custom dream while asleep with enough mutagen in your system and incrementing the generic changing limb timer variable
  • Changing Arms turns into Feathered Arms, granting two feathered arms - they are slightly unwieldy and diverge from normal arms from the elbow down too much for armor coverage, but they don't get in the way too much - slightly debuffed balance score but better swim score, plus they are pretty.
  • As long as you have bird mutagen in your system and either the bird threshold or no threshold your Feathered Arms will trigger a similar but longer progression EoC, priming for progression after three dreams (so at least 36h)
  • Adjusted the scores of Bird Wings and fixed some weirdness - they were less likely to be hit than eyes, that sort of cleanup

Flight Adjustments

  • Trimmed the logic slightly and moved it over to use conditional flags
  • Removed pit resistance from WINGS_1 traits, those checks route through ´Character::can_fly´
  • Moved over to limb scores instead of absolute STR for the checks - small birds can still glide

Added a Debug Genetic Instability trait to facilitate "natural" mutation testing - it triggers the normal mutation roll every 5 seconds.

Limb Mod Fixage

  • Moved sublimbs into their own file, there will have to be a lot of them because of the armor/limb integration
  • Fixed a badly-written progression eoc leading to bug messages

Describe alternatives you've considered

Breaking out the sublimb stuff, but that's pretty formulaic and includes no changes beyond the new subs.

Testing

Gained the traits in normal play after the desired intervals using both normal mutagen and the debug mutation.
Raptor or non-bird thresed mutants don't get spammed by the messages.
Gliding works when unburdened, doesn't work when missing limb hp / over capacity / encumbered / winded.

Additional context

Part of #70703 and of the Limb Project.
1000 LoC of the diff is the sublimb movage.

@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. [JSON] Changes (can be) made in JSON Mods Issues related to mods or modding Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies [C++] Changes (can be) made in C++. Previously named `Code` Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. [Markdown] Markdown issues and PRs Lore Game lore, in-game communication. Also the Lore tab. Mechanics: Enchantments / Spells Enchantments and spells Items: Armor / Clothing Armor and clothing EOC: Effects On Condition Anything concerning Effects On Condition <Enhancement / Feature> New features, or enhancements on existing labels Apr 6, 2024
@Venera3 Venera3 added the Limbs Limbs, mutable limbs, and code related to them. label Apr 6, 2024
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions labels Apr 6, 2024
Copy link
Contributor

github-actions bot commented Apr 6, 2024

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand
  • You pause for a moment. The movement under your skin doesn't.

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

@github-actions github-actions bot requested a review from KorGgenT April 6, 2024 17:26
@github-actions github-actions bot added Mods: Magiclysm Anything to do with the Magiclysm mod Mods: Aftershock Anything to do with the Aftershock mod labels Apr 6, 2024
@worm-girl
Copy link
Contributor

Just so you know what I was thinking adding the fall reduction stuff to WINGS_1 and feathered arms specifically, I had come across some research suggesting that smaller theropods may have used their feathered arms to help control their falls, and that this may have paved the way for flight by giving the animals the ability to safely jump out of trees to escape danger or ambush.

Raptor doesn't have a lot going for it, so I figured giving it some minor vertical mobility would make it more interesting.

@Venera3
Copy link
Member Author

Venera3 commented Apr 6, 2024

You need to generate a lot of lift to cancel out all your (human-sized) momentum within the let's say 2m that are our pits - even gliding being equivalent is a stretch, given that that doesn't negate your momentum just turns it partly horizontal.

Raptor doesn't have a lot going for it, so I figured giving it some minor vertical mobility would make it more interesting.

That's still not really an argument - the end stage of categories gets to be like a human turning into the animal would be like, but they aren't magic in their function. You're not turning into a mouse-sized mouse, and you don't get to crawl into a 5cm opening because that's what mice do, for example.

@worm-girl
Copy link
Contributor

worm-girl commented Apr 6, 2024

That's still not really an argument - the end stage of categories gets to be like a human turning into the animal would be like, but they aren't magic in their function.

That's not the argument I was making. Going by your own example, a mouse mutant does not become 5cm, but they do become quite small and gain some advantages (and disadvantages) this way.

If human-sized feathered arms can't be good for anything, that's fine. I was just pointing out that there seems to be untapped design space in the line, and given that these were particularly mobile animals, that seemed to me at the time like a logical place to look for things that would make sense to give them.

WINGS1 was also not canceling all momentum, it was only reducing fall damage by one z-level. Again, no reason it has to do that, I'm just offering clarification about what I was working on. Maybe something like that would make more sense as its own trait that runs off of leg and bone mutations or something, if anyone wants to try to bring it back.

@Venera3 Venera3 force-pushed the limb_feather_arm branch from 1c840dc to a1087c5 Compare April 7, 2024 15:47
@Venera3
Copy link
Member Author

Venera3 commented Apr 8, 2024

That's canceling 4ms of falling (not to mention most of our falls being a single Z).
Ideally even glide-compatible wings would trigger a glide on fall instead of going "haha nope", but that's not a priority.

Re: design space - sure, but as it stands feathered arms is a prethresh trait meaning you can do a half-ton Cow mutant (no arm/hand mutations yet) and just slap on some feathers to get out of falling since there are no absolute weight limits on the checks.

@worm-girl
Copy link
Contributor

Re: design space - sure, but as it stands feathered arms is a prethresh trait meaning you can do a half-ton Cow mutant (no arm/hand mutations yet) and just slap on some feathers to get out of falling since there are no absolute weight limits on the checks.

That'd just be a matter of adding

    if( !you->get_size() == creature_size::large ||  !you->get_size() == creature_size::huge )

to line 1289 of trapfunc.cpp. Or it could go by weight, but it's a simple change.

@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Apr 9, 2024
@Maleclypse
Copy link
Member

Clang is angry at wings

Venera3 added 3 commits April 20, 2024 21:26
No WIP timers, dummy

Ooooh piece of dead code
Remove space, TODO remove time

No U
@Maleclypse Maleclypse merged commit 9ebd717 into CleverRaven:master Apr 21, 2024
27 checks passed
@Venera3 Venera3 deleted the limb_feather_arm branch April 23, 2024 11:31
catern pushed a commit to catern/Cataclysm-DDA that referenced this pull request Oct 12, 2024
…ks (CleverRaven#72867)

* Relimb

No WIP timers, dummy

Ooooh piece of dead code

* Thank you, typobot

Remove space, TODO remove time

No U

* Def didn't fix that on the web interface and overwrote with forcepush, nosir
catern pushed a commit to catern/Cataclysm-DDA that referenced this pull request Oct 13, 2024
…ks (CleverRaven#72867)

* Relimb

No WIP timers, dummy

Ooooh piece of dead code

* Thank you, typobot

Remove space, TODO remove time

No U

* Def didn't fix that on the web interface and overwrote with forcepush, nosir
catern pushed a commit to catern/Cataclysm-DDA that referenced this pull request Oct 13, 2024
…ks (CleverRaven#72867)

* Relimb

No WIP timers, dummy

Ooooh piece of dead code

* Thank you, typobot

Remove space, TODO remove time

No U

* Def didn't fix that on the web interface and overwrote with forcepush, nosir
catern pushed a commit to catern/Cataclysm-DDA that referenced this pull request Oct 13, 2024
…ks (CleverRaven#72867)

* Relimb

No WIP timers, dummy

Ooooh piece of dead code

* Thank you, typobot

Remove space, TODO remove time

No U

* Def didn't fix that on the web interface and overwrote with forcepush, nosir
catern pushed a commit to catern/Cataclysm-DDA that referenced this pull request Oct 15, 2024
…ks (CleverRaven#72867)

* Relimb

No WIP timers, dummy

Ooooh piece of dead code

* Thank you, typobot

Remove space, TODO remove time

No U

* Def didn't fix that on the web interface and overwrote with forcepush, nosir
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 [C++] Changes (can be) made in C++. Previously named `Code` <Documentation> Design documents, internal info, guides and help. <Enhancement / Feature> New features, or enhancements on existing EOC: Effects On Condition Anything concerning Effects On Condition Fields / Furniture / Terrain / Traps Objects that are part of the map or its features. Items: Armor / Clothing Armor and clothing [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Limbs Limbs, mutable limbs, and code related to them. Lore Game lore, in-game communication. Also the Lore tab. [Markdown] Markdown issues and PRs Mechanics: Enchantments / Spells Enchantments and spells Mods: Aftershock Anything to do with the Aftershock mod Mods: Magiclysm Anything to do with the Magiclysm mod Mods Issues related to mods or modding Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies
Projects
Status: Done: Trait porting
Development

Successfully merging this pull request may close these issues.

3 participants