/obj/item/caution desc = "Caution! Wet Floor!" name = "wet floor sign" icon = 'icons/obj/janitor.dmi' icon_state = "caution" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 1 throwforce = 3 throw_speed = 2 throw_range = 5 w_class = WEIGHT_CLASS_SMALL attack_verb = list("warned", "cautioned", "smashed") /obj/item/choice_beacon name = "choice beacon" desc = "Hey, why are you viewing this?!! Please let Centcom know about this odd occurance." icon = 'icons/obj/device.dmi' icon_state = "gangtool-blue" item_state = "radio" var/uses = 1 /obj/item/choice_beacon/attack_self(mob/user) if(canUseBeacon(user)) generate_options(user) /obj/item/choice_beacon/proc/generate_display_names() // return the list that will be used in the choice selection. entries should be in (type.name = type) fashion. see choice_beacon/hero for how this is done. return list() /obj/item/choice_beacon/proc/canUseBeacon(mob/living/user) if(user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return TRUE else playsound(src, 'sound/machines/buzz-sigh.ogg', 40, 1) return FALSE /obj/item/choice_beacon/proc/generate_options(mob/living/M) var/list/display_names = generate_display_names() if(!display_names.len) return var/choice = input(M,"Which item would you like to order?","Select an Item") as null|anything in display_names if(!choice || !M.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return spawn_option(display_names[choice],M) uses-- if(!uses) qdel(src) else to_chat(M, "[uses] use[uses > 1 ? "s" : ""] remaining on the [src].") /obj/item/choice_beacon/proc/spawn_option(obj/choice,mob/living/M) var/obj/new_item = new choice() var/obj/structure/closet/supplypod/bluespacepod/pod = new() pod.explosionSize = list(0,0,0,0) new_item.forceMove(pod) var/msg = "After making your selection, you notice a strange target on the ground. It might be best to step back!" if(ishuman(M)) var/mob/living/carbon/human/H = M if(istype(H.ears, /obj/item/radio/headset)) msg = "You hear something crackle in your ears for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows: Item request received. Your package is inbound, please stand back from the landing site. Message ends.\"" to_chat(M, msg) new /obj/effect/DPtarget(get_turf(src), pod) /obj/item/choice_beacon/hero name = "heroic beacon" desc = "To summon heroes from the past to protect the future." /obj/item/choice_beacon/hero/generate_display_names() var/static/list/hero_item_list if(!hero_item_list) hero_item_list = list() var/list/templist = typesof(/obj/item/storage/box/hero) //we have to convert type = name to name = type, how lovely! for(var/V in templist) var/atom/A = V hero_item_list[initial(A.name)] = A return hero_item_list /obj/item/storage/box/hero name = "Courageous Tomb Raider - 1940's." /obj/item/storage/box/hero/PopulateContents() new /obj/item/clothing/head/fedora/curator(src) new /obj/item/clothing/suit/curator(src) new /obj/item/clothing/under/rank/civilian/curator/treasure_hunter(src) new /obj/item/clothing/shoes/workboots/mining(src) new /obj/item/melee/curator_whip(src) /obj/item/storage/box/hero/astronaut name = "First Man on the Moon - 1960's." /obj/item/storage/box/hero/astronaut/PopulateContents() new /obj/item/clothing/suit/space/nasavoid(src) new /obj/item/clothing/head/helmet/space/nasavoid(src) new /obj/item/tank/internals/oxygen(src) new /obj/item/gps(src) /obj/item/storage/box/hero/scottish name = "Braveheart, the Scottish rebel - 1300's." /obj/item/storage/box/hero/scottish/PopulateContents() new /obj/item/clothing/under/costume/kilt(src) new /obj/item/claymore/weak/ceremonial(src) new /obj/item/toy/crayon/spraycan(src) new /obj/item/clothing/shoes/sandal(src) /obj/item/choice_beacon/augments name = "augment beacon" desc = "Summons augmentations. Can be used 3 times!" uses = 3 /obj/item/choice_beacon/augments/generate_display_names() var/static/list/augment_list if(!augment_list) augment_list = list() var/list/templist = list( /obj/item/organ/cyberimp/brain/anti_drop, /obj/item/organ/cyberimp/arm/toolset, /obj/item/organ/cyberimp/arm/surgery, /obj/item/organ/cyberimp/chest/thrusters, /obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded) //cyberimplants range from a nice bonus to fucking broken bullshit so no subtypesof for(var/V in templist) var/atom/A = V augment_list[initial(A.name)] = A return augment_list /obj/item/choice_beacon/augments/spawn_option(obj/choice,mob/living/M) new choice(get_turf(M)) to_chat(M, "You hear something crackle from the beacon for a moment before a voice speaks. \"Please stand by for a message from S.E.L.F. Message as follows: Item request received. Your package has been transported, use the autosurgeon supplied to apply the upgrade. Message ends.\"") /obj/item/skub desc = "It's skub." name = "skub" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "skub" w_class = WEIGHT_CLASS_BULKY attack_verb = list("skubbed") /obj/item/skub/suicide_act(mob/living/user) user.visible_message("[user] has declared themself as anti-skub! The skub tears them apart!") user.gib() playsound(src, 'sound/items/eatfood.ogg', 50, 1, -1) return MANUAL_SUICIDE