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

Mutant Limbs Part 1: The eyes have it (WIP) #53004

Closed
wants to merge 12 commits into from

Conversation

Venera3
Copy link
Member

@Venera3 Venera3 commented Nov 24, 2021

Summary

Features "Migrate eye mutations to the limb system"

Purpose of change

Begin moving the "limbier" traits over to the shiny WIP limb system, starting with the eyes.

Describe the solution

Groundwork:

  • Tallied up all traits that could potentially be handled by limbs into their own file (to prevent needlessly convoluted history this will be reverted before opening for merge)

  • Annotated most mutations with hardcoded functionality with their effects

  • Added three new mutation types - EYES, HEAD and VISION to handle trait conflicts

  • Reworked all eye traits to utilize the limb system

  • Added an EOC-driven progression to the multi-level traits to slow them down and turn high-level mutations into a bit more gradual thing

  • Adjusted some mutation's categories to hopefully prevent test failures, and added three low-impact flavor mutations to the same effect

TODO:

  • Remove unnecessary hardcoded functions -e.g. most of the vision caches apart from the nightvision ones
  • Do a thorough pass on what hardcoded functionalities could be moved over to eye scores (vision_score, nightvision_score and reaction_score, for now) in some associated PRs
    • eff_per, used in noticing camouflaged/underwater creatures is multiplied by vision_score
    • Melee weakpoint hit chances are modified by vision_score and reaction_score, ranged weakpoint hit chances by vision_score
  • Move the traits back to mutations.json and burn all evidence I ever touched them
  • Test, tweak, tune and twiddle to perfection

Describe alternatives you've considered

A lot.

Testing

  • The traits add the bodyparts, removing the trait removes them
  • Bodypart scores/flags do what they're supposed to, hit size is respected
  • The EOC progression works as expected

Necessary infrastructure changes before this can go live

  • A way to replace limbs to inherit hp/effects - I like the thought of mutagen acting as an expedited healing/replacement system, but it should not be a freebie - admittedly less relevant for minor parts without hp, but still
  • Dynamic encumbrance panels in the @ menu with the descriptions of the limb's scores instead of hardcoded per-id checks - added in Jsonify Limb Scores & Character Modifiers #53069
  • The whole armor definition / limb interaction problem needs to be handled - as it stands armor tries to cover all defined limbs, complaining if it's missing any on account of your eyes being replaced by shiny compound ones
  • Bodypart connections need to be a bit more dynamic - replacing the head leads to a lot of errors on account of the torso/mouth not having anything to connect to, and so on
  • Special monster attacks can only hit bodyparts completely randomly or according to their hand-picked list, and if they try hitting a bodypart that doesn't exist on the character they crash the game. Bit of a problem. - Fixed by Modify monster melee targeting #53089

Additional context

Lot of WIP comments and such, unsurprisingly.

Changes by mutations
  • Bulging Eyes: Slightly larger eyes (higher chance to be hit by attacks), made a prerequisite of Cephalopod and Frog eyes

  • Cephalopod Eyes leading to Cephalopod Vision: Same size as Bulging Eyes, confers underwater sight and after about two days of acclimatization - causing occasional blinding, glare and stun - you gain amazing nightvision, provided you're post-threshold Cephalopod. As a drawback, you're more sensitive to bright lights (increased glare duration from the sun, and increased blind from flashbangs) - via the new HIGH_GLARE flag

  • Compound Eyes leading to Compound Eyes (Adjusted): Replaces your whole head, the intermediate level has pretty terrible vision all around but after a long (4ish days) disorienting phase you will enjoy extremely good reactions, a bonus dodge attempt, and can see while you're asleep at the cost of 10% vision_score

  • FeyEyes/Vision/Nightsight: The first level has no effect, Vision confers a slight night vision increase and sets you up for progression to Nightsight (no threshold requirement) - great night vision and all-round better vision score for your Legolas LARP

  • Feline Eyes/Vision: Larger eyes sensitive to light (HIGH_GLARE) but pretty bad at details, progress relatively fast without a threshold requirement to confer NV, an extra reaction score at the cost of needing reading glasses and still not being great at shooting things

  • Ursine Vision: Largely unchanged, shortsighted in the light but sees well in the dark

  • Bird Eyes: Amazing vision score (governing ranged hit chance, mainly) and a slight NV score

  • Lidless Eyes: Largely unchanged, moved environmental protection to the bodypart

  • Eyestalks: Intermediate are large targets with a minor reaction buff, after the adjustment period they gain increased reaction score to show FOV

  • Reptilian Eyes/IR: Turned into a mid-length EOC progression, the eyes confer no bonuses aside from allowing infrared vision (nictating membrane takes care of EYE_MEMBRANE for lizards anyway)

  • New Frog Eyes: Removed Ursine vision and Lidless eyes from Batrachians since they were near as I can tell a relic of those being hardcoded - same drawbacks as Ursine, a slight increase in NV and reaction score and an eye membrane and sight while sleeping

  • New Cave-adapted Eyes: Added to Troglobyte to allow them to have IR and a high level of NV (both take up the VISION type, meaning they cancel automatically)

