Merge pull request #8796 from Cerebulon/bloons
Balloon Expansion (Inflation?)
@@ -8,11 +8,11 @@
|
|||||||
/datum/uplink_item/item/badassery/balloon
|
/datum/uplink_item/item/badassery/balloon
|
||||||
name = "For showing that You Are The BOSS (Useless Balloon)"
|
name = "For showing that You Are The BOSS (Useless Balloon)"
|
||||||
item_cost = DEFAULT_TELECRYSTAL_AMOUNT
|
item_cost = DEFAULT_TELECRYSTAL_AMOUNT
|
||||||
path = /obj/item/toy/syndicateballoon
|
path = /obj/item/toy/balloon/syndicate
|
||||||
|
|
||||||
/datum/uplink_item/item/badassery/balloon/NT
|
/datum/uplink_item/item/badassery/balloon/NT
|
||||||
name = "For showing that you love NT SOO much (Useless Balloon)"
|
name = "For showing that you love NT SOO much (Useless Balloon)"
|
||||||
path = /obj/item/toy/nanotrasenballoon
|
path = /obj/item/toy/balloon/nanotrasen
|
||||||
|
|
||||||
/**************
|
/**************
|
||||||
* Random Item *
|
* Random Item *
|
||||||
@@ -91,4 +91,4 @@
|
|||||||
var/obj/structure/largecrate/C = /obj/structure/largecrate
|
var/obj/structure/largecrate/C = /obj/structure/largecrate
|
||||||
icon = image(initial(C.icon), initial(C.icon_state))
|
icon = image(initial(C.icon), initial(C.icon_state))
|
||||||
|
|
||||||
return "[bicon(icon)]"
|
return "[bicon(icon)]"
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
/obj/item/latexballon
|
|
||||||
name = "latex glove"
|
|
||||||
desc = "A latex glove, usually used as a balloon."
|
|
||||||
icon_state = "latexballon"
|
|
||||||
item_icons = list(
|
|
||||||
slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi',
|
|
||||||
slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi',
|
|
||||||
)
|
|
||||||
item_state = "lgloves"
|
|
||||||
force = 0
|
|
||||||
throwforce = 0
|
|
||||||
w_class = ITEMSIZE_SMALL
|
|
||||||
throw_speed = 1
|
|
||||||
throw_range = 15
|
|
||||||
var/state
|
|
||||||
var/datum/gas_mixture/air_contents = null
|
|
||||||
|
|
||||||
/obj/item/latexballon/proc/blow(obj/item/tank/tank)
|
|
||||||
if (icon_state == "latexballon_bursted")
|
|
||||||
return
|
|
||||||
src.air_contents = tank.remove_air_volume(3)
|
|
||||||
icon_state = "latexballon_blow"
|
|
||||||
item_state = "latexballon"
|
|
||||||
|
|
||||||
/obj/item/latexballon/proc/burst()
|
|
||||||
if (!air_contents)
|
|
||||||
return
|
|
||||||
playsound(src, 'sound/weapons/Gunshot_old.ogg', 100, 1)
|
|
||||||
icon_state = "latexballon_bursted"
|
|
||||||
item_state = "lgloves"
|
|
||||||
loc.assume_air(air_contents)
|
|
||||||
|
|
||||||
/obj/item/latexballon/ex_act(severity)
|
|
||||||
burst()
|
|
||||||
switch(severity)
|
|
||||||
if (1)
|
|
||||||
qdel(src)
|
|
||||||
if (2)
|
|
||||||
if (prob(50))
|
|
||||||
qdel(src)
|
|
||||||
|
|
||||||
/obj/item/latexballon/bullet_act()
|
|
||||||
burst()
|
|
||||||
|
|
||||||
/obj/item/latexballon/fire_act(datum/gas_mixture/air, temperature, volume)
|
|
||||||
if(temperature > T0C+100)
|
|
||||||
burst()
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/latexballon/attackby(obj/item/W as obj, mob/user as mob)
|
|
||||||
if (can_puncture(W))
|
|
||||||
burst()
|
|
||||||
|
|
||||||
/*
|
|
||||||
/obj/item/latexballon/nitrile
|
|
||||||
name = "nitrile glove"
|
|
||||||
desc = "A nitrile glove, usually used as a balloon."
|
|
||||||
icon_state = "nitrileballon"
|
|
||||||
item_icons = list(
|
|
||||||
slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi',
|
|
||||||
slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi',
|
|
||||||
)
|
|
||||||
item_state = "ngloves"
|
|
||||||
*/
|
|
||||||
@@ -20,6 +20,10 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/item/toy
|
/obj/item/toy
|
||||||
|
name = "generic toy"
|
||||||
|
desc = "It's just for fun!"
|
||||||
|
icon = 'icons/obj/toy.dmi'
|
||||||
|
icon_state = "glitched"
|
||||||
throwforce = 0
|
throwforce = 0
|
||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 20
|
throw_range = 20
|
||||||
@@ -30,23 +34,22 @@
|
|||||||
/*
|
/*
|
||||||
* Balloons
|
* Balloons
|
||||||
*/
|
*/
|
||||||
/obj/item/toy/balloon
|
/obj/item/toy/waterballoon
|
||||||
name = "water balloon"
|
name = "water balloon"
|
||||||
desc = "A translucent balloon. There's nothing in it."
|
desc = "A translucent balloon. There's nothing in it."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "waterballoon-e"
|
icon_state = "waterballoon-e"
|
||||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
drop_sound = 'sound/items/drop/rubber.ogg'
|
||||||
|
|
||||||
/obj/item/toy/balloon/Initialize()
|
/obj/item/toy/waterballoon/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
var/datum/reagents/R = new/datum/reagents(10)
|
var/datum/reagents/R = new/datum/reagents(10)
|
||||||
reagents = R
|
reagents = R
|
||||||
R.my_atom = src
|
R.my_atom = src
|
||||||
|
|
||||||
/obj/item/toy/balloon/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
/obj/item/toy/waterballoon/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/toy/balloon/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
|
/obj/item/toy/waterballoon/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
|
||||||
if(!proximity) return
|
if(!proximity) return
|
||||||
if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1)
|
if (istype(A, /obj/structure/reagent_dispensers/watertank) && get_dist(src,A) <= 1)
|
||||||
A.reagents.trans_to_obj(src, 10)
|
A.reagents.trans_to_obj(src, 10)
|
||||||
@@ -55,7 +58,7 @@
|
|||||||
src.update_icon()
|
src.update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/toy/balloon/attackby(obj/O as obj, mob/user as mob)
|
/obj/item/toy/waterballoon/attackby(obj/O as obj, mob/user as mob)
|
||||||
if(istype(O, /obj/item/reagent_containers/glass))
|
if(istype(O, /obj/item/reagent_containers/glass))
|
||||||
if(O.reagents)
|
if(O.reagents)
|
||||||
if(O.reagents.total_volume < 1)
|
if(O.reagents.total_volume < 1)
|
||||||
@@ -72,7 +75,7 @@
|
|||||||
src.update_icon()
|
src.update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/toy/balloon/throw_impact(atom/hit_atom)
|
/obj/item/toy/waterballoon/throw_impact(atom/hit_atom)
|
||||||
if(src.reagents.total_volume >= 1)
|
if(src.reagents.total_volume >= 1)
|
||||||
src.visible_message("<span class='warning'>\The [src] bursts!</span>","You hear a pop and a splash.")
|
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))
|
src.reagents.touch_turf(get_turf(hit_atom))
|
||||||
@@ -84,47 +87,126 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/toy/balloon/update_icon()
|
/obj/item/toy/waterballoon/update_icon()
|
||||||
if(src.reagents.total_volume >= 1)
|
if(src.reagents.total_volume >= 1)
|
||||||
icon_state = "waterballoon"
|
icon_state = "waterballoon"
|
||||||
else
|
else
|
||||||
icon_state = "waterballoon-e"
|
icon_state = "waterballoon-e"
|
||||||
|
|
||||||
/obj/item/toy/syndicateballoon
|
//BLOONS
|
||||||
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"
|
|
||||||
w_class = ITEMSIZE_LARGE
|
|
||||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
|
||||||
|
|
||||||
/obj/item/toy/nanotrasenballoon
|
#define BALLOON_NORMAL 0
|
||||||
name = "criminal balloon"
|
#define BALLOON_BLOW 1
|
||||||
desc = "Across the balloon the following is printed: \"Man, I love NanoTrasen soooo much. I use only NT products. You have NO idea.\""
|
#define BALLOON_BURST 2
|
||||||
throwforce = 0
|
|
||||||
throw_speed = 4
|
|
||||||
throw_range = 20
|
|
||||||
force = 0
|
|
||||||
icon = 'icons/obj/weapons.dmi'
|
|
||||||
icon_state = "ntballoon"
|
|
||||||
w_class = ITEMSIZE_LARGE
|
|
||||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
|
||||||
|
|
||||||
/obj/item/toy/colorballoon /// To color it, VV the 'color' var with a hex color code with the # included.
|
/obj/item/toy/balloon /// To color it, VV the 'color' var with a hex color code with the # included.
|
||||||
name = "balloon"
|
name = "balloon"
|
||||||
desc = "It's a plain little balloon. Comes in many colors!"
|
desc = "It's a plain little balloon. Comes in many colors!"
|
||||||
throwforce = 0
|
throwforce = 0
|
||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 20
|
throw_range = 20
|
||||||
force = 0
|
force = 0
|
||||||
icon = 'icons/obj/weapons.dmi'
|
|
||||||
icon_state = "colorballoon"
|
icon_state = "colorballoon"
|
||||||
w_class = ITEMSIZE_LARGE
|
w_class = ITEMSIZE_LARGE
|
||||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
drop_sound = 'sound/items/drop/rubber.ogg'
|
||||||
|
pickup_sound = 'sound/items/pickup/rubber.ogg'
|
||||||
|
var/datum/gas_mixture/air_contents = null
|
||||||
|
var/status = 0 // 0 = normal, 1 = blow, 2 = burst
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/attack_self(mob/user as mob)
|
||||||
|
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
|
if(user.a_intent == I_HELP)
|
||||||
|
user.visible_message("<span class='notice'><b>\The [user]</b> pokes [src]!</span>","<span class='notice'>You poke [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)
|
||||||
|
if(prob(66))
|
||||||
|
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to pop [src]!</span>","<span class='warning'>You attempt to pop [src]!</span>")
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='warning'><b>\The [user]</b> pops [src]!</span>","<span class='warning'>You pop [src]!</span>")
|
||||||
|
burst()
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='notice'><b>\The [user]</b> lightly bats the [src].</span>","<span class='notice'>You lightly bat the [src].</span>")
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/update_icon()
|
||||||
|
switch(status)
|
||||||
|
if(BALLOON_BURST)
|
||||||
|
if(("[initial(icon_state)]_burst") in icon_states(icon))
|
||||||
|
icon_state = "[initial(icon_state)]_burst"
|
||||||
|
item_state = icon_state
|
||||||
|
else
|
||||||
|
qdel(src) // Just qdel it if it doesn't have a burst state.
|
||||||
|
if(BALLOON_BLOW)
|
||||||
|
if(("[initial(icon_state)]_blow") in icon_states(icon)) //Only give blow icon_state if it has one. For those who can't be bothered to sprite. (Also a catch to prevent invisible sprites.)
|
||||||
|
icon_state = "[initial(icon_state)]_blow"
|
||||||
|
update_held_icon()
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/proc/blow(obj/item/tank/T)
|
||||||
|
if(status == BALLOON_BURST)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
src.air_contents = T.remove_air_volume(3)
|
||||||
|
status = BALLOON_BLOW
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/proc/burst()
|
||||||
|
playsound(src, 'sound/weapons/Gunshot_old.ogg', 100, 1)
|
||||||
|
status = BALLOON_BURST
|
||||||
|
update_icon()
|
||||||
|
if(air_contents)
|
||||||
|
loc.assume_air(air_contents)
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/ex_act(severity)
|
||||||
|
burst()
|
||||||
|
switch(severity)
|
||||||
|
if(1)
|
||||||
|
qdel(src)
|
||||||
|
if(2)
|
||||||
|
if(prob(50))
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/bullet_act()
|
||||||
|
burst()
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/fire_act(datum/gas_mixture/air, temperature, volume)
|
||||||
|
if(temperature > T0C+100)
|
||||||
|
burst()
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
|
if(can_puncture(W))
|
||||||
|
burst()
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/random/Initialize()
|
||||||
|
. = ..()
|
||||||
|
color = pick(COLOR_BLUE, COLOR_RED, COLOR_PINK, COLOR_PURPLE, COLOR_GREEN, COLOR_CYAN, COLOR_SUN, COLOR_YELLOW)
|
||||||
|
update_icon()
|
||||||
|
randpixel_xy()
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/syndicate
|
||||||
|
name = "criminal balloon"
|
||||||
|
desc = "There is a tag on the back that reads \"FUK NT!11!\"."
|
||||||
|
icon_state = "syndballoon"
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/nanotrasen
|
||||||
|
name = "corporate balloon"
|
||||||
|
desc = "Across the balloon the following is printed: \"Man, I love NanoTrasen soooo much. I use only NT products. You have NO idea.\""
|
||||||
|
icon_state = "ntballoon"
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/latex
|
||||||
|
desc = "Leaves a starchy taste in your mouth after blowing into it."
|
||||||
|
icon_state = "latexballoon"
|
||||||
|
item_state = "latexballoon"
|
||||||
|
|
||||||
|
/obj/item/toy/balloon/nitrile
|
||||||
|
desc = "I hope you aren't going to re-use these for medical purposes."
|
||||||
|
icon_state = "nitrileballoon"
|
||||||
|
item_state = "nitrileballoon"
|
||||||
|
|
||||||
|
#undef BALLOON_NORMAL
|
||||||
|
#undef BALLOON_BLOW
|
||||||
|
#undef BALLOON_BURST
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fake telebeacon
|
* Fake telebeacon
|
||||||
@@ -239,7 +321,6 @@
|
|||||||
/obj/item/toy/snappop
|
/obj/item/toy/snappop
|
||||||
name = "snap pop"
|
name = "snap pop"
|
||||||
desc = "Wow!"
|
desc = "Wow!"
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "snappop"
|
icon_state = "snappop"
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
drop_sound = null
|
drop_sound = null
|
||||||
@@ -277,7 +358,6 @@
|
|||||||
/obj/item/toy/bosunwhistle
|
/obj/item/toy/bosunwhistle
|
||||||
name = "bosun's whistle"
|
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."
|
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"
|
icon_state = "bosunwhistle"
|
||||||
drop_sound = 'sound/items/drop/card.ogg'
|
drop_sound = 'sound/items/drop/card.ogg'
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -296,7 +376,6 @@
|
|||||||
/obj/item/toy/figure
|
/obj/item/toy/figure
|
||||||
name = "Non-Specific Action Figure action figure"
|
name = "Non-Specific Action Figure action figure"
|
||||||
desc = "A \"Space Life\" brand... wait, what the hell is this thing?"
|
desc = "A \"Space Life\" brand... wait, what the hell is this thing?"
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "nuketoy"
|
icon_state = "nuketoy"
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -634,7 +713,6 @@
|
|||||||
/obj/item/toy/plushie/carp
|
/obj/item/toy/plushie/carp
|
||||||
name = "space carp plushie"
|
name = "space carp plushie"
|
||||||
desc = "An adorable stuffed toy that resembles a space carp."
|
desc = "An adorable stuffed toy that resembles a space carp."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "basecarp"
|
icon_state = "basecarp"
|
||||||
attack_verb = list("bitten", "eaten", "fin slapped")
|
attack_verb = list("bitten", "eaten", "fin slapped")
|
||||||
var/bitesound = 'sound/weapons/bite.ogg'
|
var/bitesound = 'sound/weapons/bite.ogg'
|
||||||
@@ -800,7 +878,6 @@
|
|||||||
/obj/item/toy/plushie
|
/obj/item/toy/plushie
|
||||||
name = "generic small plush"
|
name = "generic small plush"
|
||||||
desc = "A small toy plushie. It's very cute."
|
desc = "A small toy plushie. It's very cute."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "nymphplushie"
|
icon_state = "nymphplushie"
|
||||||
drop_sound = 'sound/items/drop/plushie.ogg'
|
drop_sound = 'sound/items/drop/plushie.ogg'
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
@@ -1171,7 +1248,6 @@
|
|||||||
/obj/item/toy/stickhorse
|
/obj/item/toy/stickhorse
|
||||||
name = "stick horse"
|
name = "stick horse"
|
||||||
desc = "A pretend horse on a stick for any aspiring little cowboy to ride."
|
desc = "A pretend horse on a stick for any aspiring little cowboy to ride."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "stickhorse"
|
icon_state = "stickhorse"
|
||||||
w_class = ITEMSIZE_LARGE
|
w_class = ITEMSIZE_LARGE
|
||||||
|
|
||||||
@@ -1182,7 +1258,6 @@
|
|||||||
/obj/item/toy/eight_ball
|
/obj/item/toy/eight_ball
|
||||||
name = "\improper Magic 8-Ball"
|
name = "\improper Magic 8-Ball"
|
||||||
desc = "Mystical! Magical! Ages 8+!"
|
desc = "Mystical! Magical! Ages 8+!"
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "eight-ball"
|
icon_state = "eight-ball"
|
||||||
var/use_action = "shakes the ball"
|
var/use_action = "shakes the ball"
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -1206,7 +1281,6 @@
|
|||||||
|
|
||||||
// DND Character minis. Use the naming convention (type)character for the icon states.
|
// DND Character minis. Use the naming convention (type)character for the icon states.
|
||||||
/obj/item/toy/character
|
/obj/item/toy/character
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
pixel_z = 5
|
pixel_z = 5
|
||||||
|
|
||||||
@@ -1255,7 +1329,6 @@
|
|||||||
/obj/item/toy/AI
|
/obj/item/toy/AI
|
||||||
name = "toy AI"
|
name = "toy AI"
|
||||||
desc = "A little toy model AI core!"// with real law announcing action!" //Alas, requires a rewrite of how ion laws work.
|
desc = "A little toy model AI core!"// with real law announcing action!" //Alas, requires a rewrite of how ion laws work.
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "AI"
|
icon_state = "AI"
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -1274,7 +1347,6 @@
|
|||||||
/obj/item/toy/owl
|
/obj/item/toy/owl
|
||||||
name = "owl action figure"
|
name = "owl action figure"
|
||||||
desc = "An action figure modeled after 'The Owl', defender of justice."
|
desc = "An action figure modeled after 'The Owl', defender of justice."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "owlprize"
|
icon_state = "owlprize"
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -1293,7 +1365,6 @@
|
|||||||
/obj/item/toy/griffin
|
/obj/item/toy/griffin
|
||||||
name = "griffin action figure"
|
name = "griffin action figure"
|
||||||
desc = "An action figure modeled after 'The Griffin', criminal mastermind."
|
desc = "An action figure modeled after 'The Griffin', criminal mastermind."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "griffinprize"
|
icon_state = "griffinprize"
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
@@ -1322,7 +1393,6 @@
|
|||||||
/obj/item/toy/xmastree
|
/obj/item/toy/xmastree
|
||||||
name = "Miniature Christmas tree"
|
name = "Miniature Christmas tree"
|
||||||
desc = "Tiny cute Christmas tree."
|
desc = "Tiny cute Christmas tree."
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
icon_state = "tinyxmastree"
|
icon_state = "tinyxmastree"
|
||||||
w_class = ITEMSIZE_TINY
|
w_class = ITEMSIZE_TINY
|
||||||
force = 1
|
force = 1
|
||||||
@@ -1421,10 +1491,24 @@
|
|||||||
else if (user.a_intent == I_HURT)
|
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>")
|
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)
|
else if (user.a_intent == I_GRAB)
|
||||||
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to pop [src]!</span>","<span class='warning'>You attempt to pop [src]!</span>")
|
if(prob(66))
|
||||||
|
user.visible_message("<span class='warning'><b>\The [user]</b> attempts to pop [src]!</span>","<span class='warning'>You attempt to pop [src]!</span>")
|
||||||
|
else
|
||||||
|
user.visible_message("<span class='warning'><b>\The [user]</b> pops [src]!</span>","<span class='warning'>You pop [src]!</span>")
|
||||||
|
burst()
|
||||||
else
|
else
|
||||||
user.visible_message("<span class='notice'><b>\The [user]</b> lightly bats the [src].</span>","<span class='notice'>You lightly bat the [src].</span>")
|
user.visible_message("<span class='notice'><b>\The [user]</b> lightly bats the [src].</span>","<span class='notice'>You lightly bat the [src].</span>")
|
||||||
|
|
||||||
|
/obj/structure/balloon/bullet_act()
|
||||||
|
burst()
|
||||||
|
|
||||||
|
/obj/structure/balloon/proc/burst()
|
||||||
|
playsound(src, 'sound/weapons/Gunshot_old.ogg', 100, 1)
|
||||||
|
if(("[initial(icon_state)]_burst") in icon_states(icon))
|
||||||
|
icon_state = "[initial(icon_state)]_burst"
|
||||||
|
else
|
||||||
|
qdel(src) // Just qdel it if it doesn't have a burst state.
|
||||||
|
|
||||||
/obj/structure/balloon/bat
|
/obj/structure/balloon/bat
|
||||||
name = "giant bat balloon"
|
name = "giant bat balloon"
|
||||||
desc = "A large balloon in the shape of a spooky bat with orange eyes."
|
desc = "A large balloon in the shape of a spooky bat with orange eyes."
|
||||||
@@ -1435,12 +1519,21 @@
|
|||||||
desc = "Oh no, it's a ghost! Oh wait, it's just a balloon. Phew!"
|
desc = "Oh no, it's a ghost! Oh wait, it's just a balloon. Phew!"
|
||||||
icon_state = "ghostballoon"
|
icon_state = "ghostballoon"
|
||||||
|
|
||||||
|
/obj/structure/balloon/xmas
|
||||||
|
name = "giant xmas tree balloon"
|
||||||
|
desc = "Gather round the inflatable winter tree and exchange inflatable winter gifts. Non-Unitarians welcome."
|
||||||
|
icon_state = "xmastreeballoon"
|
||||||
|
|
||||||
|
/obj/structure/balloon/candycane
|
||||||
|
name = "giant candy cane balloon"
|
||||||
|
desc = "A small tag reads 'Not for consumption'."
|
||||||
|
icon_state = "candycaneballoon"
|
||||||
|
|
||||||
//ship models
|
//ship models
|
||||||
/obj/item/toy/modelship
|
/obj/item/toy/modelship
|
||||||
name = "Model ship"
|
name = "Model ship"
|
||||||
desc = "A model of a SolGov ship, in 1:250th scale, on a handsome wooden stand. Small lights blink on the hull and at the engine exhaust."
|
desc = "A model of a SolGov ship, in 1:250th scale, on a handsome wooden stand. Small lights blink on the hull and at the engine exhaust."
|
||||||
icon_state = "ship_model_1"
|
icon_state = "ship_model_1"
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
|
|
||||||
/obj/item/toy/modelship/two
|
/obj/item/toy/modelship/two
|
||||||
desc = "A small model of a spaceship, in 1:278th scale, it has small lights iluminating it's windows and engines."
|
desc = "A small model of a spaceship, in 1:278th scale, it has small lights iluminating it's windows and engines."
|
||||||
@@ -1450,7 +1543,6 @@
|
|||||||
/obj/item/toy/desk
|
/obj/item/toy/desk
|
||||||
name = "desk toy master"
|
name = "desk toy master"
|
||||||
desc = "A object that does not exist. Parent Item"
|
desc = "A object that does not exist. Parent Item"
|
||||||
icon = 'icons/obj/toy.dmi'
|
|
||||||
|
|
||||||
var/on = 0
|
var/on = 0
|
||||||
var/activation_sound = 'sound/weapons/empty.ogg'
|
var/activation_sound = 'sound/weapons/empty.ogg'
|
||||||
@@ -1486,4 +1578,4 @@
|
|||||||
/obj/item/toy/desk/dippingbird
|
/obj/item/toy/desk/dippingbird
|
||||||
name = "dipping bird toy"
|
name = "dipping bird toy"
|
||||||
desc = "An ancient human bird idol, worshipped by clerks and desk jockeys."
|
desc = "An ancient human bird idol, worshipped by clerks and desk jockeys."
|
||||||
icon_state= "dippybird"
|
icon_state= "dippybird"
|
||||||
|
|||||||
@@ -121,9 +121,10 @@ var/global/list/tank_gauge_cache = list()
|
|||||||
if ((istype(W, /obj/item/analyzer)) && get_dist(user, src) <= 1)
|
if ((istype(W, /obj/item/analyzer)) && get_dist(user, src) <= 1)
|
||||||
var/obj/item/analyzer/A = W
|
var/obj/item/analyzer/A = W
|
||||||
A.analyze_gases(src, user)
|
A.analyze_gases(src, user)
|
||||||
else if (istype(W,/obj/item/latexballon))
|
|
||||||
var/obj/item/latexballon/LB = W
|
if (istype(W, /obj/item/toy/balloon))
|
||||||
LB.blow(src)
|
var/obj/item/toy/balloon/B = W
|
||||||
|
B.blow(src)
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
|
|
||||||
if(istype(W, /obj/item/stack/cable_coil))
|
if(istype(W, /obj/item/stack/cable_coil))
|
||||||
|
|||||||
@@ -289,13 +289,13 @@
|
|||||||
/obj/structure/closet/crate
|
/obj/structure/closet/crate
|
||||||
),
|
),
|
||||||
prob(2);list(
|
prob(2);list(
|
||||||
/obj/item/latexballon,
|
/obj/item/toy/balloon/random,
|
||||||
/obj/item/latexballon,
|
/obj/item/toy/balloon/random,
|
||||||
/obj/structure/closet/crate
|
/obj/structure/closet/crate
|
||||||
),
|
),
|
||||||
prob(2);list(
|
prob(2);list(
|
||||||
/obj/item/toy/syndicateballoon,
|
/obj/item/toy/balloon/syndicate,
|
||||||
/obj/item/toy/syndicateballoon,
|
/obj/item/toy/balloon/syndicate,
|
||||||
/obj/structure/closet/crate
|
/obj/structure/closet/crate
|
||||||
),
|
),
|
||||||
prob(2);list(
|
prob(2);list(
|
||||||
|
|||||||
@@ -741,7 +741,7 @@
|
|||||||
/obj/item/toy/katana,
|
/obj/item/toy/katana,
|
||||||
/obj/item/toy/snappop,
|
/obj/item/toy/snappop,
|
||||||
/obj/item/toy/sword,
|
/obj/item/toy/sword,
|
||||||
/obj/item/toy/balloon,
|
/obj/random/balloon,
|
||||||
/obj/item/gun/projectile/revolver/toy/crossbow,
|
/obj/item/gun/projectile/revolver/toy/crossbow,
|
||||||
/obj/item/toy/blink,
|
/obj/item/toy/blink,
|
||||||
/obj/item/reagent_containers/spray/waterflower,
|
/obj/item/reagent_containers/spray/waterflower,
|
||||||
@@ -759,6 +759,19 @@
|
|||||||
/obj/item/toy/mecha/odysseus,
|
/obj/item/toy/mecha/odysseus,
|
||||||
/obj/item/toy/mecha/phazon)
|
/obj/item/toy/mecha/phazon)
|
||||||
|
|
||||||
|
/obj/random/balloon
|
||||||
|
name = "random balloon"
|
||||||
|
desc = "This is a random balloon."
|
||||||
|
icon = 'icons/obj/toy.dmi'
|
||||||
|
icon_state = "colorballoon"
|
||||||
|
|
||||||
|
/obj/random/balloon/item_to_spawn()
|
||||||
|
return pick(prob(7);/obj/item/toy/balloon/random,
|
||||||
|
prob(2);/obj/item/toy/balloon/latex,
|
||||||
|
prob(2);/obj/item/toy/balloon/nitrile,
|
||||||
|
prob(1);/obj/item/toy/balloon/syndicate,
|
||||||
|
prob(1);/obj/item/toy/balloon/nanotrasen)
|
||||||
|
|
||||||
/obj/random/mouseremains
|
/obj/random/mouseremains
|
||||||
name = "random mouseremains"
|
name = "random mouseremains"
|
||||||
desc = "For use with mouse spawners."
|
desc = "For use with mouse spawners."
|
||||||
|
|||||||
@@ -551,4 +551,4 @@ var/global/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
|
|||||||
/datum/gear_tweak/implant_location/get_metadata(var/user, var/metadata)
|
/datum/gear_tweak/implant_location/get_metadata(var/user, var/metadata)
|
||||||
return (input(user, "Select a bodypart for the implant to be implanted inside.", "Implant Location", metadata || "upper body") as null|anything in bodypart_names_to_tokens) || bodypart_tokens_to_names[BP_TORSO]
|
return (input(user, "Select a bodypart for the implant to be implanted inside.", "Implant Location", metadata || "upper body") as null|anything in bodypart_names_to_tokens) || bodypart_tokens_to_names[BP_TORSO]
|
||||||
|
|
||||||
#undef LOADOUT_BAN_STRING
|
#undef LOADOUT_BAN_STRING
|
||||||
|
|||||||
@@ -58,12 +58,18 @@
|
|||||||
fingerprint_chance = 25
|
fingerprint_chance = 25
|
||||||
drop_sound = 'sound/items/drop/rubber.ogg'
|
drop_sound = 'sound/items/drop/rubber.ogg'
|
||||||
pickup_sound = 'sound/items/pickup/rubber.ogg'
|
pickup_sound = 'sound/items/pickup/rubber.ogg'
|
||||||
// var/balloonPath = /obj/item/latexballon
|
var/balloon = /obj/item/toy/balloon/latex
|
||||||
|
|
||||||
//TODO: Make inflating gloves a thing
|
/obj/item/clothing/gloves/sterile/attackby(var/obj/O, mob/user as mob)
|
||||||
/*/obj/item/clothing/gloves/sterile/proc/Inflate(/mob/living/carbon/human/user)
|
if(istype(O, /obj/item/stack/cable_coil))
|
||||||
user.visible_message("<span class='notice'>\The [src] expands!</span>")
|
var/obj/item/stack/cable_coil/C = O
|
||||||
qdel(src)*/
|
if(C.use(1))
|
||||||
|
var/obj/item/L = new src.balloon
|
||||||
|
user.drop_from_inventory(L,get_turf(src))
|
||||||
|
to_chat(user, "<span class='notice'>You make a balloon.</span>")
|
||||||
|
qdel(src)
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>You need one length of cable to finish the balloon!</span>")
|
||||||
|
|
||||||
/obj/item/clothing/gloves/sterile/latex
|
/obj/item/clothing/gloves/sterile/latex
|
||||||
name = "latex gloves"
|
name = "latex gloves"
|
||||||
@@ -74,7 +80,7 @@
|
|||||||
desc = "Sterile nitrile gloves"
|
desc = "Sterile nitrile gloves"
|
||||||
icon_state = "nitrile"
|
icon_state = "nitrile"
|
||||||
item_state = "ngloves"
|
item_state = "ngloves"
|
||||||
// balloonPath = /obj/item/nitrileballoon
|
balloon = /obj/item/toy/balloon/nitrile
|
||||||
|
|
||||||
/obj/item/clothing/gloves/botanic_leather
|
/obj/item/clothing/gloves/botanic_leather
|
||||||
desc = "These leather work gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
|
desc = "These leather work gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
|
||||||
|
|||||||
@@ -56,12 +56,12 @@
|
|||||||
if(51 to 52) // Uncommon, 2% each
|
if(51 to 52) // Uncommon, 2% each
|
||||||
new/obj/item/melee/classic_baton(src)
|
new/obj/item/melee/classic_baton(src)
|
||||||
if(53 to 54)
|
if(53 to 54)
|
||||||
new/obj/item/latexballon(src)
|
new/obj/item/toy/balloon/random(src)
|
||||||
if(55 to 56)
|
if(55 to 56)
|
||||||
var/newitem = pick(typesof(/obj/item/toy/mecha) - /obj/item/toy/mecha)
|
var/newitem = pick(typesof(/obj/item/toy/mecha) - /obj/item/toy/mecha)
|
||||||
new newitem(src)
|
new newitem(src)
|
||||||
if(57 to 58)
|
if(57 to 58)
|
||||||
new/obj/item/toy/syndicateballoon(src)
|
new/obj/item/toy/balloon/syndicate(src)
|
||||||
if(59 to 60)
|
if(59 to 60)
|
||||||
new/obj/item/rig(src)
|
new/obj/item/rig(src)
|
||||||
if(61 to 62)
|
if(61 to 62)
|
||||||
|
|||||||
@@ -221,8 +221,8 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
|||||||
/obj/random/action_figure,
|
/obj/random/action_figure,
|
||||||
/obj/random/action_figure,
|
/obj/random/action_figure,
|
||||||
/obj/random/action_figure,
|
/obj/random/action_figure,
|
||||||
/obj/item/toy/nanotrasenballoon,
|
/obj/random/balloon,
|
||||||
/obj/item/toy/syndicateballoon,
|
/obj/random/balloon,
|
||||||
/obj/item/toy/sword,
|
/obj/item/toy/sword,
|
||||||
/obj/item/toy/sword,
|
/obj/item/toy/sword,
|
||||||
/obj/item/toy/sword,
|
/obj/item/toy/sword,
|
||||||
@@ -257,7 +257,9 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
|||||||
/obj/item/clothing/accessory/scarf/christmas,
|
/obj/item/clothing/accessory/scarf/christmas,
|
||||||
/obj/item/clothing/accessory/scarf/christmas,
|
/obj/item/clothing/accessory/scarf/christmas,
|
||||||
/obj/item/clothing/accessory/scarf/christmas,
|
/obj/item/clothing/accessory/scarf/christmas,
|
||||||
/obj/item/clothing/accessory/scarf/christmas
|
/obj/item/clothing/accessory/scarf/christmas,
|
||||||
|
/obj/structure/balloon/candycane,
|
||||||
|
/obj/structure/balloon/xmas
|
||||||
)
|
)
|
||||||
|
|
||||||
/datum/supply_drop_loot/materials
|
/datum/supply_drop_loot/materials
|
||||||
@@ -320,4 +322,4 @@ var/global/list/datum/supply_drop_loot/supply_drop
|
|||||||
/obj/item/reagent_containers/glass/bottle/inaprovaline,
|
/obj/item/reagent_containers/glass/bottle/inaprovaline,
|
||||||
/obj/item/reagent_containers/glass/bottle/inaprovaline,
|
/obj/item/reagent_containers/glass/bottle/inaprovaline,
|
||||||
/obj/item/storage/box/syringes,
|
/obj/item/storage/box/syringes,
|
||||||
/obj/item/storage/box/autoinjectors)
|
/obj/item/storage/box/autoinjectors)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 47 KiB |
@@ -7598,7 +7598,7 @@
|
|||||||
"cQf" = (/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green,/turf/simulated/floor/carpet,/area/crew_quarters/longue_area)
|
"cQf" = (/obj/structure/bed/chair/comfy/black{dir = 8},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 12; pixel_y = -24},/obj/structure/cable/green,/turf/simulated/floor/carpet,/area/crew_quarters/longue_area)
|
||||||
"cQg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/longue_area)
|
"cQg" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/longue_area)
|
||||||
"cQh" = (/obj/machinery/door/airlock{name = "Unisex Showers"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet)
|
"cQh" = (/obj/machinery/door/airlock{name = "Unisex Showers"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/locker/locker_toilet)
|
||||||
"cQi" = (/obj/item/latexballon,/turf/simulated/floor,/area/crew_quarters/locker/locker_toilet)
|
"cQi" = (/obj/item/toy/balloon/latex,/turf/simulated/floor,/area/crew_quarters/locker/locker_toilet)
|
||||||
"cQj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
"cQj" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
||||||
"cQk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
"cQk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
||||||
"cQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
"cQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/sleep/vistor_room_1)
|
||||||
|
|||||||
@@ -93907,7 +93907,7 @@
|
|||||||
/turf/simulated/floor/tiled/freezer,
|
/turf/simulated/floor/tiled/freezer,
|
||||||
/area/construction/seconddeck/construction2)
|
/area/construction/seconddeck/construction2)
|
||||||
"dsS" = (
|
"dsS" = (
|
||||||
/obj/item/latexballon,
|
/obj/item/toy/balloon/latex,
|
||||||
/turf/simulated/floor,
|
/turf/simulated/floor,
|
||||||
/area/construction/seconddeck/construction2)
|
/area/construction/seconddeck/construction2)
|
||||||
"dsT" = (
|
"dsT" = (
|
||||||
|
|||||||
@@ -954,7 +954,6 @@
|
|||||||
#include "code\game\objects\items\crayons.dm"
|
#include "code\game\objects\items\crayons.dm"
|
||||||
#include "code\game\objects\items\glassjar.dm"
|
#include "code\game\objects\items\glassjar.dm"
|
||||||
#include "code\game\objects\items\gunbox.dm"
|
#include "code\game\objects\items\gunbox.dm"
|
||||||
#include "code\game\objects\items\latexballoon.dm"
|
|
||||||
#include "code\game\objects\items\magazine.dm"
|
#include "code\game\objects\items\magazine.dm"
|
||||||
#include "code\game\objects\items\paintkit.dm"
|
#include "code\game\objects\items\paintkit.dm"
|
||||||
#include "code\game\objects\items\poi_items.dm"
|
#include "code\game\objects\items\poi_items.dm"
|
||||||
|
|||||||