mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
889 lines
27 KiB
Plaintext
889 lines
27 KiB
Plaintext
/* Toys!
|
|
* Contains:
|
|
* Balloons
|
|
* Fake telebeacon
|
|
* Fake singularity
|
|
* Toy gun
|
|
* Toy crossbow
|
|
* Toy swords
|
|
* Toy bosun's whistle
|
|
* Toy mechs
|
|
* Snap pops
|
|
* Water flower
|
|
* Therapy dolls
|
|
* Toddler doll
|
|
* Inflatable duck
|
|
* Action figures
|
|
* Plushies
|
|
* Toy cult sword
|
|
*/
|
|
|
|
|
|
/obj/item/toy
|
|
throwforce = 0
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
force = 0
|
|
|
|
|
|
/*
|
|
* Balloons
|
|
*/
|
|
/obj/item/toy/balloon
|
|
name = "water balloon"
|
|
desc = "A translucent balloon. There's nothing in it."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "waterballoon-e"
|
|
item_state = "balloon-empty"
|
|
|
|
/obj/item/toy/balloon/New()
|
|
var/datum/reagents/R = new/datum/reagents(10)
|
|
reagents = R
|
|
R.my_atom = src
|
|
|
|
/obj/item/toy/balloon/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
|
return
|
|
|
|
/obj/item/toy/balloon/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
|
|
if(!proximity) return
|
|
if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1)
|
|
A.reagents.trans_to_obj(src, 10)
|
|
user << "<span class='notice'>You fill the balloon with the contents of [A].</span>"
|
|
src.desc = "A translucent balloon with some form of liquid sloshing around in it."
|
|
src.update_icon()
|
|
return
|
|
|
|
/obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob)
|
|
if(istype(O, /obj/item/weapon/reagent_containers/glass))
|
|
if(O.reagents)
|
|
if(O.reagents.total_volume < 1)
|
|
user << "The [O] is empty."
|
|
else if(O.reagents.total_volume >= 1)
|
|
if(O.reagents.has_reagent("pacid", 1))
|
|
user << "The acid chews through the balloon!"
|
|
O.reagents.splash(user, reagents.total_volume)
|
|
qdel(src)
|
|
else
|
|
src.desc = "A translucent balloon with some form of liquid sloshing around in it."
|
|
user << "<span class='notice'>You fill the balloon with the contents of [O].</span>"
|
|
O.reagents.trans_to_obj(src, 10)
|
|
src.update_icon()
|
|
return
|
|
|
|
/obj/item/toy/balloon/throw_impact(atom/hit_atom)
|
|
if(src.reagents.total_volume >= 1)
|
|
src.visible_message("<span class='warning'>\The [src] bursts!</span>","You hear a pop and a splash.")
|
|
src.reagents.touch_turf(get_turf(hit_atom))
|
|
for(var/atom/A in get_turf(hit_atom))
|
|
src.reagents.touch(A)
|
|
src.icon_state = "burst"
|
|
spawn(5)
|
|
if(src)
|
|
qdel(src)
|
|
return
|
|
|
|
/obj/item/toy/balloon/update_icon()
|
|
if(src.reagents.total_volume >= 1)
|
|
icon_state = "waterballoon"
|
|
item_state = "balloon"
|
|
else
|
|
icon_state = "waterballoon-e"
|
|
item_state = "balloon-empty"
|
|
|
|
/obj/item/toy/syndicateballoon
|
|
name = "criminal balloon"
|
|
desc = "There is a tag on the back that reads \"FUK NT!11!\"."
|
|
throwforce = 0
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
force = 0
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "syndballoon"
|
|
item_state = "syndballoon"
|
|
w_class = 4.0
|
|
|
|
/obj/item/toy/nanotrasenballoon
|
|
name = "criminal balloon"
|
|
desc = "Across the balloon the following is printed: \"Man, I love NanoTrasen soooo much. I use only NT products. You have NO idea.\""
|
|
throwforce = 0
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
force = 0
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "ntballoon"
|
|
item_state = "ntballoon"
|
|
w_class = 4.0
|
|
|
|
/*
|
|
* Fake telebeacon
|
|
*/
|
|
/obj/item/toy/blink
|
|
name = "electronic blink toy game"
|
|
desc = "Blink. Blink. Blink. Ages 8 and up."
|
|
icon = 'icons/obj/radio.dmi'
|
|
icon_state = "beacon"
|
|
item_state = "signaler"
|
|
|
|
/*
|
|
* Fake singularity
|
|
*/
|
|
/obj/item/toy/spinningtoy
|
|
name = "gravitational singularity"
|
|
desc = "\"Singulo\" brand spinning toy."
|
|
icon = 'icons/obj/singularity.dmi'
|
|
icon_state = "singularity_s1"
|
|
|
|
/*
|
|
* Toy crossbow
|
|
*/
|
|
|
|
/obj/item/toy/crossbow
|
|
name = "foam dart crossbow"
|
|
desc = "A weapon favored by many overactive children. Ages 8 and up."
|
|
icon = 'icons/obj/gun.dmi'
|
|
icon_state = "crossbow"
|
|
item_state = "crossbow"
|
|
item_icons = list(
|
|
icon_l_hand = 'icons/mob/items/lefthand_guns.dmi',
|
|
icon_r_hand = 'icons/mob/items/righthand_guns.dmi',
|
|
)
|
|
w_class = 2.0
|
|
attack_verb = list("attacked", "struck", "hit")
|
|
var/bullets = 5
|
|
|
|
examine(mob/user)
|
|
if(..(user, 2) && bullets)
|
|
user << "<span class='notice'>It is loaded with [bullets] foam darts!</span>"
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
if(istype(I, /obj/item/toy/ammo/crossbow))
|
|
if(bullets <= 4)
|
|
user.drop_item()
|
|
qdel(I)
|
|
bullets++
|
|
user << "<span class='notice'>You load the foam dart into the crossbow.</span>"
|
|
else
|
|
usr << "<span class='warning'>It's already fully loaded.</span>"
|
|
|
|
|
|
afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
|
|
if(!isturf(target.loc) || target == user) return
|
|
if(flag) return
|
|
|
|
if (locate (/obj/structure/table, src.loc))
|
|
return
|
|
else if (bullets)
|
|
var/turf/trg = get_turf(target)
|
|
var/obj/effect/foam_dart_dummy/D = new/obj/effect/foam_dart_dummy(get_turf(src))
|
|
bullets--
|
|
D.icon_state = "foamdart"
|
|
D.name = "foam dart"
|
|
playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1)
|
|
|
|
for(var/i=0, i<6, i++)
|
|
if (D)
|
|
if(D.loc == trg) break
|
|
step_towards(D,trg)
|
|
|
|
for(var/mob/living/M in D.loc)
|
|
if(!istype(M,/mob/living)) continue
|
|
if(M == user) continue
|
|
for(var/mob/O in viewers(world.view, D))
|
|
O.show_message(text("<span class='warning'>\The [] was hit by the foam dart!</span>", M), 1)
|
|
new /obj/item/toy/ammo/crossbow(M.loc)
|
|
qdel(D)
|
|
return
|
|
|
|
for(var/atom/A in D.loc)
|
|
if(A == user) continue
|
|
if(A.density)
|
|
new /obj/item/toy/ammo/crossbow(A.loc)
|
|
qdel(D)
|
|
|
|
sleep(1)
|
|
|
|
spawn(10)
|
|
if(D)
|
|
new /obj/item/toy/ammo/crossbow(D.loc)
|
|
qdel(D)
|
|
|
|
return
|
|
else if (bullets == 0)
|
|
user.Weaken(5)
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("<span class='warning'>\The [] realized they were out of ammo and starting scrounging for some!</span>", user), 1)
|
|
|
|
|
|
attack(mob/M as mob, mob/user as mob)
|
|
src.add_fingerprint(user)
|
|
|
|
// ******* Check
|
|
|
|
if (src.bullets > 0 && M.lying)
|
|
|
|
for(var/mob/O in viewers(M, null))
|
|
if(O.client)
|
|
O.show_message(text("<span class='danger'>\The [] casually lines up a shot with []'s head and pulls the trigger!</span>", user, M), 1, "<span class='warning'>You hear the sound of foam against skull</span>", 2)
|
|
O.show_message(text("<span class='warning'>\The [] was hit in the head by the foam dart!</span>", M), 1)
|
|
|
|
playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1)
|
|
new /obj/item/toy/ammo/crossbow(M.loc)
|
|
src.bullets--
|
|
else if (M.lying && src.bullets == 0)
|
|
for(var/mob/O in viewers(M, null))
|
|
if (O.client) O.show_message(text("<span class='danger'>\The [] casually lines up a shot with []'s head, pulls the trigger, then realizes they are out of ammo and drops to the floor in search of some!</span>", user, M), 1, "<span class='warning'>You hear someone fall</span>", 2)
|
|
user.Weaken(5)
|
|
return
|
|
|
|
/obj/item/toy/ammo/crossbow
|
|
name = "foam dart"
|
|
desc = "It's nerf or nothing! Ages 8 and up."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "foamdart"
|
|
w_class = 1.0
|
|
slot_flags = SLOT_EARS
|
|
|
|
/obj/effect/foam_dart_dummy
|
|
name = ""
|
|
desc = ""
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "null"
|
|
anchored = 1
|
|
density = 0
|
|
|
|
|
|
/*
|
|
* Toy swords
|
|
*/
|
|
/obj/item/toy/sword
|
|
name = "toy sword"
|
|
desc = "A cheap, plastic replica of an energy sword. Realistic sounds! Ages 8 and up."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "sword0"
|
|
item_state = "sword0"
|
|
var/active = 0.0
|
|
w_class = 2.0
|
|
attack_verb = list("attacked", "struck", "hit")
|
|
|
|
attack_self(mob/user as mob)
|
|
src.active = !( src.active )
|
|
if (src.active)
|
|
user << "<span class='notice'>You extend the plastic blade with a quick flick of your wrist.</span>"
|
|
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
|
src.icon_state = "swordblue"
|
|
src.item_state = "swordblue"
|
|
src.w_class = 4
|
|
else
|
|
user << "<span class='notice'>You push the plastic blade back down into the handle.</span>"
|
|
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
|
src.icon_state = "sword0"
|
|
src.item_state = "sword0"
|
|
src.w_class = 2
|
|
|
|
if(istype(user,/mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = user
|
|
H.update_inv_l_hand()
|
|
H.update_inv_r_hand()
|
|
|
|
src.add_fingerprint(user)
|
|
return
|
|
|
|
/obj/item/toy/katana
|
|
name = "replica katana"
|
|
desc = "Woefully underpowered in D20."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "katana"
|
|
item_state = "katana"
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = 3
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
|
|
|
|
/*
|
|
* Snap pops
|
|
*/
|
|
/obj/item/toy/snappop
|
|
name = "snap pop"
|
|
desc = "Wow!"
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "snappop"
|
|
w_class = 1
|
|
|
|
throw_impact(atom/hit_atom)
|
|
..()
|
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
|
s.set_up(3, 1, src)
|
|
s.start()
|
|
new /obj/effect/decal/cleanable/ash(src.loc)
|
|
src.visible_message("<span class='warning'>The [src.name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
|
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
|
qdel(src)
|
|
|
|
/obj/item/toy/snappop/Crossed(H as mob|obj)
|
|
if((ishuman(H))) //i guess carp and shit shouldn't set them off
|
|
var/mob/living/carbon/M = H
|
|
if(M.m_intent == "run")
|
|
M << "<span class='warning'>You step on the snap pop!</span>"
|
|
|
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
|
s.set_up(2, 0, src)
|
|
s.start()
|
|
new /obj/effect/decal/cleanable/ash(src.loc)
|
|
src.visible_message("<span class='warning'>The [src.name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
|
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
|
qdel(src)
|
|
|
|
/*
|
|
* Water flower
|
|
*/
|
|
/obj/item/toy/waterflower
|
|
name = "water flower"
|
|
desc = "A seemingly innocent sunflower...with a twist."
|
|
icon = 'icons/obj/device.dmi'
|
|
icon_state = "sunflower"
|
|
item_state = "sunflower"
|
|
var/empty = 0
|
|
flags
|
|
|
|
/obj/item/toy/waterflower/New()
|
|
var/datum/reagents/R = new/datum/reagents(10)
|
|
reagents = R
|
|
R.my_atom = src
|
|
R.add_reagent("water", 10)
|
|
|
|
/obj/item/toy/waterflower/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
|
return
|
|
|
|
/obj/item/toy/waterflower/afterattack(atom/A as mob|obj, mob/user as mob)
|
|
|
|
if (istype(A, /obj/item/weapon/storage/backpack ))
|
|
return
|
|
|
|
else if (locate (/obj/structure/table, src.loc))
|
|
return
|
|
|
|
else if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1)
|
|
A.reagents.trans_to(src, 10)
|
|
user << "<span class='notice'>You refill your flower!</span>"
|
|
return
|
|
|
|
else if (src.reagents.total_volume < 1)
|
|
src.empty = 1
|
|
user << "<span class='notice'>Your flower has run dry!</span>"
|
|
return
|
|
|
|
else
|
|
src.empty = 0
|
|
|
|
|
|
var/obj/effect/decal/D = new/obj/effect/decal/(get_turf(src))
|
|
D.name = "water"
|
|
D.icon = 'icons/obj/chemical.dmi'
|
|
D.icon_state = "chempuff"
|
|
D.create_reagents(5)
|
|
src.reagents.trans_to_obj(D, 1)
|
|
playsound(src.loc, 'sound/effects/spray3.ogg', 50, 1, -6)
|
|
|
|
spawn(0)
|
|
for(var/i=0, i<1, i++)
|
|
step_towards(D,A)
|
|
D.reagents.touch_turf(get_turf(D))
|
|
for(var/atom/T in get_turf(D))
|
|
D.reagents.touch(T)
|
|
if(ismob(T) && T:client)
|
|
T:client << "<span class='warning'>\The [user] has sprayed you with water!</span>"
|
|
sleep(4)
|
|
qdel(D)
|
|
|
|
return
|
|
|
|
/obj/item/toy/waterflower/examine(mob/user)
|
|
if(..(user, 0))
|
|
user << text("\icon[] [] units of water left!", src, src.reagents.total_volume)
|
|
|
|
/*
|
|
* Bosun's whistle
|
|
*/
|
|
|
|
/obj/item/toy/bosunwhistle
|
|
name = "bosun's whistle"
|
|
desc = "A genuine Admiral Krush Bosun's Whistle, for the aspiring ship's captain! Suitable for ages 8 and up, do not swallow."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "bosunwhistle"
|
|
var/cooldown = 0
|
|
w_class = 1
|
|
slot_flags = SLOT_EARS
|
|
|
|
/obj/item/toy/bosunwhistle/attack_self(mob/user as mob)
|
|
if(cooldown < world.time - 35)
|
|
user << "<span class='notice'>You blow on [src], creating an ear-splitting noise!</span>"
|
|
playsound(user, 'sound/misc/boatswain.ogg', 20, 1)
|
|
cooldown = world.time
|
|
|
|
/*
|
|
* Mech prizes
|
|
*/
|
|
/obj/item/toy/prize
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "ripleytoy"
|
|
var/cooldown = 0
|
|
|
|
//all credit to skasi for toy mech fun ideas
|
|
/obj/item/toy/prize/attack_self(mob/user as mob)
|
|
if(cooldown < world.time - 8)
|
|
user << "<span class='notice'>You play with [src].</span>"
|
|
playsound(user, 'sound/mecha/mechstep.ogg', 20, 1)
|
|
cooldown = world.time
|
|
|
|
/obj/item/toy/prize/attack_hand(mob/user as mob)
|
|
if(loc == user)
|
|
if(cooldown < world.time - 8)
|
|
user << "<span class='notice'>You play with [src].</span>"
|
|
playsound(user, 'sound/mecha/mechturn.ogg', 20, 1)
|
|
cooldown = world.time
|
|
return
|
|
..()
|
|
|
|
/obj/item/toy/prize/ripley
|
|
name = "toy ripley"
|
|
desc = "Mini-Mecha action figure! Collect them all! 1/11."
|
|
|
|
/obj/item/toy/prize/fireripley
|
|
name = "toy firefighting ripley"
|
|
desc = "Mini-Mecha action figure! Collect them all! 2/11."
|
|
icon_state = "fireripleytoy"
|
|
|
|
/obj/item/toy/prize/deathripley
|
|
name = "toy deathsquad ripley"
|
|
desc = "Mini-Mecha action figure! Collect them all! 3/11."
|
|
icon_state = "deathripleytoy"
|
|
|
|
/obj/item/toy/prize/gygax
|
|
name = "toy gygax"
|
|
desc = "Mini-Mecha action figure! Collect them all! 4/11."
|
|
icon_state = "gygaxtoy"
|
|
|
|
/obj/item/toy/prize/durand
|
|
name = "toy durand"
|
|
desc = "Mini-Mecha action figure! Collect them all! 5/11."
|
|
icon_state = "durandprize"
|
|
|
|
/obj/item/toy/prize/honk
|
|
name = "toy H.O.N.K."
|
|
desc = "Mini-Mecha action figure! Collect them all! 6/11."
|
|
icon_state = "honkprize"
|
|
|
|
/obj/item/toy/prize/marauder
|
|
name = "toy marauder"
|
|
desc = "Mini-Mecha action figure! Collect them all! 7/11."
|
|
icon_state = "marauderprize"
|
|
|
|
/obj/item/toy/prize/seraph
|
|
name = "toy seraph"
|
|
desc = "Mini-Mecha action figure! Collect them all! 8/11."
|
|
icon_state = "seraphprize"
|
|
|
|
/obj/item/toy/prize/mauler
|
|
name = "toy mauler"
|
|
desc = "Mini-Mecha action figure! Collect them all! 9/11."
|
|
icon_state = "maulerprize"
|
|
|
|
/obj/item/toy/prize/odysseus
|
|
name = "toy odysseus"
|
|
desc = "Mini-Mecha action figure! Collect them all! 10/11."
|
|
icon_state = "odysseusprize"
|
|
|
|
/obj/item/toy/prize/phazon
|
|
name = "toy phazon"
|
|
desc = "Mini-Mecha action figure! Collect them all! 11/11."
|
|
icon_state = "phazonprize"
|
|
|
|
/*
|
|
* Action figures
|
|
*/
|
|
|
|
/obj/item/toy/figure
|
|
name = "Completely Glitched action figure"
|
|
desc = "A \"Space Life\" brand... wait, what the hell is this thing? It seems to be requesting the sweet release of death."
|
|
icon_state = "assistant"
|
|
icon = 'icons/obj/toy.dmi'
|
|
|
|
/obj/item/toy/figure/cmo
|
|
name = "Chief Medical Officer action figure"
|
|
desc = "A \"Space Life\" brand Chief Medical Officer action figure."
|
|
icon_state = "cmo"
|
|
|
|
/obj/item/toy/figure/assistant
|
|
name = "Assistant action figure"
|
|
desc = "A \"Space Life\" brand Assistant action figure."
|
|
icon_state = "assistant"
|
|
|
|
/obj/item/toy/figure/atmos
|
|
name = "Atmospheric Technician action figure"
|
|
desc = "A \"Space Life\" brand Atmospheric Technician action figure."
|
|
icon_state = "atmos"
|
|
|
|
/obj/item/toy/figure/bartender
|
|
name = "Bartender action figure"
|
|
desc = "A \"Space Life\" brand Bartender action figure."
|
|
icon_state = "bartender"
|
|
|
|
/obj/item/toy/figure/borg
|
|
name = "Cyborg action figure"
|
|
desc = "A \"Space Life\" brand Cyborg action figure."
|
|
icon_state = "borg"
|
|
|
|
/obj/item/toy/figure/gardener
|
|
name = "Gardener action figure"
|
|
desc = "A \"Space Life\" brand Gardener action figure."
|
|
icon_state = "botanist"
|
|
|
|
/obj/item/toy/figure/captain
|
|
name = "Captain action figure"
|
|
desc = "A \"Space Life\" brand Captain action figure."
|
|
icon_state = "captain"
|
|
|
|
/obj/item/toy/figure/cargotech
|
|
name = "Cargo Technician action figure"
|
|
desc = "A \"Space Life\" brand Cargo Technician action figure."
|
|
icon_state = "cargotech"
|
|
|
|
/obj/item/toy/figure/ce
|
|
name = "Chief Engineer action figure"
|
|
desc = "A \"Space Life\" brand Chief Engineer action figure."
|
|
icon_state = "ce"
|
|
|
|
/obj/item/toy/figure/chaplain
|
|
name = "Chaplain action figure"
|
|
desc = "A \"Space Life\" brand Chaplain action figure."
|
|
icon_state = "chaplain"
|
|
|
|
/obj/item/toy/figure/chef
|
|
name = "Chef action figure"
|
|
desc = "A \"Space Life\" brand Chef action figure."
|
|
icon_state = "chef"
|
|
|
|
/obj/item/toy/figure/chemist
|
|
name = "Chemist action figure"
|
|
desc = "A \"Space Life\" brand Chemist action figure."
|
|
icon_state = "chemist"
|
|
|
|
/obj/item/toy/figure/clown
|
|
name = "Clown action figure"
|
|
desc = "A \"Space Life\" brand Clown action figure."
|
|
icon_state = "clown"
|
|
|
|
/obj/item/toy/figure/corgi
|
|
name = "Corgi action figure"
|
|
desc = "A \"Space Life\" brand Corgi action figure."
|
|
icon_state = "ian"
|
|
|
|
/obj/item/toy/figure/detective
|
|
name = "Detective action figure"
|
|
desc = "A \"Space Life\" brand Detective action figure."
|
|
icon_state = "detective"
|
|
|
|
/obj/item/toy/figure/dsquad
|
|
name = "Space Commando action figure"
|
|
desc = "A \"Space Life\" brand Space Commando action figure."
|
|
icon_state = "dsquad"
|
|
|
|
/obj/item/toy/figure/engineer
|
|
name = "Engineer action figure"
|
|
desc = "A \"Space Life\" brand Engineer action figure."
|
|
icon_state = "engineer"
|
|
|
|
/obj/item/toy/figure/geneticist
|
|
name = "Geneticist action figure"
|
|
desc = "A \"Space Life\" brand Geneticist action figure, which was recently dicontinued."
|
|
icon_state = "geneticist"
|
|
|
|
/obj/item/toy/figure/hop
|
|
name = "Head of Personel action figure"
|
|
desc = "A \"Space Life\" brand Head of Personel action figure."
|
|
icon_state = "hop"
|
|
|
|
/obj/item/toy/figure/hos
|
|
name = "Head of Security action figure"
|
|
desc = "A \"Space Life\" brand Head of Security action figure."
|
|
icon_state = "hos"
|
|
|
|
/obj/item/toy/figure/qm
|
|
name = "Quartermaster action figure"
|
|
desc = "A \"Space Life\" brand Quartermaster action figure."
|
|
icon_state = "qm"
|
|
|
|
/obj/item/toy/figure/janitor
|
|
name = "Janitor action figure"
|
|
desc = "A \"Space Life\" brand Janitor action figure."
|
|
icon_state = "janitor"
|
|
|
|
/obj/item/toy/figure/agent
|
|
name = "Internal Affairs Agent action figure"
|
|
desc = "A \"Space Life\" brand Internal Affairs Agent action figure."
|
|
icon_state = "agent"
|
|
|
|
/obj/item/toy/figure/librarian
|
|
name = "Librarian action figure"
|
|
desc = "A \"Space Life\" brand Librarian action figure."
|
|
icon_state = "librarian"
|
|
|
|
/obj/item/toy/figure/md
|
|
name = "Medical Doctor action figure"
|
|
desc = "A \"Space Life\" brand Medical Doctor action figure."
|
|
icon_state = "md"
|
|
|
|
/obj/item/toy/figure/mime
|
|
name = "Mime action figure"
|
|
desc = "A \"Space Life\" brand Mime action figure."
|
|
icon_state = "mime"
|
|
|
|
/obj/item/toy/figure/miner
|
|
name = "Shaft Miner action figure"
|
|
desc = "A \"Space Life\" brand Shaft Miner action figure."
|
|
icon_state = "miner"
|
|
|
|
/obj/item/toy/figure/ninja
|
|
name = "Space Ninja action figure"
|
|
desc = "A \"Space Life\" brand Space Ninja action figure."
|
|
icon_state = "ninja"
|
|
|
|
/obj/item/toy/figure/wizard
|
|
name = "Wizard action figure"
|
|
desc = "A \"Space Life\" brand Wizard action figure."
|
|
icon_state = "wizard"
|
|
|
|
/obj/item/toy/figure/rd
|
|
name = "Research Director action figure"
|
|
desc = "A \"Space Life\" brand Research Director action figure."
|
|
icon_state = "rd"
|
|
|
|
/obj/item/toy/figure/roboticist
|
|
name = "Roboticist action figure"
|
|
desc = "A \"Space Life\" brand Roboticist action figure."
|
|
icon_state = "roboticist"
|
|
|
|
/obj/item/toy/figure/scientist
|
|
name = "Scientist action figure"
|
|
desc = "A \"Space Life\" brand Scientist action figure."
|
|
icon_state = "scientist"
|
|
|
|
/obj/item/toy/figure/syndie
|
|
name = "Doom Operative action figure"
|
|
desc = "A \"Space Life\" brand Doom Operative action figure."
|
|
icon_state = "syndie"
|
|
|
|
/obj/item/toy/figure/secofficer
|
|
name = "Security Officer action figure"
|
|
desc = "A \"Space Life\" brand Security Officer action figure."
|
|
icon_state = "secofficer"
|
|
|
|
/obj/item/toy/figure/warden
|
|
name = "Warden action figure"
|
|
desc = "A \"Space Life\" brand Warden action figure."
|
|
icon_state = "warden"
|
|
|
|
/obj/item/toy/figure/psychologist
|
|
name = "Psychologist action figure"
|
|
desc = "A \"Space Life\" brand Psychologist action figure."
|
|
icon_state = "psychologist"
|
|
|
|
/obj/item/toy/figure/paramedic
|
|
name = "Paramedic action figure"
|
|
desc = "A \"Space Life\" brand Paramedic action figure."
|
|
icon_state = "paramedic"
|
|
|
|
/obj/item/toy/figure/ert
|
|
name = "Emergency Response Team Commander action figure"
|
|
desc = "A \"Space Life\" brand Emergency Response Team Commander action figure."
|
|
icon_state = "ert"
|
|
|
|
/obj/item/toy/katana
|
|
name = "replica katana"
|
|
desc = "Woefully underpowered in D20."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "katana"
|
|
item_state = "katana"
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = 3
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
|
|
|
|
/obj/item/toy/therapy_red
|
|
name = "red therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is red."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapyred"
|
|
item_state = "egg4" // It's the red egg in items_left/righthand
|
|
w_class = 1
|
|
|
|
/obj/item/toy/therapy_purple
|
|
name = "purple therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is purple."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapypurple"
|
|
item_state = "egg1" // It's the magenta egg in items_left/righthand
|
|
w_class = 1
|
|
|
|
/obj/item/toy/therapy_blue
|
|
name = "blue therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is blue."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapyblue"
|
|
item_state = "egg2" // It's the blue egg in items_left/righthand
|
|
w_class = 1
|
|
|
|
/obj/item/toy/therapy_yellow
|
|
name = "yellow therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is yellow."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapyyellow"
|
|
item_state = "egg5" // It's the yellow egg in items_left/righthand
|
|
w_class = 1
|
|
|
|
/obj/item/toy/therapy_orange
|
|
name = "orange therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is orange."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapyorange"
|
|
item_state = "egg4" // It's the red one again, lacking an orange item_state and making a new one is pointless
|
|
w_class = 1
|
|
|
|
/obj/item/toy/therapy_green
|
|
name = "green therapy doll"
|
|
desc = "A toy for therapeutic and recreational purposes. This one is green."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "therapygreen"
|
|
item_state = "egg3" // It's the green egg in items_left/righthand
|
|
w_class = 1
|
|
|
|
/*
|
|
* Plushies
|
|
*/
|
|
|
|
//Large plushies.
|
|
/obj/structure/plushie
|
|
name = "generic plush"
|
|
desc = "A very generic plushie. It seems to not want to exist."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "ianplushie"
|
|
anchored = 0
|
|
density = 1
|
|
var/phrase = "I don't want to exist anymore!"
|
|
|
|
/obj/structure/plushie/attack_hand(mob/user)
|
|
if(user.a_intent == I_HELP)
|
|
user.visible_message("<span class='notice'><b>\The [user]</b> hugs [src]!</span>","<span class='notice'>You hug [src]!</span>")
|
|
else if (user.a_intent == I_HURT)
|
|
user.visible_message("<span class='warning'><b>\The [user]</b> punches [src]!</span>","<span class='warning'>You punch [src]!</span>")
|
|
else if (user.a_intent == I_GRAB)
|
|
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to strangle [src]!</span>","<span class='warning'>You attempt to strangle [src]!</span>")
|
|
else
|
|
user.visible_message("<span class='notice'><b>\The [user]</b> pokes the [src].</span>","<span class='notice'>You poke the [src].</span>")
|
|
visible_message("[src] says, \"[phrase]\"")
|
|
|
|
/obj/structure/plushie/ian
|
|
name = "plush corgi"
|
|
desc = "A plushie of an adorable corgi! Don't you just want to hug it and squeeze it and call it \"Ian\"?"
|
|
icon_state = "ianplushie"
|
|
phrase = "Arf!"
|
|
|
|
/obj/structure/plushie/drone
|
|
name = "plush drone"
|
|
desc = "A plushie of a happy drone! It appears to be smiling, and has a small tag which reads \"N.D.V. Icarus Gift Shop\"."
|
|
icon_state = "droneplushie"
|
|
phrase = "Beep boop!"
|
|
|
|
/obj/structure/plushie/carp
|
|
name = "plush carp"
|
|
desc = "A plushie of an elated carp! Straight from the wilds of the Vir frontier, now right here in your hands."
|
|
icon_state = "carpplushie"
|
|
phrase = "Glorf!"
|
|
|
|
/obj/structure/plushie/beepsky
|
|
name = "plush Officer Sweepsky"
|
|
desc = "A plushie of a popular industrious cleaning robot! If it could feel emotions, it would love you."
|
|
icon_state = "beepskyplushie"
|
|
phrase = "Ping!"
|
|
|
|
//Small plushies.
|
|
/obj/item/toy/plushie
|
|
name = "generic small plush"
|
|
desc = "A very generic small plushie. It seems to not want to exist."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "nymphplushie"
|
|
|
|
/obj/item/toy/plushie/attack_self(mob/user as mob)
|
|
if(user.a_intent == I_HELP)
|
|
user.visible_message("<span class='notice'><b>\The [user]</b> hugs [src]!</span>","<span class='notice'>You hug [src]!</span>")
|
|
else if (user.a_intent == I_HURT)
|
|
user.visible_message("<span class='warning'><b>\The [user]</b> punches [src]!</span>","<span class='warning'>You punch [src]!</span>")
|
|
else if (user.a_intent == I_GRAB)
|
|
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to strangle [src]!</span>","<span class='warning'>You attempt to strangle [src]!</span>")
|
|
else
|
|
user.visible_message("<span class='notice'><b>\The [user]</b> pokes the [src].</span>","<span class='notice'>You poke the [src].</span>")
|
|
|
|
/obj/item/toy/plushie/nymph
|
|
name = "diona nymph plush"
|
|
desc = "A plushie of an adorable diona nymph! While its level of self-awareness is still being debated, its level of cuteness is not."
|
|
icon_state = "nymphplushie"
|
|
|
|
/obj/item/toy/plushie/mouse
|
|
name = "mouse plush"
|
|
desc = "A plushie of a delightful mouse! What was once considered a vile rodent is now your very best friend."
|
|
icon_state = "mouseplushie"
|
|
|
|
/obj/item/toy/plushie/kitten
|
|
name = "kitten plush"
|
|
desc = "A plushie of a cute kitten! Watch as it purrs it's way right into your heart."
|
|
icon_state = "kittenplushie"
|
|
|
|
/obj/item/toy/plushie/lizard
|
|
name = "lizard plush"
|
|
desc = "A plushie of a scaly lizard! Very controversial, after being accused as \"racist\" by some Unathi."
|
|
icon_state = "lizardplushie"
|
|
|
|
/obj/item/toy/plushie/spider
|
|
name = "spider plush"
|
|
desc = "A plushie of a fuzzy spider! It has eight legs - all the better to hug you with."
|
|
icon_state = "spiderplushie"
|
|
|
|
/obj/item/toy/plushie/farwa
|
|
name = "farwa plush"
|
|
desc = "A farwa plush doll. It's soft and comforting!"
|
|
icon_state = "farwaplushie"
|
|
|
|
//Toy cult sword
|
|
/obj/item/toy/cultsword
|
|
name = "foam sword"
|
|
desc = "An arcane weapon (made of foam) wielded by the followers of the hit Saturday morning cartoon \"King Nursee and the Acolytes of Heroism\"."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "cultblade"
|
|
item_state = "cultblade"
|
|
w_class = 4
|
|
attack_verb = list("attacked", "slashed", "stabbed", "poked")
|
|
|
|
/* NYET.
|
|
/obj/item/weapon/toddler
|
|
icon_state = "toddler"
|
|
name = "toddler"
|
|
desc = "This baby looks almost real. Wait, did it just burp?"
|
|
force = 5
|
|
w_class = 4.0
|
|
slot_flags = SLOT_BACK
|
|
*/
|
|
|
|
//This should really be somewhere else but I don't know where. w/e
|
|
|
|
/obj/item/weapon/inflatable_duck
|
|
name = "inflatable duck"
|
|
desc = "No bother to sink or swim when you can just float!"
|
|
icon_state = "inflatable"
|
|
item_state = "inflatable"
|
|
icon = 'icons/obj/clothing/belts.dmi'
|
|
slot_flags = SLOT_BELT
|