Ports wounds from TG (#11955)

* piss

* second set of files

* theos feels pain and dies

* code works lmao

* other stuff

* YES YES YES

* Update zombies.dm

* egg

* whoops

* bubblegum alt attacks won't wound

* bone hurting juice hurts bones

* something's fucky wucky

* humans are no longer blue space babes but projectile damage is still wack

* IT WORKS???????

* other stuff

* turns out im big brain and already handled that should be testable live now

* WHOOPS

* medical pens not in stupid area

* fix regen mesh icons

* tool_behavior and defines plus allowing wound healing to override surgical tool no touchy bit

* should help

* mapping problem

* fix monkies shitting out blood all the time

* going to remove examine_more being stupid

* this is stupid i think it works though

* Empty commit, more bad code

* this probably fdixes something

* buckshot buffed back to where it should be

* woundings

* missed this one

* fix gamebreaking bug

* turns out damaging ANYTHING causes suit sensors to break whoops

* stuff up to limb disable refactor

* aid scanner can no longer kill you if you use it too much, preventing the robot uprising for another few decades

* Update burn_dressing.dm

* wtf

* shotgun slugs have a wound bonus of -30 putting them in line with other high damage weaponry that has even less

* burn debriding uses the scalpel rather than the hemostat

* debriding for patch/treat no longer causes wounds

* Give syndicate medical cyborg a bonesetter

* like 5 more prs ported

* fixes burn ointment and mesh application not having a progress bar

* gamemode zombies get easydismember and easily wounded

* managed to screw up self cautery this fixes it

* carbons can't use check self for injuries but humans can

* honey gives +2 sanitization to burns

* re-add this if sensors get fixed

* should fix a runtime I made on accident when trying to make examine more less jank

* last 2 prs and some holdup fixes since these touched on that

* set target = src so the progress par shows up i think

* Update mutations.dm

* fixes twohanded reuqired weapons by reverting some change I don't understand

* fixes blood sprites

* actually properly fixes the thing

Co-authored-by: Gabriel Adamson <adamson.g@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
This commit is contained in:
Theos
2021-09-11 08:19:11 -04:00
committed by GitHub
parent 41a09f4c8f
commit 26191754f1
285 changed files with 7145 additions and 1796 deletions

View File

@@ -223,7 +223,7 @@
LAZYREMOVE(M.do_afters, src)
targeted_by = null
QDEL_NULL(light)
return ..()
@@ -497,6 +497,20 @@
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .)
/**
* Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds)
*
* This is where you can put extra information on something that may be superfluous or not important in critical gameplay
* moments, while allowing people to manually double-examine to take a closer look
*
* Produces a signal [COMSIG_PARENT_EXAMINE_MORE]
*/
/atom/proc/examine_more(mob/user)
. = list()
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE_MORE, user, .)
if(!LAZYLEN(.)) // lol ..length
return FALSE
/**
* An atom we are buckled or is contained within us has tried to move
*
@@ -1110,6 +1124,40 @@
var/reverse_message = "has been [what_done] by [ssource][postfix]"
target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE)
/**
* log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
*
* Note that this has no info on the attack that dealt the wound: information about where damage came from isn't passed to the bodypart's damaged proc. When in doubt, check the attack log for attacks at that same time
* TODO later: Add logging for healed wounds, though that will require some rewriting of healing code to prevent admin heals from spamming the logs. Not high priority
*
* Arguments:
* * victim- The guy who got wounded
* * suffered_wound- The wound, already applied, that we're logging. It has to already be attached so we can get the limb from it
* * dealt_damage- How much damage is associated with the attack that dealt with this wound.
* * dealt_wound_bonus- The wound_bonus, if one was specified, of the wounding attack
* * dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified *and applied*, of the wounding attack. Not shown if armor was present
* * base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods
*/
/proc/log_wound(atom/victim, datum/wound/suffered_wound, dealt_damage, dealt_wound_bonus, dealt_bare_wound_bonus, base_roll)
if(QDELETED(victim) || !suffered_wound)
return
var/message = "has suffered: [suffered_wound][suffered_wound.limb ? " to [suffered_wound.limb.name]" : null]"// maybe indicate if it's a promote/demote?
if(dealt_damage)
message += " | Damage: [dealt_damage]"
// The base roll is useful since it can show how lucky someone got with the given attack. For example, dealing a cut
if(base_roll)
message += "(rolled [base_roll]/[dealt_damage ** WOUND_DAMAGE_EXPONENT])"
if(dealt_wound_bonus)
message += " | WB: [dealt_wound_bonus]"
if(dealt_bare_wound_bonus)
message += " | BWB: [dealt_bare_wound_bonus]"
victim.log_message(message, LOG_ATTACK, color="blue")
/atom/movable/proc/add_filter(name,priority,list/params)
if(!filter_data)
filter_data = list()