mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-21 12:07:26 +01:00
New turf proc: assume_gas(). Maps to air.adjust_gas_temp(). Lots of optimizations to processing, fire, lighting, HasEntered() and more. Zones now process all fire data and existance in one go, fire objects only handle spreading. Most code has been ported straight so some of it mightn't be ideally structured for the new gas_mixtures. Signed-off-by: Mloc-Argent <colmohici@gmail.com>
654 lines
18 KiB
Plaintext
654 lines
18 KiB
Plaintext
/* Toys!
|
|
* Contains:
|
|
* Balloons
|
|
* Fake telebeacon
|
|
* Fake singularity
|
|
* Toy gun
|
|
* Toy crossbow
|
|
* Toy swords
|
|
* Toy mechs
|
|
* Crayons
|
|
* Snap pops
|
|
* Water flower
|
|
* Therapy dolls
|
|
* Toddler doll
|
|
* Inflatable duck
|
|
*/
|
|
|
|
|
|
/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(src, 10)
|
|
user << "\blue You fill the balloon with the contents of [A]."
|
|
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.reaction(user)
|
|
del(src)
|
|
else
|
|
src.desc = "A translucent balloon with some form of liquid sloshing around in it."
|
|
user << "\blue You fill the balloon with the contents of [O]."
|
|
O.reagents.trans_to(src, 10)
|
|
src.update_icon()
|
|
return
|
|
|
|
/obj/item/toy/balloon/throw_impact(atom/hit_atom)
|
|
if(src.reagents.total_volume >= 1)
|
|
src.visible_message("\red The [src] bursts!","You hear a pop and a splash.")
|
|
src.reagents.reaction(get_turf(hit_atom))
|
|
for(var/atom/A in get_turf(hit_atom))
|
|
src.reagents.reaction(A)
|
|
src.icon_state = "burst"
|
|
spawn(5)
|
|
if(src)
|
|
del(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 = "syndicate 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
|
|
|
|
/*
|
|
* 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 = "gun"
|
|
flags = FPRINT | TABLEPASS | CONDUCT
|
|
slot_flags = SLOT_BELT
|
|
w_class = 3.0
|
|
|
|
matter = list("glass" = 10,"metal" = 10)
|
|
|
|
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
|
|
var/bullets = 7.0
|
|
|
|
examine()
|
|
set src in usr
|
|
|
|
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 << "\blue It's already fully loaded!"
|
|
return 1
|
|
if (A.amount_left <= 0)
|
|
user << "\red There is no more caps!"
|
|
return 1
|
|
if (A.amount_left < (7 - src.bullets))
|
|
src.bullets += A.amount_left
|
|
user << text("\red You reload [] caps\s!", A.amount_left)
|
|
A.amount_left = 0
|
|
else
|
|
user << text("\red You reload [] caps\s!", 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 (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
|
usr << "\red You don't have the dexterity to do this!"
|
|
return
|
|
src.add_fingerprint(user)
|
|
if (src.bullets < 1)
|
|
user.show_message("\red *click* *click*", 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("\red <B>[] fires a cap gun at []!</B>", user, target), 1, "\red You hear a gunshot", 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 = FPRINT | TABLEPASS| CONDUCT
|
|
w_class = 1.0
|
|
|
|
matter = list("metal" = 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"
|
|
flags = FPRINT | TABLEPASS
|
|
w_class = 2.0
|
|
attack_verb = list("attacked", "struck", "hit")
|
|
var/bullets = 5
|
|
|
|
examine()
|
|
set src in view(2)
|
|
..()
|
|
if (bullets)
|
|
usr << "\blue It is loaded with [bullets] foam darts!"
|
|
|
|
attackby(obj/item/I as obj, mob/user as mob)
|
|
if(istype(I, /obj/item/toy/ammo/crossbow))
|
|
if(bullets <= 4)
|
|
user.drop_item()
|
|
del(I)
|
|
bullets++
|
|
user << "\blue You load the foam dart into the crossbow."
|
|
else
|
|
usr << "\red It's already fully loaded."
|
|
|
|
|
|
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("\red [] was hit by the foam dart!", M), 1)
|
|
new /obj/item/toy/ammo/crossbow(M.loc)
|
|
del(D)
|
|
return
|
|
|
|
for(var/atom/A in D.loc)
|
|
if(A == user) continue
|
|
if(A.density)
|
|
new /obj/item/toy/ammo/crossbow(A.loc)
|
|
del(D)
|
|
|
|
sleep(1)
|
|
|
|
spawn(10)
|
|
if(D)
|
|
new /obj/item/toy/ammo/crossbow(D.loc)
|
|
del(D)
|
|
|
|
return
|
|
else if (bullets == 0)
|
|
user.Weaken(5)
|
|
for(var/mob/O in viewers(world.view, user))
|
|
O.show_message(text("\red [] realized they were out of ammo and starting scrounging for some!", 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("\red <B>[] casually lines up a shot with []'s head and pulls the trigger!</B>", user, M), 1, "\red You hear the sound of foam against skull", 2)
|
|
O.show_message(text("\red [] was hit in the head by the foam dart!", 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("\red <B>[] 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!</B>", user, M), 1, "\red You hear someone fall", 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"
|
|
flags = FPRINT | TABLEPASS
|
|
w_class = 1.0
|
|
|
|
/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
|
|
flags = FPRINT | TABLEPASS | NOSHIELD
|
|
attack_verb = list("attacked", "struck", "hit")
|
|
|
|
attack_self(mob/user as mob)
|
|
src.active = !( src.active )
|
|
if (src.active)
|
|
user << "\blue You extend the plastic blade with a quick flick of your wrist."
|
|
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
|
src.icon_state = "swordblue"
|
|
src.item_state = "swordblue"
|
|
src.w_class = 4
|
|
else
|
|
user << "\blue You push the plastic blade back down into the handle."
|
|
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 = FPRINT | TABLEPASS | CONDUCT
|
|
slot_flags = SLOT_BELT | SLOT_BACK
|
|
force = 5
|
|
throwforce = 5
|
|
w_class = 3
|
|
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
|
|
|
|
/*
|
|
* Crayons
|
|
*/
|
|
|
|
/obj/item/toy/crayon
|
|
name = "crayon"
|
|
desc = "A colourful crayon. Please refrain from eating it or putting it in your nose."
|
|
icon = 'icons/obj/crayons.dmi'
|
|
icon_state = "crayonred"
|
|
w_class = 1.0
|
|
attack_verb = list("attacked", "coloured")
|
|
var/colour = "#FF0000" //RGB
|
|
var/shadeColour = "#220000" //RGB
|
|
var/uses = 30 //0 for unlimited uses
|
|
var/instant = 0
|
|
var/colourName = "red" //for updateIcon purposes
|
|
|
|
suicide_act(mob/user)
|
|
viewers(user) << "\red <b>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</b>"
|
|
return (BRUTELOSS|OXYLOSS)
|
|
|
|
/*
|
|
* 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("\red The [src.name] explodes!","\red You hear a snap!")
|
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
|
del(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 << "\red You step on the snap pop!"
|
|
|
|
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("\red The [src.name] explodes!","\red You hear a snap!")
|
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
|
del(src)
|
|
|
|
/*
|
|
* Water flower
|
|
*/
|
|
/obj/item/toy/waterflower
|
|
name = "Water Flower"
|
|
desc = "A seemingly innocent sunflower...with a twist."
|
|
icon = 'icons/obj/harvest.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 << "\blue You refill your flower!"
|
|
return
|
|
|
|
else if (src.reagents.total_volume < 1)
|
|
src.empty = 1
|
|
user << "\blue Your flower has run dry!"
|
|
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(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.reaction(get_turf(D))
|
|
for(var/atom/T in get_turf(D))
|
|
D.reagents.reaction(T)
|
|
if(ismob(T) && T:client)
|
|
T:client << "\red [user] has sprayed you with water!"
|
|
sleep(4)
|
|
del(D)
|
|
|
|
return
|
|
|
|
/obj/item/toy/waterflower/examine()
|
|
set src in usr
|
|
usr << text("\icon[] [] units of water left!", src, src.reagents.total_volume)
|
|
..()
|
|
return
|
|
|
|
|
|
/*
|
|
* 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"
|
|
|
|
/obj/item/toy/katana
|
|
name = "replica katana"
|
|
desc = "Woefully underpowered in D20."
|
|
icon = 'icons/obj/weapons.dmi'
|
|
icon_state = "katana"
|
|
item_state = "katana"
|
|
flags = FPRINT | TABLEPASS | 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
|
|
|
|
|
|
/* 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"
|
|
flags = FPRINT | TABLEPASS
|
|
icon = 'icons/obj/clothing/belts.dmi'
|
|
slot_flags = SLOT_BELT |