mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-03 05:21:27 +00:00
* - I rearranged X_defense.dm mob files, more damage_procs.dm.Here's what's inside: * X_defense.dm: is for the procs of attacks onto the mob, all the XXX_act() proc (things happening to the mob), as well as protection check and get procs (armor, ear prot, projectile dismemberment) * damage_procs.dm: actual damage procs like adjustBruteLoss() getfireloss, any proc that handles damaging. - some bugfixes with gibspawner effects. - monkey's bodyparts can be dismembered and are used to create its icon. - brains are no longer carbons. - all carbon have bodyparts that can be dropped when the mob is gibbed. - adminspawned bodyparts now have a default icon. - robotic parts are now a child of bodyparts. - health analyzer on alien/monkey shows damage on each limb - added admin option to add/remove bodyparts for all carbon (instead of just remove on humans) - Fixes keycheck message spam for janicart and all when trying to move. - Fixes bug with buckling to a scooter while limbless. - removed arg "hit_zone" in proj's on_hit() because we can already use the def_zone var (where hit_zone got its value) - Fixes mob not getting any damage when hit by a projectile on their missing limb, despite a hit message shown). carbon/apply_damage() now when we specify a def_zone and the corresponding BP is missing we default to the chest instead of stopping the proc. Consistently with how human/attacked_by() default to its attack to chest if missing limb. - Fixes mini uzi icon when empty and no mag (typo). - I renamed and changed a bit check_eye_prot and ear prot - renamed flash_eyes to flash_act() - I made a soundbang_act() similar to flash_act but for loud bangs. - added a gib and dust animation to larva. - husked monkeys - no damage overlay for husk or skeleton. - damage overlay for robotic limb now. - no damage overlay when organic bodypart husked. - one handed human with a bloody hand still get a bloody single hand overlay. - fix admin heal being unable to heal robotic bodyparts. - slightly touched robotic bodypart sprites (head one pixel too high) - Fixes 18532 "beheaded husk has hair". - Fixes 18584 "Ling stasis appearance bug" - no more eyes or lipstick on husks. - can remove flashes/wires/cells from robot chest and head with crowbar. - Fixes not being able to surgically amputate robotic arm/leg. * More merge conflict fixes and adding the new files I forgot to add. * of course I forgot birdstation * More typos and stuff I forgot to undo. * Fixing a typo in examine.dm Removing an unnecessary check. Making admin heal regenerate limbs on all carbons. Monkey-human transformation now transfer missing limbs info and presence of a cavity implant. NODISMEMBER species can still lack a limb if the mob lacked a limb and changed into that new species. Changeling Regenerate ability now also regenerate limbs when in monkey form. (and remove some cryptic useless code) * Fixing more conflicts with remie's multihands PR. * Fixes runtime with hud when calling build_hand_slots(). Fixes lightgeist healing not working. Fixes null.handle_fall() runtimes with pirate mobs. Fixes typo in has_left_hadn() and has_right_hand(). * Derp, forgot to remove debug message.
262 lines
7.4 KiB
Plaintext
262 lines
7.4 KiB
Plaintext
|
|
//Here are the procs used to modify status effects of a mob.
|
|
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
|
|
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
|
|
|
|
|
|
/////////////////////////////////// STUNNED ////////////////////////////////////
|
|
|
|
/mob/proc/Stun(amount, updating = 1, ignore_canstun = 0)
|
|
if(status_flags & CANSTUN || ignore_canstun)
|
|
stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
|
|
if(updating)
|
|
update_canmove()
|
|
|
|
/mob/proc/SetStunned(amount, updating = 1, ignore_canstun = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned"
|
|
if(status_flags & CANSTUN || ignore_canstun)
|
|
stunned = max(amount,0)
|
|
if(updating)
|
|
update_canmove()
|
|
|
|
/mob/proc/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
|
|
if(status_flags & CANSTUN || ignore_canstun)
|
|
stunned = max(stunned + amount,0)
|
|
if(updating)
|
|
update_canmove()
|
|
|
|
/////////////////////////////////// WEAKENED ////////////////////////////////////
|
|
|
|
/mob/proc/Weaken(amount, updating = 1, ignore_canweaken = 0)
|
|
if((status_flags & CANWEAKEN) || ignore_canweaken)
|
|
weakened = max(max(weakened,amount),0)
|
|
if(updating)
|
|
update_canmove() //updates lying, canmove and icons
|
|
|
|
/mob/proc/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
|
|
if(status_flags & CANWEAKEN)
|
|
weakened = max(amount,0)
|
|
if(updating)
|
|
update_canmove() //updates lying, canmove and icons
|
|
|
|
/mob/proc/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
|
|
if((status_flags & CANWEAKEN) || ignore_canweaken)
|
|
weakened = max(weakened + amount,0)
|
|
if(updating)
|
|
update_canmove() //updates lying, canmove and icons
|
|
|
|
/////////////////////////////////// PARALYSIS ////////////////////////////////////
|
|
|
|
/mob/proc/Paralyse(amount, updating = 1, ignore_canparalyse = 0)
|
|
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
|
var/old_paralysis = paralysis
|
|
paralysis = max(max(paralysis,amount),0)
|
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
|
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
|
var/old_paralysis = paralysis
|
|
paralysis = max(amount,0)
|
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
|
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
|
var/old_paralysis = paralysis
|
|
paralysis = max(paralysis + amount,0)
|
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/////////////////////////////////// SLEEPING ////////////////////////////////////
|
|
|
|
/mob/proc/Sleeping(amount, updating = 1)
|
|
var/old_sleeping = sleeping
|
|
sleeping = max(max(sleeping,amount),0)
|
|
if(!old_sleeping && sleeping)
|
|
throw_alert("asleep", /obj/screen/alert/asleep)
|
|
if(updating)
|
|
update_stat()
|
|
else if(old_sleeping && !sleeping)
|
|
clear_alert("asleep")
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/mob/proc/SetSleeping(amount, updating = 1)
|
|
var/old_sleeping = sleeping
|
|
sleeping = max(amount,0)
|
|
if(!old_sleeping && sleeping)
|
|
throw_alert("asleep", /obj/screen/alert/asleep)
|
|
if(updating)
|
|
update_stat()
|
|
else if(old_sleeping && !sleeping)
|
|
clear_alert("asleep")
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/mob/proc/AdjustSleeping(amount, updating = 1)
|
|
var/old_sleeping = sleeping
|
|
sleeping = max(sleeping + amount,0)
|
|
if(!old_sleeping && sleeping)
|
|
throw_alert("asleep", /obj/screen/alert/asleep)
|
|
if(updating)
|
|
update_stat()
|
|
else if(old_sleeping && !sleeping)
|
|
clear_alert("asleep")
|
|
if(updating)
|
|
update_stat()
|
|
|
|
/////////////////////////////////// RESTING ////////////////////////////////////
|
|
|
|
/mob/proc/Resting(amount)
|
|
resting = max(max(resting,amount),0)
|
|
update_canmove()
|
|
|
|
/mob/proc/SetResting(amount)
|
|
resting = max(amount,0)
|
|
update_canmove()
|
|
|
|
/mob/proc/AdjustResting(amount)
|
|
resting = max(resting + amount,0)
|
|
update_canmove()
|
|
|
|
/////////////////////////////////// JITTERINESS ////////////////////////////////////
|
|
|
|
/mob/proc/Jitter(amount)
|
|
jitteriness = max(jitteriness,amount,0)
|
|
|
|
/////////////////////////////////// DIZZINESS ////////////////////////////////////
|
|
|
|
/mob/proc/Dizzy(amount)
|
|
dizziness = max(dizziness,amount,0)
|
|
|
|
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
|
|
|
|
/mob/proc/adjustEarDamage()
|
|
return
|
|
|
|
/mob/proc/setEarDamage()
|
|
return
|
|
|
|
/////////////////////////////////// EYE DAMAGE ////////////////////////////////////
|
|
|
|
/mob/proc/damage_eyes(amount)
|
|
return
|
|
|
|
/mob/proc/adjust_eye_damage(amount)
|
|
return
|
|
|
|
/mob/proc/set_eye_damage(amount)
|
|
return
|
|
|
|
/////////////////////////////////// EYE_BLIND ////////////////////////////////////
|
|
|
|
/mob/proc/blind_eyes(amount)
|
|
if(amount>0)
|
|
var/old_eye_blind = eye_blind
|
|
eye_blind = max(eye_blind, amount)
|
|
if(!old_eye_blind)
|
|
throw_alert("blind", /obj/screen/alert/blind)
|
|
overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
|
|
|
|
/mob/proc/adjust_blindness(amount)
|
|
if(amount>0)
|
|
var/old_eye_blind = eye_blind
|
|
eye_blind += amount
|
|
if(!old_eye_blind)
|
|
throw_alert("blind", /obj/screen/alert/blind)
|
|
overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
|
|
else if(eye_blind)
|
|
var/blind_minimum = 0
|
|
if(stat != CONSCIOUS || (disabilities & BLIND))
|
|
blind_minimum = 1
|
|
eye_blind = max(eye_blind+amount, blind_minimum)
|
|
if(!eye_blind)
|
|
clear_alert("blind")
|
|
clear_fullscreen("blind")
|
|
|
|
/mob/proc/set_blindness(amount)
|
|
if(amount>0)
|
|
var/old_eye_blind = eye_blind
|
|
eye_blind = amount
|
|
if(client && !old_eye_blind)
|
|
throw_alert("blind", /obj/screen/alert/blind)
|
|
overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
|
|
else if(eye_blind)
|
|
var/blind_minimum = 0
|
|
if(stat != CONSCIOUS || (disabilities & BLIND))
|
|
blind_minimum = 1
|
|
eye_blind = blind_minimum
|
|
if(!eye_blind)
|
|
clear_alert("blind")
|
|
clear_fullscreen("blind")
|
|
|
|
/////////////////////////////////// EYE_BLURRY ////////////////////////////////////
|
|
|
|
/mob/proc/blur_eyes(amount)
|
|
if(amount>0)
|
|
var/old_eye_blurry = eye_blurry
|
|
eye_blurry = max(amount, eye_blurry)
|
|
if(!old_eye_blurry)
|
|
overlay_fullscreen("blurry", /obj/screen/fullscreen/blurry)
|
|
|
|
/mob/proc/adjust_blurriness(amount)
|
|
var/old_eye_blurry = eye_blurry
|
|
eye_blurry = max(eye_blurry+amount, 0)
|
|
if(amount>0)
|
|
if(!old_eye_blurry)
|
|
overlay_fullscreen("blurry", /obj/screen/fullscreen/blurry)
|
|
else if(old_eye_blurry && !eye_blurry)
|
|
clear_fullscreen("blurry")
|
|
|
|
/mob/proc/set_blurriness(amount)
|
|
var/old_eye_blurry = eye_blurry
|
|
eye_blurry = max(amount, 0)
|
|
if(amount>0)
|
|
if(!old_eye_blurry)
|
|
overlay_fullscreen("blurry", /obj/screen/fullscreen/blurry)
|
|
else if(old_eye_blurry)
|
|
clear_fullscreen("blurry")
|
|
|
|
/////////////////////////////////// DRUGGY ////////////////////////////////////
|
|
|
|
/mob/proc/adjust_drugginess(amount)
|
|
return
|
|
|
|
/mob/proc/set_drugginess(amount)
|
|
return
|
|
|
|
/////////////////////////////////// BLIND DISABILITY ////////////////////////////////////
|
|
|
|
/mob/proc/cure_blind() //when we want to cure the BLIND disability only.
|
|
return
|
|
|
|
/mob/proc/become_blind()
|
|
return
|
|
|
|
/////////////////////////////////// NEARSIGHT DISABILITY ////////////////////////////////////
|
|
|
|
/mob/proc/cure_nearsighted()
|
|
return
|
|
|
|
/mob/proc/become_nearsighted()
|
|
return
|
|
|
|
|
|
//////////////////////////////// HUSK DISABILITY ///////////////////////////:
|
|
|
|
/mob/proc/cure_husk()
|
|
return
|
|
|
|
/mob/proc/become_husk()
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|