/obj/effect/landmark/barthpot name = "barthpot" /obj/item/barthpot name = "Bartholomew" icon = 'icons/obj/halloween_items.dmi' icon_state = "barthpot" anchored = TRUE var/items_list = list() speech_span = "spooky" resistance_flags = INDESTRUCTIBLE var/active = TRUE var/BallTutorial = FALSE /obj/item/barthpot/attackby(obj/item/I, mob/user, params) if(BallTutorial) say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!") return if(!active) say("Meow!") return for(var/I2 in items_list) if(istype(I, I2)) qdel(I) new /obj/item/reagent_containers/food/snacks/special_candy(loc) to_chat(user, "You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystallizing in it's wake.") say("Hooray! Thank you!") items_list -= I2 return say("It doesn't seem like that's magical enough!") /obj/item/barthpot/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(BallTutorial) say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!") return if(!active) say("Meow!") return say("Hello there, I'm Bartholomew, Jacqueline's Familiar.") sleep(20) say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalize into a magic candy!") if(!iscarbon(user)) say("Though... I'm not sure you can help me.") var/message = "From what I can tell, " if(LAZYLEN(items_list) < 5) generate_items() for(var/I2 in items_list) if(!I2) items_list -= I2 continue var/obj/item/I3 = new I2 message += "a [I3.name], " message += "currently seem to have the most magic potential." sleep(15) say("[message]") sleep(15) //To help people find her for(var/mob/living/simple_animal/jacq/J in GLOB.simple_animals[1]) var/turf/L1 = J.loc if(!L1) //Incase someone uh.. puts her in a locker return var/area/L2 = L1.loc if(L2) say("Also, it seems that Jacqueline is currently at the [L2], if you're looking for her too.") /obj/item/barthpot/proc/generate_items() var/length = LAZYLEN(items_list) var/rand_items = list(/obj/item/bodybag = 1, /obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/sunglasses = 1, /obj/item/clothing/gloves/color/fyellow = 1, /obj/item/clothing/head/hardhat = 1, /obj/item/clothing/head/hardhat/red = 1, /obj/item/clothing/head/that = 1, /obj/item/clothing/head/ushanka = 1, /obj/item/clothing/head/welding = 1, /obj/item/clothing/mask/gas = 10, /obj/item/clothing/suit/hazardvest = 1, /obj/item/clothing/suit/hooded/flashsuit = 1, /obj/item/assembly/prox_sensor = 4, /obj/item/assembly/timer = 3, /obj/item/flashlight = 6, /obj/item/flashlight/pen = 1, /obj/item/flashlight/glowstick = 4, /obj/item/multitool = 2, /obj/item/radio = 2, /obj/item/t_scanner = 5, /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil = 6, /obj/item/stack/medical/suture = 1, /obj/item/stack/rods = 3, /obj/item/stack/sheet/cardboard = 2, /obj/item/stack/sheet/metal = 1, /obj/item/stack/sheet/mineral/plasma = 1, /obj/item/stack/sheet/rglass = 1, /obj/item/coin = 1, /obj/item/crowbar = 4, /obj/item/extinguisher = 3, /obj/item/hand_labeler = 1, /obj/item/paper = 6, /obj/item/pen = 5, /obj/item/reagent_containers/spray/pestspray = 1, /obj/item/reagent_containers/rag = 3, /obj/item/stock_parts/cell = 3, /obj/item/storage/belt/utility = 2, /obj/item/storage/box = 4, /obj/item/reagent_containers/food/drinks/sillycup = 1, /obj/item/storage/box/donkpockets = 1, /obj/item/storage/box/lights/mixed = 1, /obj/item/storage/box/hug/medical = 1, /obj/item/storage/fancy/cigarettes = 1, /obj/item/storage/toolbox = 1, /obj/item/screwdriver = 3, /obj/item/tank/internals/emergency_oxygen = 2, /obj/item/vending_refill/cola = 1, /obj/item/weldingtool = 3, /obj/item/wirecutters = 2, /obj/item/wrench = 4, /obj/item/weaponcrafting/receiver = 1, /obj/item/geiger_counter = 3, /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 5, /obj/item/assembly/infra = 1, /obj/item/assembly/igniter = 2, /obj/item/assembly/signaler = 2, /obj/item/assembly/mousetrap = 5, /obj/item/reagent_containers/syringe = 5, /obj/item/clothing/gloves = 8, /obj/item/storage/toolbox = 2, /obj/item/reagent_containers/pill = 2, /obj/item/clothing/shoes = 8, /obj/item/clothing/head = 3, /obj/item/reagent_containers/food/snacks = 5, /obj/item/reagent_containers/syringe/dart = 2, /obj/item/reagent_containers/food/drinks/soda_cans = 5, /obj/item/reagent_containers/food/drinks/drinkingglass = 4, /obj/item/reagent_containers/food/drinks = 6, /obj/item/reagent_containers/food/snacks/grown/apple = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 2) if(length >= 5) return TRUE //var/metalist = pickweight(GLOB.maintenance_loot) for(var/i = length, i <= 5, i+=1) var/obj/item = pickweight(rand_items) if(!item) i-=1 continue for(var/obj/item_dupe in items_list) //No duplicates if(item_dupe == item) i-=1 continue items_list += item return TRUE /obj/item/pinpointer/jacq name = "The Jacq-Tracq" desc = "A handheld tracking device that locks onto witchy signals." /obj/item/pinpointer/jacq/attack_self(mob/living/user) for(var/mob/living/simple_animal/jacq/J in GLOB.simple_animals[1]) target = J ..()