diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index 39d97d853b..8a3681808c 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -9,3 +9,44 @@ icon = 'icons/obj/halloween_items.dmi' icon_state = "barthpot" anchored = TRUE + var/list/items_list + +/obj/item/barthpot/Destroy() + var/n = new src(loc) + n.items_list = items_list + ..() + + +/obj/item/barthpot/attackby(obj/item/I, mob/user, params) + if(I) + for(var/obj/item/I2 in items_list) + if(I == I2) + qdel(I) + new /obj/item/reagent_containers/food/snacks/special_candy(loc) + say("Hooray! Thank you!") + 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 crystalise into a magic candy!") + if(!iscarbon(user)) + say("Though... I'm not sure you can help me.") + var/mob/living/carbon/C = user + + /* I'm putting too much effort into this, so I'm dialing it back + var/choices_pot = list("Check items", "Ask a question") + var/choice_pot = input(usr, "What will you do?", "What will you do?") in choices_reward + switch(choice_pot) + if("Check items") + var/message = "From what I can tell, " + if(LAZYLEN(items_list) < 5) + generate_items() + for(var/obj/item/I2 in items_list) + message += "[I2.name], " + message += "currently seem to have the most magic potential." + if("Ask a question") + +/obj/item/barthpot + + +/obj/item/barthpot/proc/chit_chat(mob/living/carbon/C) diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index cbb5516024..94a75781f9 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -20,12 +20,12 @@ /datum/round_event/jacq/start() ..() for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list) - new /mob/living/jacq(Ian.loc)//She poofs on init, so it doesn't matter, so long as Ian exists. + new /mob/living/simple_animal/jacq(Ian.loc)//She poofs on init, so it doesn't matter, so long as Ian exists. /////// MOBS //Whacha doing in here like? Yae wan tae ruin ta magicks? -/mob/living/jacq +/mob/living/simple_animal/jacq name = "Jacqueline the Pumpqueen" real_name = "Jacqueline" icon = 'icons/obj/halloween_items.dmi' @@ -37,53 +37,56 @@ var/tricked = list() //Those who have been tricked var/progression = list() //Keep track of where people are in the story. -/mob/living/jacq/Initialize() +/mob/living/simple_animal/jacq/Initialize() poof() -/mob/living/jacq/Destroy() //I.e invincible +/mob/living/simple_animal/jacq/Destroy() //I.e invincible visible_message("[src] cackles, \"You'll nae get rid a me that easily!\"") playsound(loc, 'sound/spookoween/ahaha.ogg', 100, 1) - var/mob/living/jacq/Jacq = new src.type(loc) + var/mob/living/simple_animal/jacq/Jacq = new src.type(loc) Jacq.tricked = tricked Jacq.progression = progression ..() -/mob/living/jacq/death() //What is alive may never die +/mob/living/simple_animal/jacq/death() //What is alive may never die visible_message("[src] cackles, \"You'll nae get rid a me that easily!\"") playsound(loc, 'sound/spookoween/ahaha.ogg', 100, 1) health = 20 poof() -/mob/living/jacq/attack_hand(mob/living/carbon/human/M) +/mob/living/simple_animal/jacq/attack_hand(mob/living/carbon/human/M) if(M.a_intent == INTENT_HELP) chit_chat(M) M.Stun(0) else ..() -/mob/living/jacq/attack_paw(mob/living/carbon/monkey/M) +/mob/living/simple_animal/jacq/attack_paw(mob/living/carbon/monkey/M) if(M.a_intent == INTENT_HELP) chit_chat(M) M.Stun(0) else ..() -/mob/living/jacq/proc/poof() +/mob/living/simple_animal/jacq/proc/poof() var/datum/reagents/R = new/datum/reagents(100)//Hey, just in case. var/datum/effect_system/smoke_spread/chem/s = new() R.add_reagent("secretcatchem", (10)) - s.set_up(R, 2, loc) + s.set_up(R, 1, loc) s.start() for(var/i = 1, i <= 5, i+=1)//try 5 times to teleport var/area/A = GLOB.sortedAreas["[pick(destinations)]"] + message_admins("[A] Trying") if(A && istype(A)) if(forceMove(safepick(get_area_turfs(A)))) + message_admins("[A] Moved") return TRUE + message_admins("Failed to move") return FALSE //Ye wee bugger, gerrout of it. Ye've nae tae enjoy reading the code fer mae secrets like. -/mob/living/jacq/proc/chit_chat(mob/living/L) +/mob/living/simple_animal/jacq/proc/chit_chat(mob/living/L) var/mob/living/carbon/C = L if(!iscarbon(L)) //Maybe? It seems like a lot of faff for something that is very unlikely to happen. @@ -98,8 +101,8 @@ gender = "lassie" if(!progression["[C.real_name]"] || !(progression["[C.real_name]"] & JACQ_HELLO)) - visible_message("[src] smiles ominously at [L], \"Well hal� there [gender]! Ah�m Jacqueline, tae great Pumpqueen, great tae meet ye.\"") - sleep(20) + visible_message("[src] smiles ominously at [L], \"Well halo there [gender]! Ah'm Jacqueline, tae great Pumpqueen, great tae meet ye.\"") + sleep(50) visible_message("[src] continues, says, \"Ah'm sure yae well stunned, but ah've got nae taem fer that. Ah'm after the candies around this station. If yae get mae enoof o the wee buggers, Ah'll give ye a treat, or if yae feeling bold, Ah ken trick ye instead.\" giving [L] a wide grin.") if(!progression["[C.real_name]"]) progression["[C.real_name]"] += JACQ_HELLO //TO MAKE SURE THAT THE LIST ENTRY EXISTS. @@ -108,7 +111,7 @@ return var/choices = list("Trick", "Treat", "How do I get candies?") - var/choice = input(usr, "Trick or Treat?", "Trick or Treat?") in choices + var/choice = input(C, "Trick or Treat?", "Trick or Treat?") in choices switch(choice) if("Trick") trick(C) @@ -123,7 +126,7 @@ visible_message("[src] says, \"Gae find my familiar; Bartholomew. Ee's tendin the cauldron which ken bring oot t' magic energy in items scattered aroond. Knowing him, ee's probably gone tae somewhere with books.\"") return -/mob/living/jacq/proc/treat(mob/living/carbon/C, gender) +/mob/living/simple_animal/jacq/proc/treat(mob/living/carbon/C, gender) visible_message("[src] gives off a glowing smile, \"What ken Ah offer ye? I can magic up an object, a potion or a plushie fer ye.\"") var/choices_reward = list("Object - 3 candies", "Potion - 2 candies", "Plushie - 1 candy", "Can I ask you a question instead?") var/choice_reward = input(usr, "Trick or Treat?", "Trick or Treat?") in choices_reward @@ -226,7 +229,7 @@ visible_message("[src] shurgs, \"Suit yerself then.\"") -/mob/living/jacq/proc/trick(mob/living/carbon/C, gender) +/mob/living/simple_animal/jacq/proc/trick(mob/living/carbon/C, gender) var/option if(ishuman(C)) option = rand(1,7) @@ -277,7 +280,7 @@ poof() //Blame Fel -/mob/living/jacq/proc/dating_start(mob/living/carbon/C, gender) +/mob/living/simple_animal/jacq/proc/dating_start(mob/living/carbon/C, gender) var/candies = pollGhostCandidates("Do you want to go on a date with [C] as Jacqueline the great pumpqueen?") //sleep(30) //If the poll doesn't autopause. if(candies) @@ -338,7 +341,7 @@ var/datum/reagent/mutationtoxin/pumpkinhead mutationtext = "The pain subsides. You feel your head roll off your shoulders." //I couldn't get the replace head sprite with a pumpkin to work so, it is what it is. -/mob/living/jacq/proc/check_candies(mob/living/carbon/C) +/mob/living/simple_animal/jacq/proc/check_candies(mob/living/carbon/C) var/invs = C.get_contents() var/candy_count = 0 for(var/item in invs) @@ -346,7 +349,7 @@ var/datum/reagent/mutationtoxin/pumpkinhead candy_count++ return candy_count -/mob/living/jacq/proc/take_candies(mob/living/carbon/C, candy_amount = 1) +/mob/living/simple_animal/jacq/proc/take_candies(mob/living/carbon/C, candy_amount = 1) var/inv = C.get_contents() var/candies = list() for(var/item in inv) diff --git a/icons/obj/halloween_items.dmi b/icons/obj/halloween_items.dmi index 88dff544eb..f2577f90ca 100644 Binary files a/icons/obj/halloween_items.dmi and b/icons/obj/halloween_items.dmi differ