Merge pull request #15371 from DeltaFire15/unintended-devastation

Devastation level explosions no longer delete organs of gibbed humans
This commit is contained in:
Lin
2021-11-17 16:19:23 +00:00
committed by GitHub
125 changed files with 181 additions and 180 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
/obj/effect/dummy/phased_mob/slaughter/relaymove(mob/user, direction)
forceMove(get_step(src,direction))
/obj/effect/dummy/phased_mob/slaughter/ex_act()
/obj/effect/dummy/phased_mob/slaughter/ex_act(severity, target, origin)
return
/obj/effect/dummy/phased_mob/slaughter/wave_ex_act(power, datum/wave_explosion/explosion, dir)
+1 -1
View File
@@ -43,7 +43,7 @@
/mob/living/brain/update_mobility()
return ((mobility_flags = (container?.in_contents_of(/obj/mecha)? MOBILITY_FLAGS_DEFAULT : NONE)))
/mob/living/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up.
/mob/living/brain/ex_act(severity, target, origin) //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up.
return
/mob/living/brain/wave_ex_act(power, datum/wave_explosion/explosion, dir)
@@ -319,7 +319,10 @@
var/atom/A = I
if(!QDELETED(A))
A.ex_act(severity)
gib()
if(istype(origin, /datum/explosion))
gib(was_explosion = origin)
else
gib()
return
else
brute_loss = 500
@@ -28,7 +28,7 @@
if(2)
SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT")
/mob/living/silicon/ai/ex_act(severity, target)
/mob/living/silicon/ai/ex_act(severity, target, origin)
switch(severity)
if(1)
gib()
@@ -13,7 +13,7 @@
emitter_next_use = world.time + emitter_emp_cd
//Need more effects that aren't instadeath or permanent law corruption.
/mob/living/silicon/pai/ex_act(severity, target)
/mob/living/silicon/pai/ex_act(severity, target, origin)
take_holo_damage(severity * 50)
switch(severity)
if(1) //RIP
@@ -184,7 +184,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
gib()
return TRUE
/mob/living/silicon/robot/ex_act(severity, target)
/mob/living/silicon/robot/ex_act(severity, target, origin)
switch(severity)
if(1)
gib()
+1 -1
View File
@@ -78,7 +78,7 @@
GLOB.silicon_mobs -= src
return ..()
/mob/living/silicon/contents_explosion(severity, target)
/mob/living/silicon/contents_explosion(severity, target, origin)
return
/mob/living/silicon/proc/cancelAlarm()
@@ -138,7 +138,7 @@
add_overlay(load)
return
/mob/living/simple_animal/bot/mulebot/ex_act(severity)
/mob/living/simple_animal/bot/mulebot/ex_act(severity, target, origin)
unload(0)
switch(severity)
if(1)
@@ -60,5 +60,5 @@
else
visible_message("<span class='notice'>[src] avoids getting crushed.</span>")
/mob/living/simple_animal/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
/mob/living/simple_animal/cockroach/ex_act(severity, target, origin) //Explosions are a terrible way to handle a cockroach.
return
@@ -273,10 +273,13 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
summoner.adjustCloneLoss(amount * 0.5) //dying hosts take 50% bonus damage as cloneloss
update_health_hud()
/mob/living/simple_animal/hostile/guardian/ex_act(severity, target)
/mob/living/simple_animal/hostile/guardian/ex_act(severity, target, origin)
switch(severity)
if(1)
gib()
if(istype(origin, /datum/explosion))
gib(was_explosion = origin)
else
gib()
return
if(2)
adjustBruteLoss(60)
@@ -286,10 +289,10 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
/mob/living/simple_animal/hostile/guardian/wave_ex_act(power, datum/wave_explosion/explosion, dir)
adjustBruteLoss(EXPLOSION_POWER_STANDARD_SCALE_MOB_DAMAGE(power, explosion.mob_damage_mod * 0.33))
/mob/living/simple_animal/hostile/guardian/gib()
/mob/living/simple_animal/hostile/guardian/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion)
if(summoner)
to_chat(summoner, "<span class='danger'><B>Your [src] was blown up!</span></B>")
summoner.gib()
summoner.gib(was_explosion = was_explosion)
ghostize()
qdel(src)
@@ -11,7 +11,7 @@
toggle_button_type = /atom/movable/screen/guardian/ToggleMode
var/toggle = FALSE
/mob/living/simple_animal/hostile/guardian/protector/ex_act(severity)
/mob/living/simple_animal/hostile/guardian/protector/ex_act(severity, target, origin)
if(severity == 1)
adjustBruteLoss(400) //if in protector mode, will do 20 damage and not actually necessarily kill the summoner
else
@@ -87,7 +87,7 @@
else
visible_message("<span class='notice'>[src] avoids getting crushed.</span>")
/mob/living/simple_animal/banana_spider/ex_act()
/mob/living/simple_animal/banana_spider/ex_act(severity, target, origin)
return
/mob/living/simple_animal/banana_spider/start_pulling()
@@ -62,7 +62,7 @@
user.transfer_ckey(src, FALSE)
density = TRUE
/mob/living/simple_animal/hostile/bread/ex_act()
/mob/living/simple_animal/hostile/bread/ex_act(severity, target, origin)
return
/mob/living/simple_animal/hostile/bread/start_pulling()
@@ -132,7 +132,7 @@ Difficulty: Medium
return FALSE
return ..()
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/ex_act(severity, target)
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/ex_act(severity, target, origin)
if(dash())
return
return ..()
@@ -154,7 +154,7 @@ Difficulty: Hard
return 0
return ..()
/mob/living/simple_animal/hostile/megafauna/bubblegum/ex_act(severity, target)
/mob/living/simple_animal/hostile/megafauna/bubblegum/ex_act(severity, target, origin)
if(severity >= EXPLODE_LIGHT)
return
severity = EXPLODE_LIGHT // puny mortals
@@ -421,7 +421,7 @@ Difficulty: Very Hard
if(ismob(AM))
ActivationReaction(AM, ACTIVATE_MOB_BUMP)
/obj/machinery/anomalous_crystal/ex_act()
/obj/machinery/anomalous_crystal/ex_act(severity, target, origin)
ActivationReaction(null, ACTIVATE_BOMB)
/obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing
@@ -740,7 +740,7 @@ Difficulty: Very Hard
/obj/structure/closet/stasis/emp_act()
return
/obj/structure/closet/stasis/ex_act()
/obj/structure/closet/stasis/ex_act(severity, target, origin)
return
/obj/structure/closet/stasis/handle_lock_addition()
@@ -147,7 +147,7 @@ Difficulty: Extremely Hard
if(isturf(target) || isobj(target))
target.ex_act(EXPLODE_HEAVY)
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/ex_act(severity, target)
/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/ex_act(severity, target, origin)
adjustBruteLoss(30 * severity - 120)
visible_message("<span class='danger'>[src] absorbs the explosion!</span>", "<span class='userdanger'>You absorb the explosion!</span>")
@@ -79,7 +79,7 @@ Difficulty: Medium
. = ..()
internal = new/obj/item/gps/internal/dragon(src)
/mob/living/simple_animal/hostile/megafauna/dragon/ex_act(severity, target)
/mob/living/simple_animal/hostile/megafauna/dragon/ex_act(severity, target, origin)
if(severity == 3)
return
..()
@@ -387,7 +387,7 @@ Difficulty: Medium
light_range = 2
duration = 13
/obj/effect/temp_visual/lava_warning/ex_act()
/obj/effect/temp_visual/lava_warning/ex_act(severity, target, origin)
return
/obj/effect/temp_visual/lava_warning/Initialize(mapload, var/reset_time = 10)
@@ -674,7 +674,7 @@ Difficulty: Normal
layer = LOW_OBJ_LAYER
anchored = TRUE
/obj/effect/hierophant/ex_act()
/obj/effect/hierophant/ex_act(severity, target, origin)
return
/obj/effect/hierophant/attackby(obj/item/I, mob/user, params)
@@ -138,7 +138,7 @@
adjustBruteLoss(-L.maxHealth/2)
L.gib()
/mob/living/simple_animal/hostile/megafauna/ex_act(severity, target)
/mob/living/simple_animal/hostile/megafauna/ex_act(severity, target, origin)
switch (severity)
if (EXPLODE_DEVASTATE)
adjustBruteLoss(250)
@@ -50,7 +50,7 @@
if(isliving(target) && !target.Adjacent(targets_from) && ranged_cooldown <= world.time)//No more being shot at point blank or spammed with RNG beams
OpenFire(target)
/mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity, target)
/mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity, target, origin)
switch(severity)
if(1)
gib()
@@ -307,7 +307,7 @@
if((bodytemperature < minbodytemp) || (bodytemperature > maxbodytemp))
adjustHealth(unsuitable_atmos_damage)
/mob/living/simple_animal/gib()
/mob/living/simple_animal/gib(no_brain, no_organs, no_bodyparts, datum/explosion/was_explosion)
if(butcher_results)
var/atom/Tsec = drop_location()
for(var/path in butcher_results)