@wapcaplet wapcaplet added [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies labels Nov 24, 2021
@github-actions github-actions bot added the json-styled JSON lint passed, label assigned by github actions label Nov 28, 2021
@github-actions github-actions bot added json-styled JSON lint passed, label assigned by github actions and removed json-styled JSON lint passed, label assigned by github actions labels Dec 11, 2021
@github-actions github-actions bot added the astyled astyled PR, label is assigned by github actions label Dec 11, 2021
@Venera3 Venera3 changed the title Mutant Limbs Part 1: The eyes have it (Very WIP) Mutant Limbs Part 1: The eyes have it (WIP) Dec 12, 2021
@Venera3
Copy link
Member Author

Venera3 commented Dec 14, 2021

Test failures atm: one unrelated coverage test, one sight range test and the limb connectivity (compound eyes replacing your head and all downstream bodyparts freaking out).

@Maleclypse Maleclypse added the Limbs Limbs, mutable limbs, and code related to them. label Jan 26, 2022
@github-actions github-actions bot removed the json-styled JSON lint passed, label assigned by github actions label Jan 29, 2022
@Venera3
Copy link
Member Author

Venera3 commented Feb 13, 2022

Big chonky rebase with the new EOC syntax and some limby things I added in the meantime. I didn't update the progression EOC to use vitamins and co, since that system is kind of in flux for the moment.

@stale
Copy link

stale bot commented Mar 30, 2022

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 Mar 30, 2022
Venera3 and others added 8 commits April 6, 2022 09:11
err

High glare in weather

High glare in flashbang

Explosions check for the character flag
Remove hardcode of Elfa eyes, Compound eyes

Really remove hardcoded references to Elfa eyes
mutations back where they belong, IR obsolete, debugtail the same

Cleanup 2

Cleanup 3

Cleanup 4

astyle

Whoops
Updated to _eocs.json, new EOC format, ugliness/drench changes
@stale stale bot removed the stale Closed for lack of activity, but still valid. label Apr 6, 2022
@github-actions github-actions bot added <Enhancement / Feature> New features, or enhancements on existing stale Closed for lack of activity, but still valid. <Documentation> Design documents, internal info, guides and help. Code: Tests Measurement, self-control, statistics, balancing. labels Apr 6, 2022
@stale stale bot removed the stale Closed for lack of activity, but still valid. label Apr 6, 2022
@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Apr 6, 2022
@stale
Copy link

stale bot commented Jun 12, 2022

This issue has been automatically closed due to lack of activity. This does not mean that we do not value the issue. Feel free to request that it be re-opened if you are going to actively work on it

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 [C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. <Documentation> Design documents, internal info, guides and help. <Enhancement / Feature> New features, or enhancements on existing [JSON] Changes (can be) made in JSON Limbs Limbs, mutable limbs, and code related to them. Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies stale Closed for lack of activity, but still valid.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants