Files
GS13NG/code/game/objects/items/miscellaneous.dm
Chayse Ramsay f95222fee0 For the stranger there among them had a big iron on his hip. Big iron on his hiiiiiiip. (#12155)
* HoS modular revolver, ported from vore

* Bugfixing, sanity checks etc.

* Update hos.dm

* Sprite fixed

* Automatic changelog compile [ci skip]

* HoS Weapon Selection

* Icons

* Clamp fix, removing rogue items from ye olde list

* Update ammo.dmi

* Requested Changes Part 1

* Beacon fixed (kind of)

* Subtypes fix

* User

* Giving process_chamber a user so that the proc can use to_chat without requiring loc, fixes switching so the gun only switches to the same type when empty

* redundant item

* Adds an examine notice on how to remove the magazine

* Requested Changes

* Icons

Co-authored-by: Changelogs <action@github.com>
2020-05-30 03:17:56 +02:00

140 lines
4.9 KiB
Plaintext

/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"
/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)
qdel(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 = "<span class='danger'>After making your selection, you notice a strange target on the ground. It might be best to step back!</span>"
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: <span class='bold'>Item request received. Your package is inbound, please stand back from the landing site.</span> Message ends.\""
to_chat(M, msg)
new /obj/effect/abstract/DPtarget(get_turf(src), pod)
/obj/item/choice_beacon/ingredients
name = "ingredient box delivery beacon"
desc = "Summon a box of ingredients from a wide selection!"
icon_state = "gangtool-red"
/obj/item/choice_beacon/ingredients/generate_display_names()
var/static/list/ingredientboxes
if(!ingredientboxes)
ingredientboxes = list()
var/list/templist = typesof(/obj/item/storage/box/ingredients)
for(var/V in templist)
var/obj/item/storage/box/ingredients/A = V
ingredientboxes[initial(A.theme_name)] = A
return ingredientboxes
/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/emergency_oxygen/double(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/hosgun
name = "personal weapon beacon"
desc = "Use this to summon your personal Head of Security issued firearm!"
/obj/item/choice_beacon/hosgun/generate_display_names()
var/static/list/hos_gun_list
if(!hos_gun_list)
hos_gun_list = list()
var/list/templist = subtypesof(/obj/item/storage/secure/briefcase/hos/) //we have to convert type = name to name = type, how lovely!
for(var/V in templist)
var/atom/A = V
hos_gun_list[initial(A.name)] = A
return hos_gun_list
/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")