Ported Map; Lambda Station

This commit is contained in:
QuoteFox
2021-03-25 12:06:32 +00:00
parent e698a8a30c
commit a1644811ac
13 changed files with 136493 additions and 6 deletions
@@ -36,4 +36,203 @@
/obj/effect/turf_decal/tile/neutral
name = "neutral corner"
color = "#D4D4D4"
alpha = 50
alpha = 50
/obj/effect/turf_decal/trimline
layer = TURF_PLATING_DECAL_LAYER
alpha = 110
icon_state = "trimline_box"
/obj/effect/turf_decal/trimline/white
color = "#FFFFFF"
/obj/effect/turf_decal/trimline/white/line
name = "trim decal"
icon_state = "trimline"
/obj/effect/turf_decal/trimline/white/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/white/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/white/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/white/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/white/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/white/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/red
color = "#DE3A3A"
/obj/effect/turf_decal/trimline/red/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/red/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/red/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/red/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/red/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/red/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/red/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/green
color = "#9FED58"
/obj/effect/turf_decal/trimline/green/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/green/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/green/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/green/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/green/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/green/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/green/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/blue
color = "#52B4E9"
/obj/effect/turf_decal/trimline/blue/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/blue/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/blue/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/blue/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/blue/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/blue/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/blue/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/yellow
color = "#EFB341"
/obj/effect/turf_decal/trimline/yellow/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/yellow/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/yellow/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/yellow/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/yellow/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/yellow/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/yellow/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/purple
color = "#D381C9"
/obj/effect/turf_decal/trimline/purple/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/purple/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/purple/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/purple/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/purple/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/purple/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/purple/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/brown
color = "#A46106"
/obj/effect/turf_decal/trimline/brown/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/brown/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/brown/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/brown/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/brown/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/brown/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/brown/filled/end
icon_state = "trimline_end_fill"
/obj/effect/turf_decal/trimline/neutral
color = "#D4D4D4"
alpha = 50
/obj/effect/turf_decal/trimline/neutral/line
icon_state = "trimline"
/obj/effect/turf_decal/trimline/neutral/corner
icon_state = "trimline_corner"
/obj/effect/turf_decal/trimline/neutral/end
icon_state = "trimline_end"
/obj/effect/turf_decal/trimline/neutral/filled
icon_state = "trimline_box_fill"
/obj/effect/turf_decal/trimline/neutral/filled/line
icon_state = "trimline_fill"
/obj/effect/turf_decal/trimline/neutral/filled/corner
icon_state = "trimline_corner_fill"
/obj/effect/turf_decal/trimline/neutral/filled/end
icon_state = "trimline_end_fill"
+2 -1
View File
@@ -2,6 +2,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("table frame", /obj/structure/table_frame, 2, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("scooter frame", /obj/item/scooter_frame, 10, time = 25, one_per_turf = 0), \
new/datum/stack_recipe("railing", /obj/structure/railing, 3, time = 18, window_checks = TRUE), \
))
/obj/item/stack/rods
@@ -25,7 +26,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
/obj/item/stack/rods/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins to stuff \the [src] down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide!</span>")//it looks like theyre ur mum
return BRUTELOSS
/obj/item/stack/rods/Initialize(mapload, new_amount, merge = TRUE)
. = ..()
+101
View File
@@ -0,0 +1,101 @@
/obj/structure/railing
name = "railing"
desc = "Basic railing meant to protect idiots like you from falling."
icon = 'icons/obj/fluff.dmi'
icon_state = "railing"
density = TRUE
anchored = TRUE
climbable = TRUE
///Initial direction of the railing.
var/ini_dir
/obj/structure/railing/corner //aesthetic corner sharp edges hurt oof ouch
icon_state = "railing_corner"
density = FALSE
climbable = FALSE
/obj/structure/railing/ComponentInitialize()
. = ..()
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation))
/obj/structure/railing/Initialize()
. = ..()
ini_dir = dir
/obj/structure/railing/attackby(obj/item/I, mob/living/user, params)
..()
add_fingerprint(user)
if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP)
if(obj_integrity < max_integrity)
if(!I.tool_start_check(user, amount=0))
return
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
if(I.use_tool(src, user, 40, volume=50))
obj_integrity = max_integrity
to_chat(user, "<span class='notice'>You repair [src].</span>")
else
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
return
/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I)
. = ..()
if(!anchored)
to_chat(user, "<span class='warning'>You cut apart the railing.</span>")
I.play_tool_sound(src, 100)
deconstruct()
return TRUE
/obj/structure/railing/deconstruct(disassembled)
. = ..()
if(!loc) //quick check if it's qdeleted already.
return
if(!(flags_1 & NODECONSTRUCT_1))
var/obj/item/stack/rods/rod = new /obj/item/stack/rods(drop_location(), 3)
transfer_fingerprints_to(rod)
qdel(src)
///Implements behaviour that makes it possible to unanchor the railing.
/obj/structure/railing/wrench_act(mob/living/user, obj/item/I)
. = ..()
if(flags_1&NODECONSTRUCT_1)
return
to_chat(user, "<span class='notice'>You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...</span>")
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.</span>")
return TRUE
/obj/structure/railing/CanPass(atom/movable/mover, turf/target)
. = ..()
return TRUE
/obj/structure/railing/corner/CanPass()
..()
return TRUE
/obj/structure/railing/CheckExit(atom/movable/mover, turf/target)
..()
return TRUE
/obj/structure/railing/corner/CheckExit()
return TRUE
/obj/structure/railing/proc/can_be_rotated(mob/user,rotation_type)
if(anchored)
to_chat(user, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
return FALSE
var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90)
if(!valid_window_location(loc, target_dir)) //Expanded to include rails, as well!
to_chat(user, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
return FALSE
return TRUE
/obj/structure/railing/proc/check_anchored(checked_anchored)
if(anchored == checked_anchored)
return TRUE
/obj/structure/railing/proc/after_rotation(mob/user,rotation_type)
air_update_turf(1)
ini_dir = dir
add_fingerprint(user)