mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Preparing for the summer: baseball and dodgeballs! (#19627)
* welcome to the space jam * Apply suggestions from code review Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com> * review suggestions * conflict solve mistake * Apply suggestions from code review Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * Update code/game/objects/items/sport.dm Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * wear suit check Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com> Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
This commit is contained in:
@@ -511,58 +511,6 @@
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
//BASKETBALL OBJECTS
|
||||
/obj/item/beach_ball/holoball
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "basketball"
|
||||
name = "basketball"
|
||||
item_state = "basketball"
|
||||
desc = "Here's your chance, do your dance at the Space Jam."
|
||||
w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets
|
||||
|
||||
/obj/item/beach_ball/holoball/baseball
|
||||
icon_state = "baseball"
|
||||
name = "baseball"
|
||||
item_state = "baseball"
|
||||
desc = "Take me out to the ball game."
|
||||
|
||||
/obj/structure/holohoop
|
||||
name = "basketball hoop"
|
||||
desc = "Boom, Shakalaka!"
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "hoop"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
pass_flags = LETPASSTHROW
|
||||
|
||||
/obj/structure/holohoop/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/grab) && get_dist(src,user)<2)
|
||||
var/obj/item/grab/G = W
|
||||
if(G.state<2)
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
return
|
||||
G.affecting.loc = src.loc
|
||||
G.affecting.Weaken(10 SECONDS)
|
||||
visible_message("<span class='warning'>[G.assailant] dunks [G.affecting] into [src]!</span>")
|
||||
qdel(W)
|
||||
return
|
||||
else if(isitem(W) && get_dist(src,user)<2)
|
||||
user.drop_item(src)
|
||||
visible_message("<span class='notice'>[user] dunks [W] into [src]!</span>")
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/holohoop/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
|
||||
if(isitem(AM) && !istype(AM,/obj/item/projectile))
|
||||
if(prob(50))
|
||||
AM.forceMove(get_turf(src))
|
||||
visible_message("<span class='notice'>Swish! [AM] lands in [src].</span>")
|
||||
else
|
||||
visible_message("<span class='danger'>[AM] bounces off of [src]'s rim!</span>")
|
||||
return ..()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/readybutton
|
||||
name = "Ready Declaration Device"
|
||||
desc = "This device is used to declare ready. If all devices in an area are ready, the event will begin!"
|
||||
|
||||
@@ -10,20 +10,6 @@
|
||||
|
||||
/obj/item/mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
|
||||
/obj/item/beach_ball
|
||||
icon = 'icons/misc/beach.dmi'
|
||||
icon_state = "ball"
|
||||
name = "beach ball"
|
||||
item_state = "beachball"
|
||||
density = FALSE
|
||||
anchored = FALSE
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
force = 0.0
|
||||
throwforce = 0.0
|
||||
throw_speed = 1
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/petcollar
|
||||
name = "pet collar"
|
||||
desc = "The latest fashion accessory for your favorite pets!"
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
/obj/item/beach_ball
|
||||
name = "beach ball"
|
||||
icon = 'icons/misc/beach.dmi'
|
||||
desc = "An inflatable ball of fun, enjoyed on many beaches."
|
||||
icon_state = "ball"
|
||||
item_state = "beachball"
|
||||
density = FALSE
|
||||
anchored = FALSE
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
force = 0
|
||||
throwforce = 0
|
||||
throw_speed = 1
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/beach_ball/baseball
|
||||
name = "baseball"
|
||||
desc = "Take me out to the ball game."
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "baseball"
|
||||
item_state = "baseball"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
|
||||
/obj/item/beach_ball/dodgeball
|
||||
name = "dodgeball"
|
||||
desc = "Used for playing the most violent and degrading of childhood games. This one is connected to the laser tag armour system."
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "dodgeball"
|
||||
item_state = "dodgeball"
|
||||
var/list/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
|
||||
|
||||
/obj/item/beach_ball/dodgeball/throw_impact(atom/hit_atom)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/M = hit_atom
|
||||
if(ishuman(hit_atom) && (M.wear_suit?.type in suit_types))
|
||||
if(M.r_hand == src || M.l_hand == src)
|
||||
return
|
||||
playsound(src, 'sound/items/dodgeball.ogg', 50, 1)
|
||||
M.KnockDown(6 SECONDS)
|
||||
|
||||
/obj/item/beach_ball/holoball
|
||||
name = "basketball"
|
||||
desc = "Here's your chance, do your dance at the Space Jam."
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "basketball"
|
||||
item_state = "basketball"
|
||||
w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets
|
||||
|
||||
/obj/structure/holohoop
|
||||
name = "basketball hoop"
|
||||
desc = "Boom, Shakalaka!"
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "hoop"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
pass_flags = LETPASSTHROW
|
||||
|
||||
/obj/structure/holohoop/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/grab) && get_dist(src, user) <= 1)
|
||||
var/obj/item/grab/G = W
|
||||
if(G.state < GRAB_AGGRESSIVE)
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
return
|
||||
G.affecting.forceMove(loc)
|
||||
G.affecting.Weaken(10 SECONDS)
|
||||
visible_message("<span class='warning'>[G.assailant] dunks [G.affecting] into [src]!</span>")
|
||||
qdel(W)
|
||||
return
|
||||
else if(isitem(W) && get_dist(src,user) <= 1)
|
||||
user.drop_item(src)
|
||||
visible_message("<span class='notice'>[user] dunks [W] into [src]!</span>")
|
||||
return
|
||||
|
||||
/obj/structure/holohoop/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
|
||||
if(isitem(AM) && !istype(AM, /obj/item/projectile))
|
||||
if(prob(50))
|
||||
AM.forceMove(get_turf(src))
|
||||
visible_message("<span class='notice'>Swish! [AM] lands in [src].</span>")
|
||||
else
|
||||
visible_message("<span class='danger'>[AM] bounces off of [src]'s rim!</span>")
|
||||
return ..()
|
||||
else
|
||||
return ..()
|
||||
@@ -51,6 +51,7 @@
|
||||
open_door_sprite = "generic_door"
|
||||
|
||||
/obj/structure/closet/lasertag/red/populate_contents()
|
||||
new /obj/item/beach_ball/dodgeball(src)
|
||||
new /obj/item/gun/energy/laser/tag/red(src)
|
||||
new /obj/item/gun/energy/laser/tag/red(src)
|
||||
new /obj/item/gun/energy/laser/tag/red(src)
|
||||
@@ -67,6 +68,7 @@
|
||||
open_door_sprite = "generic_door"
|
||||
|
||||
/obj/structure/closet/lasertag/blue/populate_contents()
|
||||
new /obj/item/beach_ball/dodgeball(src)
|
||||
new /obj/item/gun/energy/laser/tag/blue(src)
|
||||
new /obj/item/gun/energy/laser/tag/blue(src)
|
||||
new /obj/item/gun/energy/laser/tag/blue(src)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
to_chat(H, "<B>You are part of the [station_name()] dodgeball tournament. Throw dodgeballs at crewmembers wearing a different color than you. OOC: Use THROW on an EMPTY-HAND to catch thrown dodgeballs.</B>")
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_l_ear)
|
||||
H.equip_to_slot_or_del(new /obj/item/beach_ball/dodgeball(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/beach_ball/dodgeball_team(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
|
||||
|
||||
if(!team_toggle)
|
||||
@@ -61,14 +61,14 @@
|
||||
log_admin("[key_name(usr)] used dodgeball.")
|
||||
GLOB.nologevent = 1
|
||||
|
||||
/obj/item/beach_ball/dodgeball
|
||||
/obj/item/beach_ball/dodgeball_team
|
||||
name = "dodgeball"
|
||||
desc = "Used for playing the most violent and degrading of childhood games."
|
||||
icon = 'icons/obj/basketball.dmi'
|
||||
icon_state = "dodgeball"
|
||||
item_state = "dodgeball"
|
||||
desc = "Used for playing the most violent and degrading of childhood games."
|
||||
|
||||
/obj/item/beach_ball/dodgeball/throw_impact(atom/hit_atom)
|
||||
/obj/item/beach_ball/dodgeball_team/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
if((ishuman(hit_atom)))
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
|
||||
/datum/supply_packs/misc/lasertag
|
||||
name = "Laser Tag Crate"
|
||||
contains = list(/obj/item/gun/energy/laser/tag/red,
|
||||
contains = list(/obj/item/beach_ball/dodgeball,
|
||||
/obj/item/beach_ball/dodgeball,
|
||||
/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/red,
|
||||
/obj/item/gun/energy/laser/tag/blue,
|
||||
@@ -404,7 +406,7 @@
|
||||
|
||||
/datum/supply_packs/misc/teamcolors //For team sports like space polo
|
||||
name = "Team Jerseys Crate"
|
||||
// 4 red jerseys, 4 blue jerseys, and 1 beach ball
|
||||
// 4 red jerseys, 4 blue jerseys, and 1 baseball
|
||||
contains = list(/obj/item/clothing/under/color/red/jersey,
|
||||
/obj/item/clothing/under/color/red/jersey,
|
||||
/obj/item/clothing/under/color/red/jersey,
|
||||
@@ -413,7 +415,7 @@
|
||||
/obj/item/clothing/under/color/blue/jersey,
|
||||
/obj/item/clothing/under/color/blue/jersey,
|
||||
/obj/item/clothing/under/color/blue/jersey,
|
||||
/obj/item/beach_ball)
|
||||
/obj/item/beach_ball/baseball)
|
||||
cost = 300
|
||||
containername = "team jerseys crate"
|
||||
|
||||
|
||||
@@ -901,6 +901,7 @@
|
||||
#include "code\game\objects\items\mixing_bowl.dm"
|
||||
#include "code\game\objects\items\random_items.dm"
|
||||
#include "code\game\objects\items\shooting_range.dm"
|
||||
#include "code\game\objects\items\sport.dm"
|
||||
#include "code\game\objects\items\theft_items.dm"
|
||||
#include "code\game\objects\items\toys.dm"
|
||||
#include "code\game\objects\items\trash.dm"
|
||||
|
||||
Reference in New Issue
Block a user