diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm
index 1f45794ac14..0b82f067d0c 100644
--- a/code/game/gamemodes/blob/theblob.dm
+++ b/code/game/gamemodes/blob/theblob.dm
@@ -174,7 +174,7 @@
take_damage(damage, BRUTE)
return
-/obj/structure/blob/proc/take_damage(damage, damage_type)
+/obj/structure/blob/take_damage(damage, damage_type)
if(!damage || damage_type == STAMINA) // Avoid divide by zero errors
return
switch(damage_type)
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index 182ed68e004..b2b97f9adc8 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -73,7 +73,7 @@
if(health <= 0)
destroy_structure()
-/obj/structure/cult/functional/proc/take_damage(damage, damage_type = BRUTE)
+/obj/structure/cult/functional/take_damage(damage, damage_type = BRUTE)
if(damage_type == BRUTE || damage_type == BURN)
health -= damage
updatehealth()
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index ee75775f151..947bcf6059d 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -24,7 +24,6 @@
var/can_crush = TRUE
var/nextstate = null
var/boltslocked = TRUE
- var/can_deconstruct = TRUE
var/active_alarm = FALSE
/obj/machinery/door/firedoor/Bumped(atom/AM)
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index a45c19aff29..3e3ff6fc67b 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -144,7 +144,7 @@
operating = 0
return 1
-/obj/machinery/door/window/proc/take_damage(damage)
+/obj/machinery/door/window/take_damage(damage)
health = max(0, health - damage)
if(health <= 0)
var/debris = list(
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 65f34737756..51a0b370a5d 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -403,7 +403,7 @@ Class Procs:
return 1
return 0
-/obj/machinery/proc/deconstruct(disassembled = TRUE)
+/obj/machinery/deconstruct(disassembled = TRUE)
on_deconstruction()
spawn_frame()
for(var/obj/item/I in component_parts)
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index d46a49742e9..98013119723 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -453,7 +453,7 @@ var/list/turret_icons
sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit
enabled = 1 //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here
-/obj/machinery/porta_turret/proc/take_damage(var/force)
+/obj/machinery/porta_turret/take_damage(force)
if(!raised && !raising)
force = force / 8
if(force < 5)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 2f2772774a3..3ab3d0e154b 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -447,7 +447,7 @@
//////// Health related procs ////////
////////////////////////////////////////
-/obj/mecha/proc/take_damage(amount, type="brute")
+/obj/mecha/take_damage(amount, type="brute")
if(amount)
var/damage = absorbDamage(amount,type)
health -= damage
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
new file mode 100644
index 00000000000..c78d8d0e2b4
--- /dev/null
+++ b/code/game/objects/obj_defense.dm
@@ -0,0 +1,57 @@
+
+/obj/proc/take_damage()
+ return
+
+//the sound played when the obj is damaged.
+/obj/proc/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
+ switch(damage_type)
+ if(BRUTE)
+ if(damage_amount)
+ playsound(src, 'sound/weapons/smash.ogg', 50, 1)
+ else
+ playsound(src, 'sound/weapons/tap.ogg', 50, 1)
+ if(BURN)
+ playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
+
+/obj/singularity_act()
+ ex_act(1)
+ if(src && !qdeleted(src))
+ qdel(src)
+ return 2
+
+//// FIRE
+
+/obj/fire_act(global_overlay=1)
+ if(!burn_state)
+ burn_state = ON_FIRE
+ fire_master.burning += src
+ burn_world_time = world.time + burntime*rand(10,20)
+ if(global_overlay)
+ overlays += fire_overlay
+ return 1
+
+/obj/proc/burn()
+ empty_object_contents(1, loc)
+ var/obj/effect/decal/cleanable/ash/A = new(loc)
+ A.desc = "Looks like this used to be a [name] some time ago."
+ fire_master.burning -= src
+ qdel(src)
+
+/obj/proc/extinguish()
+ if(burn_state == ON_FIRE)
+ burn_state = FLAMMABLE
+ overlays -= fire_overlay
+ fire_master.burning -= src
+
+/obj/proc/tesla_act(power)
+ being_shocked = TRUE
+ var/power_bounced = power * 0.5
+ tesla_zap(src, 3, power_bounced)
+ addtimer(src, "reset_shocked", 10)
+
+/obj/proc/reset_shocked()
+ being_shocked = FALSE
+
+//the obj is deconstructed into pieces, whether through careful disassembly or when destroyed.
+/obj/proc/deconstruct(disassembled = TRUE)
+ qdel(src)
\ No newline at end of file
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 60f9538fde0..0ff6691c51e 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -9,7 +9,7 @@
var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/sharp = 0 // whether this object cuts
var/in_use = 0 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
-
+ var/can_deconstruct = TRUE
var/damtype = "brute"
var/force = 0
@@ -253,12 +253,6 @@ a {
user.set_machine(src)
onclose(user, "mtcomputer")
-/obj/singularity_act()
- ex_act(1.0)
- if(src && isnull(gcDestroyed))
- qdel(src)
- return 2
-
/obj/singularity_pull(S, current_size)
if(anchored)
if(current_size >= STAGE_FIVE)
@@ -269,40 +263,9 @@ a {
/obj/proc/container_resist(var/mob/living)
return
-/obj/proc/tesla_act(var/power)
- being_shocked = 1
- var/power_bounced = power * 0.5
- tesla_zap(src, 3, power_bounced)
- addtimer(src, "reset_shocked", 10)
-
-/obj/proc/reset_shocked()
- being_shocked = 0
-
/obj/proc/CanAStarPass()
. = !density
-/obj/fire_act(global_overlay=1)
- if(!burn_state)
- burn_state = ON_FIRE
- fire_master.burning += src
- burn_world_time = world.time + burntime*rand(10,20)
- if(global_overlay)
- overlays += fire_overlay
- return 1
-
-/obj/proc/burn()
- empty_object_contents(1, loc)
- var/obj/effect/decal/cleanable/ash/A = new(loc)
- A.desc = "Looks like this used to be a [name] some time ago."
- fire_master.burning -= src
- qdel(src)
-
-/obj/proc/extinguish()
- if(burn_state == ON_FIRE)
- burn_state = FLAMMABLE
- overlays -= fire_overlay
- fire_master.burning -= src
-
/obj/proc/empty_object_contents(burn = 0, new_loc = loc)
for(var/obj/item/Item in contents) //Empty out the contents
Item.forceMove(new_loc)
diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm
index 0fbc7b97879..d80f7bc8afd 100644
--- a/code/game/objects/structures/curtains.dm
+++ b/code/game/objects/structures/curtains.dm
@@ -67,7 +67,7 @@
else
. = ..()
-/obj/structure/curtain/proc/deconstruct(disassembled = TRUE)
+/obj/structure/curtain/deconstruct(disassembled = TRUE)
new /obj/item/stack/sheet/cloth(loc, 2)
new /obj/item/stack/sheet/plastic(loc, 2)
new /obj/item/stack/rods(loc, 1)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index c8877b320ff..42f6a20e261 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -9,7 +9,6 @@
var/health = 200
var/can_displace = TRUE //If the girder can be moved around by crowbarring it
var/metalUsed = 2 //used to determine amount returned in deconstruction
- var/can_deconstruct = TRUE
/obj/structure/girder/examine(mob/user)
. = ..()
@@ -42,7 +41,7 @@
take_damage(rand(25, 75))
return
-/obj/structure/girder/proc/take_damage(amount)
+/obj/structure/girder/take_damage(amount)
health -= amount
if(health <= 0)
new /obj/item/stack/sheet/metal(get_turf(src))
@@ -369,7 +368,7 @@
var/atom/movable/mover = caller
. = . || mover.checkpass(PASSGRILLE)
-/obj/structure/girder/proc/deconstruct(disassembled = TRUE)
+/obj/structure/girder/deconstruct(disassembled = TRUE)
if(can_deconstruct)
var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal)
new remains(loc)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 36215a850c5..f3a025b9fd9 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -11,7 +11,6 @@
level = 3
var/health = 10
var/broken = 0
- var/can_deconstruct = TRUE
var/rods_type = /obj/item/stack/rods
var/rods_amount = 2
var/rods_broken = 1
@@ -243,13 +242,24 @@
visible_message("[user] has hit [src] with [I]!")
take_damage(I.force * 0.3, I.damtype)
-/obj/structure/grille/proc/deconstruct(disassembled = TRUE)
+/obj/structure/grille/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
+ switch(damage_type)
+ if(BRUTE)
+ if(damage_amount)
+ playsound(src, 'sound/effects/grillehit.ogg', 80, 1)
+ else
+ playsound(src, 'sound/weapons/tap.ogg', 50, 1)
+ if(BURN)
+ playsound(src, 'sound/items/welder.ogg', 80, 1)
+
+/obj/structure/grille/deconstruct(disassembled = TRUE)
if(!loc) //if already qdel'd somehow, we do nothing
return
if(can_deconstruct)
var/obj/R = new rods_type(loc, rods_amount)
transfer_fingerprints_to(R)
qdel(src)
+ ..()
/obj/structure/grille/proc/obj_break()
if(!broken && can_deconstruct)
@@ -258,20 +268,10 @@
transfer_fingerprints_to(R)
qdel(src)
-/obj/structure/grille/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1)
- switch(damage_type)
- if(BURN)
- if(sound_effect)
- playsound(loc, 'sound/items/welder.ogg', 80, 1)
- if(BRUTE)
- if(sound_effect)
- if(damage)
- playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
- else
- playsound(loc, 'sound/weapons/tap.ogg', 50, 1)
- else
- return
- health -= damage
+/obj/structure/grille/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
+ if(sound_effect)
+ play_attack_sound(damage_amount, damage_type, damage_flag)
+ health -= damage_amount
if(health <= 0)
if(!broken)
obj_break()
diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm
index 0dad11674b5..66680ecc8f5 100644
--- a/code/game/objects/structures/mineral_doors.dm
+++ b/code/game/objects/structures/mineral_doors.dm
@@ -54,7 +54,7 @@
/obj/structure/mineral_door/attack_animal(mob/user)
return TryToSwitchState(user)
-
+
/obj/structure/mineral_door/attack_ghost(mob/user)
if(user.can_advanced_admin_interact())
SwitchState()
@@ -68,11 +68,11 @@
return !density
/obj/structure/mineral_door/proc/TryToSwitchState(atom/user)
- if(isSwitchingStates)
+ if(isSwitchingStates)
return
if(isliving(user))
var/mob/living/M = user
- if(world.time - user.last_bumped <= 60)
+ if(world.time - user.last_bumped <= 60)
return //NOTE do we really need that?
if(M.client)
if(iscarbon(M))
@@ -101,7 +101,7 @@
air_update_turf(1)
update_icon()
isSwitchingStates = 0
-
+
if(close_delay != -1)
spawn(close_delay)
Close()
@@ -157,7 +157,7 @@
if(hardness <= 0)
deconstruct(FALSE)
-/obj/structure/mineral_door/proc/deconstruct(disassembled = TRUE)
+/obj/structure/mineral_door/deconstruct(disassembled = TRUE)
var/turf/T = get_turf(src)
if(sheetType)
if(disassembled)
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
new file mode 100644
index 00000000000..d9eff5b9ea3
--- /dev/null
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -0,0 +1,135 @@
+/obj/structure/plasticflaps
+ name = "plastic flaps"
+ desc = "Completely impassable - or are they?"
+ icon = 'icons/obj/stationobjs.dmi'
+ icon_state = "plasticflaps"
+ density = 0
+ anchored = 1
+ layer = 4
+ var/list/mobs_can_pass = list(
+ /mob/living/carbon/slime,
+ /mob/living/simple_animal/mouse,
+ /mob/living/silicon/robot/drone,
+ /mob/living/simple_animal/bot/mulebot
+ )
+ var/state = PLASTIC_FLAPS_NORMAL
+
+/obj/structure/plasticflaps/examine(mob/user)
+ . = ..()
+ switch(state)
+ if(PLASTIC_FLAPS_NORMAL)
+ to_chat(user, "[src] are screwed to the floor.")
+ if(PLASTIC_FLAPS_DETACHED)
+ to_chat(user, "[src] are no longer screwed to the floor, and the flaps can be sliced apart.")
+
+/obj/structure/plasticflaps/attackby(obj/item/W, mob/user, params)
+ add_fingerprint(user)
+ if(isscrewdriver(W))
+ if(state == PLASTIC_FLAPS_NORMAL)
+ playsound(loc, W.usesound, 100, 1)
+ user.visible_message("[user] unscrews [src] from the floor.", "You start to unscrew [src] from the floor...", "You hear rustling noises.")
+ if(do_after(user, 180*W.toolspeed, target = src))
+ if(state != PLASTIC_FLAPS_NORMAL)
+ return
+ state = PLASTIC_FLAPS_DETACHED
+ anchored = FALSE
+ to_chat(user, "You unscrew [src] from the floor.")
+ else if(state == PLASTIC_FLAPS_DETACHED)
+ playsound(loc, W.usesound, 100, 1)
+ user.visible_message("[user] screws [src] to the floor.", "You start to screw [src] to the floor...", "You hear rustling noises.")
+ if(do_after(user, 40*W.toolspeed, target = src))
+ if(state != PLASTIC_FLAPS_DETACHED)
+ return
+ state = PLASTIC_FLAPS_NORMAL
+ anchored = TRUE
+ to_chat(user, "You screw [src] to the floor.")
+ else if(iswelder(W))
+ if(state == PLASTIC_FLAPS_DETACHED)
+ var/obj/item/weapon/weldingtool/WT = W
+ if(!WT.remove_fuel(0, user))
+ return
+ playsound(loc, WT.usesound, 100, 1)
+ user.visible_message("[user] slices apart [src].", "You start to slice apart [src].", "You hear welding.")
+ if(do_after(user, 120*WT.toolspeed, target = src))
+ if(state != PLASTIC_FLAPS_DETACHED)
+ return
+ to_chat(user, "You slice apart [src].")
+ var/obj/item/stack/sheet/plastic/five/P = new(loc)
+ P.add_fingerprint(user)
+ qdel(src)
+ else
+ . = ..()
+
+/obj/structure/plasticflaps/CanPass(atom/A, turf/T)
+ if(istype(A) && A.checkpass(PASSGLASS))
+ return prob(60)
+
+ var/obj/structure/stool/bed/B = A
+ if(istype(A, /obj/structure/stool/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
+ return 0
+
+ if(istype(A, /obj/structure/closet/cardboard))
+ var/obj/structure/closet/cardboard/C = A
+ if(C.move_delay)
+ return 0
+
+ if(istype(A, /obj/vehicle)) //no vehicles
+ return 0
+
+ var/mob/living/M = A
+ if(istype(M))
+ if(M.lying)
+ return ..()
+ for(var/mob_type in mobs_can_pass)
+ if(istype(A, mob_type))
+ return ..()
+ if(istype(A, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ if(H.species.is_small)
+ return ..()
+ return 0
+
+ return ..()
+
+
+/obj/structure/plasticflaps/CanAStarPass(ID, to_dir, caller)
+ if(istype(caller, /mob/living))
+ for(var/mob_type in mobs_can_pass)
+ if(istype(caller, mob_type))
+ return 1
+
+ var/mob/living/M = caller
+ if(!M.ventcrawler && M.mob_size > MOB_SIZE_SMALL)
+ return 0
+ return 1
+
+/obj/structure/plasticflaps/ex_act(severity)
+ switch(severity)
+ if(1)
+ qdel(src)
+ if(2)
+ if(prob(50))
+ qdel(src)
+ if(3)
+ if(prob(5))
+ qdel(src)
+
+/obj/structure/plasticflaps/deconstruct(disassembled = TRUE)
+ if(can_deconstruct)
+ new /obj/item/stack/sheet/plastic/five(loc)
+ qdel(src)
+
+/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates
+ name = "airtight plastic flaps"
+ desc = "Heavy duty, airtight, plastic flaps."
+
+/obj/structure/plasticflaps/mining/initialize()
+ air_update_turf(1)
+ ..()
+
+/obj/structure/plasticflaps/mining/Destroy()
+ air_update_turf(1)
+ return ..()
+
+/obj/structure/plasticflaps/mining/CanAtmosPass(turf/T)
+ return 0
\ No newline at end of file
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index bac0df5b7f4..80d575b9d1f 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -495,7 +495,7 @@
var/buildstacktype = /obj/item/stack/sheet/metal
var/buildstackamount = 5
-/obj/structure/fans/proc/deconstruct()
+/obj/structure/fans/deconstruct()
if(buildstacktype)
new buildstacktype(loc, buildstackamount)
qdel(src)
diff --git a/code/modules/modular_computers/computers/item/computer_damage.dm b/code/modules/modular_computers/computers/item/computer_damage.dm
index 689e8c99ab7..2623794fa9d 100644
--- a/code/modules/modular_computers/computers/item/computer_damage.dm
+++ b/code/modules/modular_computers/computers/item/computer_damage.dm
@@ -24,7 +24,7 @@
if(prob(75))
take_damage(obj_integrity, BRUTE)
-/obj/item/device/modular_computer/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
+/obj/item/device/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
. = ..()
var/component_probability = min(50, max(damage_amount*0.1, 1 - obj_integrity/max_integrity))
switch(damage_flag)
diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm
index 4f752fdac10..d810ed623e2 100644
--- a/code/modules/modular_computers/hardware/_hardware.dm
+++ b/code/modules/modular_computers/hardware/_hardware.dm
@@ -77,7 +77,7 @@
return TRUE // Good to go.
// Handles damage checks
-/obj/item/weapon/computer_hardware/proc/take_damage(damage_amount)
+/obj/item/weapon/computer_hardware/take_damage(damage_amount)
obj_integrity = max(obj_integrity - damage_amount, 0)
/obj/item/weapon/computer_hardware/examine(var/mob/user)
diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm
index d24853a7948..4a060385dea 100644
--- a/code/modules/shuttle/supply.dm
+++ b/code/modules/shuttle/supply.dm
@@ -782,143 +782,6 @@
icon_state = "shuttle3"
requires_power = 0
-/obj/structure/plasticflaps
- name = "\improper plastic flaps"
- desc = "Completely impassable - or are they?"
- icon = 'icons/obj/stationobjs.dmi'
- icon_state = "plasticflaps"
- density = 0
- anchored = 1
- layer = 4
- var/list/mobs_can_pass = list(
- /mob/living/carbon/slime,
- /mob/living/simple_animal/mouse,
- /mob/living/silicon/robot/drone,
- /mob/living/simple_animal/bot/mulebot
- )
- var/state = PLASTIC_FLAPS_NORMAL
- var/can_deconstruct = TRUE
-
-/obj/structure/plasticflaps/examine(mob/user)
- . = ..()
- switch(state)
- if(PLASTIC_FLAPS_NORMAL)
- to_chat(user, "[src] are screwed to the floor.")
- if(PLASTIC_FLAPS_DETACHED)
- to_chat(user, "[src] are no longer screwed to the floor, and the flaps can be sliced apart.")
-
-/obj/structure/plasticflaps/attackby(obj/item/W, mob/user, params)
- add_fingerprint(user)
- if(isscrewdriver(W))
- if(state == PLASTIC_FLAPS_NORMAL)
- playsound(loc, W.usesound, 100, 1)
- user.visible_message("[user] unscrews [src] from the floor.", "You start to unscrew [src] from the floor...", "You hear rustling noises.")
- if(do_after(user, 180*W.toolspeed, target = src))
- if(state != PLASTIC_FLAPS_NORMAL)
- return
- state = PLASTIC_FLAPS_DETACHED
- anchored = FALSE
- to_chat(user, "You unscrew [src] from the floor.")
- else if(state == PLASTIC_FLAPS_DETACHED)
- playsound(loc, W.usesound, 100, 1)
- user.visible_message("[user] screws [src] to the floor.", "You start to screw [src] to the floor...", "You hear rustling noises.")
- if(do_after(user, 40*W.toolspeed, target = src))
- if(state != PLASTIC_FLAPS_DETACHED)
- return
- state = PLASTIC_FLAPS_NORMAL
- anchored = TRUE
- to_chat(user, "You screw [src] from the floor.")
- else if(iswelder(W))
- if(state == PLASTIC_FLAPS_DETACHED)
- var/obj/item/weapon/weldingtool/WT = W
- if(!WT.remove_fuel(0, user))
- return
- playsound(loc, WT.usesound, 100, 1)
- user.visible_message("[user] slices apart [src].", "You start to slice apart [src].", "You hear welding.")
- if(do_after(user, 120*WT.toolspeed, target = src))
- if(state != PLASTIC_FLAPS_DETACHED)
- return
- to_chat(user, "You slice apart [src].")
- var/obj/item/stack/sheet/plastic/five/P = new(loc)
- P.add_fingerprint(user)
- qdel(src)
- else
- . = ..()
-
-/obj/structure/plasticflaps/CanPass(atom/A, turf/T)
- if(istype(A) && A.checkpass(PASSGLASS))
- return prob(60)
-
- var/obj/structure/stool/bed/B = A
- if(istype(A, /obj/structure/stool/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
- return 0
-
- if(istype(A, /obj/structure/closet/cardboard))
- var/obj/structure/closet/cardboard/C = A
- if(C.move_delay)
- return 0
-
- if(istype(A, /obj/vehicle)) //no vehicles
- return 0
-
- var/mob/living/M = A
- if(istype(M))
- if(M.lying)
- return ..()
- for(var/mob_type in mobs_can_pass)
- if(istype(A, mob_type))
- return ..()
- if(istype(A, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(H.species.is_small)
- return ..()
- return 0
-
- return ..()
-
-
-/obj/structure/plasticflaps/CanAStarPass(ID, to_dir, caller)
- if(istype(caller, /mob/living))
- for(var/mob_type in mobs_can_pass)
- if(istype(caller, mob_type))
- return 1
-
- var/mob/living/M = caller
- if(!M.ventcrawler && M.mob_size > MOB_SIZE_SMALL)
- return 0
- return 1
-
-/obj/structure/plasticflaps/ex_act(severity)
- switch(severity)
- if(1)
- qdel(src)
- if(2)
- if(prob(50))
- qdel(src)
- if(3)
- if(prob(5))
- qdel(src)
-
-/obj/structure/plasticflaps/proc/deconstruct(disassembled = TRUE)
- if(can_deconstruct)
- new /obj/item/stack/sheet/plastic/five(loc)
- qdel(src)
-
-/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates
- name = "\improper Airtight plastic flaps"
- desc = "Heavy duty, airtight, plastic flaps."
-
-/obj/structure/plasticflaps/mining/initialize()
- air_update_turf(1)
- ..()
-
-/obj/structure/plasticflaps/mining/Destroy()
- air_update_turf(1)
- return ..()
-
-/obj/structure/plasticflaps/mining/CanAtmosPass(turf/T)
- return 0
-
#undef ORDER_SCREEN_WIDTH
#undef ORDER_SCREEN_HEIGHT
#undef SUPPLY_SCREEN_WIDTH
diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm
index f43438417d5..85bd1782024 100644
--- a/code/modules/surgery/organs/organ.dm
+++ b/code/modules/surgery/organs/organ.dm
@@ -219,7 +219,7 @@
W.time_inflicted = world.time
//Note: external organs have their own version of this proc
-/obj/item/organ/proc/take_damage(amount, silent = 0)
+/obj/item/organ/take_damage(amount, silent = 0)
if(tough)
return
if(status & ORGAN_ROBOT)
diff --git a/paradise.dme b/paradise.dme
index 334e5326f2d..4cf60716903 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -682,6 +682,7 @@
#include "code\game\objects\empulse.dm"
#include "code\game\objects\explosion.dm"
#include "code\game\objects\items.dm"
+#include "code\game\objects\obj_defense.dm"
#include "code\game\objects\objs.dm"
#include "code\game\objects\structures.dm"
#include "code\game\objects\weapons.dm"
@@ -949,6 +950,7 @@
#include "code\game\objects\structures\morgue.dm"
#include "code\game\objects\structures\musician.dm"
#include "code\game\objects\structures\noticeboard.dm"
+#include "code\game\objects\structures\plasticflaps.dm"
#include "code\game\objects\structures\safe.dm"
#include "code\game\objects\structures\signs.dm"
#include "code\game\objects\structures\spirit_board.dm"