mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-21 20:11:41 +01:00
420 lines
14 KiB
Plaintext
420 lines
14 KiB
Plaintext
//TODO: Organize this file into more appropriate files. -Zandario
|
|
|
|
/obj/item/phone
|
|
name = "red phone"
|
|
desc = "Should anything ever go wrong..."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "red_phone"
|
|
damage_force = 3.0
|
|
throw_force = 2.0
|
|
throw_speed = 1
|
|
throw_range = 4
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
attack_verb = list("called", "rang")
|
|
attack_sound = 'sound/weapons/ring.ogg'
|
|
|
|
/obj/item/rsp
|
|
name = "\improper Rapid-Seed-Producer (RSP)"
|
|
desc = "A device used to rapidly deploy seeds."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "rcd"
|
|
opacity = 0
|
|
density = 0
|
|
anchored = 0.0
|
|
var/stored_matter = 0
|
|
var/mode = 1
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
|
|
|
|
/obj/item/c_tube
|
|
name = "cardboard tube"
|
|
desc = "A tube... of cardboard."
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "c_tube"
|
|
throw_force = 1
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
slot_flags = SLOT_HOLSTER
|
|
throw_speed = 4
|
|
throw_range = 5
|
|
|
|
/obj/item/cane
|
|
name = "cane"
|
|
desc = "A cane used by a true gentleman."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "cane"
|
|
item_icons = list(
|
|
SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand_melee.dmi',
|
|
SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_melee.dmi',
|
|
)
|
|
damage_force = 5.0
|
|
throw_force = 7.0
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
materials_base = list(MAT_STEEL = 50)
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
|
|
|
/obj/item/cane/concealed
|
|
var/concealed_blade
|
|
|
|
/obj/item/cane/concealed/Initialize(mapload)
|
|
. = ..()
|
|
var/obj/item/material/butterfly/switchblade/temp_blade = new(src)
|
|
temp_blade.set_active(TRUE)
|
|
concealed_blade = temp_blade
|
|
|
|
/obj/item/cane/concealed/attack_self(mob/user, datum/event_args/actor/actor)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/datum/gender/T = GLOB.gender_datums[user.get_visible_gender()]
|
|
if(concealed_blade)
|
|
user.visible_message(
|
|
SPAN_WARNING("[user] has unsheathed \a [concealed_blade] from [T.his] [src]!"),
|
|
SPAN_WARNING("You unsheathe \the [concealed_blade] from \the [src]."),
|
|
SPAN_HEAR("You hear a blade being drawn."),
|
|
)
|
|
// Calling drop/put in hands to properly call item drop/pickup procs
|
|
playsound(src, 'sound/weapons/flipblade.ogg', 50, 1)
|
|
user.drop_item_to_ground(src)
|
|
user.put_in_hands(concealed_blade)
|
|
user.put_in_hands(src)
|
|
concealed_blade = null
|
|
|
|
/obj/item/cane/concealed/attackby(obj/item/material/butterfly/W, mob/user)
|
|
if(!src.concealed_blade && istype(W))
|
|
if(!user.attempt_insert_item_for_installation(W, src))
|
|
return
|
|
concealed_blade = W
|
|
var/datum/gender/T = GLOB.gender_datums[user.get_visible_gender()]
|
|
user.visible_message(
|
|
SPAN_WARNING("[user] has sheathed \a [W] into [T.his] [src]!"),
|
|
SPAN_WARNING("You sheathe \the [W] into \the [src]."),
|
|
SPAN_HEAR("You hear a blade being sheathed."),
|
|
)
|
|
update_icon()
|
|
else
|
|
..()
|
|
|
|
/obj/item/cane/concealed/update_icon()
|
|
if(concealed_blade)
|
|
name = initial(name)
|
|
icon_state = initial(icon_state)
|
|
item_state = initial(icon_state)
|
|
else
|
|
name = "cane shaft"
|
|
icon_state = "nullrod"
|
|
item_state = "foldcane"
|
|
|
|
/obj/item/cane/whitecane
|
|
name = "white cane"
|
|
desc = "A white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "whitecane"
|
|
|
|
/obj/item/cane/whitecane/legacy_mob_melee_hook(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent)
|
|
if(user.a_intent == INTENT_HELP)
|
|
user.visible_message(SPAN_NOTICE("\The [user] has lightly tapped [target] on the ankle with their white cane!"))
|
|
return
|
|
return ..()
|
|
|
|
//Code for Telescopic White Cane writen by Gozulio
|
|
|
|
/obj/item/cane/whitecane/collapsible
|
|
name = "telescopic white cane"
|
|
desc = "A telescopic white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others."
|
|
icon_state = "whitecane1in"
|
|
item_icons = list(
|
|
SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand_melee.dmi',
|
|
SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_melee.dmi',
|
|
)
|
|
slot_flags = SLOT_BELT
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
damage_force = 3
|
|
var/on = 0
|
|
|
|
/obj/item/cane/whitecane/collapsible/attack_self(mob/user, datum/event_args/actor/actor)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
on = !on
|
|
LAZYINITLIST(item_state_slots)
|
|
if(on)
|
|
user.visible_message(
|
|
SPAN_NOTICE("\The [user] extends the white cane."),
|
|
SPAN_WARNING("You extend the white cane."),
|
|
SPAN_HEAR("You hear an ominous click."),
|
|
)
|
|
icon_state = "whitecane1out"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "whitecane", SLOT_ID_LEFT_HAND = "whitecane")
|
|
set_weight_class(WEIGHT_CLASS_NORMAL)
|
|
damage_force = 5
|
|
attack_verb = list("smacked", "struck", "cracked", "beaten")
|
|
else
|
|
user.visible_message(
|
|
SPAN_NOTICE("\The [user] collapses the white cane."),
|
|
SPAN_WARNING("You collapse the white cane."),
|
|
SPAN_HEAR("You hear a click."),
|
|
)
|
|
icon_state = "whitecane1in"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = null, SLOT_ID_LEFT_HAND = null)
|
|
set_weight_class(WEIGHT_CLASS_SMALL)
|
|
damage_force = 3
|
|
attack_verb = list("hit", "poked", "prodded")
|
|
|
|
update_worn_icon()
|
|
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
|
|
add_fingerprint(user)
|
|
|
|
/obj/item/cane/crutch
|
|
name ="crutch"
|
|
desc = "A long stick with a crosspiece at the top, used to help with walking."
|
|
icon_state = "crutch"
|
|
item_state = "crutch"
|
|
|
|
/obj/item/caution
|
|
desc = "Caution! Wet Floor!"
|
|
name = "wet floor sign"
|
|
icon = 'icons/obj/janitor.dmi'
|
|
icon_state = "caution"
|
|
damage_force = 1.0
|
|
throw_force = 3.0
|
|
throw_speed = 1
|
|
throw_range = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
attack_verb = list("warned", "cautioned", "smashed")
|
|
|
|
/obj/item/caution/attackby(obj/item/D, mob/user)
|
|
if(D.is_wirecutter())
|
|
to_chat(user, SPAN_NOTICE("You snap the handle of \the [src] with \the [D]. It's too warped to stand on its own now."))
|
|
user.put_in_hands(new /obj/item/clothing/suit/armor/caution)
|
|
qdel(src)
|
|
else
|
|
return ..()
|
|
|
|
/obj/item/caution/cone
|
|
desc = "This cone is trying to warn you of something!"
|
|
name = "warning cone"
|
|
icon_state = "cone"
|
|
|
|
/obj/item/caution/cone/candy
|
|
desc = "This cone is trying to warn you of something! It has been painted to look like candy corn."
|
|
name = "candy cone"
|
|
icon_state = "candycone"
|
|
|
|
/obj/item/SWF_uplink
|
|
name = "station-bounced radio"
|
|
desc = "Used to communicate, it appears."
|
|
icon = 'icons/obj/radio.dmi'
|
|
icon_state = "radio"
|
|
var/temp = null
|
|
var/uses = 4.0
|
|
var/selfdestruct = 0.0
|
|
var/traitor_frequency = 0.0
|
|
var/obj/item/radio/origradio = null
|
|
slot_flags = SLOT_BELT
|
|
item_state = "radio"
|
|
throw_force = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
materials_base = list(MAT_STEEL = 100)
|
|
origin_tech = list(TECH_MAGNET = 1)
|
|
|
|
/obj/item/staff
|
|
name = "wizards staff"
|
|
desc = "Apparently a staff used by the wizard."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "staff"
|
|
item_icons = list(
|
|
SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand_melee.dmi',
|
|
SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_melee.dmi',
|
|
)
|
|
damage_force = 3.0
|
|
throw_force = 5.0
|
|
throw_speed = 1
|
|
throw_range = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
|
|
|
/obj/item/staff/broom
|
|
name = "broom"
|
|
desc = "Used for sweeping, and flying into the night while cackling. Black cat not included."
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "broom"
|
|
|
|
/obj/item/staff/gentcane
|
|
name = "Gentlemans Cane"
|
|
desc = "An ebony can with an ivory tip."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "cane"
|
|
|
|
/obj/item/staff/stick
|
|
name = "stick"
|
|
desc = "A great tool to drag someone else's drinks across the bar."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "stick"
|
|
item_state = "cane"
|
|
damage_force = 3.0
|
|
throw_force = 5.0
|
|
throw_speed = 1
|
|
throw_range = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
|
|
/obj/item/module
|
|
icon = 'icons/items/circuits.dmi'
|
|
icon_state = "std_module"
|
|
item_state = "std_mod"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
var/mtype = 1 // 1=electronic 2=hardware
|
|
|
|
/obj/item/module/card_reader
|
|
name = "card reader module"
|
|
icon_state = "card_mod"
|
|
item_state = "std_mod"
|
|
desc = "An electronic module for reading data and ID cards."
|
|
|
|
/obj/item/module/power_control
|
|
name = "power control module"
|
|
icon_state = "power_mod"
|
|
item_state = "std_mod"
|
|
desc = "Heavy-duty switching circuits for power control."
|
|
materials_base = list(MAT_STEEL = 50, MAT_GLASS = 50)
|
|
|
|
/obj/item/module/power_control/attackby(obj/item/W, mob/user)
|
|
if (istype(W, /obj/item/multitool))
|
|
var/obj/item/circuitboard/ghettosmes/newcircuit = new/obj/item/circuitboard/ghettosmes(user.loc)
|
|
qdel(src)
|
|
user.put_in_hands(newcircuit)
|
|
|
|
|
|
/obj/item/module/id_auth
|
|
name = "\improper ID authentication module"
|
|
icon_state = "id_mod"
|
|
desc = "A module allowing secure authorization of ID cards."
|
|
|
|
/obj/item/module/cell_power
|
|
name = "power cell regulator module"
|
|
icon_state = "power_mod"
|
|
item_state = "std_mod"
|
|
desc = "A converter and regulator allowing the use of power cells."
|
|
|
|
/obj/item/module/cell_power
|
|
name = "power cell charger module"
|
|
icon_state = "power_mod"
|
|
item_state = "std_mod"
|
|
desc = "Charging circuits for power cells."
|
|
|
|
/*
|
|
/obj/item/cigarpacket
|
|
name = "Pete's Cuban Cigars"
|
|
desc = "The most robust cigars on the planet."
|
|
icon = 'icons/obj/cigarettes.dmi'
|
|
icon_state = "cigarpacket"
|
|
item_state = "cigarpacket"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
throw_force = 2
|
|
var/cigarcount = 6
|
|
flags = ONBELT
|
|
*/
|
|
|
|
/obj/item/pai_cable
|
|
desc = "A flexible coated cable with a universal jack on one end."
|
|
name = "data cable"
|
|
icon = 'icons/obj/power.dmi'
|
|
icon_state = "wire1"
|
|
|
|
var/obj/machinery/machine
|
|
|
|
/obj/item/pai_cable/Destroy()
|
|
machine = null
|
|
return ..()
|
|
|
|
///////////////////////////////////////Stock Parts /////////////////////////////////
|
|
|
|
/obj/item/ectoplasm
|
|
name = "ectoplasm"
|
|
desc = "Spooky!"
|
|
gender = PLURAL
|
|
icon = 'icons/obj/wizard.dmi'
|
|
icon_state = "ectoplasm"
|
|
|
|
/obj/item/research
|
|
name = "research debugging device"
|
|
desc = "Instant research tool. For testing purposes only."
|
|
icon = 'icons/obj/stock_parts.dmi'
|
|
icon_state = "smes_coil"
|
|
origin_tech = list(TECH_MATERIAL = 19, TECH_ENGINEERING = 19, TECH_PHORON = 19, TECH_POWER = 19, TECH_BLUESPACE = 19, TECH_BIO = 19, TECH_COMBAT = 19, TECH_MAGNET = 19, TECH_DATA = 19, TECH_ILLEGAL = 19, TECH_ARCANE = 19, TECH_PRECURSOR = 19)
|
|
|
|
//Yay Saddles.
|
|
/obj/item/saddle
|
|
name = "saddle"
|
|
desc = "A portable seat designed to be mounted on trained animals. You shouldn't be seeing this version!"
|
|
icon = 'icons/obj/items.dmi'
|
|
icon_state = "saddle"
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
|
|
/obj/item/saddle/horse
|
|
desc = "A portable seat designed to be mounted on trained animals. This leather design originates from Old Earth, where it was primarily used on horses."
|
|
|
|
/obj/item/saddle/shank
|
|
name = "goliath hide saddle"
|
|
desc = "A portable seat designed to be mounted on trained animals. This one is fashioned out of goliath hide and bone, and seems to be designed for a very angular beast."
|
|
icon_state = "saddle_lavaland"
|
|
|
|
/obj/item/saddle/stormdrifter
|
|
name = "harness and gondola"
|
|
desc = "A hardy gondola designed to be mounted on a floating creature. This one is fashioned out of shank chitin and Goliath bone."
|
|
icon_state = "saddle_lavaland"
|
|
|
|
//Ashlander Specific Crafting Items
|
|
/datum/category_item/catalogue/anomalous/scorian_religion/elder_stone
|
|
name = "Scorian Religion - Elder Stones"
|
|
desc = "Originally depicted in Scorian carvings and cave paintings discovered at various dig sites around Surt, \
|
|
actual samples of these curious gems only recently became available. These gems, whose name most closely translates \
|
|
to 'Elder Stone' in Galactic Common, are considered items of intense religious significance to Scorian tribes. \
|
|
Outlanders who have been seen in possession of elder stones are frequently treated with hostility by the Scorian people, \
|
|
leading to several diplomatic incidents in recent months. Elder stones possess subtle anomalous properties, most notably \
|
|
a musical chiming tone, similar to the constant ringing of a bell. They are considered especially valuable by anomalous \
|
|
study groups and anthropological initiatives alike."
|
|
value = CATALOGUER_REWARD_MEDIUM
|
|
|
|
/obj/item/elderstone
|
|
name = "elder stone"
|
|
desc = "This strange gem is considered sacred by the inhabitants of Surt. Jealously protected by the tribes, these stones exhibit anomalous properties - primarily a faintly audible chiming ring."
|
|
icon = 'icons/obj/lavaland.dmi'
|
|
icon_state = "elderstone"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
catalogue_data = list(/datum/category_item/catalogue/anomalous/scorian_religion/elder_stone)
|
|
|
|
/obj/item/condensedphlogiston
|
|
name = "condensed phlogiston"
|
|
desc = "Phlogiston stabilized into a putty-like solid. It is less volatile than raw phlogiston, requiring special circumstances to detonate."
|
|
icon = 'icons/obj/lavaland.dmi'
|
|
icon_state = "condensedphlogiston"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
|
|
/obj/item/bitterash
|
|
name = "poultice (bitter ash)"
|
|
desc = "A pungent poultice used primarily in Scorian religious rites. It is believed to provide protection from rampaging beasts."
|
|
icon = 'icons/obj/lavaland.dmi'
|
|
icon_state = "poulticeash"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
var/use_sound = list('sound/effects/ointment.ogg')
|
|
|
|
//Code isn't working. Figure it out tomorrow.
|
|
|
|
/obj/item/bitterash/legacy_mob_melee_hook(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent)
|
|
. = ..()
|
|
if(user.a_intent == INTENT_HARM)
|
|
return ..()
|
|
. = CLICKCHAIN_DO_NOT_PROPAGATE
|
|
if(!target.mind)
|
|
return
|
|
if(target.shares_iff_faction(user))
|
|
to_chat(target, "<span class='notice'>You are graced by the familiar gaze of the Mother for a brief moment.</span>")
|
|
|
|
to_chat(user, "<span class='notice'>You smear the Mark of the Mother on [target]'s forehead using the [src].</span>")
|
|
to_chat(target, "<span class='notice'>You sense an unfamiliar presence looming over you. It encases you in a gentle, all-encompassing warmth.</span>")
|
|
target.copy_iff_factions(user)
|
|
playsound(src, pick(use_sound), 25)
|
|
qdel(src)
|