/obj/item/device/pizza_bomb name = "pizza box" desc = "A box suited for pizzas." icon = 'icons/obj/food.dmi' icon_state = "pizzabox1" var/timer = 10 //Adjustable timer var/timer_set = 0 var/primed = 0 var/disarmed = 0 var/wires = list("orange", "green", "blue", "yellow", "aqua", "purple") var/correct_wire var/armer //Used for admin purposes /obj/item/device/pizza_bomb/attack_self(mob/user) if(disarmed) user << "\The [src] is disarmed." return if(!timer_set) name = "pizza bomb" desc = "It seems inactive." icon_state = "pizzabox_bomb" timer_set = 1 timer = (input(user, "Set a timer, from one second to ten seconds.", "Timer", "[timer]") as num) * 10 if(!in_range(src, usr) || issilicon(usr) || !usr.canmove || usr.restrained()) timer_set = 0 name = "pizza box" desc = "A box suited for pizzas." icon_state = "pizzabox1" return timer = Clamp(timer, 10, 100) icon_state = "pizzabox1" user << "You set the timer to [timer / 10] before activating the payload and closing \the [src]." message_admins("[key_name(usr)]? has set a timer on a pizza bomb to [timer/10] seconds at (JMP).") log_game("[key_name(usr)] has set the timer on a pizza bomb to [timer/10] seconds ([loc.x],[loc.y],[loc.z]).") armer = usr name = "pizza box" desc = "A box suited for pizzas." return if(!primed) name = "pizza bomb" desc = "OH GOD THAT'S NOT A PIZZA" icon_state = "pizzabox_bomb" audible_message("\icon[src] *beep* *beep*") user << "That's no pizza! That's a bomb!" message_admins("[key_name(usr)]? has triggered a pizza bomb armed by [armer] at (JMP).") log_game("[key_name(usr)] has triggered a pizza bomb armed by [armer] ([loc.x],[loc.y],[loc.z]).") primed = 1 sleep(timer) return go_boom() /obj/item/device/pizza_bomb/proc/go_boom() if(disarmed) visible_message("\icon[src] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!") return src.audible_message("\icon[src] [src] beeps, \"Enjoy the pizza!\"") src.visible_message("\The [src] violently explodes!") explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb qdel(src) /obj/item/device/pizza_bomb/attackby(var/obj/item/I, var/mob/user, params) if(istype(I, /obj/item/weapon/wirecutters) && primed) user << "Oh God, what wire do you cut?!" var/chosen_wire = input(user, "OH GOD OH GOD", "WHAT WIRE?!") in wires if(!in_range(src, usr) || issilicon(usr) || !usr.canmove || usr.restrained()) return playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1) user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!") sleep(5) if(chosen_wire == correct_wire) src.audible_message("\icon[src] \The [src] suddenly stops beeping and seems lifeless.") user << "You did it!" icon_state = "pizzabox_bomb_[correct_wire]" name = "pizza bomb" desc = "A devious contraption, made of a small explosive payload hooked up to pressure-sensitive wires. It's disarmed." disarmed = 1 primed = 0 return else user << "WRONG WIRE!" go_boom() return if(istype(I, /obj/item/weapon/wirecutters) && disarmed) if(!in_range(user, src)) user << "You can't see the box well enough to cut the wires out." return user.visible_message("[user] starts removing the payload and wires from \the [src].") if(do_after(user, 40)) playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1) user.unEquip(src) user.visible_message("[user] removes the insides of \the [src]!") var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(src.loc) C.amount = 3 new /obj/item/weapon/bombcore/miniature(src.loc) new /obj/item/pizzabox(src.loc) qdel(src) return ..() /obj/item/device/pizza_bomb/New() ..() correct_wire = pick(wires)