/* Items, Structures, Machines */ // // Items // /obj/item/weapon/holo damtype = STAMINA /obj/item/weapon/holo/esword name = "holographic energy sword" desc = "May the force be with you. Sorta" icon_state = "sword0" force = 3.0 throw_speed = 2 throw_range = 5 throwforce = 0 w_class = 2.0 hitsound = "swing_hit" armour_penetration = 50 var/active = 0 /obj/item/weapon/holo/esword/green/New() item_color = "green" /obj/item/weapon/holo/esword/red/New() item_color = "red" /obj/item/weapon/holo/esword/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) if(active) return ..() return 0 /obj/item/weapon/holo/esword/attack(target as mob, mob/user as mob) ..() /obj/item/weapon/holo/esword/New() item_color = pick("red","blue","green","purple") /obj/item/weapon/holo/esword/attack_self(mob/living/user as mob) active = !active if (active) force = 30 icon_state = "sword[item_color]" w_class = 4 hitsound = 'sound/weapons/blade1.ogg' playsound(user, 'sound/weapons/saberon.ogg', 20, 1) user << "[src] is now active." else force = 3 icon_state = "sword0" w_class = 2 hitsound = "swing_hit" playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) user << "[src] can now be concealed." return //BASKETBALL OBJECTS /obj/item/toy/beach_ball/holoball name = "basketball" icon = 'icons/obj/basketball.dmi' icon_state = "basketball" item_state = "basketball" desc = "Here's your chance, do your dance at the Space Jam." w_class = 4 //Stops people from hiding it in their bags/pockets /obj/item/toy/beach_ball/holoball/dodgeball name = "dodgeball" icon_state = "dodgeball" item_state = "dodgeball" desc = "Used for playing the most violent and degrading of childhood games." /obj/item/toy/beach_ball/holoball/dodgeball/throw_impact(atom/hit_atom) ..() if((ishuman(hit_atom))) var/mob/living/carbon/M = hit_atom playsound(src, 'sound/items/dodgeball.ogg', 50, 1) M.apply_damage(10, STAMINA) if(prob(5)) M.Weaken(3) visible_message("[M] is knocked right off \his feet!") // // Structures // /obj/structure/holohoop name = "basketball hoop" desc = "Boom, shakalaka!" icon = 'icons/obj/basketball.dmi' icon_state = "hoop" anchored = 1 density = 1 /obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(get_dist(src,user)<2) if(user.drop_item(src)) visible_message(" [user] dunks [W] into \the [src]!") /obj/structure/holohoop/attack_hand(mob/user) if(user.pulling && user.a_intent == "grab" && isliving(user.pulling)) var/mob/living/L = user.pulling if(user.grab_state < GRAB_AGGRESSIVE) user << "You need a better grip to do that!" return L.loc = src.loc L.Weaken(5) visible_message("[user] dunks [L] into \the [src]!") user.stop_pulling() else ..() /obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0) if (istype(mover,/obj/item) && mover.throwing) var/obj/item/I = mover if(istype(I, /obj/item/projectile)) return if(prob(50)) I.loc = src.loc visible_message(" Swish! \the [I] lands in \the [src].") else visible_message(" \the [I] bounces off of \the [src]'s rim!") return 0 else return ..() // // Machines // /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!" icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" var/ready = 0 var/area/currentarea = null var/eventstarted = 0 anchored = 1.0 use_power = 1 idle_power_usage = 2 active_power_usage = 6 power_channel = ENVIRON /obj/machinery/readybutton/attack_ai(mob/user as mob) user << "The station AI is not to interact with these devices" return /obj/machinery/readybutton/attack_paw(mob/user as mob) user << "You are too primitive to use this device!" return /obj/machinery/readybutton/attackby(obj/item/weapon/W as obj, mob/user as mob, params) user << "The device is a solid button, there's nothing you can do with it!" /obj/machinery/readybutton/attack_hand(mob/user as mob) if(user.stat || stat & (NOPOWER|BROKEN)) user << "This device is not powered!" return currentarea = get_area(src.loc) if(!currentarea) qdel(src) if(eventstarted) usr << "The event has already begun!" return ready = !ready update_icon() var/numbuttons = 0 var/numready = 0 for(var/obj/machinery/readybutton/button in currentarea) numbuttons++ if (button.ready) numready++ if(numbuttons == numready) begin_event() /obj/machinery/readybutton/update_icon() if(ready) icon_state = "auth_on" else icon_state = "auth_off" /obj/machinery/readybutton/proc/begin_event() eventstarted = 1 for(var/obj/structure/window/W in currentarea) if(W.flags&NODECONSTRUCT) // Just in case: only holo-windows qdel(W) for(var/mob/M in currentarea) M << "FIGHT!"