Files
Yogstation/code/game/turfs/simulated/wall/mineral_walls.dm
tattax c278cf30cf moves atom/target in do_after() forward (#14161)
* wowzers

* s2

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>

* s3

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>

Co-authored-by: Maxim Nikitin <mnmaxim@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
2022-05-30 21:25:59 +01:00

302 lines
10 KiB
Plaintext

/turf/closed/wall/mineral
name = "mineral wall"
desc = "This shouldn't exist"
icon_state = ""
var/last_event = 0
var/active = null
canSmoothWith = null
smooth = SMOOTH_TRUE
/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"
sheet_type = /obj/item/stack/sheet/mineral/gold
explosion_block = 0 //gold is a soft metal you dingus.
canSmoothWith = list(/turf/closed/wall/mineral/gold, /obj/structure/falsewall/gold)
/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"
sheet_type = /obj/item/stack/sheet/mineral/silver
canSmoothWith = list(/turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver)
/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"
sheet_type = /obj/item/stack/sheet/mineral/diamond
slicing_duration = 400 //diamond wall takes twice as much time to slice
explosion_block = 3
canSmoothWith = list(/turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond)
/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"
sheet_type = /obj/item/stack/sheet/mineral/bananium
canSmoothWith = list(/turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium)
/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"
sheet_type = /obj/item/stack/sheet/mineral/sandstone
explosion_block = 0
canSmoothWith = list(/turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone)
/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"
sheet_type = /obj/item/stack/sheet/mineral/uranium
canSmoothWith = list(/turf/closed/wall/mineral/uranium, /obj/structure/falsewall/uranium)
/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"
sheet_type = /obj/item/stack/sheet/mineral/plasma
thermal_conductivity = 0.04
canSmoothWith = list(/turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma)
/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/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/beam))
PlasmaBurn(2500)
else if(istype(Proj, /obj/item/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"
sheet_type = /obj/item/stack/sheet/mineral/wood
hardness = 70
explosion_block = 0
canSmoothWith = list(/turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood/nonmetal)
/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/twohanded/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
canSmoothWith = list(/turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood, /turf/closed/wall/mineral/wood/nonmetal)
/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"
sheet_type = /obj/item/stack/rods
sheet_amount = 5
canSmoothWith = list(/turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron)
/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"
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"
smooth = SMOOTH_TRUE|SMOOTH_DIAGONAL
sheet_type = /obj/item/stack/sheet/mineral/abductor
slicing_duration = 400 //alien wall takes twice as much time to slice
explosion_block = 3
canSmoothWith = list(/turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor)
/////////////////////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 = "map-shuttle"
explosion_block = 3
flags_1 = CAN_BE_DIRTY_1 | CHECK_RICOCHET_1
sheet_type = /obj/item/stack/sheet/mineral/titanium
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater, /obj/structure/falsewall/titanium)
/turf/closed/wall/mineral/titanium/nodiagonal
smooth = SMOOTH_MORE
icon_state = "map-shuttle_nd"
/turf/closed/wall/mineral/titanium/nosmooth
icon = 'icons/turf/shuttle.dmi'
icon_state = "wall"
smooth = SMOOTH_FALSE
/turf/closed/wall/mineral/titanium/overspace
icon_state = "map-overspace"
fixed_underlay = list("space"=1)
//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)
if(T.type != type)
T.ChangeTurf(type)
if(underlays.len)
T.underlays = underlays
if(T.icon_state != icon_state)
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
if(color)
T.atom_colours = atom_colours.Copy()
T.update_atom_colour()
if(T.dir != dir)
T.setDir(dir)
T.transform = transform
return T
/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 = "smooth"
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/shuttle, /obj/structure/shuttle/engine)
/turf/closed/wall/mineral/titanium/survival/nodiagonal
smooth = SMOOTH_MORE
/turf/closed/wall/mineral/titanium/survival/pod
canSmoothWith = list(/turf/closed/wall/mineral/titanium/survival, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_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 = "map-shuttle"
explosion_block = 4
sheet_type = /obj/item/stack/sheet/mineral/plastitanium
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
canSmoothWith = list(/turf/closed/wall/mineral/plastitanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/plastitanium, /obj/structure/shuttle/engine, /obj/structure/falsewall/plastitanium)
/turf/closed/wall/mineral/plastitanium/nodiagonal
smooth = SMOOTH_MORE
icon_state = "map-shuttle_nd"
/turf/closed/wall/mineral/plastitanium/nosmooth
icon = 'icons/turf/shuttle.dmi'
icon_state = "wall"
smooth = SMOOTH_FALSE
/turf/closed/wall/mineral/plastitanium/overspace
icon_state = "map-overspace"
fixed_underlay = list("space"=1)
/turf/closed/wall/mineral/plastitanium/explosive/ex_act(severity)
var/obj/item/bombcore/large/bombcore = new(get_turf(src))
bombcore.detonate()
..()
//have to copypaste this code
/turf/closed/wall/mineral/plastitanium/interior/copyTurf(turf/T)
if(T.type != type)
T.ChangeTurf(type)
if(underlays.len)
T.underlays = underlays
if(T.icon_state != icon_state)
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
if(color)
T.atom_colours = atom_colours.Copy()
T.update_atom_colour()
if(T.dir != dir)
T.setDir(dir)
T.transform = transform
return T
/turf/closed/wall/mineral/plastitanium/copyTurf(turf/T)
. = ..()
T.transform = transform