Commit Graph

22 Commits

Author SHA1 Message Date
necromanceranne 690bfc04b4 Rebalances wound determination values, wounding escalation and wound armor to hopefully be less explosive (#91099)
This is a big one so please bear with me, wounds are complicated

We've decreased the max contributed damage to wound rolls from 35 to 25.
This results, after the exponent, a max possible wound roll of 1 to 91
before any modifiers (assuming the attack, after armor, is 25 or above).

The minimum value to wound is still 5.

Most wounds were contributing significant numbers per wound type to the
potential for a new wound to occur. Getting wounded once meant you were
getting wound a lot, but actually getting past that first wounding may
be the tricky part.

We have significantly reigned in the wound penalty that having a wound
contributes, and instead utilize the series wound penalty to allow same
type wounds to escalate themselves faster as a priority. Having wounds
still makes you more wound vulnerable, just not to such an extreme
degree.

The priority here for what wounds matter most for contributing to
overall wounding vulnerability is ``Infected BURNS > BURNS >
SLASH|PIERCE > BLUNT.``

Wound armor, unlike all other kinds of armor, was used as a additive
value to the wound roll modifiers rather than a multiplicative value.

We have reworked how wound armor is determined by changing how wound
modifiers are calculated.

Firstly, we're passing our entire injury roll into the
``check_woundings_mod()`` proc, as we're not treating this as a proc
that just adds values anymore.

Secondly, bare wound bonus only applies if there is no potential wound
protection from any source, as expected. But it comes last in the
calculations.

Thirdly, wound protection is applied to the injury roll last, after
wound bonuses from the attack, wound bonuses from other wounds and wound
bonuses from a disabled limb are applied. This does not include serial
wound bonuses, which are determined outside of this proc.

Wound protection comes from two sources. Clothing and limb wound
resistance. Your chest and head have an amount of wound resistance so
long as they are not mangled in any fashion. Being mangled means having
either a hairline fracture or a weeping avulsion wound.

Wound protection reduces the final injury roll by a percentage. Say our
roll is 50, and we have effectively 50% wound protection. The final roll
would be 25.

~~Most clothing have had their wound armor values changed. As a loose
rule, I used the highest of melee or bomb armor, except where that value
was 100, in which case I used the lowest instead. I'm basing this
decision on how embeds are calculated, which is attack type agnostic.~~

~~Some armor have inconsistent values because they are alternative
armors to an existing armor type or are hyperspecialized armor.
Ablative, bulletproof and security vests all share a value of 35,
despite the former two not having decent melee or bomb armor.~~

~~Some clothing missing wound armor that should have had them now have
wound armor.~~

~~This may need a bit of scrutiny in case one or two seem weirdly high.
Some have maybe become too low. Its a bit hard to say.~~

I changed it to ``exposed_wound_bonus`` to better represent when it
applies. You can be naked and still not be affected by this bonus if the
limb has wound resistance.

I'm not promising anything with this PR, but this is an attempt to
sanity check the values on wounds so that we're not seeing what the data
that determined the removal of beheading presented. An extreme
over-representation of tier 3 wounds. ~~And, from that, maybe I can
argue for beheadings coming back. That's my goal. I think beheadings
happened so much because the numbers were in need of work.~~ Well okay I
just wanna make wounds a bit more workable actually more than I want
beheadings.

Why is it that tier 3 wounds were so over-represented? Because wounds
will often force more severe wounds of other types by merit of any
wounds existing at all on a limb. Having **_a_** wound makes you more
wound prone for any kind of wound, and not just making you more likely
to suffer a more severe type of the same wound.

The threshold mechanic was intended to simulate making a wound worse,
but oddly just made a limb broadly more prone to getting worse from any
kind of attack to such a degree that future wound rolls of different
types were often going to start at the threshold necessary to be a tier
3 wound.

Dismemberment, mind you, requires you to suffer a flesh wound while you
have a bone wound of tier 2 or higher (with tier 3 giving a bonus to
this). You can do this readily via just a sharp weapon, because having a
mangled limb causes the wound to turn into a bone wound. Technically,
this is meant to be less likely as the effective damage for this wound
is halved. But the wound bonus from having a flesh wound was almost
always significant enough to kick your new bone wound up to a tier 3.

In other words; its not surprising that you saw so many beheadings,
because the system wanted to behead you as fast as it possibly can
thanks to all these escalating values.

Wound armor was only applied as a flat reduction on the roll. The
average for wound armor was 10. After receiving a single wound, you can
expect wound rolls to reach upwards of 100, even if the actual damage
roll was not particularly high, due to wound stacking bonuses form being
wounded.

This meant that wounds, if they happened, came thick and fast after the
first, regardless of what your protection might be to wounds. It was
just a matter of getting past the initial bump.

This is why effects that forced wounds were so powerful. They basically
made a given limb more prone to taking a wound without having to deal
with the protection problem first.

Finally, this is just a broad flaw with the system that is not its
fault. It is actually a problem that isn't a problem. Most people in the
game are not wearing helmets that protect their head. So most people are
going to suffer from a higher proclivity of being wounded if people are
aiming for the head. There is this...kind of cargo cult belief that
aiming for the head means you do more damage, or can stun someone if
you're lucky or what have you. It's entirely nonsense, but it has a
grain of truth in that people rarely wear, or even have access too,
headwear that provides wound protection or any protection at all. People
have jumpsuits, which are universally wound protected, but that isn't
true of the head. Look, the point is, they're not aiming at the head
because it is usually less armored, its for other reasons but it just so
happens to become true due to wounds and how wounds roll their type.

To soften this issue, I've decided to treat wound resistance as armor
until the limb suffers a tier 3 wound. This way, hits to the head MAY
not necessarily escalate to tier 3 instantly as they would on live even
from relatively low power weapons. Some weapons have very low force, but
have extreme bare wound bonuses. This should be less likely after this
change. I doubt this will necessarily make high damage high wound
weapons like energy swords any less prone to cutting you clean open, but
it might thanks to the reduction to contributed damage to the injury
roll. The system is now _a bit more random_.

🆑
balance: Wounds do not make you as vulnerable to suffering wounds of all
types as before. Instead, wounds make you more vulnerable to suffering
worse versions of themselves as a priority.
balance: Wound armor is now more impactful when protecting you from
wounds when you have already been wounded.
balance: Your head and chest are more difficult to wound until they have
been mangled; either from suffering from a weeping avulsion or a
hairline fracture.
code: Changed the variable for bare_wound_bonus to exposed_wound_bonus
to better explain what that variable is doing.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2025-06-21 22:32:18 -04:00
MrMelbert 1406210b6e Improves the "Check mood" printout, reworks the "Check self" printout, minor embed changes (#89854)
## About The Pull Request

1. Reformats "Check Mood" 

Basically just cleaning it up.
- Moodlets are bullet pointed.
- Hunter is displayed here now.
- Quirks are displayed here now.
- It now tells you how drunk you feel.

Sample


![image](https://github.com/user-attachments/assets/1aac1180-1eed-45f7-9615-005eeecef8c8)

2. Reworks "Check self"

Big reworks done here.
- Organs now don't outright say "Your hear is hurty" "Your lugs are
hurty". Now they'll say something like, "Your chest feels tight" -
Unless you're self aware, then it will say "Your heart is hurty".
- Check self no longer reports wounds with 100% accuracy. You get an
approximate of what the wound is like - "Your chest has an open cut".
More severe wounds will still be bolded, though.

Sample 


![image](https://github.com/user-attachments/assets/3da6336c-63db-4298-9fcb-76748608c848)


![image](https://github.com/user-attachments/assets/6e797ef3-cb04-46cd-aa3c-520c9240953d)

3. Embed tweaks

Embeds can be hidden, and thus will only show up on health analyzers.
This means you can't rip them out by hand.
Right now only bullet shrapnel and explosion shrapnel is hidden.

## Why It's Good For The Game

1. Just some cleanup, largely. Stuff like quirks and hunger make more
sense when checking your mental rather than checking your body. Though
this might be weird for if mood is config-disabled, I might have to
revisit htat.

2. I always found that clicking on yourself and just getting a print out
of "Your liver's non-functional, your chest has a weeping avulsion, etc"
is pretty lame... it kind of diminishes diagnosis / doctor's job.
Ultimately, the goal of this is to open up a little more doctor gameplay
- primarily I think it'll allow for some fully roleplay moments, like
"Doc my chest hurts a lil" "You have 7 bullets and broken ribs bro"

3. Adds more punch to some embeds. Mostly for larp though.

## Changelog

🆑 Melbert
add: Your mood printout (clicking on the mood face) has been
reformatted, and should generally be cleaner.
add: Self examining was reworked, and overall gives you a lot less
perfect information, unless you are self-aware.
add: Bullet and grenade shrapnel is now hidden from examining - it's
skin deep. You can't rip them out with your hands, but hemostats /
wirecutters still suffice if you know they're there. Health analyzers
still pick them up too.
qol: Ghosts aren't notified about NPCs getting appendicitis 
/🆑
2025-03-15 05:51:06 +00:00
SmArtKar 7f15e11993 Adds a new syringe gun mode and improves foam darts. (#89510)
## About The Pull Request

This PR implements multiple new features:

Foam darts now can stick to people as long as their cap isn't removed.
Riot foam darts have a chance to jostle when you move with one stuck
inside of you, dealing a bit of stamina damage from the weight stuck to
your limbs.

Syringe guns received a second "low power" mode, toggleable with in-hand
right click. In this mode, syringes fired will embed into their target
and slowly leak their reagents instead of instantly delivering them.
Thankfully, they can be plucked out pretty quickly.

You can also insert syringes into uncapped (screwdriver-ed) foam darts
(similarly to pens) to achieve the same result, allowing you to get a
bootleg low-efficiency syringe gun.

Additionally, I fixed/cleaned up some embedding issues/code which I
found while coding this.

## Why It's Good For The Game

This allows players to explore new funny interactions between items and
chems, as we don't have a reliable slow release mechanism aside from IV
drips currently. And foam darts embedding it just (mostly) harmless
fluff, if someone figures out a way to cause havoc with it then I'll be
very proud of them (someone totally will).

## Changelog
🆑
add: Foam darts now stick to people when they have their cap on, riot
foam darts also can passively deal a bit of stamina damage when you move
with one.
add: Syringes can be inserted into foam darts, making them embed and
slowly leak their reagents into their victim.
add: Syringe guns can be toggled (with right click) between high power
and low power modes, former being their normal functionality and latter
making syringes embed and slowly leak their contents.
fix: Fixed projectiles sometimes not embedding when they should've
code: Cleaned embedding code up
/🆑
2025-03-01 22:52:19 +11:00
SmArtKar 2b44bffdeb Adds The Liberator: Doorhickey Corporation's brand new gun (#89495)
## About The Pull Request

The Liberator is a brand-new 3D printable gun, holding a single 10mm
shot in it's barrel. It has a damage multiplier of x0.5, dealing 20
damage per shot. However, shooting someone point blank gives it an x2
modifier, and shooting someone while holding them at gunpoint adds
additional x1.5 multiplier.


https://github.com/user-attachments/assets/b27adf1a-5b02-4817-90ad-2ba922cc6bf9

They can be printed for dirt cheap 3 sheets of plastic and 2 sheets of
iron from an autolathe. However, as a downside, whenever you're firing a
liberator you're risking it blowing up in your hands, potentially
wounding you! Reloading is also a bit tricky, since you need to unscrew
the barrel before placing the bullet in, and screwing it back on.

In order to print them, you'll need to find a (mildly rare) disk in
maintenance and upload the design to an autolathe. You also can find a
whole gun, albeit at a lower chance.

## Why It's Good For The Game

Funny gun that can be used for some gimmicks, not too overpowered but a
nifty tool for assistants. Can be countered by a well timed baton, or a
shove if your opponent is next to a wall.

## Changelog
🆑
add: Added a new 3D printable gun "The Liberator", you can find the gun
itself or its design disc in maintenance tunnels.
/🆑
2025-02-16 23:46:29 +00:00
SmArtKar 3499727a6d Implements datumized embedding handlers in place of element-component-datum triad (#88511)
## About The Pull Request

This PR completely rewrites our embedding system in favor of embedding
datum handlers which acts as containers for all embedding-related data
and logic.

Currently embedding logic relies on an element-component-datum triad,
where elements on the items handle embedding logic, singleton datums
store embedding data and components (which get assigned to ***mobs*** in
whom the item embedded) handle pain and the item being ripped out. How
do we access all the procs? By using comsigs as procs, which is really
bad. This code was written back in 2020 when DCS was hot stuff but in
hindsight this implementation was a mistake, as it heavily restricts
custom embedding behaviors unless you're willing to constantly run
GetComponent (bad, ugly, incarnation of evil)

This PR rewrites all that logic to be handled by lazyloaded
``/datum/embedding``, which is stored similarly to current
``/datum/embed_data``. Upon being requested, it is initialized and
assigned to a parent from whom all the logic is handled, from being
embedded to pain and having the item ripped out. On projectiles this
only handles one proc, after which it copies itself down to the shrapnel
item instead and runs the chain further from there.
Ideally, most embedding-related logic now should be handled purely
datum-side - in most cases items should not be hooking up to themselves
like they did before (unless said logic is for when the item is made
sticky or smth) and instead the code should be handled by the embedding
datum (see sholean grapes implementation in this PR). This should allow
us to do fancy stuff like syringe guns embedding syringes into targets
and injecting them that way, and fix some bugs along the way.

Closes #88115
Closes #87946

Also fixed a bug with scars not displaying when examined closely from
#86506 because i was in the area anyways
2025-01-02 23:18:27 +00:00
SmArtKar 7ddc30783a Adds better attack animations and alternate attack modes (#88418)
## About The Pull Request

This is the first PR in a series attempting to modernize our damage and
armor, both from a code and a gameplay perspective. This part implements
unique attack animations, adds alternate attack modes for items and
fixes some minor oversights.

Items now have unique attack animation based on their sharpness - sharp
items are now swung in an arc, while pointy items are thrust forward.
This change is ***purely visual***, this is not swing combat. (However,
this does assign icon rotation data to many items, which should help
swing combat later down the line).

Certain items like knives and swords now have secondary attacks - right
clicks will perform stabbing attacks instead of slashing for a chance to
leave piercing wounds, albeit with slightly lower damage - trying to
stick a katana through someone won't get you very far!

https://github.com/user-attachments/assets/1f92bbcd-9aa1-482f-bc26-5e84fe2a07e1

Turns out that spears acted as oversized knives this entire time, being
SHARP_EDGED instead of SHARP_POINTY - in order for their animations to
make sense, they're now once again pointy (according to comment,
originally they were made sharp because piercing wounds weren't very
threatening, which is no longer the case)

Another major change is that structure damage is now influenced by armor
penetration - I am not sure if this is intentional or not, but attacking
item's AP never applied to non-mob damage.

Additionally, also fixes an issue where attack verbs for you and
everyone else may differ.
2024-12-17 12:35:52 -06:00
SmArtKar b6c84135c3 Refactors embedding to use datums instead of storing data in bespoke elements (#84599)
## About The Pull Request

This refactors embedding elements to make them use singleton datums
(similarly to armor) instead being bespoke and creating a new element
every time armor values are supposed to be adjusted.
Default values have been removed from defines due to now being declared
in base class itself.
Additionally fixes vending machines and tackling gloves setting
generated shards (which they instantly embed into their victim) embed
properties to null after running the embedding code, despite said shards
having non-null embedding values by default, making them not be able to
embed into anyone else, also potentially breaking the pain/jostling code
if they somehow get updated.

## Why It's Good For The Game

Current embedding system is an unnecessarily complicated mess as bespoke
elements are hard to work with, and creating a new element every time
you change values is hacky at best. This change should make it easier to
read and work with.

## Changelog
🆑
fix: Fixed glass shards generated from falling vending machines or
tackling windows not being able to embed into anyone.
refactor: Refactored embedding code to use datums instead of bespoke
elements and ugly associated lists.
/🆑
2024-07-07 23:20:07 +02:00
paganiy c3ff3e06c3 Auto-aim in combat mode at mobs on the floor is disabled after 10 tiles. (#83270)
## About The Pull Request
As stated in the title, auto-aiming at prone targets is disabled after
the projectile passed more than 10 tiles (the limit of vision of an
ordinary spaceman is 9 tiles). Within 10 tiles, shooting in combat mode
remains unchanged. This also does not apply to sniper rifles.
Here's a preview of how it works:


https://github.com/tgstation/tgstation/assets/126676387/d62fbb03-9f63-4a73-a32a-62b4d11e4515
## Why It's Good For The Game
The main problem of shooting in combat mode is shooting in busy
corridors. Often, you are unwilling to become a participant in the
security's pursuit of the antagonist, and receive unintended
projectiles. You will be lucky if the projectile turns out to be
non-lethal, but if it is a laser, you can get a second-degree burn or
even a catastrophic one from just one shot. (depending on which laser
was fired and where you were hit), which is not very pleasant. To stay
unharmed and simplify the work of security, it is logical to lie down on
the floor.
This will not revive the lie-down meta to dodge projectiles, because
within sight of the spaceman and even a little further, lying targets
will still be hit by projectiles. And if you decide to lie down during
the chase to dodge the projectiles, then the pursuers will quickly catch
up with you and shoot you in combat mode.
## Changelog
🆑
balance: Auto-aim in combat mode at mobs on the floor is disabled after
the projectile passes 10 tiles.
/🆑

---------

Co-authored-by: paganiy <leunscrupuloustrolle@gmail.com>
2024-05-22 13:31:42 +01:00
Ghom 7e907771fb Deathmatch modifiers (#81673)
## About The Pull Request
This PR adds the base to simple modifiers that the host can select to
make the minigame ~~worse~~ more entertaining for everyone.

Here's the screenshot of the UI (without a few modifiers I added later):

![immagine](https://github.com/tgstation/tgstation/assets/42542238/95bb9414-d93b-4c45-ab8a-ed8f28856018)

## Why It's Good For The Game
I've seen this minigame is frankly popular lately, so I thought I could
contribute to it.

## Changelog

🆑
add: Added 20+ modifiers to the deathmatch minigame, which can be
enabled by the host.
/🆑
2024-03-16 12:06:02 +00:00
jimmyl d629b5f3f1 pipebomb (#81529)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/70376633/2c2a8ddf-d210-468b-9403-f7de4fa1fd9b)

removes IEDs, these are its replacement


![image](https://github.com/tgstation/tgstation/assets/70376633/95cc67d7-ed41-481b-9b9d-f31897fdb46d)

this recipe produces a finished pipebomb

you can craft pipes (of the atmos kind) with some metal
then you can make it into a pair of halved pipes with a welder
then you stuff in items for extra effect (optional, only works if it
does something)
then you put in welding fuel OR gunpowder (no other options as of now,
gunpowder is a better explosive)
cable finishes that part
after that, you can attach an unsecured assembly to finish the bomb

also this is the math for the explosion, power is decided by fuel

![image](https://github.com/tgstation/tgstation/assets/70376633/95ac3101-a2af-4bdc-9730-6c9c20195b59)

using it in-hand activates the assembly, using it off-hand allows you to
configure the assembly

## Why It's Good For The Game

IEDs suck and stuff and this would be a better upgrade/replacement
because with assemblies you could make a circuit sentient pipebomb or
gift a pipebomb via cargo or something and gimmicks i guess
## Changelog
🆑
add: Pipebombs
del: Improvised Firebombs
/🆑
2024-02-29 20:33:59 +01:00
YesterdaysPromise a373b4cb08 Icon folder cleaning wave one (#76703)
## About The Pull Request

Due to a mental breakdown caused by unfathomable abomination that is
icons folder, I swore to myself to one day clean it. Today is kind of
that day. Been at it for around 6, you gotta understand I need a rest. I
tracked most changes in descriptions of commits if you are looking for
details.

## Why It's Good For The Game

Saner spriters make better sprites. And also, just helps keep track of
things.

## Changelog

🆑
image: added sprites for different variants of scrolls.
image: modified couple posters with ghost pixels.
/🆑

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
2023-07-11 10:50:10 -07:00
ArcaneMusic f2fd69a49a Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. (#75052)
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:

`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.

Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.

For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~

Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.
2023-05-03 14:44:51 +00:00
tattle d91390a447 [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) (#69416)
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
2022-08-24 20:49:35 -03:00
Fikou 5c67c53272 Removes Tactical Resting (#61552)
About The Pull Request

If you are on combat mode, your bullets will hit people lying down or stunned, otherwise they pass through.
Why It's Good For The Game

The original PR that added it was labeled a fix (#55495) only mentioning it in the changelog once, when it was a balance change, as resting to avoid bullets was intentionally removed after we added crawling and a rest button, for being fucking stupid.
The thing that original pr "fixed" was mobs being bullet sponges, which you can now prevent by switching off combat mode, so it is no longer needed.
Avoiding people shooting at you while also having guns of your own you are perfectly able to shoot is stupid.
It makes mobs like beepsky super annoying, where unless youre in a large area the robot chasing you with one of the only hardstuns left in the game will be really hard to hit.
Changelog

cl
balance: If you are on Combat Mode, your bullets no longer pass through prone people
/cl
2021-09-21 12:26:24 +12:00
necromanceranne 051a00b4c9 Hollowpoints and similar attacks/weapons double existing armor, not add total armor, to the their targets (#58114) 2021-04-17 08:44:20 -07:00
Fikou eea0599511 moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
2021-02-21 13:58:33 -05:00
Sparkezel f8044754eb Refactors sharpness to use a bitfield (#56817)
Refactors sharpness to use bitfield instead of bitflags in case someone wants to add more types of sharp things, or unique behaviour with them
2021-02-11 15:53:29 -03:00
Ryll Ryll 80cefef747 Fixes projectile impacts + messages, embedding, adds deployable landmines (#53436)
* icon and alert anim

* hmm

* projectile and embed fixes

* cap mine

* clean up, fix some issues with projectile embeds

* light

* doc

* icon

* awkward

* icon again
2020-09-23 07:53:55 +02:00
Ryll Ryll 46dd89b07a [READY] Wounds part 2: Piercing wounds, dismemberment changes, housekeeping (#51786)
* pierce the heavens

* starts doing projs

* continue pierce

* before armor

* before sharpness redefine

* rename sharp defines, before further implementation

* finishing undoing atk_type back to sharpness

* neatens up sharpness defines, FALSE -> SHARP_NONE

* more piercing, removes brute damage bleed, bubblegum no longer wound

* starts letting embeds get in on the fun

* half with embed

* work on dismembering

* continued embed work

* more moving bandaging to limbs

* more dismemberment work

* removing embed pierce stuff

* tweaking bullets

* more docs and work on dismemberment

* spans, piercing, guns

* dismemberment and scar fixes

* bee changes

* bullets embedding

* more bullet and dismember work

* dismemberment, surgery, piercing, formaldehyde,

* pleases travis

* pierce smite

* nicer on blood

* Auto stash before rebase of "tgstation/master"

* more neatening

* wounds only consider up to 35 damage, wounds on l6 and 762

* updates hulk

* balance

* defines

* lower slug to 50 brute to accommodate wounds

* adds differentiation for having flesh/bones/both in mobs

* moves scar descs to json, renames organic_state

* excises removed healing skill

* fixes logs, inconsistencies, some balance changes

* untab

* slight compress

* a

* kills pointed global list

* dmdoc

* halfway through roh

* finishes roh review

* okay NOW i finished roh's reviews

* roh roh roh your boat

* gently down the stream

* global lists

* list ops, fix scanner for bone gel improvised fix

* travis moment

* sounds added and moved

* pellet clouds can join the fun fully, slight gun balancing for wounds

* doc moment

* unconflicts myself

* update hulk

* Update code/_onclick/item_attack.dm

Co-authored-by: Rohesie <rohesie@gmail.com>

* crying ascii face

* final rohview

* oops

* final final

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-23 23:19:30 -03:00
Ryll Ryll e461b24ee3 Removes turf embedding (#51571)
* Auto stash before rebase of "tgstation/master"

* updates for wounds

* more cleaning up

* reexamines examines
2020-06-16 13:39:47 +02:00
Ryll Ryll 0f6496a55c [READY] Adds Medical Wounds: Bamboo Bones and the Skin of Your Teeth (#50558)
About The Pull Request

This PR adds medical wounds, new forms of injuries that people can suffer that cause debilitation and complications, and often require more than what can be found in a medkit to treat. But let's be honest, big complicated walls of text about medical changes make people's eyes glaze over easily- so I created a handy infograph to explain the basics!

Also there's a full guide here!

dreamseeker_2020-04-18_20-42-19.png

The infograph may not be fully up to date with the specifics of the PR's status, but it'll be updated along with major changes so people have something to use as a crash course for familiarizing themselves with how wounds function. I also have another infograph with all 9 of the possible initial wounds coming, and will be up soon. You can also find the longform design doc here with more info on the broad details, including descriptions of treatments: hackmd whee
What this does

There's a lot to cover, but here's the bullet points of the main features and changes:

    Getting lots of damage on a limb can result in wounds, with more damage causing worse wounds. These can range from dislocated joints and minor cuts to compound fractures and fourth degree burns, and can affect you in different ways depending on what bodypart they're applied to (namely with broken bones).
    You can damage individual bodyparts on clothing (only jumpsuits for now) through the use of lasers and sharp weapons. Bodyparts that reach max damage are considered "shredded" and will not apply any protection for that zone until it is repaired with cloth. If all zones are disabled, the entire piece of clothing is shredded and unwearable until repaired with 3 cloth. Jumpsuits give a small amount of wound protection, and since sharp weapons and lasers generally get extra wound bonuses against bare flesh, even a plain jumpsuit provides decent protection from a few laser shots or scalpel stabs.
    Lasers gain a powerful niche versus unarmored/lightly armored carbons! As noted above, lasers can shred clothing and burn away zones of jumpsuits in 2 shots each, after which the target's bare flesh is exposed (barring other clothing), and lasers excel at dealing burn wounds against uncovered skin. Think big, nasty charring!
    Bleeding is now totally limb based, and gauze is as well. Bleeding is also 95% cut wound based, meaning sharp weapons make you bleed rather than just having 40+ brute on a limb.
    The more wounds and damage you get on a bodypart, the easier it'll be to gain more severe wounds. Wounds are arranged from Moderate, to Severe, to Critical in increasing severity, and you'll generally have to suffer the lesser ones before getting the worse ones.

dreamseeker_2020-05-15_03-15-59.png
Above: Someone having an incredibly bad day from bloodloss

dreamseeker_2020-05-04_22-29-29.png
Above: Scars from healed wounds

ShareX_2020-05-15_06-55-20.png
Above: Actual combat involving someone's head getting cracked

Here's a quick, if non-exhaustive, list of things I have left to do before I consider it feature complete

Finish adding treatments for each wound type/severity (mostly surgeries/triage for critical wounds)
Add second winds for bad injuries to give the victim a chance to get away
Flesh out severe & critical injuries in general
Find sprites for the bonesetter, bone gel, and anything else that might be needed
Add the medical items for treating the less severe wounds to the station
Polish code and remove any redundancies I left behind

    Quick balance pass to make sure nothing is horribly abuseable

Why It's Good For The Game

Adds a flexible new system for representing damage on carbons with injuries that can be treated in different ways. Moderate wounds from getting toolboxed or sliced with a scalpel can usually be treated by a buddy or even by yourself with the right tools, but getting flayed with a fireaxe or a laser gun emptied into your bare skin may require extra attention or even surgery in bad cases! Also makes laser guns cooler and more like 40k lasguns that can flash fry people (cool!)

This should also make spessmen more resilient and harder to kill outright, while still adding consequences and complications to getting hurt. Wounds aren't immediately fatal, but they can do things like slow down interactions, deal damage over time through infections, and generally make you more fragile until fixed. They can also give you a "second wind" on being applied that gives you a small adrenaline boost (or whatever) to help disengage and escape immediate danger.
Changelog

🆑 Ryll/Shaps
add: Introduces medical wounds, new injuries that can happen to fleshy carbons when they sustain lots of damage on a bodypart. There's quite a lot of change here, but you can read the guide at: https://tgstation13.org/wiki/Guide_to_wounds and an extended changelog is available here: https://hackmd.io/l_FI9b3tSqa_woDadewJXA
add: Introduces scars and temporal scarring! Healing a wound leaves a scar behind that can be seen by examining someone twice rapidly, and if Temporal Scarring is enabled in character prefs, surviving a round with scars will save them to be granted at roundstart another round! Let your body tell stories!
tweak: Bleeding is now fully bodypart-focused, and 95% of bleeding comes from cut wounds from sharp weapons. Gauze is applied on a limb-by-limb basis, and helps staunch bloodflow rather than totally stop it. Notably, you no longer bleed just from having 40+ brute damage on a limb.
del: Organic bodyparts are no longer disabled at maximum damage, but are easier to cause wounds to
add: O2 medkits in emergency lockers have been replaced with new emergency medkits with basic tools for diagnosing and treating wounds and basic damage
tweak: Herapin now rapidly increases bleeding on all open cuts, rather than causing bleeding by itself. The more cuts on the target, the more it will affect them.
tweak: Neckgrab table slams now hit the targeted limb rather than just the head, with a large chance to dislocate or break a bone
tweak: Sharp weapons and burning weapons can now shred zones on jumpsuits, disabling protection on that limb. Damaged clothes can be repaired with cloth.
tweak: Slaughter demons now deal less raw damage, but gain the ability to cause cut wounds, which becomes more powerful with each attack on a humanoid but resets when bloodcrawling.
/🆑
2020-06-12 23:47:33 +12:00
Ryll Ryll 5c174800fb Grenades and projectiles can have shrapnel and embed, all carbons can suffer embeds, some bullets can ricochet, sizable refactor of embedding (#49634)
About The Pull Request

It annoyed me that we have a perfectly good frag grenade item, and a perfectly good shrapnel component, but no crossover episode between the two. This remedies that, and does a lot, lot more.

dreamseeker_2020-03-30_05-01-13.png

dreamseeker_2020-03-30_05-01-26.png

Big points:

    Adds new component: pellet_cloud, which can be used by ammo casings, guns, and landmines to spray shrapnel and display aggregate hit messages ("You're hit by 6 buckshot pellets!" vs "You're hit by the buckshot pellet in the X" x6). All gun ammo that shoot multiple pellets now use this component on firing.
    Adds stingbangs, premium less-lethal grenades that shoot off lots of stinger pellets, to cargo. Frag grenades are also reworked to have smaller booms, but shoot off lots of shrapnel shards. You can jump on top of these grenades to absorb a portion of the shrapnel to save those around you! There's an achievement for dying this way, called "Look Out, Sir!"
    Projectiles can now embed items/shrapnel. Adds .38 DumDum ammo to cargo that does less damage and has negative armor pen, but can embed in people. This is the only ammo that currently embeds.
    Bullets can now ricochet off walls, structures, and machinery (harder surfaces are more likely to ricochet). Only standard .38 and Match Grade .38/.357/L6 ammo can ricochet, with Match Grade being much better at ricocheting. You can buy Match Grade .38 from cargo and Match Grade L6 ammo from the nuke uplink, while Match .357 is admin only.
    Armor now protects you from harmful embeds, taking the better of the bullet/bomb armor on the affected limb. Armor penetration can modify this of course, and many blunt embeds like stingbangs and DumDum bullets are significantly worse if you have even 1 armor.

Other misc fixes/changes

    Refactored the embed element a bunch and fixed it creating new elements for every instance rather than expected bespoke behavior. There are new /obj/item helpers for modifying and adding embedding.
    Fixes #49989: Spears can no longer embed in turfs cause their sprite is annoying to me, it's generally harder for most things to embed in turfs
    Fixes #49741: New carbon helpers for removing embedded objects
    Fixes #46416: Handles embedded objects getting qdel'd or moved while embedded
    Renamed the old shrapnel component for RPG loot to MIRV to avoid confusion
    Repathed frag grenades from under minibombs to under base grenades, and added explosion vars to base grenades

Why It's Good For The Game

Fixes a bunch of janky design with embeds, adds lots of new avenues for projectile and grenade variety, ricochets and collateral damage are fun!
Changelog

🆑 Ryll/Shaps
add: Adds stingbangs to cargo (and one in the sec vendor premium), premium less-lethal grenades that shoot off a giant swarm of stingball pellets to help incapacitate swarms of people in tight quarters. You can jump on top of a live one to be a hero and absorb a bunch of shrapnel, same with frag grenades. There's even an achievement for dying to a grenade you jumped on!
add: Projectiles can now embed in people! Or at least grenade shrapnel and the new .38 DumDum ammo, now available in cargo, can. DumDum rounds excel against unarmored targets, but are pricey and do poorly against armored targets.
add: Bullets can now ricochet! Or at least, standard .38 and the new .38/L6 Match Grade ammo can. Match Grade ammo is finely tuned to ricochet easier and seek targets off bounces better, and can be purchased from cargo (for the .38) or nuke ops uplink (for the L6), but standard .38 ammo has a chance to ricochet as well.
tweak: Frag grenades now have smaller explosions but shoot off a bunch of devastating shrapnel, excellent for soft targets!
tweak: Shotguns and other multi-pellet guns now print aggregate messages, so you'll get one "You've been hit by 6 buckshot pellets!" rather than 6 "You've been hit by the buckshot pellet in the X!" messages. Bye bye lag!
balance: Armor can now protect against embedding weapons, taking the best of either the bullet or bomb armor for the limb in question away from the embed chance. Some weapons are better at piercing armor than others!
/🆑
2020-04-03 16:58:38 +13:00