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

Expand implementation of liquid ammo #72271

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

Fris0uman
Copy link
Contributor

@Fris0uman Fris0uman commented Mar 9, 2024

Summary

Features "Expand implementation of liquid ammo"

Purpose of change

Reimplement liquid attacks from #71964 using liquid ammo instead of spells

Describe the solution

  • Make a bile sprayer gun
  • Add relevant code to check armor layer if you hit a Character
  • Add effects to ammo
  • Add option to only apply effect if shot goes through armor
    - [x] Add option to only apply effect if a specific body part is touched
    - [ ] Instead of above option add a filter by bodypart type like sensor for exemple
  • Apply effect to every touched parts
    - [ ] Make a dedicated liquid sound No need, soundpack can already set sounds per gun ids
  • Make bile irritate skin if it touches skin
  • Make bile make you smell more if it touches skin
  • Make bile irritates eyes
  • Make advanced bile (from evolved boomers) make you glow
  • Advanced bile leave a glowing puddle
  • Give gun to boomers
  • Remove Hardcoded attack
  • Consider reverting Add IRRITANT_IMMUNE to more armors and exoskeletons #77524 since armor has no reason to block skin irritation other than actually stoping the liquid going through
  • Add documentation

Describe alternatives you've considered

Testing

2024-03-09.19-37-26.mp4

image

Additional context

Need #72169 merged first

This will probably make boomer attacks undodgeable, setting projectile speed to 1à instead of 1000 for liquid ammo doesn't seem to help from a quick test

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies [C++] Changes (can be) made in C++. Previously named `Code` Monsters Monsters both friendly and unfriendly. Items: Ammo / Guns Ammunition for all kinds of weapons and these weapons themselves Mechanics: Enchantments / Spells Enchantments and spells EOC: Effects On Condition Anything concerning Effects On Condition <Enhancement / Feature> New features, or enhancements on existing labels Mar 9, 2024
src/character_attire.cpp Outdated Show resolved Hide resolved
@github-actions github-actions bot added the astyled astyled PR, label is assigned by github actions label Mar 9, 2024
@IdleSol
Copy link
Contributor

IdleSol commented Mar 10, 2024

Am I correct in understanding that this attack is similar to a rifle attack? So in one shot, an attack can only hit one body part?

@Fris0uman
Copy link
Contributor Author

No, the point is to re-use the shotgun spread implementation

Copy link
Contributor

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.

@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Apr 22, 2024
@github-actions github-actions bot removed the stale Closed for lack of activity, but still valid. label Apr 24, 2024
@zachary-kaelan
Copy link
Contributor

I noticed that a "bad scent attack" already exists in the form of the skunk_squirt spell:

{
  "id": "skunk_squirt",
  "type": "SPELL",
  "name": { "str": "Skunk Spray" },
  "description": "Skunk spray defense mechanism.",
  "valid_targets": [ "hostile" ],
  "effect": "attack",
  "shape": "cone",
  "min_range": 4,
  "max_range": 4,
  "//": "Duration is 3-5 hours, can't seem to write it in hours, had to write it in moves which is terrible",
  "min_duration": 1080000,
  "max_duration": 1800000,
  "flags": [ "RANDOM_DURATION" ],
  "effect_str": "skunk_spray"
}

Which applies its effects mostly using enchantments:

{
  "type": "effect_type",
  "id": "skunk_spray",
  "name": [ "Skunk Spray" ],
  "desc": [ "You were sprayed by a skunk!" ],
  "apply_message": "You're covered in a foul smelling fluid!",
  "rating": "bad",
  "max_duration": "5 hours",
  "base_mods": { "per_mod": [ -1 ], "int_mod": [ -1 ], "vomit_chance": [ 2000 ] },
  "enchantments": [
    {
  	  "values": [
  	    { "value": "SOCIAL_PERSUADE", "add": -10 },
  	    { "value": "SOCIAL_LIE", "add": -4 },
  	    { "value": "SOCIAL_INTIMIDATE", "add": 2 },
  	    { "value": "UGLINESS", "add": 5 },
  	    { "value": "SCENT_MASK", "add": 300 }
  	  ]
    }
  ]
}

I'm curious if any of this will be changed or if it will be considered a separate thing.

@Fris0uman Fris0uman force-pushed the glubglub_gun branch 3 times, most recently from c9daa91 to d1b0452 Compare June 25, 2024 16:15
@github-actions github-actions bot added the json-styled JSON lint passed, label assigned by github actions label Jun 25, 2024
@kevingranade
Copy link
Member

Everything looks reasonable so far, have you tried adding shot parameters and seeing if it does multi-hit as expected?

@zachary-kaelan
Copy link
Contributor

zachary-kaelan commented Jul 10, 2024

This isn't urgent, but at some point we'll probably want a new set of automated test cases.

src/creature.cpp Outdated Show resolved Hide resolved
src/creature.cpp Outdated Show resolved Hide resolved
src/creature.cpp Outdated Show resolved Hide resolved
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` <Enhancement / Feature> New features, or enhancements on existing EOC: Effects On Condition Anything concerning Effects On Condition Items: Ammo / Guns Ammunition for all kinds of weapons and these weapons themselves [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Mechanics: Enchantments / Spells Enchantments and spells Monsters Monsters both friendly and unfriendly. Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants