mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-31 04:31:41 +00:00
Fixed an error in door_assembly.dm regarding glass doors not getting sprites. Cleaned up astroid floor code. -Bombing astroid floors (sand) will now 'dig' up sand. TK users no longer get shocked while bashing grilles using TK. - Range check on grille shocking. Fixes Issue 419. Added to the lighting checks for Plantmen. They should no longer starve on the shuttle. Fixes Issue 471. Bombs now affect people inside lockers. Fixes issue 208. - Modified Sieve's original change so that the contents of the locker get severity+1. Meaning a weaker severity meaning the locker offers some protection. Vending machines and mass driver buttons now leave fingerprints. Fixing issue 542. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3800 316c924e-a436-60f5-8080-3fe189b3f50e
492 lines
17 KiB
Plaintext
492 lines
17 KiB
Plaintext
obj/structure/door_assembly
|
|
icon = 'door_assembly.dmi'
|
|
|
|
name = "Airlock Assembly"
|
|
icon_state = "door_as_0"
|
|
anchored = 0
|
|
density = 1
|
|
var/state = 0
|
|
var/mineral = null
|
|
var/base_icon_state = "door_as_0"
|
|
var/glass_base_icon_state = "door_as_g0"
|
|
var/obj/item/weapon/airlock_electronics/electronics = null
|
|
var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed
|
|
var/glass_type = /obj/machinery/door/airlock/glass
|
|
var/glass = null
|
|
|
|
New()
|
|
base_icon_state = copytext(icon_state,1,lentext(icon_state))
|
|
|
|
door_assembly_0
|
|
name = "Airlock Assembly"
|
|
icon_state = "door_as_1"
|
|
airlock_type = /obj/machinery/door/airlock
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
door_assembly_com
|
|
name = "Command Airlock Assembly"
|
|
icon_state = "door_as_com1"
|
|
glass_base_icon_state = "door_as_gcom"
|
|
glass_type = /obj/machinery/door/airlock/glass_command
|
|
airlock_type = /obj/machinery/door/airlock/command
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_gcom1"
|
|
|
|
door_assembly_sec
|
|
name = "Security Airlock Assembly"
|
|
icon_state = "door_as_sec1"
|
|
glass_base_icon_state = "door_as_gsec"
|
|
glass_type = /obj/machinery/door/airlock/glass_security
|
|
airlock_type = /obj/machinery/door/airlock/security
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_gsec1"
|
|
|
|
door_assembly_eng
|
|
name = "Engineering Airlock Assembly"
|
|
icon_state = "door_as_eng1"
|
|
glass_base_icon_state = "door_as_geng"
|
|
glass_type = /obj/machinery/door/airlock/glass_engineering
|
|
airlock_type = /obj/machinery/door/airlock/engineering
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_geng1"
|
|
|
|
door_assembly_min
|
|
name = "Mining Airlock Assembly"
|
|
icon_state = "door_as_min1"
|
|
glass_base_icon_state = "door_as_gmin"
|
|
glass_type = /obj/machinery/door/airlock/glass_mining
|
|
airlock_type = /obj/machinery/door/airlock/mining
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_gmin1"
|
|
|
|
door_assembly_atmo
|
|
name = "Atmospherics Airlock Assembly"
|
|
icon_state = "door_as_atmo1"
|
|
glass_base_icon_state = "door_as_gatmo"
|
|
glass_type = /obj/machinery/door/airlock/glass_atmos
|
|
airlock_type = /obj/machinery/door/airlock/atmos
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_gatmo1"
|
|
|
|
door_assembly_research
|
|
name = "Research Airlock Assembly"
|
|
icon_state = "door_as_res1"
|
|
glass_base_icon_state = "door_as_gres"
|
|
glass_type = /obj/machinery/door/airlock/glass_research
|
|
airlock_type = /obj/machinery/door/airlock/research
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
glass
|
|
glass = 1
|
|
icon_state = "door_as_gres1"
|
|
|
|
door_assembly_med
|
|
name = "Medical Airlock Assembly"
|
|
icon_state = "door_as_med1"
|
|
airlock_type = /obj/machinery/door/airlock/medical
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
|
|
glass
|
|
mineral = "glass"
|
|
icon_state = "door_as_gmed1"
|
|
|
|
door_assembly_mai
|
|
name = "Maintenance Airlock Assembly"
|
|
icon_state = "door_as_mai1"
|
|
airlock_type = /obj/machinery/door/airlock/maintenance
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
door_assembly_ext
|
|
name = "External Airlock Assembly"
|
|
icon_state = "door_as_ext1"
|
|
airlock_type = /obj/machinery/door/airlock/external
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
door_assembly_fre
|
|
name = "Freezer Airlock Assembly"
|
|
icon_state = "door_as_fre1"
|
|
airlock_type = /obj/machinery/door/airlock/freezer
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
door_assembly_mhatch
|
|
name = "Airtight Maintenance Hatch Assembly"
|
|
icon_state = "door_as_mhatch1"
|
|
airlock_type = /obj/machinery/door/airlock/maintenance_hatch
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
glass = 0
|
|
|
|
door_assembly_glass
|
|
name = "Glass Airlock Assembly"
|
|
icon_state = "door_as_g1"
|
|
airlock_type = /obj/machinery/door/airlock/glass
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "glass"
|
|
|
|
door_assembly_gold
|
|
name = "Gold Airlock Assembly"
|
|
icon_state = "door_as_gold1"
|
|
airlock_type = /obj/machinery/door/airlock/gold
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "gold"
|
|
|
|
door_assembly_silver
|
|
name = "Silver Airlock Assembly"
|
|
icon_state = "door_as_silver1"
|
|
airlock_type = /obj/machinery/door/airlock/silver
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "silver"
|
|
|
|
door_assembly_diamond
|
|
name = "Diamond Airlock Assembly"
|
|
icon_state = "door_as_diamond1"
|
|
airlock_type = /obj/machinery/door/airlock/diamond
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "diamond"
|
|
|
|
door_assembly_uranium
|
|
name = "Uranium Airlock Assembly"
|
|
icon_state = "door_as_uranium1"
|
|
airlock_type = /obj/machinery/door/airlock/uranium
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "uranium"
|
|
|
|
door_assembly_plasma
|
|
name = "Plasma Airlock Assembly"
|
|
icon_state = "door_as_plasma1"
|
|
airlock_type = /obj/machinery/door/airlock/plasma
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "plasma"
|
|
|
|
door_assembly_clown
|
|
name = "Bananium Airlock Assembly"
|
|
desc = "Honk"
|
|
icon_state = "door_as_clown1"
|
|
airlock_type = /obj/machinery/door/airlock/clown
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "clown"
|
|
|
|
door_assembly_sandstone
|
|
name = "Sandstone Airlock Assembly"
|
|
icon_state = "door_as_sandstone1"
|
|
airlock_type = /obj/machinery/door/airlock/sandstone
|
|
anchored = 1
|
|
density = 1
|
|
state = 1
|
|
mineral = "sandstone"
|
|
|
|
/obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob)
|
|
if(istype(W, /obj/item/weapon/weldingtool) && !anchored )
|
|
var/obj/item/weapon/weldingtool/WT = W
|
|
if(WT.remove_fuel(0,user))
|
|
user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.")
|
|
playsound(src.loc, 'Welder2.ogg', 50, 1)
|
|
|
|
if(do_after(user, 40))
|
|
if(!src || !WT.isOn()) return
|
|
user << "\blue You dissasembled the airlock assembly!"
|
|
new /obj/item/stack/sheet/metal(get_turf(src), 4)
|
|
switch(mineral)
|
|
if("glass")
|
|
new /obj/item/stack/sheet/rglass(get_turf(src))
|
|
if("gold")
|
|
new /obj/item/stack/sheet/gold(get_turf(src))
|
|
new /obj/item/stack/sheet/gold(get_turf(src))
|
|
if("silver")
|
|
new /obj/item/stack/sheet/silver(get_turf(src))
|
|
new /obj/item/stack/sheet/silver(get_turf(src))
|
|
if("diamond")
|
|
new /obj/item/stack/sheet/diamond(get_turf(src))
|
|
new /obj/item/stack/sheet/diamond(get_turf(src))
|
|
if("uranium")
|
|
new /obj/item/stack/sheet/uranium(get_turf(src))
|
|
new /obj/item/stack/sheet/uranium(get_turf(src))
|
|
if("plasma")
|
|
new /obj/item/stack/sheet/plasma(get_turf(src))
|
|
new /obj/item/stack/sheet/plasma(get_turf(src))
|
|
if("clown")
|
|
new /obj/item/stack/sheet/clown(get_turf(src))
|
|
new /obj/item/stack/sheet/clown(get_turf(src))
|
|
if("sandstone")
|
|
new /obj/item/stack/sheet/sandstone(get_turf(src))
|
|
new /obj/item/stack/sheet/sandstone(get_turf(src))
|
|
del(src)
|
|
else
|
|
user << "\blue You need more welding fuel to dissassemble the airlock assembly."
|
|
return
|
|
|
|
else if(istype(W, /obj/item/weapon/wrench) && !anchored )
|
|
playsound(src.loc, 'Ratchet.ogg', 100, 1)
|
|
user.visible_message("[user] secures the airlock assembly to the floor.", "You start to secure the airlock assembly to the floor.")
|
|
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You secured the airlock assembly!"
|
|
src.name = "Secured Airlock Assembly"
|
|
src.anchored = 1
|
|
|
|
else if(istype(W, /obj/item/weapon/wrench) && anchored )
|
|
playsound(src.loc, 'Ratchet.ogg', 100, 1)
|
|
user.visible_message("[user] unsecures the airlock assembly from the floor.", "You start to unsecure the airlock assembly from the floor.")
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You unsecured the airlock assembly!"
|
|
src.name = "Airlock Assembly"
|
|
src.anchored = 0
|
|
|
|
else if(istype(W, /obj/item/weapon/cable_coil) && state == 0 && anchored )
|
|
var/obj/item/weapon/cable_coil/coil = W
|
|
user.visible_message("[user] wires the airlock assembly.", "You start to wire the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
coil.use(1)
|
|
src.state = 1
|
|
user << "\blue You wire the Airlock!"
|
|
src.name = "Wired Airlock Assembly"
|
|
|
|
else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 )
|
|
playsound(src.loc, 'Wirecutter.ogg', 100, 1)
|
|
user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.")
|
|
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You cut the airlock wires.!"
|
|
new/obj/item/weapon/cable_coil(get_turf(user), 1)
|
|
src.state = 0
|
|
src.name = "Secured Airlock Assembly"
|
|
|
|
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 )
|
|
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
|
|
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
|
|
user.drop_item()
|
|
W.loc = src
|
|
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You installed the airlock electronics!"
|
|
src.state = 2
|
|
src.name = "Near finished Airlock Assembly"
|
|
src.electronics = W
|
|
else
|
|
W.loc = src.loc
|
|
|
|
//del(W)
|
|
|
|
else if(istype(W, /obj/item/weapon/crowbar) && state == 2 )
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to install electronics into the airlock assembly.")
|
|
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You removed the airlock electronics!"
|
|
src.state = 1
|
|
src.name = "Wired Airlock Assembly"
|
|
var/obj/item/weapon/airlock_electronics/ae
|
|
if (!electronics)
|
|
ae = new/obj/item/weapon/airlock_electronics( src.loc )
|
|
else
|
|
ae = electronics
|
|
electronics = null
|
|
ae.loc = src.loc
|
|
else if(istype(W, /obj/item/stack/sheet) && !mineral)
|
|
var/obj/item/stack/sheet/G = W
|
|
if(G)
|
|
if(G.amount>=1)
|
|
switch(G.type)
|
|
if(/obj/item/stack/sheet/rglass)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed reinforced glass windows into the airlock assembly!"
|
|
G.use(1)
|
|
src.mineral = "glass"
|
|
src.name = "Near finished Window Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/glass
|
|
src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end.
|
|
if(/obj/item/stack/sheet/gold)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed gold plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "gold"
|
|
src.name = "Near finished Gold Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/gold
|
|
src.base_icon_state = "door_as_gold"
|
|
if(/obj/item/stack/sheet/silver)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed silver plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "silver"
|
|
src.name = "Near finished Silver Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/silver
|
|
src.base_icon_state = "door_as_silver"
|
|
if(/obj/item/stack/sheet/diamond)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed diamond plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "diamond"
|
|
src.name = "Near finished Diamond Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/diamond
|
|
src.base_icon_state = "door_as_diamond"
|
|
if(/obj/item/stack/sheet/uranium)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed uranium plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "uranium"
|
|
src.name = "Near finished Uranium Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/uranium
|
|
src.base_icon_state = "door_as_uranium"
|
|
if(/obj/item/stack/sheet/plasma)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed plasma plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "plasma"
|
|
src.name = "Near finished Plasma Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/plasma
|
|
src.base_icon_state = "door_as_plasma"
|
|
if(/obj/item/stack/sheet/clown)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed bananium plating into the airlock assembly!HONK"
|
|
G.use(2)
|
|
playsound(src.loc, 'bikehorn.ogg', 15, 1, -3)
|
|
src.mineral = "clown"
|
|
src.name = "Near finished Bananium Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/clown
|
|
src.base_icon_state = "door_as_clown"
|
|
if(/obj/item/stack/sheet/sandstone)
|
|
if(G.amount>=2)
|
|
playsound(src.loc, 'Crowbar.ogg', 100, 1)
|
|
user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.")
|
|
if(do_after(user, 40))
|
|
user << "\blue You installed sandstone plating into the airlock assembly!"
|
|
G.use(2)
|
|
src.mineral = "sandstone"
|
|
src.name = "Near finished Sandstone Airlock Assembly"
|
|
src.airlock_type = /obj/machinery/door/airlock/sandstone
|
|
src.base_icon_state = "door_as_sandstone"
|
|
|
|
else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 )
|
|
playsound(src.loc, 'Screwdriver.ogg', 100, 1)
|
|
user << "\blue Now finishing the airlock."
|
|
|
|
if(do_after(user, 40))
|
|
if(!src) return
|
|
user << "\blue You finish the airlock!"
|
|
var/obj/machinery/door/airlock/door
|
|
switch(mineral)
|
|
if("glass")
|
|
airlock_type = /obj/machinery/door/airlock/glass
|
|
door = new src.airlock_type( src.loc )
|
|
if("gold")
|
|
airlock_type = /obj/machinery/door/airlock/gold
|
|
door = new src.airlock_type( src.loc )
|
|
if("silver")
|
|
airlock_type = /obj/machinery/door/airlock/silver
|
|
door = new src.airlock_type( src.loc )
|
|
if("diamond")
|
|
airlock_type = /obj/machinery/door/airlock/diamond
|
|
door = new src.airlock_type( src.loc )
|
|
if("uranium")
|
|
airlock_type = /obj/machinery/door/airlock/uranium
|
|
door = new src.airlock_type( src.loc )
|
|
if("plasma")
|
|
airlock_type = /obj/machinery/door/airlock/plasma
|
|
door = new src.airlock_type( src.loc )
|
|
if("clown")
|
|
airlock_type = /obj/machinery/door/airlock/clown
|
|
door = new src.airlock_type( src.loc )
|
|
if("sandstone")
|
|
airlock_type = /obj/machinery/door/airlock/sandstone
|
|
door = new src.airlock_type( src.loc )
|
|
else
|
|
door = new src.airlock_type( src.loc )
|
|
//door.req_access = src.req_access
|
|
door.electronics = src.electronics
|
|
door.req_access = src.electronics.conf_access
|
|
src.electronics.loc = door
|
|
del(src)
|
|
else
|
|
..()
|
|
icon_state = "[base_icon_state][state]"
|
|
//This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example
|
|
//represents what state it's in. So the most generic algorithm for the correct updating of
|
|
//this is simply to change the number. |