Adds landmarks.
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
/obj/effect/landmark/barthpot
|
||||
name = "barthpot"
|
||||
|
||||
/obj/effect/landmark/barthpot/Initialize()
|
||||
new /obj/item/barthpot(loc)
|
||||
|
||||
/obj/item/barthpot
|
||||
name = "Bartholomew"
|
||||
icon = 'icons/obj/halloween_items.dmi'
|
||||
icon_state = "barthpot"
|
||||
anchored = TRUE
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
max_occurrences = 1
|
||||
earliest_start = 0 MINUTES
|
||||
|
||||
/datum/round_event/jaqc/start()
|
||||
/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.
|
||||
@@ -57,12 +57,14 @@
|
||||
/mob/living/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)
|
||||
if(M.a_intent == INTENT_HELP)
|
||||
chit_chat(M)
|
||||
M.Stun(0)
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -80,17 +82,13 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/mob/living/jacq/on_click(whatever this proc is called)
|
||||
chit_chat(L)
|
||||
C.stun(0)//Okay, you're done talking now.
|
||||
|
||||
//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)
|
||||
var/mob/living/carbon/C = L
|
||||
if(!iscarbon)
|
||||
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.
|
||||
C.Stun(1000)//You're talking, don't leave.
|
||||
//Very important
|
||||
var/gender = "lamb"
|
||||
if(C)
|
||||
@@ -102,9 +100,9 @@
|
||||
if(!progression["[C.real_name]"] || !(progression["[C.real_name]"] & JACQ_HELLO))
|
||||
visible_message("<b>[src] smiles ominously at [L],</b> <span class='spooky'>\"Well hal<61> there [gender]! Ah<41>m Jacqueline, tae great Pumpqueen, great tae meet ye.\"</span>")
|
||||
sleep(20)
|
||||
visible_message("<span class='spooky'><b>[src] continues,</b> 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.</span>\" giving [L] a wide grin.")
|
||||
visible_message("<span class='spooky'><b>[src] continues,</b> 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.</span>\" giving [L] a wide grin.")
|
||||
if(!progression["[C.real_name]"])
|
||||
progression["[C.real_name]"] += JACQ_HELLO //TO MAKE SURE THAT THE LIST ENTRY EXISTS.
|
||||
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
|
||||
@@ -126,9 +124,9 @@
|
||||
return
|
||||
|
||||
/mob/living/jacq/proc/treat(mob/living/carbon/C, gender)
|
||||
visible_message("<b>[src] gives off a glowing smile,</b> <span class='spooky'>\"What ken Ah offer ye? I can magic in you an object, A potion or a plushie. \"</span>")
|
||||
visible_message("<b>[src] gives off a glowing smile,</b> <span class='spooky'>\"What ken Ah offer ye? I can magic up an object, a potion or a plushie fer ye.\"</span>")
|
||||
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
|
||||
var/choice_reward = input(usr, "Trick or Treat?", "Trick or Treat?") in choices_reward
|
||||
|
||||
//rewards
|
||||
switch(choice_reward)
|
||||
@@ -179,7 +177,7 @@
|
||||
|
||||
//for Kepler, delete this, or just delete the whole story aspect if you want.
|
||||
//If fully completed
|
||||
if(progression["[C.real_name]"] JACQ_FAR & JACQ_EXPELL & JACQ_HEAD)
|
||||
if(progression["[C.real_name]"] & JACQ_FAR & JACQ_EXPELL & JACQ_HEAD)
|
||||
choices = "Can I take you out on a date?"
|
||||
|
||||
//If you've nothing to ask
|
||||
@@ -197,25 +195,25 @@
|
||||
//Talking
|
||||
switch(choice)
|
||||
if("Why do you want the candies?")
|
||||
visible_message("<b>[src] says,</b> <span class='spooky'>\"Ave ye tried them? They’re full of all sorts of reagents. Ah’m after them so ah ken magic em up an hopefully find rare stuff fer me brews. Honestly it’s a lot easier magicking up tatt fer ye lot than runnin aroond on me own like. I'd ask me familiars but most a my familiars are funny fellows 'n constantly bugger off on adventures when given simple objectives like; Go grab me a tea cake or watch over me cauldron. Ah mean, ye might run into Bartholomew my cat. Ee’s supposed tae be tending my cauldron, but I’ve nae idea where ee’s got tae.\"</span>")
|
||||
visible_message("<b>[src] says,</b> <span class='spooky'>\"Ave ye tried them? They're full of all sorts of reagents. Ah'm after them so ah ken magic em up an hopefully find rare stuff fer me brews. Honestly it's a lot easier magicking up tatt fer ye lot than runnin aroond on me own like. I'd ask me familiars but most a my familiars are funny fellows 'n constantly bugger off on adventures when given simple objectives like; Go grab me a tea cake or watch over me cauldron. Ah mean, ye might run into Bartholomew my cat. Ee's supposed tae be tending my cauldron, but I've nae idea where ee's got tae.\"</span>")
|
||||
progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_CANDIES
|
||||
|
||||
if("You really came all this way for candy?")
|
||||
visible_message("<b>[src] looks tae the side sheepishly,</b> <span class='spooky'>\"Aye, well, tae be honest, Ah’m here tae see me sis, but dunnae let her knew that. She’s an alchemist too like, but she dunnae use a caldron like mae, she buggered off like tae her posh ivory tower tae learn bloody chemistry instead!" [src] scowls, “She’s tae black sheep o’ the family too, so we dunnae see eye tae eye sometimes on alchemy. Ah mean, she puts <i> moles </i> in her brews! Ye dunnae put moles in yer brews! Yae threw your brews at tae wee bastards an blew em up!" [src] sighs "But she’s a heart o gold so.. Ah wanted tae see her an check up oon her, make sure she’s okay.\"</span>")
|
||||
visible_message("<b>[src] looks tae the side sheepishly,</b> <span class='spooky'>\"Aye, well, tae be honest, Ah'm here tae see me sis, but dunnae let her knew that. She's an alchemist too like, but she dunnae use a caldron like mae, she buggered off like tae her posh ivory tower tae learn bloody chemistry instead!\" [src] scowls, \"She's tae black sheep o' the family too, so we dunnae see eye tae eye sometimes on alchemy. Ah mean, she puts <i> moles </i> in her brews! Ye dunnae put moles in yer brews! Yae threw your brews at tae wee bastards an blew em up!\" [src] sighs \"But she's a heart o gold so.. Ah wanted tae see her an check up oon her, make sure she's okay.\"</span>")
|
||||
progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_FAR
|
||||
|
||||
if("What is that on your head?")
|
||||
visible_message("<b>[src] pats the pumpkin atop her head,</b> <span class='spooky'>\"This thing? This ain’t nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly it felt like she loved this thing more than any of us, which Ah knew ain’t true an it’s not like she was hartless or anything but.. well, we had a falling oot when Ah got back home with all me stuff in tow. An all she had done is sent me owl after owl over t' last year aboot this bloody pumpkin and ah had enough. So ah took it, an put it on me head. You know, as ye do. Ah am the great Pumpqueen after all, Ah deserve this.\"</span>")
|
||||
visible_message("<b>[src] pats the pumpkin atop her head,</b> <span class='spooky'>\"This thing? This ain't nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly it felt like she loved this thing more than any of us, which Ah knew ain't true an it's not like she was hartless or anything but.. well, we had a falling oot when Ah got back home with all me stuff in tow. An all she had done is sent me owl after owl over t' last year aboot this bloody pumpkin and ah had enough. So ah took it, an put it on me head. You know, as ye do. Ah am the great Pumpqueen after all, Ah deserve this.\"</span>")
|
||||
progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_HEAD
|
||||
|
||||
if("Are you a witch?")
|
||||
visible_message("<b>[src] grumbles,</b> <span class='spooky'>\"If ye must know, Ah got kicked oot of the witch academy fer being too much of a “loose cannon". A bloody loose cannon? Nae they were just pissed off Ah had the brass tae proclaim myself as the Pumpqueen…. And also maybe the time Ah went and blew up one of the towers by trying tae make a huge batch of astrogen might’ve had something tae do with it. Ah mean it would’ve worked fine if the cauldrons weren’t so shite and were actually upgraded by the faculty. So technically no, I’m not a witch.\"</span>")
|
||||
visible_message("<b>[src] grumbles,</b> <span class='spooky'>\"If ye must know, Ah got kicked oot of the witch academy fer being too much of a \"loose cannon\". A bloody loose cannon? Nae they were just pissed off Ah had the brass tae proclaim myself as the Pumpqueen! And also maybe the time Ah went and blew up one of the towers by trying tae make a huge batch of astrogen might've had something tae do with it. Ah mean it would've worked fine if the cauldrons weren't so shite and were actually upgraded by the faculty. So technically no, I'm not a witch.\"</span>")
|
||||
progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_WITCH
|
||||
|
||||
if("So you got ex-spell-ed?")
|
||||
visible_message("<b>[src] Gives you a blank look at the pun, before continuing,</b> <span class='spooky'>\"Not quite, Ah know Ah ken get back into the academy, it’s only an explosion, they happen all the time, but, tae be fair it’s my fault that things came tae their explosive climax. You don’t know what it’s like when you’re after a witch doctorate, everyone else is doing well, everyone’s making new spells and the like, and I’m just good at making explosions really, or fireworks. So, Ah did something Ah knew was dangerous, because Ah had tae do something tae stand oot, but Ah know this life ain’t fer me, Ah don’t want tae be locked up in dusty towers, grinding reagent after reagent together, trying tae find new reactions, some of the wizards in there haven’t left fer years. Ah want tae live, Ah want tae fly around on a broom, turn people into cats fer a day and disappear cackling! That’s what got me into witchcraft!" she throws her arms up in the arm, spinning the pumpkin upon her head slightly. She carefully spins it back to face you, giving oot a soft sigh, "Ah know my mother’s obsession with this dumb thing on my head is just her trying tae fill the void of me and my sis moving oot, and it really shouldn’t be on my head. And Ah know that I’m really here tae get help from my sis… She’s the sensible one, and she gives good hugs.\"</span>")
|
||||
visible_message("<b>[src] Gives you a blank look at the pun, before continuing,</b> <span class='spooky'>\"Not quite, Ah know Ah ken get back into the academy, it's only an explosion, they happen all the time, but, tae be fair it's my fault that things came tae their explosive climax. You don't know what it's like when you're after a witch doctorate, everyone else is doing well, everyone's making new spells and the like, and I'm just good at making explosions really, or fireworks. So, Ah did something Ah knew was dangerous, because Ah had tae do something tae stand oot, but Ah know this life ain't fer me, Ah don't want tae be locked up in dusty towers, grinding reagent after reagent together, trying tae find new reactions, some of the wizards in there haven't left fer years. Ah want tae live, Ah want tae fly around on a broom, turn people into cats fer a day and disappear cackling! That's what got me into witchcraft!\" she throws her arms up in the arm, spinning the pumpkin upon her head slightly. She carefully spins it back to face you, giving oot a soft sigh, \"Ah know my mother's obsession with this dumb thing on my head is just her trying tae fill the void of me and my sis moving oot, and it really shouldn't be on my head. And Ah know that I'm really here tae get help from my sis.. She's the sensible one, and she gives good hugs.\"</span>")
|
||||
sleep(50)
|
||||
visible_message("<b>[src] says,</b> <span class='spooky'>\"Thanks [C], Ah guess Ah didn’t realise Ah needed someone tae talk tae but, I’m glad ye spent all your candies talking tae me. Funny how things seem much worse in yer head.\"</span>")
|
||||
visible_message("<b>[src] says,</b> <span class='spooky'>\"Thanks [C], Ah guess Ah didn't realise Ah needed someone tae talk tae but, I'm glad ye spent all your candies talking tae me. Funny how things seem much worse in yer head.\"</span>")
|
||||
progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_EXPELL
|
||||
|
||||
if("Can I take you out on a date?")
|
||||
@@ -229,21 +227,33 @@
|
||||
|
||||
|
||||
/mob/living/jacq/proc/trick(mob/living/carbon/C, gender)
|
||||
var/option = rand(1,7)
|
||||
var/option
|
||||
if(ishuman(C))
|
||||
option = rand(1,7)
|
||||
else
|
||||
option = rand(1,6)
|
||||
switch(option)
|
||||
if(1)
|
||||
visible_message("<b>[src] waves their arms around,</b> <span class='spooky'>\"Hocus pocus, making friends is now your focus!\"</span>")
|
||||
var/datum/objective/brainwashing/objective = pick("Make a tasty sandwich for", "Compose a poem for", "Aquire a nice outfit to give to", "Strike up a conversation about pumpkins with", "Write a letter and deliver it to", "Give a nice hat to")
|
||||
var/mob/living/L2 = pick(GLOB.player_list)
|
||||
objective += " [L2.name]."
|
||||
brainwash(H, objective)
|
||||
brainwash(C, objective)
|
||||
if(2)
|
||||
visible_message("<b>[src] waves their arms around,</b> <span class='spooky'>\"Off comes your head, atleast you're not dead.\"</span>")
|
||||
C.reagents.add_reagent("pumpkinmutationtoxin", 5)
|
||||
if(3)
|
||||
visible_message("<b>[src] waves their arms around,</b> <span class='spooky'>\"If only you had a better upbringing, your ears are now full of my singing!\"</span>")
|
||||
var/spowoky = "https://www.youtube.com/watch?v=PFrPrIxluWk"
|
||||
C.chatOutput.sendMusic(spowoky, pitch)//I hope this works!
|
||||
var/web_sound_input = trim(spowoky)
|
||||
var/ytdl = CONFIG_GET(string/invoke_youtubedl)
|
||||
var/shell_scrubbed_input = shell_url_scrub(web_sound_input)
|
||||
var/list/output = world.shelleo("[ytdl] --format \"bestaudio\[ext=mp3]/best\[ext=mp4]\[height<=360]/bestaudio\[ext=m4a]/bestaudio\[ext=aac]\" --dump-single-json --no-playlist -- \"[shell_scrubbed_input]\"")
|
||||
var/stdout = output[SHELLEO_STDOUT]
|
||||
var/list/data = json_decode(stdout)
|
||||
var/web_sound_url = data["url"]
|
||||
var/client/C2 = C.client
|
||||
C2.chatOutput.sendMusic(web_sound_url, 1)//I hope this works!
|
||||
if(4)
|
||||
visible_message("<b>[src] waves their arms around,</b> <span class='spooky'>\"You're cute little bumpkin, In your hand is a pumpkin!\"</span>")
|
||||
for(var/obj/item/I in C.held_items)
|
||||
@@ -258,16 +268,17 @@
|
||||
C.reagents.add_reagent("secretcatchem", 30)
|
||||
if(7)
|
||||
visible_message("<b>[src] waves their arms around,</b> <span class='spooky'>\"While you may not be a ghost, for this sheet you'll always be it's host.\"</span>")
|
||||
if(C.wear_suit)
|
||||
var/obj/item/W = C.wear_suit
|
||||
C.dropItemToGround(W, TRUE)
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(H.wear_suit)
|
||||
var/obj/item/W = H.wear_suit
|
||||
H.dropItemToGround(W, TRUE)
|
||||
var/ghost = new /obj/item/clothing/suit/ghost_sheet/sticky
|
||||
M.equip_to_slot(ghost, SLOT_WEAR_SUIT, 1, 1)
|
||||
H.equip_to_slot(ghost, SLOT_WEAR_SUIT, 1, 1)
|
||||
poof()
|
||||
|
||||
//Blame Fel
|
||||
/mob/living/jacq/proc/dating_start(mob/living/carbon/C, gender)
|
||||
candies = pollGhostCandidates("Do you want to go on a date with [C] as Jacqueline the great pumpqueen?")
|
||||
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)
|
||||
candies = shuffle(candies)//Shake those ghosts up!
|
||||
@@ -276,11 +287,11 @@
|
||||
key = C2.key
|
||||
message_admins("[C2]/[C2.key] has agreed to go on a date with [C] as Jacqueline.")
|
||||
log_game("HALLOWEEN: [C2]/[C2.key] has agreed to go on a date with [C] as Jacqueline")
|
||||
to_chat(src, "<span class='big spooky'>You are Jacqueline the great pumpqueen, witch Extraordinaire! You’re a very Scottish lass with a kind heart, but also a little crazy. You also blew up the wizarding school and you’re suspended for a while, so you visited the station before heading home. On your head lies the prize pumpkin of your Mother’s pumpkin patch. You’re currently on a date with [C] and well, I didn’t think anyone would get this far. <i> Please be good so I can do events like this in the future. </i> </span>")
|
||||
to_chat(src, "<span class='big spooky'>You are Jacqueline the great pumpqueen, witch Extraordinaire! You're a very Scottish lass with a kind heart, but also a little crazy. You also blew up the wizarding school and you're suspended for a while, so you visited the station before heading home. On your head lies the prize pumpkin of your Mother's pumpkin patch. You're currently on a date with [C] and well, I didn't think anyone would get this far. <i> Please be good so I can do events like this in the future. </i> </span>")
|
||||
return
|
||||
else
|
||||
candies =- C2
|
||||
visible_message("<b>[src] looks to the side,</b> <span class='spooky'>\"Look, Ah like ye but, Ah don’t think Ah can right now. If ye can’t tell, the stations covered in volatile candies, I’ve a few other laddies and lassies running after me treats, and tae top it all off, I’ve the gods breathing down me neck, watching every treat Ah make fer the lot of yous.\" she sighs, \"But that’s not a no, right? That’s.. just a nae right noo.\"</span>")
|
||||
visible_message("<b>[src] looks to the side,</b> <span class='spooky'>\"Look, Ah like ye but, Ah don't think Ah can right now. If ye can't tell, the stations covered in volatile candies, I've a few other laddies and lassies running after me treats, and tae top it all off, I've the gods breathing down me neck, watching every treat Ah make fer the lot of yous.\" she sighs, \"But that's not a no, right? That's.. just a nae right noo.\"</span>")
|
||||
sleep(20)
|
||||
visible_message("<b>[src] takes off the pumpkin on her head, a rich blush on her cheeks. She leans over planting a kiss upon your forehead quickly befere popping the pumpkin back on her head.</b>")
|
||||
sleep(10)
|
||||
@@ -294,11 +305,17 @@
|
||||
icon_state = "hardhat0_pumpkin_j"
|
||||
item_state = "hardhat0_pumpkin_j"
|
||||
item_color = "pumpkin_j"
|
||||
item_flags = NODROP
|
||||
brightness_on = 4
|
||||
|
||||
/obj/item/clothing/head/hardhat/pumpkinhead/jaqc/Initialize()
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_NODROP, GLUED_ITEM_TRAIT)
|
||||
|
||||
/obj/item/clothing/suit/ghost_sheet/sticky
|
||||
item_flags = NODROP
|
||||
|
||||
/obj/item/clothing/suit/ghost_sheet/sticky/Initialize()
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_NODROP, GLUED_ITEM_TRAIT)
|
||||
|
||||
/obj/item/clothing/suit/ghost_sheet/sticky/attack_hand(mob/user)
|
||||
if(iscarbon(user))
|
||||
@@ -317,7 +334,7 @@
|
||||
var/datum/reagent/mutationtoxin/pumpkinhead
|
||||
name = "Pumpkin head mutation toxin"
|
||||
id = "pumpkinmutationtoxin"
|
||||
race = /datum/species/dullahan/pumpkin
|
||||
race = /datum/species/dullahan
|
||||
mutationtext = "<span class='spooky'>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.
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
head.throwforce = 25
|
||||
myhead = new /obj/item/dullahan_relay (head, H)
|
||||
H.put_in_hands(head)
|
||||
var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
|
||||
for(/datum/action/item_action/organ_action/OA in eyes.actions)
|
||||
OA.Toggle()
|
||||
var/obj/item/organ/eyes/E = H.getorganslot(ORGAN_SLOT_EYES)
|
||||
for(var/datum/action/item_action/organ_action/OA in E.actions)
|
||||
OA.Trigger()
|
||||
|
||||
/datum/species/dullahan/on_species_loss(mob/living/carbon/human/H)
|
||||
H.flags_1 |= ~HEAR_1
|
||||
|
||||
Reference in New Issue
Block a user