/* Items, Structures, Machines */ // // Items // /obj/item/holo damtype = STAMINA /obj/item/holo/esword name = "holographic energy sword" desc = "May the force be with you. Sorta." icon_state = "sword0" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' force = 3.0 throw_speed = 2 throw_range = 5 throwforce = 0 w_class = WEIGHT_CLASS_SMALL hitsound = "swing_hit" armour_penetration = 50 var/active = 0 /obj/item/holo/esword/green/Initialize() . = ..() item_color = "green" /obj/item/holo/esword/red/Initialize() . = ..() item_color = "red" /obj/item/holo/esword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(active) return ..() return 0 /obj/item/holo/esword/attack(target as mob, mob/user as mob) ..() /obj/item/holo/esword/Initialize() . = ..() item_color = pick("red","blue","green","purple") /obj/item/holo/esword/attack_self(mob/living/user as mob) active = !active if (active) force = 30 icon_state = "sword[item_color]" w_class = WEIGHT_CLASS_BULKY hitsound = 'sound/weapons/blade1.ogg' playsound(user, 'sound/weapons/saberon.ogg', 20, 1) to_chat(user, "[src] is now active.") else force = 3 icon_state = "sword0" w_class = WEIGHT_CLASS_SMALL hitsound = "swing_hit" playsound(user, 'sound/weapons/saberoff.ogg', 20, 1) to_chat(user, "[src] can now be concealed.") return //BASKETBALL OBJECTS /obj/item/toy/beach_ball/holoball name = "basketball" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "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/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.Knockdown(60) visible_message("[M] is knocked right off [M.p_their()] feet!") // // Structures // /obj/structure/holohoop name = "basketball hoop" desc = "Boom, shakalaka!" icon = 'icons/obj/basketball.dmi' icon_state = "hoop" anchored = TRUE density = TRUE /obj/structure/holohoop/attackby(obj/item/W as obj, mob/user as mob, params) if(get_dist(src,user)<2) if(user.transferItemToLoc(W, drop_location())) visible_message(" [user] dunks [W] into \the [src]!") /obj/structure/holohoop/attack_hand(mob/user) . = ..() if(.) return if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) var/mob/living/L = user.pulling if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return L.forceMove(loc) L.Knockdown(100) visible_message("[user] dunks [L] into \the [src]!") user.stop_pulling() else ..() /obj/structure/holohoop/hitby(atom/movable/AM) if (isitem(AM) && !istype(AM,/obj/item/projectile)) if(prob(50)) AM.forceMove(get_turf(src)) visible_message("Swish! [AM] lands in [src].") return else visible_message("[AM] bounces off of [src]'s rim!") return ..() 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 = FALSE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 6 power_channel = ENVIRON /obj/machinery/readybutton/attack_ai(mob/user as mob) to_chat(user, "The station AI is not to interact with these devices.") return /obj/machinery/readybutton/attack_paw(mob/user as mob) to_chat(user, "You are too primitive to use this device!") return /obj/machinery/readybutton/attackby(obj/item/W as obj, mob/user as mob, params) to_chat(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(.) return if(user.stat || stat & (NOPOWER|BROKEN)) to_chat(user, "This device is not powered!") return currentarea = get_area(src.loc) if(!currentarea) qdel(src) if(eventstarted) to_chat(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 = TRUE for(var/obj/structure/window/W in currentarea) if(W.flags_1&NODECONSTRUCT_1) // Just in case: only holo-windows qdel(W) for(var/mob/M in currentarea) to_chat(M, "FIGHT!") /obj/machinery/conveyor/holodeck /obj/machinery/conveyor/holodeck/attackby(obj/item/I, mob/user, params) if(!user.transferItemToLoc(I, drop_location())) return ..() /obj/item/paper/fluff/holodeck/trek_diploma name = "paper - Starfleet Academy Diploma" info = {"
Official Diploma
"} /obj/item/paper/fluff/holodeck/disclaimer name = "Holodeck Disclaimer" info = "Bruises sustained in the holodeck can be healed simply by sleeping."