Files
Haha26315 52cce9fbce Constructing Railings
Allow players to construct railings of their very own, unfasten them from the flooring, deconstruct them including with RCDs, and all the good stuff from grilles, like electrification. Also solves the bug whereby you could climb over railings into solid tiles.
2022-09-07 23:36:07 -04:00

93 lines
3.2 KiB
Plaintext

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_list("railings", \
list( \
new/datum/stack_recipe("railing", /obj/structure/railing/unachored, 1, time = 10, one_per_turf = 0, on_floor = 1, window_checks = 1), \
new/datum/stack_recipe("handrail", /obj/structure/railing/handrail/unachored, 1, time = 10, one_per_turf = 0, on_floor = 1, window_checks = 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), \
))
/obj/item/stack/rods
name = "metal rod"
desc = "Some rods. Can be used for building or something."
singular_name = "metal rod"
icon_state = "rods"
item_state = "rods"
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_NORMAL
force = 9
throwforce = 10
throw_speed = 3
throw_range = 7
materials = list(MAT_METAL=1000)
max_amount = 50
attack_verb = list("hit", "bludgeoned", "whacked")
hitsound = 'sound/weapons/grenadelaunch.ogg'
novariants = TRUE
/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)
. = ..()
recipes = GLOB.rod_recipes
update_icon()
/obj/item/stack/rods/update_icon()
var/amount = get_amount()
if((amount <= 5) && (amount > 0))
icon_state = "rods-[amount]"
else
icon_state = "rods"
/obj/item/stack/rods/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weldingtool))
if(get_amount() < 2)
to_chat(user, "<span class='warning'>You need at least two rods to do this!</span>")
return
if(W.use_tool(src, user, 0, volume=40))
var/obj/item/stack/sheet/metal/new_item = new(usr.loc)
user.visible_message("[user.name] shaped [src] into metal with [W].", \
"<span class='notice'>You shape [src] into metal with [W].</span>", \
"<span class='italics'>You hear welding.</span>")
var/obj/item/stack/rods/R = src
src = null
var/replace = (user.get_inactive_held_item()==R)
R.use(2)
if (!R && replace)
user.put_in_hands(new_item)
else if(istype(W, /obj/item/reagent_containers/food/snacks))
var/obj/item/reagent_containers/food/snacks/S = W
if(amount != 1)
to_chat(user, "<span class='warning'>You must use a single rod!</span>")
else if(S.w_class > WEIGHT_CLASS_SMALL)
to_chat(user, "<span class='warning'>The ingredient is too big for [src]!</span>")
else
var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/kebab(get_turf(src))
A.initialize_custom_food(src, S, user)
else
return ..()
/obj/item/stack/rods/cyborg
materials = list()
is_cyborg = 1
cost = 250
/obj/item/stack/rods/cyborg/update_icon()
return
/obj/item/stack/rods/ten
amount = 10
/obj/item/stack/rods/twentyfive
amount = 25
/obj/item/stack/rods/fifty
amount = 50