diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index c2c10c80758..d6f5f2e47fc 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -99,6 +99,14 @@ if(F.on) G.toggle_gunlight() G.visible_message("[G]'s light fades and turns off.") + else if(istype(I, /obj/item/clothing/head/hardhat)) //There really needs to be a better way to handle this. + var/obj/item/clothing/head/hardhat/hhat = I + if(hhat.on) + hhat.on = 0 + hhat.set_light(0) + hhat.icon_state = "hardhat0_[hhat.item_color]" + hhat.item_state = "hardhat0_[hhat.item_color]" + hhat.visible_message("[hhat]'s light fades and turns off.") return I.light_range /obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishMob(var/mob/living/H) diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 6d36129773a..eae015b09e7 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -94,6 +94,9 @@ return uses /obj/item/weapon/dnainjector/attack(mob/M as mob, mob/user as mob) + if(!M.dna) //You know what would be nice? If the mob you're injecting has DNA, and so doesn't cause runtimes. + return 0 + if(ishuman(M)) // Would've done this via species instead of type, but the basic mob doesn't have a species, go figure. var/mob/living/carbon/human/H = M if(H.species.flags & NO_DNA_RAD) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 62934f3e53e..a466d62306b 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -174,16 +174,11 @@ /mob/living/simple_animal/hostile/statue/say() return 0 -//Turn to dust when gibbed -/mob/living/simple_animal/hostile/statue/gib(var/animation = 0) - dust(animation) - -/mob/living/simple_animal/hostile/statue/death() - living_mob_list -= src - dead_mob_list += src - if(key) - respawnable_list += src - gib() +/mob/living/simple_animal/hostile/statue/death(gibbed) + if(!gibbed) //The looping ends here. + dust() + return + return ..() //Stop attacking clientless mobs diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm index 3929e9f8f75..e48c7f81d3d 100644 --- a/code/modules/mob/living/simple_animal/vox.dm +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -22,15 +22,14 @@ var/amp = null var/quills = 3 -/mob/living/simple_animal/vox/armalis/death() - - living_mob_list -= src - dead_mob_list += src - stat = DEAD - visible_message("\red [src] shudders violently and explodes!","\red You feel your body rupture!") - explosion(get_turf(loc), -1, -1, 3, 5) - src.gib() - return +/mob/living/simple_animal/vox/armalis/death(gibbed) + if(!gibbed) + stat = DEAD + visible_message("[src] shudders violently and explodes!","\red You feel your body rupture!") + explosion(get_turf(loc), -1, -1, 3, 5) + gib() + return + return ..() /mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob, params) if(O.force) diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 3c70e86f81f..0e067d1e6f2 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