-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
poddoor.dm
136 lines (112 loc) · 4.29 KB
/
poddoor.dm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/obj/machinery/door/poddoor
name = "blast door"
desc = "A heavy duty blast door that opens mechanically."
icon = 'icons/obj/doors/blastdoor.dmi'
icon_state = "closed"
layer = BLASTDOOR_LAYER
closingLayer = CLOSED_BLASTDOOR_LAYER
explosion_block = 3
heat_proof = TRUE
safe = FALSE
max_integrity = 600
armor = list("melee" = 50, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
damage_deflection = 70
var/id_tag = 1.0
var/protected = 1
/obj/machinery/door/poddoor/preopen
icon_state = "open"
density = FALSE
opacity = 0
/obj/machinery/door/poddoor/impassable
name = "reinforced blast door"
desc = "A heavy duty blast door that opens mechanically. Looks even tougher than usual."
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
/obj/machinery/door/poddoor/impassable/emag_act(mob/user)
to_chat(user, "<span class='notice'>The electronic systems in this door are far too advanced for your primitive hacking peripherals.</span>")
return
/obj/machinery/door/poddoor/Bumped(atom/AM)
if(density)
return
else
return 0
//"BLAST" doors are obviously stronger than regular doors when it comes to BLASTS.
/obj/machinery/door/poddoor/ex_act(severity)
if(severity == 3)
return
..()
/obj/machinery/door/poddoor/do_animate(animation)
switch(animation)
if("opening")
flick("opening", src)
playsound(src, 'sound/machines/blastdoor.ogg', 30, 1)
if("closing")
flick("closing", src)
playsound(src, 'sound/machines/blastdoor.ogg', 30, 1)
/obj/machinery/door/poddoor/update_icon()
if(density)
icon_state = "closed"
else
icon_state = "open"
/obj/machinery/door/poddoor/try_to_activate_door(mob/user)
return
/obj/machinery/door/poddoor/try_to_crowbar(obj/item/I, mob/user)
if(!hasPower())
open()
// Whoever wrote the old code for multi-tile spesspod doors needs to burn in hell. - Unknown
// Wise words. - Bxil
/obj/machinery/door/poddoor/multi_tile
name = "large pod door"
layer = CLOSED_DOOR_LAYER
closingLayer = CLOSED_DOOR_LAYER
/obj/machinery/door/poddoor/multi_tile/New()
. = ..()
apply_opacity_to_my_turfs(opacity)
/obj/machinery/door/poddoor/multi_tile/open()
if(..())
apply_opacity_to_my_turfs(opacity)
/obj/machinery/door/poddoor/multi_tile/close()
if(..())
apply_opacity_to_my_turfs(opacity)
/obj/machinery/door/poddoor/multi_tile/Destroy()
apply_opacity_to_my_turfs(0)
return ..()
//Multi-tile poddoors don't turn invisible automatically, so we change the opacity of the turfs below instead one by one.
/obj/machinery/door/poddoor/multi_tile/proc/apply_opacity_to_my_turfs(var/new_opacity)
for(var/turf/T in locs)
T.opacity = new_opacity
T.has_opaque_atom = new_opacity
T.reconsider_lights()
update_freelook_sight()
/obj/machinery/door/poddoor/multi_tile/four_tile_ver
icon = 'icons/obj/doors/1x4blast_vert.dmi'
width = 4
dir = NORTH
/obj/machinery/door/poddoor/multi_tile/three_tile_ver
icon = 'icons/obj/doors/1x3blast_vert.dmi'
width = 3
dir = NORTH
/obj/machinery/door/poddoor/multi_tile/two_tile_ver
icon = 'icons/obj/doors/1x2blast_vert.dmi'
width = 2
dir = NORTH
/obj/machinery/door/poddoor/multi_tile/four_tile_hor
icon = 'icons/obj/doors/1x4blast_hor.dmi'
width = 4
dir = EAST
/obj/machinery/door/poddoor/multi_tile/three_tile_hor
icon = 'icons/obj/doors/1x3blast_hor.dmi'
width = 3
dir = EAST
/obj/machinery/door/poddoor/multi_tile/two_tile_hor
icon = 'icons/obj/doors/1x2blast_hor.dmi'
width = 2
dir = EAST
/obj/machinery/door/poddoor/brass
name = "brass blast door"
desc = "A great brass blast door. It looks like it can withstand a lot of punishment."
icon = 'icons/obj/doors/blastdoor_brass.dmi'
/obj/machinery/door/poddoor/brass/beach_brass_temple/Initialize()
. = ..()
id_tag = pick(list("brassbeachtempledoor1", "brassbeachtempledoor2", "brassbeachtempledoor3", "brassbeachtempledoor4", "brassbeachtempledoor5", "brassbeachtempledoor6", "brassbeachtempledoor7", "brassbeachtempledoor8",
"brassbeachtempledoor9", "brassbeachtempledoor10", "brassbeachtempledoor11", "brassbeachtempledoor12", "brassbeachtempledoor13", "brassbeachtempledoor14", "brassbeachtempledoor15", "brassbeachtempledoor16"))