Containment fields can no longer contain megafauna

This commit is contained in:
Joan Lung
2016-08-15 18:02:22 -04:00
parent 643192e75d
commit 0ad2a3c4df
8 changed files with 39 additions and 7 deletions
@@ -1,7 +1,7 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
/obj/machinery/field/containment
name = "Containment Field"
name = "containment field"
desc = "An energy field."
icon = 'icons/obj/singularity.dmi'
icon_state = "Contain_F"
@@ -34,6 +34,16 @@
/obj/machinery/field/containment/ex_act(severity, target)
return 0
/obj/machinery/field/containment/attack_animal(mob/living/simple_animal/M)
if(!FG1 || !FG2)
qdel(src)
return
if(ismegafauna(M))
M.visible_message("<span class='warning'>[M] glows fiercely as the containment field flickers out!</span>")
FG1.calc_power(INFINITY) //rip that 'containment' field
M.adjustHealth(-M.obj_damage)
else
..()
/obj/machinery/field/containment/Crossed(mob/mover)
if(isliving(mover))
@@ -23,7 +23,7 @@ field_generator power level display
#define FG_ONLINE 2
/obj/machinery/field/generator
name = "Field Generator"
name = "field generator"
desc = "A large thermal battery that projects a high amount of energy when powered."
icon = 'icons/obj/machines/field_generator.dmi'
icon_state = "Field_Gen"
@@ -133,6 +133,15 @@ field_generator power level display
else
return ..()
/obj/machinery/field/generator/attack_animal(mob/living/simple_animal/M)
if(M.environment_smash >= 3 && active == FG_OFFLINE && state != FG_UNSECURED)
state = FG_UNSECURED
anchored = FALSE
M.visible_message("<span class='warning'>[M] rips [src] free from its moorings!</span>")
else
..()
if(!anchored)
step(src, get_dir(M, src))
/obj/machinery/field/generator/emp_act()
return 0
@@ -182,8 +191,10 @@ field_generator power level display
start_fields()
/obj/machinery/field/generator/proc/calc_power()
/obj/machinery/field/generator/proc/calc_power(set_power_draw)
var/power_draw = 2 + fields.len
if(set_power_draw)
power_draw = set_power_draw
if(draw_power(round(power_draw/2,1)))
check_power_level()