mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Adds cardboard cutouts
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
//Cardboard cutouts! They're man-shaped and can be colored with a crayon to look like a human in a certain outfit, although it's limited, discolored, and obvious to more than a cursory glance.
|
||||
/obj/item/cardboard_cutout
|
||||
name = "cardboard cutout"
|
||||
desc = "A vaguely humanoid cardboard cutout. It's completely blank."
|
||||
icon = 'icons/obj/cardboard_cutout.dmi'
|
||||
icon_state = "cutout_basic"
|
||||
w_class = 4
|
||||
var/list/possible_appearances = list("Assistant", "Clown", "Mime", "Traitor", "Nuke Op", "Cultist", "Clockwork Cultist", "Revolutionary", "Wizard", "Shadowling", "Xenomorph", "Swarmer", \
|
||||
"Ash Walker", "Deathsquad Officer", "Ian") //Possible restyles for the cutout; add an entry in change_appearance() if you add to here
|
||||
var/pushed_over = FALSE //If the cutout is pushed over and has to be righted
|
||||
var/deceptive = FALSE //If the cutout actually appears as what it portray and not a discolored version
|
||||
|
||||
/obj/item/cardboard_cutout/attack_hand(mob/living/user)
|
||||
if(user.a_intent == "help" || pushed_over)
|
||||
return ..()
|
||||
user.visible_message("<span class='warning'>[user] pushes over [src]!</span>", "<span class='danger'>You push over [src]!</span>")
|
||||
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
|
||||
name = initial(name)
|
||||
desc = "[initial(desc)] It's been pushed over."
|
||||
icon_state = "cutout_pushed_over"
|
||||
color = initial(color)
|
||||
pushed_over = TRUE
|
||||
|
||||
/obj/item/cardboard_cutout/attack_self(mob/living/user)
|
||||
if(!pushed_over)
|
||||
return
|
||||
user << "<span class='notice'>You right [src].</span>"
|
||||
desc = initial(desc)
|
||||
icon_state = initial(icon_state) //This resets a cutout to its blank state - this is intentional to allow for resetting
|
||||
pushed_over = FALSE
|
||||
|
||||
/obj/item/cardboard_cutout/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/toy/crayon))
|
||||
change_appearance(I, user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/cardboard_cutout/proc/change_appearance(obj/item/toy/crayon/crayon, mob/living/user)
|
||||
if(!crayon || !user)
|
||||
return
|
||||
if(pushed_over)
|
||||
user << "<span class='warning'>Right [src] first!</span>"
|
||||
return
|
||||
var/new_appearance = input(user, "Choose a new appearance for [src].", "26th Century Deception") as null|anything in possible_appearances
|
||||
if(!new_appearance || !crayon || !user.canUseTopic(src))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] gives [src] a new look.</span>", "<span class='notice'>Voila! You give [src] a new look.</span>")
|
||||
crayon.use_charges(1)
|
||||
crayon.check_empty(user)
|
||||
if(!deceptive)
|
||||
color = "#FFD7A7"
|
||||
switch(new_appearance)
|
||||
if("Assistant")
|
||||
name = "[pick(first_names_male)] [pick(last_names)]"
|
||||
desc = "A cardboat cutout of an assistant."
|
||||
icon_state = "cutout_greytide"
|
||||
if("Clown")
|
||||
name = pick(clown_names)
|
||||
desc = "A cardboard cutout of a clown. You get the feeling that it should be in a corner."
|
||||
icon_state = "cutout_clown"
|
||||
if("Mime")
|
||||
name = pick(mime_names)
|
||||
desc = "...(A cardboard cutout of a mime.)"
|
||||
icon_state = "cutout_mime"
|
||||
if("Traitor")
|
||||
name = "[pick("Unknown", "Captain")]"
|
||||
desc = "A cardboard cutout of a traitor."
|
||||
icon_state = "cutout_traitor"
|
||||
if("Nuke Op")
|
||||
name = "[pick("Unknown", "COMMS", "Telecomms", "AI", "stealthy op", "STEALTH", "sneakybeaky", "MEDIC", "Medic")]"
|
||||
desc = "A cardboard cutout of a nuclear operative."
|
||||
icon_state = "cutout_fluke"
|
||||
if("Cultist")
|
||||
name = "Unknown"
|
||||
desc = "A cardboard cutout of a cultist."
|
||||
icon_state = "cutout_cultist"
|
||||
if("Clockwork Cultist")
|
||||
name = "[pick(first_names_male)] [pick(last_names)]"
|
||||
desc = "A cardboard cutout of a servant of Ratvar."
|
||||
icon_state = "cutout_servant"
|
||||
if("Revolutionary")
|
||||
name = "Unknown"
|
||||
desc = "A cardboard cutout of a revolutionary."
|
||||
icon_state = "cutout_viva"
|
||||
if("Wizard")
|
||||
name = "[pick(wizard_first)], [pick(wizard_second)]"
|
||||
desc = "A cardboard cutout of a wizard."
|
||||
icon_state = "cutout_wizard"
|
||||
if("Shadowling")
|
||||
name = "Unknown"
|
||||
desc = "A cardboard cutout of a shadowling."
|
||||
icon_state = "cutout_shadowling"
|
||||
if("Xenomorph")
|
||||
name = "alien hunter ([rand(1, 999)])"
|
||||
desc = "A cardboard cutout of a xenomorph."
|
||||
icon_state = "cutout_fukken_xeno"
|
||||
if(prob(25))
|
||||
alpha = 75 //Spooky sneaking!
|
||||
if("Swarmer")
|
||||
name = "Swarmer ([rand(1, 999)])"
|
||||
desc = "A cardboard cutout of a swarmer."
|
||||
icon_state = "cutout_swarmer"
|
||||
if("Ash Walker")
|
||||
name = lizard_name(pick(MALE, FEMALE))
|
||||
desc = "A cardboard cutout of an ash walker."
|
||||
icon_state = "cutout_free_antag"
|
||||
if("Deathsquad Officer")
|
||||
name = pick(commando_names)
|
||||
desc = "A cardboard cutout of a death commando."
|
||||
icon_state = "cutout_deathsquad"
|
||||
if("Ian")
|
||||
name = "Ian"
|
||||
desc = "A cardboard cutout of the HoP's beloved corgi."
|
||||
icon_state = "cutout_ian"
|
||||
return 1
|
||||
|
||||
/obj/item/cardboard_cutout/adaptive //Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
|
||||
deceptive = TRUE
|
||||
@@ -200,9 +200,10 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
|
||||
new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \
|
||||
new/datum/stack_recipe("folder", /obj/item/weapon/folder), \
|
||||
new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \
|
||||
new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
/obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck
|
||||
name = "cardboard"
|
||||
desc = "Large sheets of card, like boxes folded flat."
|
||||
singular_name = "cardboard sheet"
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit
|
||||
name = "box"
|
||||
desc = "A sleek, sturdy box"
|
||||
desc = "A sleek, sturdy box."
|
||||
icon_state = "box_of_doom"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_freedom
|
||||
@@ -276,4 +276,10 @@
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/throwing_star(src)
|
||||
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
|
||||
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
|
||||
new /obj/item/weapon/restraints/legcuffs/bola/tactical(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/cutouts/New()
|
||||
..()
|
||||
for(var/i in 1 to 3)
|
||||
new/obj/item/cardboard_cutout/adaptive(src)
|
||||
new/obj/item/toy/crayon/rainbow(src)
|
||||
|
||||
Reference in New Issue
Block a user