mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Refactors a lot of reused/redundant death code, fixes #7224
This commit is contained in:
@@ -302,4 +302,10 @@
|
|||||||
/obj/item/device/paicard/emp_act(severity)
|
/obj/item/device/paicard/emp_act(severity)
|
||||||
for(var/mob/M in src)
|
for(var/mob/M in src)
|
||||||
M.emp_act(severity)
|
M.emp_act(severity)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/paicard/ex_act(severity)
|
||||||
|
if(pai)
|
||||||
|
pai.ex_act(severity)
|
||||||
|
else
|
||||||
|
del(src)
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
//This is the proc for gibbing a mob. Cannot gib ghosts.
|
//This is the proc for gibbing a mob. Cannot gib ghosts.
|
||||||
//added different sort of gibs and animations. N
|
//added different sort of gibs and animations. N
|
||||||
/mob/proc/gib()
|
/mob/proc/gib(var/anim,var/do_gibs)
|
||||||
death(1)
|
death(1)
|
||||||
var/atom/movable/overlay/animation = null
|
var/atom/movable/overlay/animation = null
|
||||||
monkeyizing = 1
|
monkeyizing = 1
|
||||||
@@ -13,19 +13,21 @@
|
|||||||
animation.icon = 'icons/mob/mob.dmi'
|
animation.icon = 'icons/mob/mob.dmi'
|
||||||
animation.master = src
|
animation.master = src
|
||||||
|
|
||||||
// flick("gibbed-m", animation)
|
update_canmove()
|
||||||
gibs(loc, viruses, dna)
|
|
||||||
|
flick((anim ? anim : "gibbed-m"), animation)
|
||||||
|
if(do_gibs)
|
||||||
|
gibs(loc, viruses, dna)
|
||||||
|
|
||||||
dead_mob_list -= src
|
dead_mob_list -= src
|
||||||
spawn(15)
|
spawn(15)
|
||||||
if(animation) del(animation)
|
if(animation) del(animation)
|
||||||
if(src) del(src)
|
if(src) del(src)
|
||||||
|
|
||||||
|
|
||||||
//This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
|
//This is the proc for turning a mob into ash. Mostly a copy of gib code (above).
|
||||||
//Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
|
//Originally created for wizard disintegrate. I've removed the virus code since it's irrelevant here.
|
||||||
//Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
|
//Dusting robots does not eject the MMI, so it's a bit more powerful than gib() /N
|
||||||
/mob/proc/dust()
|
/mob/proc/dust(var/anim,var/remains)
|
||||||
death(1)
|
death(1)
|
||||||
var/atom/movable/overlay/animation = null
|
var/atom/movable/overlay/animation = null
|
||||||
monkeyizing = 1
|
monkeyizing = 1
|
||||||
@@ -38,8 +40,11 @@
|
|||||||
animation.icon = 'icons/mob/mob.dmi'
|
animation.icon = 'icons/mob/mob.dmi'
|
||||||
animation.master = src
|
animation.master = src
|
||||||
|
|
||||||
// flick("dust-m", animation)
|
flick(anim ? anim : "dust-m", animation)
|
||||||
new /obj/effect/decal/cleanable/ash(loc)
|
if(remains)
|
||||||
|
new remains(loc)
|
||||||
|
else
|
||||||
|
new /obj/effect/decal/cleanable/ash(loc)
|
||||||
|
|
||||||
dead_mob_list -= src
|
dead_mob_list -= src
|
||||||
spawn(15)
|
spawn(15)
|
||||||
@@ -47,17 +52,45 @@
|
|||||||
if(src) del(src)
|
if(src) del(src)
|
||||||
|
|
||||||
|
|
||||||
/mob/proc/death(gibbed)
|
/mob/proc/death(gibbed,deathmessage)
|
||||||
|
|
||||||
|
if(stat == DEAD)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
if(!gibbed)
|
||||||
|
src.visible_message("<b>\The [src.name]</b> [deathmessage ? deathmessage : "seizes up and falls limp..."]")
|
||||||
|
|
||||||
|
stat = DEAD
|
||||||
|
|
||||||
|
update_canmove()
|
||||||
|
|
||||||
|
dizziness = 0
|
||||||
|
jitteriness = 0
|
||||||
|
|
||||||
|
layer = MOB_LAYER
|
||||||
|
|
||||||
|
if(blind && client)
|
||||||
|
blind.layer = 0
|
||||||
|
|
||||||
|
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
||||||
|
see_in_dark = 8
|
||||||
|
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
||||||
|
|
||||||
//Quick fix for corpses kept propped up in chairs. ~Z
|
|
||||||
drop_r_hand()
|
drop_r_hand()
|
||||||
drop_l_hand()
|
drop_l_hand()
|
||||||
//End of fix.
|
|
||||||
|
if(healths)
|
||||||
|
healths.icon_state = "health6"
|
||||||
|
|
||||||
timeofdeath = world.time
|
timeofdeath = world.time
|
||||||
|
if(mind) mind.store_memory("Time of death: [worldtime2text()]", 0)
|
||||||
var/tod = worldtime2text() //weasellos time of death patch
|
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
|
||||||
living_mob_list -= src
|
living_mob_list -= src
|
||||||
dead_mob_list += src
|
dead_mob_list |= src
|
||||||
return ..(gibbed)
|
|
||||||
|
updateicon()
|
||||||
|
|
||||||
|
if(ticker && ticker.mode)
|
||||||
|
ticker.mode.check_win()
|
||||||
|
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|||||||
@@ -52,14 +52,8 @@
|
|||||||
|
|
||||||
|
|
||||||
death(gibbed)
|
death(gibbed)
|
||||||
if(key)
|
ghostize()
|
||||||
var/mob/dead/observer/ghost = new(src)
|
..(gibbed)
|
||||||
ghost.name = ghost_name
|
|
||||||
ghost.real_name = ghost_name
|
|
||||||
ghost.key = key
|
|
||||||
if (ghost.client)
|
|
||||||
ghost.client.eye = ghost
|
|
||||||
return ..(gibbed)
|
|
||||||
|
|
||||||
|
|
||||||
blob_act()
|
blob_act()
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
/mob/living/carbon/alien/death(gibbed)
|
/mob/living/carbon/alien/death(gibbed)
|
||||||
|
if(!gibbed && dead_icon)
|
||||||
if(stat == DEAD) return
|
icon_state = dead_icon
|
||||||
if(healths) healths.icon_state = "health6"
|
return ..(gibbed,"lets out a waning guttural screech, green blood bubbling from its maw.")
|
||||||
stat = DEAD
|
|
||||||
|
|
||||||
if(dead_icon) icon_state = dead_icon
|
|
||||||
|
|
||||||
if(!gibbed)
|
|
||||||
update_canmove()
|
|
||||||
if(client) blind.layer = 0
|
|
||||||
|
|
||||||
return ..(gibbed)
|
|
||||||
@@ -36,6 +36,9 @@
|
|||||||
if (!muzzled)
|
if (!muzzled)
|
||||||
message = "<B>[src]</B> burps."
|
message = "<B>[src]</B> burps."
|
||||||
m_type = 2
|
m_type = 2
|
||||||
|
if("deathgasp")
|
||||||
|
message = "<B>The [src.name] lets out a waning guttural screech, green blood bubbling from its maw."
|
||||||
|
m_type = 2
|
||||||
if("scratch")
|
if("scratch")
|
||||||
if (!src.restrained())
|
if (!src.restrained())
|
||||||
message = "<B>The [src.name]</B> scratches."
|
message = "<B>The [src.name]</B> scratches."
|
||||||
|
|||||||
@@ -1,43 +1,13 @@
|
|||||||
/mob/living/carbon/brain/death(gibbed)
|
/mob/living/carbon/brain/death(gibbed)
|
||||||
if(stat == DEAD) return
|
if(!gibbed && container && istype(container, /obj/item/device/mmi)) //If not gibbed but in a container.
|
||||||
if(!gibbed && container && istype(container, /obj/item/device/mmi))//If not gibbed but in a container.
|
|
||||||
for(var/mob/O in viewers(container, null))
|
|
||||||
O.show_message(text("\red <B>[]'s MMI flatlines!</B>", src), 1, "\red You hear something flatline.", 2)
|
|
||||||
container.icon_state = "mmi_dead"
|
container.icon_state = "mmi_dead"
|
||||||
stat = DEAD
|
return ..(gibbed,"beeps shrilly as the MMI flatlines!")
|
||||||
|
|
||||||
if(blind) blind.layer = 0
|
|
||||||
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
|
||||||
see_in_dark = 8
|
|
||||||
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0) //mind. ?
|
|
||||||
|
|
||||||
return ..(gibbed)
|
|
||||||
|
|
||||||
/mob/living/carbon/brain/gib()
|
/mob/living/carbon/brain/gib()
|
||||||
death(1)
|
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
// flick("gibbed-m", animation)
|
|
||||||
gibs(loc, viruses, dna)
|
|
||||||
|
|
||||||
dead_mob_list -= src
|
|
||||||
if(container && istype(container, /obj/item/device/mmi))
|
if(container && istype(container, /obj/item/device/mmi))
|
||||||
del(container)//Gets rid of the MMI if there is one
|
del(container)//Gets rid of the MMI if there is one
|
||||||
if(loc)
|
if(loc)
|
||||||
if(istype(loc,/obj/item/organ/brain))
|
if(istype(loc,/obj/item/organ/brain))
|
||||||
del(loc)//Gets rid of the brain item
|
del(loc)//Gets rid of the brain item
|
||||||
spawn(15)
|
..(null,1)
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
for(var/mob/N in viewers(src, null))
|
for(var/mob/N in viewers(src, null))
|
||||||
if(N.client)
|
if(N.client)
|
||||||
N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2)
|
N.show_message(text("\red <B>[M] bursts out of [src]!</B>"), 2)
|
||||||
. = ..()
|
. = ..(null,1)
|
||||||
|
|
||||||
/mob/living/carbon/attack_hand(mob/M as mob)
|
/mob/living/carbon/attack_hand(mob/M as mob)
|
||||||
if(!istype(M, /mob/living/carbon)) return
|
if(!istype(M, /mob/living/carbon)) return
|
||||||
|
|||||||
@@ -1,15 +1,4 @@
|
|||||||
/mob/living/carbon/human/gib()
|
/mob/living/carbon/human/gib()
|
||||||
death(1)
|
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
for(var/datum/organ/external/E in src.organs)
|
for(var/datum/organ/external/E in src.organs)
|
||||||
if(istype(E, /datum/organ/external/chest))
|
if(istype(E, /datum/organ/external/chest))
|
||||||
@@ -19,49 +8,25 @@
|
|||||||
// Override the current limb status and don't cause an explosion
|
// Override the current limb status and don't cause an explosion
|
||||||
E.droplimb(1,1)
|
E.droplimb(1,1)
|
||||||
|
|
||||||
|
..(species ? species.gibbed_anim : "gibbed-h")
|
||||||
|
|
||||||
if(species)
|
if(species)
|
||||||
flick(species.gibbed_anim, animation)
|
|
||||||
hgibs(loc, viruses, dna, species.flesh_color, species.blood_color)
|
hgibs(loc, viruses, dna, species.flesh_color, species.blood_color)
|
||||||
else
|
else
|
||||||
flick("gibbed-h", animation)
|
|
||||||
hgibs(loc, viruses, dna)
|
hgibs(loc, viruses, dna)
|
||||||
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
/mob/living/carbon/human/dust()
|
/mob/living/carbon/human/dust()
|
||||||
death(1)
|
if(species)
|
||||||
var/atom/movable/overlay/animation = null
|
..(species.dusted_anim, species.remains_type)
|
||||||
monkeyizing = 1
|
else
|
||||||
canmove = 0
|
..()
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
flick(species.dusted_anim, animation)
|
|
||||||
new species.remains_type(loc)
|
|
||||||
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/human/death(gibbed)
|
/mob/living/carbon/human/death(gibbed)
|
||||||
if(stat == DEAD) return
|
|
||||||
if(healths) healths.icon_state = "health5"
|
|
||||||
|
|
||||||
stat = DEAD
|
if(stat == DEAD) return
|
||||||
dizziness = 0
|
|
||||||
jitteriness = 0
|
|
||||||
|
|
||||||
hud_updateflag |= 1 << HEALTH_HUD
|
hud_updateflag |= 1 << HEALTH_HUD
|
||||||
hud_updateflag |= 1 << STATUS_HUD
|
hud_updateflag |= 1 << STATUS_HUD
|
||||||
|
|
||||||
handle_hud_list()
|
handle_hud_list()
|
||||||
|
|
||||||
//Handle species-specific deaths.
|
//Handle species-specific deaths.
|
||||||
@@ -88,36 +53,16 @@
|
|||||||
|
|
||||||
callHook("death", list(src, gibbed))
|
callHook("death", list(src, gibbed))
|
||||||
|
|
||||||
//Check for heist mode kill count.
|
if(!gibbed && species.death_sound)
|
||||||
if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist) ) )
|
playsound(loc, species.death_sound, 80, 1, 1)
|
||||||
//Check for last assailant's mutantrace.
|
|
||||||
/*if( LAssailant && ( istype( LAssailant,/mob/living/carbon/human ) ) )
|
|
||||||
var/mob/living/carbon/human/V = LAssailant
|
|
||||||
if (V.dna && (V.dna.mutantrace == "vox"))*/ //Not currently feasible due to terrible LAssailant tracking.
|
|
||||||
//world << "Vox kills: [vox_kills]"
|
|
||||||
vox_kills++ //Bad vox. Shouldn't be killing humans.
|
|
||||||
|
|
||||||
if(!gibbed)
|
|
||||||
|
|
||||||
emote("deathgasp") //let the world KNOW WE ARE DEAD // Doing this with the deathgasp emote seems odd.
|
|
||||||
if(species && species.death_sound) playsound(loc, species.death_sound, 80, 1, 1)
|
|
||||||
|
|
||||||
//For ninjas exploding when they die.
|
|
||||||
if( istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_initialized )
|
|
||||||
src << browse(null, "window=spideros")//Just in case.
|
|
||||||
var/location = loc
|
|
||||||
explosion(location, 0, 0, 3, 4)
|
|
||||||
|
|
||||||
update_canmove()
|
|
||||||
if(client) blind.layer = 0
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
|
||||||
if(ticker && ticker.mode)
|
if(ticker && ticker.mode)
|
||||||
// world.log << "k"
|
|
||||||
sql_report_death(src)
|
sql_report_death(src)
|
||||||
ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
|
ticker.mode.check_win()
|
||||||
return ..(gibbed)
|
if(istype(ticker.mode,/datum/game_mode/heist))
|
||||||
|
vox_kills++ //Bad vox. Shouldn't be killing humans.
|
||||||
|
|
||||||
|
return ..(gibbed,species.death_message)
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/makeSkeleton()
|
/mob/living/carbon/human/proc/makeSkeleton()
|
||||||
if(SKELETON in src.mutations) return
|
if(SKELETON in src.mutations) return
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
/mob/living/carbon/slime/death(gibbed)
|
/mob/living/carbon/slime/death(gibbed)
|
||||||
|
|
||||||
|
if(stat == DEAD) return
|
||||||
|
stat = DEAD
|
||||||
|
|
||||||
if(!gibbed)
|
if(!gibbed)
|
||||||
if(is_adult)
|
if(is_adult)
|
||||||
var/mob/living/carbon/slime/M = new /mob/living/carbon/slime(loc)
|
var/mob/living/carbon/slime/M = new /mob/living/carbon/slime(loc)
|
||||||
@@ -12,17 +16,7 @@
|
|||||||
name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])"
|
name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])"
|
||||||
return
|
return
|
||||||
|
|
||||||
if(stat == DEAD) return
|
|
||||||
stat = DEAD
|
|
||||||
icon_state = "[colour] baby slime dead"
|
icon_state = "[colour] baby slime dead"
|
||||||
overlays.len = 0
|
overlays.Cut()
|
||||||
for(var/mob/O in viewers(src, null))
|
|
||||||
O.show_message("<b>The [name]</b> seizes up and falls limp...", 1) //ded -- Urist
|
|
||||||
|
|
||||||
update_canmove()
|
|
||||||
if(blind) blind.layer = 0
|
|
||||||
|
|
||||||
if(ticker && ticker.mode)
|
|
||||||
ticker.mode.check_win()
|
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -1,56 +1,8 @@
|
|||||||
/mob/living/carbon/monkey/gib()
|
/mob/living/carbon/monkey/gib()
|
||||||
death(1)
|
..(null,1)
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
flick("gibbed-m", animation)
|
|
||||||
gibs(loc, viruses, dna)
|
|
||||||
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
/mob/living/carbon/monkey/dust()
|
/mob/living/carbon/monkey/dust()
|
||||||
death(1)
|
..("dust-m")
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
flick("dust-m", animation)
|
|
||||||
new /obj/effect/decal/cleanable/ash(loc)
|
|
||||||
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/monkey/death(gibbed)
|
/mob/living/carbon/monkey/death(gibbed)
|
||||||
if(stat == DEAD) return
|
..(gibbed,"lets out a faint chimper as it collapses and stops moving...")
|
||||||
if(healths) healths.icon_state = "health5"
|
|
||||||
stat = DEAD
|
|
||||||
|
|
||||||
if(!gibbed)
|
|
||||||
for(var/mob/O in viewers(src, null))
|
|
||||||
O.show_message("<b>The [name]</b> lets out a faint chimper as it collapses and stops moving...", 1) //ded -- Urist
|
|
||||||
|
|
||||||
update_canmove()
|
|
||||||
if(blind) blind.layer = 0
|
|
||||||
|
|
||||||
ticker.mode.check_win()
|
|
||||||
|
|
||||||
return ..(gibbed)
|
|
||||||
@@ -385,13 +385,6 @@ var/list/ai_verbs_default = list(
|
|||||||
user.reset_view(camera)
|
user.reset_view(camera)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/living/silicon/ai/blob_act()
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(60)
|
|
||||||
updatehealth()
|
|
||||||
return 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
/mob/living/silicon/ai/restrained()
|
/mob/living/silicon/ai/restrained()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -404,26 +397,6 @@ var/list/ai_verbs_default = list(
|
|||||||
ai_call_shuttle()
|
ai_call_shuttle()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/silicon/ai/ex_act(severity)
|
|
||||||
if(!blinded)
|
|
||||||
flick("flash", flash)
|
|
||||||
|
|
||||||
switch(severity)
|
|
||||||
if(1.0)
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(100)
|
|
||||||
adjustFireLoss(100)
|
|
||||||
if(2.0)
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(60)
|
|
||||||
adjustFireLoss(60)
|
|
||||||
if(3.0)
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(30)
|
|
||||||
|
|
||||||
updatehealth()
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/ai/Topic(href, href_list)
|
/mob/living/silicon/ai/Topic(href, href_list)
|
||||||
if(usr != src)
|
if(usr != src)
|
||||||
return
|
return
|
||||||
@@ -481,7 +454,7 @@ var/list/ai_verbs_default = list(
|
|||||||
else
|
else
|
||||||
src << "\red System error. Cannot locate [html_decode(href_list["trackname"])]."
|
src << "\red System error. Cannot locate [html_decode(href_list["trackname"])]."
|
||||||
return
|
return
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/silicon/ai/meteorhit(obj/O as obj)
|
/mob/living/silicon/ai/meteorhit(obj/O as obj)
|
||||||
@@ -495,11 +468,6 @@ var/list/ai_verbs_default = list(
|
|||||||
updatehealth()
|
updatehealth()
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/silicon/ai/bullet_act(var/obj/item/projectile/Proj)
|
|
||||||
..(Proj)
|
|
||||||
updatehealth()
|
|
||||||
return 2
|
|
||||||
|
|
||||||
/mob/living/silicon/ai/attack_animal(mob/living/M as mob)
|
/mob/living/silicon/ai/attack_animal(mob/living/M as mob)
|
||||||
if(M.melee_damage_upper == 0)
|
if(M.melee_damage_upper == 0)
|
||||||
M.emote("[M.friendly] [src]")
|
M.emote("[M.friendly] [src]")
|
||||||
|
|||||||
@@ -1,20 +1,19 @@
|
|||||||
/mob/living/silicon/ai/death(gibbed)
|
/mob/living/silicon/ai/death(gibbed)
|
||||||
if(stat == DEAD) return
|
|
||||||
stat = DEAD
|
if(stat == DEAD)
|
||||||
|
return
|
||||||
|
|
||||||
if (src.custom_sprite == 1)//check for custom AI sprite, defaulting to blue screen if no.
|
if (src.custom_sprite == 1)//check for custom AI sprite, defaulting to blue screen if no.
|
||||||
icon_state = "[ckey]-ai-crash"
|
icon_state = "[ckey]-ai-crash"
|
||||||
else icon_state = "ai-crash"
|
else
|
||||||
update_canmove()
|
icon_state = "ai-crash"
|
||||||
|
|
||||||
if(src.eyeobj)
|
if(src.eyeobj)
|
||||||
src.eyeobj.setLoc(get_turf(src))
|
src.eyeobj.setLoc(get_turf(src))
|
||||||
if(blind) blind.layer = 0
|
|
||||||
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
|
||||||
see_in_dark = 8
|
|
||||||
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
|
||||||
remove_ai_verbs(src)
|
remove_ai_verbs(src)
|
||||||
|
|
||||||
var/callshuttle = 0
|
var/callshuttle = 0
|
||||||
|
|
||||||
for(var/obj/machinery/computer/communications/commconsole in world)
|
for(var/obj/machinery/computer/communications/commconsole in world)
|
||||||
if(commconsole.z == 2)
|
if(commconsole.z == 2)
|
||||||
continue
|
continue
|
||||||
@@ -48,13 +47,10 @@
|
|||||||
spawn(10)
|
spawn(10)
|
||||||
explosion(src.loc, 3, 6, 12, 15)
|
explosion(src.loc, 3, 6, 12, 15)
|
||||||
|
|
||||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
for(var/obj/machinery/ai_status_display/O in world)
|
||||||
spawn( 0 )
|
spawn( 0 )
|
||||||
O.mode = 2
|
O.mode = 2
|
||||||
if (istype(loc, /obj/item/device/aicard))
|
if (istype(loc, /obj/item/device/aicard))
|
||||||
loc.icon_state = "aicard-404"
|
loc.icon_state = "aicard-404"
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
|
||||||
|
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
|
|||||||
@@ -1,41 +1,12 @@
|
|||||||
/mob/living/silicon/gib()
|
/mob/living/silicon/gib()
|
||||||
death(1)
|
..("gibbed-r")
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
// flick("gibbed-r", animation)
|
|
||||||
robogibs(loc, viruses)
|
robogibs(loc, viruses)
|
||||||
|
|
||||||
dead_mob_list -= src
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
/mob/living/silicon/dust()
|
/mob/living/silicon/dust()
|
||||||
death(1)
|
..("dust-r", /obj/effect/decal/remains/robot)
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
/mob/living/silicon/death(gibbed,deathmessage)
|
||||||
animation.icon_state = "blank"
|
if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
var/obj/machinery/recharge_station/RC = loc
|
||||||
animation.master = src
|
RC.go_out()
|
||||||
|
return ..(gibbed,deathmessage)
|
||||||
// flick("dust-r", animation)
|
|
||||||
new /obj/effect/decal/remains/robot(loc)
|
|
||||||
|
|
||||||
dead_mob_list -= src
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
/mob/living/silicon/decoy/death(gibbed)
|
/mob/living/silicon/decoy/death(gibbed)
|
||||||
if(stat == DEAD) return
|
if(stat == DEAD) return
|
||||||
stat = DEAD
|
|
||||||
icon_state = "ai-crash"
|
icon_state = "ai-crash"
|
||||||
spawn(10)
|
spawn(10)
|
||||||
explosion(loc, 3, 6, 12, 15)
|
explosion(loc, 3, 6, 12, 15)
|
||||||
|
|
||||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||||
O.mode = 2
|
O.mode = 2
|
||||||
return ..(gibbed)
|
return ..(gibbed)
|
||||||
@@ -1,18 +1,13 @@
|
|||||||
/mob/living/silicon/pai/death(gibbed)
|
/mob/living/silicon/pai/death(gibbed)
|
||||||
if(stat == DEAD) return
|
if(card)
|
||||||
stat = DEAD
|
card.removePersonality()
|
||||||
canmove = 0
|
if(gibbed)
|
||||||
if(blind) blind.layer = 0
|
src.loc = get_turf(card)
|
||||||
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
del(card)
|
||||||
see_in_dark = 8
|
else
|
||||||
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
close_up()
|
||||||
|
if(mind)
|
||||||
//var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
|
del(mind)
|
||||||
//mind.store_memory("Time of death: [tod]", 0)
|
..(gibbed)
|
||||||
|
|
||||||
//New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here.
|
|
||||||
//Read as: I have no idea what I'm doing but asking for help got me nowhere so this is what you get. - Nodrak
|
|
||||||
if(mind) del(mind)
|
|
||||||
living_mob_list -= src
|
|
||||||
ghostize()
|
ghostize()
|
||||||
del(src)
|
del(src)
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
/mob/living/silicon/pai/Life()
|
/mob/living/silicon/pai/Life()
|
||||||
|
|
||||||
if (src.stat == 2)
|
if (src.stat == 2)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(src.cable)
|
if(src.cable)
|
||||||
if(get_dist(src, src.cable) > 1)
|
if(get_dist(src, src.cable) > 1)
|
||||||
var/turf/T = get_turf_or_move(src.loc)
|
var/turf/T = get_turf_or_move(src.loc)
|
||||||
@@ -9,20 +11,26 @@
|
|||||||
del(src.cable)
|
del(src.cable)
|
||||||
|
|
||||||
regular_hud_updates()
|
regular_hud_updates()
|
||||||
|
|
||||||
if(src.secHUD == 1)
|
if(src.secHUD == 1)
|
||||||
process_sec_hud(src, 1)
|
process_sec_hud(src, 1)
|
||||||
|
|
||||||
if(src.medHUD == 1)
|
if(src.medHUD == 1)
|
||||||
process_med_hud(src, 1)
|
process_med_hud(src, 1)
|
||||||
|
|
||||||
if(silence_time)
|
if(silence_time)
|
||||||
if(world.timeofday >= silence_time)
|
if(world.timeofday >= silence_time)
|
||||||
silence_time = null
|
silence_time = null
|
||||||
src << "<font color=green>Communication circuit reinitialized. Speech and messaging functionality restored.</font>"
|
src << "<font color=green>Communication circuit reinitialized. Speech and messaging functionality restored.</font>"
|
||||||
|
|
||||||
handle_statuses()
|
handle_statuses()
|
||||||
|
|
||||||
|
if(health <= 0)
|
||||||
|
death(null,"gives one shrill beep before falling lifeless.")
|
||||||
|
|
||||||
/mob/living/silicon/pai/updatehealth()
|
/mob/living/silicon/pai/updatehealth()
|
||||||
if(status_flags & GODMODE)
|
if(status_flags & GODMODE)
|
||||||
health = 100
|
health = 100
|
||||||
stat = CONSCIOUS
|
stat = CONSCIOUS
|
||||||
else
|
else
|
||||||
health = 100 - getBruteLoss() - getFireLoss()
|
health = 100 - getBruteLoss() - getFireLoss()
|
||||||
|
|
||||||
@@ -169,28 +169,7 @@
|
|||||||
if(3)
|
if(3)
|
||||||
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>"
|
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)
|
|
||||||
adjustBruteLoss(100)
|
|
||||||
adjustFireLoss(100)
|
|
||||||
if(2.0)
|
|
||||||
if (src.stat != 2)
|
|
||||||
adjustBruteLoss(60)
|
|
||||||
adjustFireLoss(60)
|
|
||||||
if(3.0)
|
|
||||||
if (src.stat != 2)
|
|
||||||
adjustBruteLoss(30)
|
|
||||||
|
|
||||||
src.updatehealth()
|
|
||||||
|
|
||||||
|
|
||||||
// See software.dm for Topic()
|
// See software.dm for Topic()
|
||||||
|
|
||||||
/mob/living/silicon/pai/meteorhit(obj/O as obj)
|
/mob/living/silicon/pai/meteorhit(obj/O as obj)
|
||||||
for(var/mob/M in viewers(src, null))
|
for(var/mob/M in viewers(src, null))
|
||||||
M.show_message(text("\red [] has been hit by []", src, O), 1)
|
M.show_message(text("\red [] has been hit by []", src, O), 1)
|
||||||
@@ -201,10 +180,6 @@
|
|||||||
src.updatehealth()
|
src.updatehealth()
|
||||||
return
|
return
|
||||||
|
|
||||||
//mob/living/silicon/pai/bullet_act(var/obj/item/projectile/Proj)
|
|
||||||
|
|
||||||
///mob/living/silicon/pai/attack_hand(mob/living/carbon/M as mob)
|
|
||||||
|
|
||||||
/mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C)
|
/mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C)
|
||||||
if(istype(usr, /mob/living))
|
if(istype(usr, /mob/living))
|
||||||
var/mob/living/U = usr
|
var/mob/living/U = usr
|
||||||
@@ -374,7 +349,8 @@
|
|||||||
src.updatehealth()
|
src.updatehealth()
|
||||||
else
|
else
|
||||||
visible_message("<span class='warning'>[user.name] bonks [src] harmlessly with [W].</span>")
|
visible_message("<span class='warning'>[user.name] bonks [src] harmlessly with [W].</span>")
|
||||||
if(stat != 2) close_up()
|
spawn(1)
|
||||||
|
if(stat != 2) close_up()
|
||||||
return
|
return
|
||||||
|
|
||||||
/mob/living/silicon/pai/attack_hand(mob/user as mob)
|
/mob/living/silicon/pai/attack_hand(mob/user as mob)
|
||||||
|
|||||||
@@ -1,72 +1,15 @@
|
|||||||
/mob/living/silicon/robot/gib()
|
|
||||||
//robots don't die when gibbed. instead they drop their MMI'd brain
|
|
||||||
var/atom/movable/overlay/animation = null
|
|
||||||
monkeyizing = 1
|
|
||||||
canmove = 0
|
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
flick("gibbed-r", animation)
|
|
||||||
robogibs(loc, viruses)
|
|
||||||
|
|
||||||
living_mob_list -= src
|
|
||||||
dead_mob_list -= src
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/dust()
|
/mob/living/silicon/robot/dust()
|
||||||
death(1)
|
//Delete the MMI first so that it won't go popping out.
|
||||||
var/atom/movable/overlay/animation = null
|
if(mmi)
|
||||||
monkeyizing = 1
|
del(mmi)
|
||||||
canmove = 0
|
..()
|
||||||
icon = null
|
|
||||||
invisibility = 101
|
|
||||||
|
|
||||||
animation = new(loc)
|
|
||||||
animation.icon_state = "blank"
|
|
||||||
animation.icon = 'icons/mob/mob.dmi'
|
|
||||||
animation.master = src
|
|
||||||
|
|
||||||
flick("dust-r", animation)
|
|
||||||
new /obj/effect/decal/remains/robot(loc)
|
|
||||||
if(mmi) del(mmi) //Delete the MMI first so that it won't go popping out.
|
|
||||||
|
|
||||||
dead_mob_list -= src
|
|
||||||
spawn(15)
|
|
||||||
if(animation) del(animation)
|
|
||||||
if(src) del(src)
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/death(gibbed)
|
/mob/living/silicon/robot/death(gibbed)
|
||||||
if(stat == DEAD) return
|
|
||||||
if(!gibbed)
|
|
||||||
emote("deathgasp")
|
|
||||||
stat = DEAD
|
|
||||||
update_canmove()
|
|
||||||
if(camera)
|
if(camera)
|
||||||
camera.status = 0
|
camera.status = 0
|
||||||
|
if(module)
|
||||||
if(in_contents_of(/obj/machinery/recharge_station))//exit the recharge station
|
var/obj/item/weapon/gripper/G = locate(/obj/item/weapon/gripper) in module
|
||||||
var/obj/machinery/recharge_station/RC = loc
|
if(G) G.drop_item()
|
||||||
RC.go_out()
|
|
||||||
|
|
||||||
remove_robot_verbs()
|
remove_robot_verbs()
|
||||||
|
|
||||||
if(blind) blind.layer = 0
|
|
||||||
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
|
|
||||||
see_in_dark = 8
|
|
||||||
see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
|
||||||
updateicon()
|
|
||||||
|
|
||||||
tod = worldtime2text() //weasellos time of death patch
|
|
||||||
if(mind) mind.store_memory("Time of death: [tod]", 0)
|
|
||||||
|
|
||||||
sql_report_cyborg_death(src)
|
sql_report_cyborg_death(src)
|
||||||
|
..(gibbed,"shudders violently for a moment, then becomes motionless, its eyes slowly darkening.")
|
||||||
return ..(gibbed)
|
|
||||||
|
|||||||
@@ -200,14 +200,6 @@
|
|||||||
return
|
return
|
||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/silicon/robot/drone/death(gibbed)
|
|
||||||
|
|
||||||
if(module)
|
|
||||||
var/obj/item/weapon/gripper/G = locate(/obj/item/weapon/gripper) in module
|
|
||||||
if(G) G.drop_item()
|
|
||||||
|
|
||||||
..(gibbed)
|
|
||||||
|
|
||||||
//DRONE MOVEMENT.
|
//DRONE MOVEMENT.
|
||||||
/mob/living/silicon/robot/drone/Process_Spaceslipping(var/prob_slip)
|
/mob/living/silicon/robot/drone/Process_Spaceslipping(var/prob_slip)
|
||||||
//TODO: Consider making a magboot item for drones to equip. ~Z
|
//TODO: Consider making a magboot item for drones to equip. ~Z
|
||||||
|
|||||||
@@ -455,13 +455,6 @@ var/list/robot_verbs_default = list(
|
|||||||
C.toggled = 1
|
C.toggled = 1
|
||||||
src << "\red You enable [C.name]."
|
src << "\red You enable [C.name]."
|
||||||
|
|
||||||
/mob/living/silicon/robot/blob_act()
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(60)
|
|
||||||
updatehealth()
|
|
||||||
return 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
// this function shows information about the malf_ai gameplay type in the status screen
|
// this function shows information about the malf_ai gameplay type in the status screen
|
||||||
/mob/living/silicon/robot/show_malf_ai()
|
/mob/living/silicon/robot/show_malf_ai()
|
||||||
..()
|
..()
|
||||||
@@ -515,29 +508,6 @@ var/list/robot_verbs_default = list(
|
|||||||
/mob/living/silicon/robot/restrained()
|
/mob/living/silicon/robot/restrained()
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
/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
|
|
||||||
if(2.0)
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(60)
|
|
||||||
adjustFireLoss(60)
|
|
||||||
if(3.0)
|
|
||||||
if (stat != 2)
|
|
||||||
adjustBruteLoss(30)
|
|
||||||
|
|
||||||
updatehealth()
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/meteorhit(obj/O as obj)
|
/mob/living/silicon/robot/meteorhit(obj/O as obj)
|
||||||
for(var/mob/M in viewers(src, null))
|
for(var/mob/M in viewers(src, null))
|
||||||
M.show_message(text("\red [src] has been hit by [O]"), 1)
|
M.show_message(text("\red [src] has been hit by [O]"), 1)
|
||||||
@@ -549,14 +519,11 @@ var/list/robot_verbs_default = list(
|
|||||||
updatehealth()
|
updatehealth()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
|
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
|
||||||
..(Proj)
|
..(Proj)
|
||||||
updatehealth()
|
|
||||||
if(prob(75) && Proj.damage > 0) spark_system.start()
|
if(prob(75) && Proj.damage > 0) spark_system.start()
|
||||||
return 2
|
return 2
|
||||||
|
|
||||||
|
|
||||||
/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes)
|
/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes)
|
||||||
spawn( 0 )
|
spawn( 0 )
|
||||||
if ((!( yes ) || now_pushing))
|
if ((!( yes ) || now_pushing))
|
||||||
@@ -988,7 +955,7 @@ var/list/robot_verbs_default = list(
|
|||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/mob/living/silicon/robot/proc/updateicon()
|
/mob/living/silicon/robot/updateicon()
|
||||||
|
|
||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
if(stat == 0)
|
if(stat == 0)
|
||||||
|
|||||||
@@ -67,8 +67,14 @@
|
|||||||
/mob/living/silicon/IsAdvancedToolUser()
|
/mob/living/silicon/IsAdvancedToolUser()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/mob/living/silicon/bullet_act(var/obj/item/projectile/Proj)
|
/mob/living/silicon/blob_act()
|
||||||
|
if (src.stat != 2)
|
||||||
|
src.adjustBruteLoss(60)
|
||||||
|
src.updatehealth()
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
|
/mob/living/silicon/bullet_act(var/obj/item/projectile/Proj)
|
||||||
|
|
||||||
if(!Proj.nodamage)
|
if(!Proj.nodamage)
|
||||||
switch(Proj.damage_type)
|
switch(Proj.damage_type)
|
||||||
@@ -78,7 +84,7 @@
|
|||||||
adjustFireLoss(Proj.damage)
|
adjustFireLoss(Proj.damage)
|
||||||
|
|
||||||
Proj.on_hit(src,2)
|
Proj.on_hit(src,2)
|
||||||
|
updatehealth()
|
||||||
return 2
|
return 2
|
||||||
|
|
||||||
/mob/living/silicon/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0)
|
/mob/living/silicon/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0)
|
||||||
@@ -222,4 +228,25 @@
|
|||||||
flavor_text = copytext(sanitize(input(usr, "Please enter your new flavour text.", "Flavour text", null) as text), 1)
|
flavor_text = copytext(sanitize(input(usr, "Please enter your new flavour text.", "Flavour text", null) as text), 1)
|
||||||
|
|
||||||
/mob/living/silicon/binarycheck()
|
/mob/living/silicon/binarycheck()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
/mob/living/silicon/ex_act(severity)
|
||||||
|
if(!blinded)
|
||||||
|
flick("flash", flash)
|
||||||
|
|
||||||
|
switch(severity)
|
||||||
|
if(1.0)
|
||||||
|
if (stat != 2)
|
||||||
|
adjustBruteLoss(100)
|
||||||
|
adjustFireLoss(100)
|
||||||
|
if(!anchored)
|
||||||
|
gib()
|
||||||
|
if(2.0)
|
||||||
|
if (stat != 2)
|
||||||
|
adjustBruteLoss(60)
|
||||||
|
adjustFireLoss(60)
|
||||||
|
if(3.0)
|
||||||
|
if (stat != 2)
|
||||||
|
adjustBruteLoss(30)
|
||||||
|
|
||||||
|
updatehealth()
|
||||||
@@ -35,14 +35,10 @@
|
|||||||
spell_list += new spell(src)
|
spell_list += new spell(src)
|
||||||
|
|
||||||
/mob/living/simple_animal/construct/death()
|
/mob/living/simple_animal/construct/death()
|
||||||
..()
|
|
||||||
new /obj/item/weapon/ectoplasm (src.loc)
|
new /obj/item/weapon/ectoplasm (src.loc)
|
||||||
for(var/mob/M in viewers(src, null))
|
..(null,"collapses in a shattered heap.")
|
||||||
if((M.client && !( M.blinded )))
|
|
||||||
M.show_message("\red [src] collapses in a shattered heap. ")
|
|
||||||
ghostize()
|
ghostize()
|
||||||
del src
|
del src
|
||||||
return
|
|
||||||
|
|
||||||
/mob/living/simple_animal/construct/examine()
|
/mob/living/simple_animal/construct/examine()
|
||||||
set src in oview()
|
set src in oview()
|
||||||
|
|||||||
@@ -43,11 +43,8 @@
|
|||||||
|
|
||||||
/mob/living/simple_animal/hostile/mimic/death()
|
/mob/living/simple_animal/hostile/mimic/death()
|
||||||
..()
|
..()
|
||||||
visible_message("\red <b>[src]</b> stops moving!")
|
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Crate Mimic
|
// Crate Mimic
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -158,8 +158,7 @@
|
|||||||
walk(src,0)
|
walk(src,0)
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/retaliate/malf_drone/death()
|
/mob/living/simple_animal/hostile/retaliate/malf_drone/death()
|
||||||
src.visible_message("\blue \icon[src] [src] suddenly breaks apart.")
|
..(null,"suddenly breaks apart.")
|
||||||
..()
|
|
||||||
del(src)
|
del(src)
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/retaliate/malf_drone/Del()
|
/mob/living/simple_animal/hostile/retaliate/malf_drone/Del()
|
||||||
|
|||||||
@@ -158,7 +158,5 @@
|
|||||||
minbodytemp = 0
|
minbodytemp = 0
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/viscerator/death()
|
/mob/living/simple_animal/hostile/viscerator/death()
|
||||||
..()
|
..(null,"is smashed into pieces!")
|
||||||
visible_message("\red <b>[src]</b> is smashed into pieces!")
|
del src
|
||||||
del src
|
|
||||||
return
|
|
||||||
@@ -51,7 +51,6 @@
|
|||||||
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
|
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/tree/death()
|
/mob/living/simple_animal/hostile/tree/death()
|
||||||
..()
|
..(null,"is hacked into pieces!")
|
||||||
visible_message("\red <b>[src]</b> is hacked into pieces!")
|
|
||||||
new /obj/item/stack/sheet/wood(loc)
|
new /obj/item/stack/sheet/wood(loc)
|
||||||
del(src)
|
del(src)
|
||||||
@@ -197,12 +197,10 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/simple_animal/gib()
|
/mob/living/simple_animal/gib()
|
||||||
if(icon_gib)
|
|
||||||
flick(icon_gib, src)
|
|
||||||
if(meat_amount && meat_type)
|
if(meat_amount && meat_type)
|
||||||
for(var/i = 0; i < meat_amount; i++)
|
for(var/i = 0; i < meat_amount; i++)
|
||||||
new meat_type(src.loc)
|
new meat_type(src.loc)
|
||||||
..()
|
..(icon_gib,1)
|
||||||
|
|
||||||
/mob/living/simple_animal/emote(var/act, var/type, var/desc)
|
/mob/living/simple_animal/emote(var/act, var/type, var/desc)
|
||||||
if(act)
|
if(act)
|
||||||
|
|||||||
@@ -1080,3 +1080,6 @@ mob/proc/yank_out_object()
|
|||||||
return I
|
return I
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
/mob/proc/updateicon()
|
||||||
|
return
|
||||||
Reference in New Issue
Block a user