From b023671db4b9b7c23e41d4685778ec1e425d7ef9 Mon Sep 17 00:00:00 2001 From: Fermi <> Date: Wed, 9 Oct 2019 16:22:09 +0100 Subject: [PATCH] Damnit Jaqc --- code/modules/holiday/halloween/bartholomew.dm | 41 +++++--- code/modules/holiday/halloween/jacqueen.dm | 92 +++++++----------- icons/obj/halloween_items.dmi | Bin 7558 -> 8746 bytes 3 files changed, 60 insertions(+), 73 deletions(-) diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index 8a3681808c..dafcc5a309 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -3,16 +3,18 @@ /obj/effect/landmark/barthpot/Initialize() new /obj/item/barthpot(loc) + new /mob/living/simple_animal/pet/cat/jacq(loc) /obj/item/barthpot name = "Bartholomew" icon = 'icons/obj/halloween_items.dmi' icon_state = "barthpot" anchored = TRUE - var/list/items_list + var/items_list = list() + speech_span = "spooky" /obj/item/barthpot/Destroy() - var/n = new src(loc) + var/obj/item/barthpot/n = new src(loc) n.items_list = items_list ..() @@ -20,33 +22,40 @@ /obj/item/barthpot/attackby(obj/item/I, mob/user, params) if(I) for(var/obj/item/I2 in items_list) - if(I == I2) + if(I.type == I2.type) qdel(I) new /obj/item/reagent_containers/food/snacks/special_candy(loc) say("Hooray! Thank you!") + items_list -= I2 return + say("It doesn't seem like that's magical enough!") +/obj/item/barthpot/attack_hand(mob/user) 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 + //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") + 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." + say("[message]") -/obj/item/barthpot - - -/obj/item/barthpot/proc/chit_chat(mob/living/carbon/C) +/obj/item/barthpot/proc/generate_items() + var/length = LAZYLEN(items_list) + if(length == 5) + return TRUE + var/metalist = GLOB.maintenance_loot + for(var/i = length, i <= 5, i+=1) + items_list += pick(metalist) + return TRUE diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 94a75781f9..4ed73208c4 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -7,91 +7,64 @@ #define JACQ_EXPELL (1<<5) #define JACQ_DATE (1<<6) -////ROUND EVENT - -/datum/round_event_control/jacqueline - name = "Jacqueline the Pumpqueen" - holidayID = "Jacqueline" - typepath = /datum/round_event/jacq - weight = -1 //forces it to be called, regardless of weight - max_occurrences = 1 - earliest_start = 0 MINUTES - -/datum/round_event/jacq/start() - ..() - for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list) - 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/simple_animal/jacq +/mob/living/simple_animal/pet/cat/jacq name = "Jacqueline the Pumpqueen" real_name = "Jacqueline" icon = 'icons/obj/halloween_items.dmi' icon_state = "jacqueline" maxHealth = INFINITY - health = 20 + health = INFINITY density = FALSE - var/destinations = list("Bar", "Brig", "Bridge", "Chapel", "Chemistry", "Cyrogenics", "Engineering", "Xenobiology") - var/tricked = list() //Those who have been tricked var/progression = list() //Keep track of where people are in the story. -/mob/living/simple_animal/jacq/Initialize() +/mob/living/simple_animal/pet/cat/jacq/Initialize() poof() -/mob/living/simple_animal/jacq/Destroy() //I.e invincible +/mob/living/simple_animal/pet/cat/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/simple_animal/jacq/Jacq = new src.type(loc) + var/mob/living/simple_animal/pet/cat/jacq/Jacq = new src.type(loc) Jacq.tricked = tricked Jacq.progression = progression ..() -/mob/living/simple_animal/jacq/death() //What is alive may never die +/mob/living/simple_animal/pet/cat/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/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/simple_animal/pet/cat/jacq/attack_hand(mob/living/carbon/human/M) + chit_chat(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/simple_animal/pet/cat/jacq/attack_paw(mob/living/carbon/monkey/M) + chit_chat(M) + ..() -/mob/living/simple_animal/jacq/proc/poof() +/mob/living/simple_animal/pet/cat/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, 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 + var/hp_list = list() + for(var/obj/machinery/holopad/hp in world) + hp_list += "hp" + + var/obj/machinery/holopad/hp = pick(hp_list) + if(forceMove(pick(hp.loc))) + 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/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. - return - C.Stun(1000)//You're talking, don't leave. +/mob/living/simple_animal/pet/cat/jacq/proc/chit_chat(mob/living/carbon/C) //Very important var/gender = "lamb" if(C) @@ -102,13 +75,12 @@ if(!progression["[C.real_name]"] || !(progression["[C.real_name]"] & JACQ_HELLO)) visible_message("[src] smiles ominously at [L], \"Well halo there [gender]! Ah'm Jacqueline, tae great Pumpqueen, great tae meet ye.\"") - sleep(50) + sleep(20) 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. else progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_HELLO - return var/choices = list("Trick", "Treat", "How do I get candies?") var/choice = input(C, "Trick or Treat?", "Trick or Treat?") in choices @@ -126,7 +98,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/simple_animal/jacq/proc/treat(mob/living/carbon/C, gender) +/mob/living/simple_animal/pet/cat/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 @@ -144,6 +116,8 @@ // panic() var/reward = new new_obj(C.loc) C.put_in_hands(reward) + poof() + return if("Potion - 2 candies") if(!take_candies(C, 2)) visible_message("[src] raises an eyebrown, \"It's 2 candies per potion [gender]! Thems the rules!\"") @@ -151,6 +125,8 @@ var/reward = new /obj/item/reagent_containers/potion_container(C.loc) C.put_in_hands(reward) + poof() + return if("Plushie - 1 candy") if(!take_candies(C, 1)) visible_message("[src] raises an eyebrown, \"It's 1 candy per plushie [gender]! Thems the rules!\"") @@ -158,6 +134,8 @@ var/reward = new /obj/item/toy/plush/random(C.loc) C.put_in_hands(reward) + poof() + return //chitchats! if("Can I ask you a question instead?") @@ -191,7 +169,7 @@ visible_message("[src] says, \"A question? Sure, it'll cost you a candy though!\"") choices += "Nevermind" //Candies for chitchats - var/choice = input(usr, "What do you want to ask?", "What do you want to ask?") in choices + var/choice = input(C, "What do you want to ask?", "What do you want to ask?") in choices if(!take_candies(C, 1)) visible_message("[src] raises an eyebrown, \"It's a candy per question [gender]! Thems the rules!\"") return @@ -229,7 +207,7 @@ visible_message("[src] shurgs, \"Suit yerself then.\"") -/mob/living/simple_animal/jacq/proc/trick(mob/living/carbon/C, gender) +/mob/living/simple_animal/pet/cat/jacq/proc/trick(mob/living/carbon/C, gender) var/option if(ishuman(C)) option = rand(1,7) @@ -280,7 +258,7 @@ poof() //Blame Fel -/mob/living/simple_animal/jacq/proc/dating_start(mob/living/carbon/C, gender) +/mob/living/simple_animal/pet/cat/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) @@ -341,7 +319,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/simple_animal/jacq/proc/check_candies(mob/living/carbon/C) +/mob/living/simple_animal/pet/cat/jacq/proc/check_candies(mob/living/carbon/C) var/invs = C.get_contents() var/candy_count = 0 for(var/item in invs) @@ -349,7 +327,7 @@ var/datum/reagent/mutationtoxin/pumpkinhead candy_count++ return candy_count -/mob/living/simple_animal/jacq/proc/take_candies(mob/living/carbon/C, candy_amount = 1) +/mob/living/simple_animal/pet/cat/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 f2577f90ca460232f6c560fa4078084860051d21..fc5c4803fbf1cb952c139690bfa60149218e3d81 100644 GIT binary patch literal 8746 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