-
-
Notifications
You must be signed in to change notification settings - Fork 444
/
Copy pathmineral_walls.dm
329 lines (285 loc) · 11.6 KB
/
mineral_walls.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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
/turf/closed/wall/mineral
name = "mineral wall"
desc = "This shouldn't exist"
icon_state = ""
smoothing_flags = SMOOTH_BITMASK
canSmoothWith = null
var/last_event = 0
var/active = null
/turf/closed/wall/mineral/gold
name = "gold wall"
desc = "A wall with gold plating. Swag!"
icon = 'icons/turf/walls/gold_wall.dmi'
icon_state = "gold_wall-0"
base_icon_state = "gold_wall"
sheet_type = /obj/item/stack/sheet/mineral/gold
explosion_block = 0 //gold is a soft metal you dingus.
smoothing_groups = SMOOTH_GROUP_GOLD_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_GOLD_WALLS
/turf/closed/wall/mineral/silver
name = "silver wall"
desc = "A wall with silver plating. Shiny!"
icon = 'icons/turf/walls/silver_wall.dmi'
icon_state = "silver_wall-0"
base_icon_state = "silver_wall"
sheet_type = /obj/item/stack/sheet/mineral/silver
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_SILVER_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_SILVER_WALLS
/turf/closed/wall/mineral/diamond
name = "diamond wall"
desc = "A wall with diamond plating. You monster."
icon = 'icons/turf/walls/diamond_wall.dmi'
icon_state = "diamond_wall-0"
base_icon_state = "diamond_wall"
sheet_type = /obj/item/stack/sheet/mineral/diamond
slicing_duration = 400 //diamond wall takes twice as much time to slice
explosion_block = 3
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_DIAMOND_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_DIAMOND_WALLS
/turf/closed/wall/mineral/bananium
name = "bananium wall"
desc = "A wall with bananium plating. Honk!"
icon = 'icons/turf/walls/bananium_wall.dmi'
icon_state = "bananium_wall-0"
base_icon_state = "bananium_wall"
sheet_type = /obj/item/stack/sheet/mineral/bananium
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_BANANIUM_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_BANANIUM_WALLS
/turf/closed/wall/mineral/bananium/honk_act()
return FALSE
/turf/closed/wall/mineral/sandstone
name = "sandstone wall"
desc = "A wall with sandstone plating. Rough."
icon = 'icons/turf/walls/sandstone_wall.dmi'
icon_state = "sandstone_wall-0"
base_icon_state = "sandstone_wall"
sheet_type = /obj/item/stack/sheet/mineral/sandstone
explosion_block = 0
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_SANDSTONE_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_SANDSTONE_WALLS
/turf/closed/wall/mineral/uranium
article = "a"
name = "uranium wall"
desc = "A wall with uranium plating. This is probably a bad idea."
icon = 'icons/turf/walls/uranium_wall.dmi'
icon_state = "uranium_wall-0"
base_icon_state = "uranium_wall"
sheet_type = /obj/item/stack/sheet/mineral/uranium
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_URANIUM_WALLS + SMOOTH_GROUP_WALLS
canSmoothWith = SMOOTH_GROUP_URANIUM_WALLS
/turf/closed/wall/mineral/uranium/proc/radiate()
if(!active)
if(world.time > last_event+15)
active = 1
radiation_pulse(src, 40)
for(var/turf/closed/wall/mineral/uranium/T in orange(1,src))
T.radiate()
last_event = world.time
active = null
return
return
/turf/closed/wall/mineral/uranium/attack_hand(mob/user)
radiate()
. = ..()
/turf/closed/wall/mineral/uranium/attackby(obj/item/W, mob/user, params)
radiate()
..()
/turf/closed/wall/mineral/uranium/Bumped(atom/movable/AM)
radiate()
..()
/turf/closed/wall/mineral/plasma
name = "plasma wall"
desc = "A wall with plasma plating. This is definitely a bad idea."
icon = 'icons/turf/walls/plasma_wall.dmi'
icon_state = "plasma_wall-0"
base_icon_state = "plasma_wall"
sheet_type = /obj/item/stack/sheet/mineral/plasma
thermal_conductivity = 0.04
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_PLASMA_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_PLASMA_WALLS
rad_insulation = RAD_FULL_INSULATION
/turf/closed/wall/mineral/plasma/attackby(obj/item/W, mob/user, params)
if(W.is_hot() > 300)//If the temperature of the object is over 300, then ignite
message_admins("Plasma wall ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(src)]")
log_game("Plasma wall ignited by [key_name(user)] in [AREACOORD(src)]")
ignite(W.is_hot())
return
..()
/turf/closed/wall/mineral/plasma/proc/PlasmaBurn(temperature)
new girder_type(src)
ScrapeAway()
var/turf/open/T = src
T.atmos_spawn_air("plasma=400;TEMP=[temperature]")
/turf/closed/wall/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)//Doesn't fucking work because walls don't interact with air :(
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/closed/wall/mineral/plasma/proc/ignite(exposed_temperature)
if(exposed_temperature > 300)
PlasmaBurn(exposed_temperature)
/turf/closed/wall/mineral/plasma/bullet_act(obj/projectile/Proj)
if(istype(Proj, /obj/projectile/beam))
PlasmaBurn(2500)
else if(istype(Proj, /obj/projectile/ion))
PlasmaBurn(500)
. = ..()
/turf/closed/wall/mineral/wood
name = "wooden wall"
desc = "A wall with wooden plating. Stiff."
icon = 'icons/turf/walls/wood_wall.dmi'
icon_state = "wood_wall-0"
base_icon_state = "wood_wall"
sheet_type = /obj/item/stack/sheet/mineral/wood
hardness = 70
explosion_block = 0
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_WOOD_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_WOOD_WALLS
/turf/closed/wall/mineral/bamboo
name = "bamboo wall"
desc = "A wall with a bamboo finish."
icon = 'icons/turf/walls/bamboo_wall.dmi'
icon_state = "wall-0"
base_icon_state = "bamboo_wall"
sheet_type = /obj/item/stack/sheet/mineral/bamboo
hardness = 60
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_WALLS + SMOOTH_GROUP_BAMBOO_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_BAMBOO_WALLS
/turf/closed/wall/mineral/wood/attackby(obj/item/W, mob/user)
if(W.is_sharp() && W.force)
var/duration = (48/W.force) * 2 //In seconds, for now.
if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/fireaxe))
duration /= 4 //Much better with hatchets and axes.
if(do_after(user, duration*10, src)) //Into deciseconds.
dismantle_wall(FALSE,FALSE)
return
return ..()
/turf/closed/wall/mineral/wood/nonmetal
desc = "A solidly wooden wall. It's a bit weaker than a wall made with metal."
girder_type = /obj/structure/barricade/wooden
hardness = 50
/turf/closed/wall/mineral/iron
name = "rough metal wall"
desc = "A wall with rough metal plating."
icon = 'icons/turf/walls/iron_wall.dmi'
icon_state = "iron_wall-0"
base_icon_state = "iron_wall"
sheet_type = /obj/item/stack/rods
sheet_amount = 5
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = SMOOTH_GROUP_IRON_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_IRON_WALLS
/turf/closed/wall/mineral/snow
name = "packed snow wall"
desc = "A wall made of densely packed snow blocks."
icon = 'icons/turf/walls/snow_wall.dmi'
icon_state = "snow_wall-0"
base_icon_state = "snow_wall"
hardness = 80
explosion_block = 0
slicing_duration = 30
sheet_type = /obj/item/stack/sheet/mineral/snow
canSmoothWith = null
girder_type = null
bullet_sizzle = TRUE
bullet_bounce_sound = null
/turf/closed/wall/mineral/abductor
name = "alien wall"
desc = "A wall with alien alloy plating."
icon = 'icons/turf/walls/abductor_wall.dmi'
icon_state = "abductor_wall-0"
base_icon_state = "abductor_wall"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
smoothing_groups = SMOOTH_GROUP_ABDUCTOR_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_ABDUCTOR_WALLS
sheet_type = /obj/item/stack/sheet/mineral/abductor
slicing_duration = 400 //alien wall takes twice as much time to slice
explosion_block = 3
/////////////////////Titanium walls/////////////////////
/turf/closed/wall/mineral/titanium //has to use this path due to how building walls works
name = "wall"
desc = "A light-weight titanium wall used in shuttles."
icon = 'icons/turf/walls/shuttle_wall.dmi'
icon_state = "shuttle_wall-0"
base_icon_state = "shuttle_wall"
explosion_block = 3
flags_1 = CAN_BE_DIRTY_1 | CHECK_RICOCHET_1
sheet_type = /obj/item/stack/sheet/mineral/titanium
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
smoothing_groups = SMOOTH_GROUP_TITANIUM_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_TITANIUM_WALLS
/turf/closed/wall/mineral/titanium/rust_heretic_act()
return // titanium does not rust
/turf/closed/wall/mineral/titanium/nodiagonal
icon_state = "map-shuttle_nd"
base_icon_state = "shuttle_wall"
smoothing_flags = SMOOTH_BITMASK
/turf/closed/wall/mineral/titanium/nosmooth
icon = 'icons/turf/shuttle.dmi'
icon_state = "wall"
smoothing_flags = NONE
/turf/closed/wall/mineral/titanium/overspace
icon_state = "map-overspace"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
fixed_underlay = list("space" = TRUE)
//sub-type to be used for interior shuttle walls
//won't get an underlay of the destination turf on shuttle move
/turf/closed/wall/mineral/titanium/interior/copyTurf(turf/T)
. = ..()
T.transform = transform
/turf/closed/wall/mineral/titanium/copyTurf(turf/T)
. = ..()
T.transform = transform
/turf/closed/wall/mineral/titanium/survival
name = "pod wall"
desc = "An easily-compressable wall used for temporary shelter."
icon = 'icons/turf/walls/survival_pod_walls.dmi'
icon_state = "survival_pod_walls-0"
base_icon_state = "survival_pod_walls"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_WINDOW_FULLTILE + SMOOTH_GROUP_TITANIUM_WALLS
/turf/closed/wall/mineral/titanium/survival/nodiagonal
smoothing_flags = SMOOTH_BITMASK
/turf/closed/wall/mineral/titanium/survival/pod
smoothing_groups = SMOOTH_GROUP_SURVIVAL_TITANIUM_POD + SMOOTH_GROUP_TITANIUM_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_SURVIVAL_TITANIUM_POD
/////////////////////Plastitanium walls/////////////////////
/turf/closed/wall/mineral/plastitanium
name = "wall"
desc = "A durable wall made of an alloy of plasma and titanium."
icon = 'icons/turf/walls/plastitanium_wall.dmi'
icon_state = "plastitanium_wall-0"
base_icon_state = "plastitanium_wall"
explosion_block = 4
sheet_type = /obj/item/stack/sheet/mineral/plastitanium
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
smoothing_groups = SMOOTH_GROUP_PLASTITANIUM_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_PLASTITANIUM_WALLS + SMOOTH_GROUP_SYNDICATE_WALLS
rad_insulation = RAD_FULL_INSULATION
/turf/closed/wall/mineral/plastitanium/rust_heretic_act()
return // plastitanium does not rust
/turf/closed/wall/mineral/plastitanium/nodiagonal
icon_state = "map-shuttle_nd"
base_icon_state = "plastitanium_wall"
smoothing_flags = SMOOTH_BITMASK
/turf/closed/wall/mineral/plastitanium/nosmooth
icon = 'icons/turf/shuttle.dmi'
icon_state = "wall"
smoothing_flags = NONE
/turf/closed/wall/mineral/plastitanium/overspace
icon_state = "map-overspace"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
fixed_underlay = list("space" = TRUE)
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity)
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
bombcore.detonate()
..()
/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T)
. = ..()
T.transform = transform