Explosion Tweaks and Fixes

This commit is contained in:
Fox-McCloud
2015-03-15 18:05:13 -04:00
parent 84752bc5ed
commit 645167b49a
13 changed files with 65 additions and 171 deletions
@@ -56,6 +56,9 @@
use_me = 1 //If it can move, let it emote
else canmove = 0
return canmove
/mob/living/carbon/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up.
return
/mob/living/carbon/brain/binarycheck()
return istype(loc, /obj/item/device/mmi/posibrain)
+15 -25
View File
@@ -214,9 +214,6 @@
stat("Spacepod Integrity", "[!S.health ? "0" : "[(S.health / initial(S.health)) * 100]"]%")
/mob/living/carbon/human/ex_act(severity)
if(!blinded)
flick("flash", flash)
var/shielded = 0
var/b_loss = null
var/f_loss = null
@@ -235,8 +232,8 @@
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin")
processing_dismember.dismember_limb()
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.droplimb(1,1,1)
limbs_affected -= 1
@@ -260,7 +257,7 @@
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.dismember_limb()
processing_dismember.droplimb(1,1,1)
limbs_affected -= 1
else
@@ -269,8 +266,8 @@
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin")
processing_dismember.dismember_limb()
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.droplimb(1,1,1)
limbs_affected -= 1
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
@@ -292,7 +289,7 @@
while(limbs_affected != 0)
processing_dismember = pick(organs)
if(processing_dismember.name != "chest" && processing_dismember.name != "groin" && processing_dismember.name != "head")
processing_dismember.dismember_limb()
processing_dismember.droplimb(1,1,1)
limbs_affected -= 1
if (!istype(l_ear, /obj/item/clothing/ears/earmuffs) && !istype(r_ear, /obj/item/clothing/ears/earmuffs))
@@ -302,23 +299,15 @@
Paralyse(10)
var/update = 0
// focus most of the blast on one organ
var/datum/organ/external/take_blast = pick(organs)
update |= take_blast.take_damage(b_loss * 0.9, f_loss * 0.9, used_weapon = "Explosive blast")
// distribute the remaining 10% on all limbs equally
b_loss *= 0.1
f_loss *= 0.1
var/weapon_message = "Explosive Blast"
for(var/datum/organ/external/temp in organs)
switch(temp.name)
if("head")
update |= temp.take_damage(b_loss * 0.2, f_loss * 0.2, used_weapon = weapon_message)
if("chest")
update |= temp.take_damage(b_loss * 0.4, f_loss * 0.4, used_weapon = weapon_message)
if("groin")
update |= temp.take_damage(b_loss * 0.1, f_loss * 0.1, used_weapon = weapon_message)
if("l_arm")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if("r_arm")
@@ -328,15 +317,16 @@
if("r_leg")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if("r_foot")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
update |= temp.take_damage(b_loss * 0.025, f_loss * 0.025, used_weapon = weapon_message)
if("l_foot")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if("r_arm")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if("l_arm")
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
update |= temp.take_damage(b_loss * 0.025, f_loss * 0.025, used_weapon = weapon_message)
if("r_hand")
update |= temp.take_damage(b_loss * 0.025, f_loss * 0.025, used_weapon = weapon_message)
if("l_hand")
update |= temp.take_damage(b_loss * 0.025, f_loss * 0.025, used_weapon = weapon_message)
if(update) UpdateDamageIcon()
..()
/mob/living/carbon/human/blob_act()
if(stat == 2) return
@@ -190,7 +190,7 @@
var/f_loss = null
switch (severity)
if (1.0)
del(src)
qdel(src)
return
if (2.0)
@@ -255,7 +255,7 @@
if (Victim) return // can't attack while eating!
if (health > -100)
M.do_attack_animation(src)
visible_message("<span class='danger'> The [M.name] has glomped [src]!</span>", \
"<span class='userdanger'> The [M.name] has glomped [src]!</span>")
@@ -338,7 +338,7 @@
var/damage = rand(1, 3)
L.amount_grown = min(L.amount_grown + damage, L.max_grown)
adjustBruteLoss(damage)
/mob/living/carbon/slime/attack_hand(mob/living/carbon/human/M as mob)
if (!ticker)
M << "You cannot attack people before the game has started."
@@ -462,26 +462,18 @@
..()
/mob/living/carbon/monkey/ex_act(severity)
if(!blinded)
flick("flash", flash)
..()
switch(severity)
if(1.0)
if (stat != 2)
adjustBruteLoss(200)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
gib()
return
if(2.0)
if (stat != 2)
adjustBruteLoss(60)
adjustFireLoss(60)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
adjustBruteLoss(60)
adjustFireLoss(60)
if(3.0)
if (stat != 2)
adjustBruteLoss(30)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
adjustBruteLoss(30)
if (prob(50))
Paralyse(10)
else
return
/mob/living/carbon/monkey/blob_act()
+5
View File
@@ -33,6 +33,11 @@
/mob/living/proc/InCritical()
return (src.health < 0 && src.health > -95.0 && stat == UNCONSCIOUS)
/mob/living/ex_act(severity)
..()
if(client && !eye_blind)
flick("flash", src.flash)
/mob/living/proc/updatehealth()
if(status_flags & GODMODE)
health = 100
+3 -6
View File
@@ -467,14 +467,11 @@ var/list/ai_verbs_default = list(
..()
/mob/living/silicon/ai/ex_act(severity)
if(!blinded)
flick("flash", flash)
..()
switch(severity)
if(1.0)
if (stat != 2)
adjustBruteLoss(100)
adjustFireLoss(100)
gib()
if(2.0)
if (stat != 2)
adjustBruteLoss(60)
@@ -483,7 +480,7 @@ var/list/ai_verbs_default = list(
if (stat != 2)
adjustBruteLoss(30)
updatehealth()
return
/mob/living/silicon/ai/Topic(href, href_list)
+8 -9
View File
@@ -183,23 +183,22 @@
src << "<font color=green>You feel an electric surge run through your circuitry and become acutely aware at how lucky you are that you can still feel at all.</font>"
/mob/living/silicon/pai/ex_act(severity)
if(!blinded)
flick("flash", src.flash)
..()
switch(severity)
if(1.0)
if (src.stat != 2) //Let's not have two of these instantly kill you.
adjustBruteLoss(45)
adjustFireLoss(45)
if (src.stat != 2)
adjustBruteLoss(100)
adjustFireLoss(100)
if(2.0)
if (src.stat != 2)
adjustBruteLoss(30)
adjustFireLoss(30)
adjustBruteLoss(60)
adjustFireLoss(60)
if(3.0)
if (src.stat != 2)
adjustBruteLoss(20)
adjustBruteLoss(30)
src.updatehealth()
return
// See software.dm for Topic()
+3 -10
View File
@@ -514,16 +514,10 @@ var/list/robot_verbs_default = list(
/mob/living/silicon/robot/ex_act(severity)
if(!blinded)
flick("flash", flash)
switch(severity)
if(1.0)
if (stat != 2)
adjustBruteLoss(100)
adjustFireLoss(100)
gib()
return
gib()
return
if(2.0)
if (stat != 2)
adjustBruteLoss(60)
@@ -531,8 +525,7 @@ var/list/robot_verbs_default = list(
if(3.0)
if (stat != 2)
adjustBruteLoss(30)
updatehealth()
return
/mob/living/silicon/robot/meteorhit(obj/O as obj)
@@ -477,11 +477,9 @@
return
/mob/living/simple_animal/ex_act(severity)
if(!blinded)
flick("flash", flash)
..()
switch (severity)
if (1.0)
adjustBruteLoss(500)
gib()
return