mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-09 00:42:34 +00:00
Removes all \red's and \blues in favor of span classes. \red things that were bold were replaced with danger because it's warning but bold.
979 lines
30 KiB
Plaintext
979 lines
30 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"
|
|
QDEL_IN(src, 5)
|
|
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 gun: Why isnt this an /obj/item/weapon/gun?
|
|
*/
|
|
/obj/item/toy/gun
|
|
name = "cap gun"
|
|
desc = "There are 0 caps left. Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps!"
|
|
icon = 'icons/obj/gun.dmi'
|
|
icon_state = "revolver"
|
|
item_state = "revolver"
|
|
item_icons = list(//ITEM_ICONS ARE DEPRECATED. USE CONTAINED SPRITES IN FUTURE
|
|
icon_l_hand = 'icons/mob/items/lefthand_guns.dmi',
|
|
icon_r_hand = 'icons/mob/items/righthand_guns.dmi'
|
|
)
|
|
flags = CONDUCT
|
|
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
|
w_class = 3.0
|
|
|
|
matter = list("glass" = 10,DEFAULT_WALL_MATERIAL = 10)
|
|
|
|
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
|
|
var/bullets = 7.0
|
|
|
|
examine(mob/user)
|
|
if(..(user, 0))
|
|
src.desc = text("There are [] caps\s left. Looks almost like the real thing! Ages 8 and up.", src.bullets)
|
|
return
|
|
|
|
attackby(obj/item/toy/ammo/gun/A as obj, mob/user as mob)
|
|
|
|
if (istype(A, /obj/item/toy/ammo/gun))
|
|
if (src.bullets >= 7)
|
|
user << "<span class='notice'>It's already fully loaded!</span>"
|
|
return 1
|
|
if (A.amount_left <= 0)
|
|
user << "<span class='warning'>There is no more caps!</span>"
|
|
return 1
|
|
if (A.amount_left < (7 - src.bullets))
|
|
src.bullets += A.amount_left
|
|
user << text("<span class='warning'>You reload [] caps\s!</span>", A.amount_left)
|
|
A.amount_left = 0
|
|
else
|
|
user << text("<span class='warning'>You reload [] caps\s!</span>", 7 - src.bullets)
|
|
A.amount_left -= 7 - src.bullets
|
|
src.bullets = 7
|
|
A.update_icon()
|
|
return 1
|
|
return
|
|
|
|
afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
|
|
if (flag)
|
|
return
|
|
if (!usr.IsAdvancedToolUser())
|
|
usr << "<span class='warning'>You don't have the dexterity to do this!</span>"
|
|
return
|
|
src.add_fingerprint(user)
|
|
if (src.bullets < 1)
|
|
user.show_message("<span class='warning'>*click* *click*</span>", 2)
|
|
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
|
return
|
|
playsound(user, 'sound/weapons/Gunshot.ogg', 100, 1)
|
|
src.bullets--
|
|
for(var/mob/O in viewers(user, null))
|
|
O.show_message(text("<span class='danger'>[] fires a cap gun at []!</span>", user, target), 1, "<span class='warning'>You hear a gunshot</span>", 2)
|
|
|
|
/obj/item/toy/ammo/gun
|
|
name = "ammo-caps"
|
|
desc = "There are 7 caps left! Make sure to recyle the box in an autolathe when it gets empty."
|
|
icon = 'icons/obj/ammo.dmi'
|
|
icon_state = "357-7"
|
|
flags = CONDUCT
|
|
w_class = 1.0
|
|
|
|
matter = list(DEFAULT_WALL_MATERIAL = 10,"glass" = 10)
|
|
|
|
var/amount_left = 7.0
|
|
|
|
update_icon()
|
|
src.icon_state = text("357-[]", src.amount_left)
|
|
src.desc = text("There are [] caps\s left! Make sure to recycle the box in an autolathe when it gets empty.", src.amount_left)
|
|
return
|
|
|
|
/*
|
|
* 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(//ITEM_ICONS ARE DEPRECATED. USE CONTAINED SPRITES IN FUTURE
|
|
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)
|
|
..()
|
|
spark(src, 3, alldirs)
|
|
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>"
|
|
|
|
spark(src, 2)
|
|
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 Tau Ceti 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!"
|
|
|
|
/obj/structure/plushie/ivancarp
|
|
name = "plush Ivan the carp"
|
|
desc = "A plushie in the spitting image of a russian raised carp."
|
|
icon_state = "carpplushie_russian"
|
|
phrase = "Blyat!"
|
|
|
|
//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
|
|
|
|
/obj/item/toy/xmastree
|
|
name = "miniature Christmas tree"
|
|
desc = "Now with 99% less pine needles."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "tinyxmastree"
|
|
w_class = 1
|
|
force = 1
|
|
throwforce = 1
|