diff --git a/_maps/map_files/dun_manor/dun_manor.dmm b/_maps/map_files/dun_manor/dun_manor.dmm index 66d3f2e4a08..9f6a695c5b8 100644 --- a/_maps/map_files/dun_manor/dun_manor.dmm +++ b/_maps/map_files/dun_manor/dun_manor.dmm @@ -1542,6 +1542,7 @@ icon_state = "longtable" }, /obj/item/natural/feather, +/obj/item/psydonmusicbox, /turf/open/floor/rogue/herringbone, /area/rogue/under/town/basement) "bjK" = ( diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 99a7e1bb63b..7f051647520 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -45,6 +45,7 @@ #define TRAIT_GUARDSMAN "Vigilant Guardsman" #define TRAIT_KNIGHTSMAN "Royal Defiance" #define TRAIT_WOODSMAN "Talented Woodsman" +#define TRAIT_INQUISITION "Member of the Otavan Inquisition" //Hearthstone port (Tracking) #define TRAIT_PERFECT_TRACKER "Perfect Tracker" //Will always find any tracks and analyzes them perfectly. @@ -101,6 +102,7 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_GUARDSMAN = span_info("I am vigilant in my duties. In the town of Azure Peak, my abilities are sharper due to my routine and familiarity."), TRAIT_WOODSMAN = span_info("I am vigilant in my duties. In the grove and coast of Azure Peak, my abilities are sharper due to my routine and familiarity."), TRAIT_KNIGHTSMAN = span_info("I am a stalwart defender of the crown. In the keep of Azure Peak, my abilities are sharper due to my routine and familiarity."), + TRAIT_INQUISITION = span_info("I am a member of the Otavan Inquisition. I can easily identify others of my cadre at a glance."), TRAIT_CHOSEN = "Astrata choose you to represent her glory.", TRAIT_WEBWALK = "I can move freely between webs.", TRAIT_NOSTINK = span_dead("My nose is numb to the smell of decay."), diff --git a/code/datums/status_effects/rogue/roguebuff.dm b/code/datums/status_effects/rogue/roguebuff.dm index 3d3d3ff1e1d..f267fa9e69c 100644 --- a/code/datums/status_effects/rogue/roguebuff.dm +++ b/code/datums/status_effects/rogue/roguebuff.dm @@ -381,4 +381,31 @@ to_chat(owner, span_warning("My feeble mind muddies my warcraft once more.")) REMOVE_TRAIT(owner, TRAIT_GUIDANCE, MAGIC_TRAIT) +#define CRANKBOX_FILTER "crankboxbuff_glow" +/atom/movable/screen/alert/status_effect/buff/churnerprotection + name = "Magick Distorted" + desc = "The wailing box is disrupting magicks around me!" + icon_state = "buff" + +/datum/status_effect/buff/churnerprotection + var/outline_colour = "#fad55a" + id = "soulchurnerprotection" + alert_type = /atom/movable/screen/alert/status_effect/buff/churnerprotection + duration = 20 SECONDS + +/datum/status_effect/buff/churnerprotection/on_apply() + . = ..() + var/filter = owner.get_filter(CRANKBOX_FILTER) + if (!filter) + owner.add_filter(CRANKBOX_FILTER, 2, list("type" = "outline", "color" = outline_colour, "alpha" = 200, "size" = 1)) + to_chat(owner, span_warning("I feel the wailing box distorting magicks around me!")) + ADD_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT) + +/datum/status_effect/buff/churnerprotection/on_remove() + . = ..() + to_chat(owner, span_warning("The wailing box's protection fades...")) + owner.remove_filter(CRANKBOX_FILTER) + REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT) + +#undef CRANKBOX_FILTER #undef MIRACLE_HEALING_FILTER diff --git a/code/datums/stress/negative_events.dm b/code/datums/stress/negative_events.dm index 78e9c593b01..f9057daac0c 100644 --- a/code/datums/stress/negative_events.dm +++ b/code/datums/stress/negative_events.dm @@ -276,3 +276,20 @@ stressadd = 1 desc = span_red("Eating such a meal without a table? Churlish.") timer = 2 MINUTES + + +/datum/stressevent/soulchurnerhorror + timer = 10 SECONDS + stressadd = 50 + desc = span_red("The horrid wails of the dead call for relief! WHAT HAVE I DONE?!") + +/datum/stressevent/soulchurner + timer = 1 MINUTES + stressadd = 10 + desc = span_red("The horrid wails of the dead call for relief!") + + +/datum/stressevent/soulchurnerpsydon + timer = 1 MINUTES + stressadd = 1 + desc = span_red("The horrid wails of the dead call for relief! I can ENDURE such calls...") diff --git a/code/game/objects/items/rogueitems/inquisitionrelics.dm b/code/game/objects/items/rogueitems/inquisitionrelics.dm new file mode 100644 index 00000000000..7ab2498e862 --- /dev/null +++ b/code/game/objects/items/rogueitems/inquisitionrelics.dm @@ -0,0 +1,187 @@ +// Soul Churner - Music box which applies magic resistance to Inquisition members, greatly mood debuffs everyone not a Psydon worshipper. +/obj/item/psydonmusicbox + name = "melancholic crankbox" + desc = "" + icon_state = "psydonmusicbox" + icon = 'icons/roguetown/items/misc.dmi' + w_class = WEIGHT_CLASS_HUGE + var/cranking = FALSE + force = 15 + max_integrity = 100 + attacked_sound = 'sound/combat/hits/onwood/education2.ogg' + gripped_intents = list(/datum/intent/hit) + possible_item_intents = list(/datum/intent/hit) + obj_flags = CAN_BE_HIT + twohands_required = TRUE + var/datum/looping_sound/psydonmusicboxsound/soundloop + + +/obj/item/psydonmusicbox/examine(mob/user) + . = ..() + if(HAS_TRAIT(usr, TRAIT_INQUISITION)) + desc = "A relic from the bowels of the Otavan cathedral's thaumaturgical workshops. Fourteen souls of heretics, all bound together, they will scream and protect us from magicks. It would be wise to not teach the heretics of its true nature, to only bring it to bear in dire circumstances." + else + desc = "A cranked music box, it has the seal of the Otavan Inquisition on the side. It carries a somber feeling to it..." + +/obj/item/psydonmusicbox/attack_self(mob/living/user) + . = ..() + if(!HAS_TRAIT(usr, TRAIT_INQUISITION)) + user.add_stress(/datum/stressevent/soulchurnerhorror) + to_chat(user, (span_cultsmall("I FEEL SUFFERING WITH EVERY CRANK, WHAT AM I DOING?!"))) + cranking = !cranking + update_icon() + if(cranking) + user.apply_status_effect(/datum/status_effect/buff/cranking_soulchurner) + soundloop.start() + var/songhearers = view(7, user) + for(var/mob/living/carbon/human/target in songhearers) + to_chat(target,span_cultsmall("[user] begins cranking the soul churner...")) + if(!cranking) + soundloop.stop() + user.remove_status_effect(/datum/status_effect/buff/cranking_soulchurner) + +/obj/item/psydonmusicbox/Initialize() + soundloop = new(list(src), FALSE) + . = ..() + +/obj/item/psydonmusicbox/Destroy() + if(soundloop) + QDEL_NULL(soundloop) + src.visible_message(span_cult("A great deluge of souls escapes the shattered box!")) + return ..() + +/obj/item/psydonmusicbox/update_icon() + if(cranking) + icon_state = "psydonmusicbox_active" + else + icon_state = "psydonmusicbox" + +/obj/item/psydonmusicbox/dropped(mob/living/user, silent) + ..() + cranking = FALSE + update_icon() + if(soundloop) + soundloop.stop() + user.remove_status_effect(/datum/status_effect/buff/cranking_soulchurner) + +/obj/item/psydonmusicbox/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list("shrink" = 0.6,"sx" = -1,"sy" = 0,"nx" = 11,"ny" = 1,"wx" = 0,"wy" = 1,"ex" = 4,"ey" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 15,"sturn" = 0,"wturn" = 0,"eturn" = 39,"nflip" = 8,"sflip" = 0,"wflip" = 0,"eflip" = 8) + +/atom/movable/screen/alert/status_effect/buff/cranking_soulchurner + name = "Cranking Soulchurner" + desc = "I am bringing the twisted device to life..." + icon_state = "buff" + +/datum/status_effect/buff/cranking_soulchurner + id = "crankchurner" + alert_type = /atom/movable/screen/alert/status_effect/buff/cranking_soulchurner + var/effect_color + var/pulse = 0 + var/ticks_to_apply = 10 + var/astratanlines =list("'HER LIGHT HAS LEFT ME! WHERE AM I?!'", "'SHATTER THIS CONTRAPTION, SO I MAY FEEL HER WARMTH ONE LAST TIME!'", "'I am royal.. Why did they do this to me...?'") + var/noclines =list("'Colder than moonlight...'", "'No wisdom can reach me here...'", "'Please help me, I miss the stars...'") + var/necralines =list("'They snatched me from her grasp, for eternal torment...'", "'Necra! Please! I am so tired! Release me!'", "'I am lost, lost in a sea of stolen ends.'") + var/abyssorlines =list("'I cannot feel the coast's breeze...'", "'We churn tighter here than schooling fish...'", "'Free me, please, so I may return to the sea...'") + var/ravoxlines =list("'Ravoxian kin! Tear this Otavan dog's head off! Free me from this damnable witchery!'", "'There is no justice nor glory to be found here, just endless fatigue...'", "'I begged for a death by the sword...'") + var/pestralines =list("'I only wanted to perfect my cures...'", "'A thousand plagues upon the holder of this accursed machine! Pestra! Can you not hear me?!'", "'I can feel their suffering as they brush against me...'") + var/eoralines =list("'Every caress feels like a thousand splintering bones...'", "'She was a heretic, but how could I hurt her?!'", "'I'm sorry! I only wanted peace! Please release me!'") + var/dendorlines =list("'HIS MADNESS CALLS FOR ME! RRGHNN...'", "'SHATTER THIS BOX, SO WE MAY CHOKE THIS OTAVAN ON DIRT AND ROOTS!'", "'I miss His voice in the leaves... Free me, please...'") + var/xylixlines =list("'ONE, TWO, THREE, FOUR- TWO, TWO, THREE, FOUR. --What do you mean, annoying?'", "'There are thirteen others in here, you know! What a good audience- they literally can't get out of their seats!'", "'Of course I went all-in! I thought he had an ace-high!'", "'No, the XYLIX'S FORTUNE was right- this definitely is quite bad.'") + var/malumlines =list("'The structure of this cursed machine is malleable.. Shatter it, please...'", "'My craft could've changed the world...'", "'Free me, so I may return to my apprentice, please...'") + var/matthioslines =list("'My final transaction... He will never receive my value... Stolen away by these monsters...'", "'Comrade, I have been shackled into this HORRIFIC CONTRAPTION, FREE ME!'", "'I feel our shackles twist with eachother's...'") + var/zizolines =list("'ZAELORION! MY MAGICKS FAIL ME! STRIKE DOWN THESE PSYDONIAN DOGS!'", "'CABALIST? There is TWISTED MAGICK HERE, BEWARE THE MUSIC! OUR VOICES ARE FORCED!'", "'DESTROY THE BOX, KILL THE WIELDER. YOUR MAGICKS WILL BE FREE.'") + var/graggarlines =list("'ANOINTED! TEAR THIS OTAVAN'S HEAD OFF!'", "'ANOINTED! SHATTER THE BOX, AND WE WILL KILL THEM TOGETHER!'", "'GRAGGAR, GIVE ME STRENGTH TO BREAK MY BONDS!'") + var/baothalines =list("'I miss the warmth of ozium... There is no feeling in here for me...'", "'Debauched one, rescue me from this contraption, I have such things to share with you.'", "'MY PERFECTION WAS TAKEN FROM ME BY THESE OTAVAN MONSTERS!'") + var/psydonianlines =list("'FREE US! FREE US! WE HAVE SUFFERED ENOUGH!'", "'PLEASE, RELEASE US!", "WE MISS OUR FAMILIES'", "'WHEN WE ESCAPE, WE ARE GOING TO CHASE YOU INTO YOUR GRAVE.'") + + +/datum/status_effect/buff/cranking_soulchurner/on_creation(mob/living/new_owner, stress, colour) + effect_color = "#800000" + return ..() + +/datum/status_effect/buff/cranking_soulchurner/tick() + var/obj/effect/temp_visual/music_rogue/M = new /obj/effect/temp_visual/music_rogue(get_turf(owner)) + M.color = "#800000" + pulse += 1 + if (pulse >= ticks_to_apply) + pulse = 0 + if(!HAS_TRAIT(owner, TRAIT_INQUISITION)) + owner.add_stress(/datum/stressevent/soulchurnerhorror) + for (var/mob/living/carbon/human/H in hearers(7, owner)) + if (!H.client) + continue + if (!H.has_stress_event(/datum/stressevent/soulchurner)) + switch(H.patron?.type) + if(/datum/patron/old_god) + if (!H.has_stress_event(/datum/stressevent/soulchurnerpsydon)) + H.add_stress(/datum/stressevent/soulchurnerpsydon) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(psydonianlines)))) + if(HAS_TRAIT(H, TRAIT_INQUISITION)) + H.apply_status_effect(/datum/status_effect/buff/churnerprotection) + if(/datum/patron/inhumen/matthios) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(matthioslines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/inhumen/zizo) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(zizolines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/inhumen/graggar) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(graggarlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/inhumen/baotha) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(baothalines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/astrata) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(astratanlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/noc) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(noclines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/necra) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(necralines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/pestra) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(pestralines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/malum) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(malumlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/dendor) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(dendorlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/xylix) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(xylixlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/eora) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(eoralines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/abyssor) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(abyssorlines)))) + H.add_stress(/datum/stressevent/soulchurner) + if(/datum/patron/divine/ravox) + to_chat(H, (span_hypnophrase("A voice calls out from the song for you..."))) + to_chat(H, (span_cultsmall(pick(ravoxlines)))) + H.add_stress(/datum/stressevent/soulchurner) + +/datum/looping_sound/psydonmusicboxsound + mid_sounds = list('sound/magic/psydonmusicbox.ogg') + mid_length = 320 + volume = 50 + extra_range = 10 diff --git a/code/modules/clothing/rogueclothes/hats.dm b/code/modules/clothing/rogueclothes/hats.dm index f84debc68d6..cb6de2650da 100644 --- a/code/modules/clothing/rogueclothes/hats.dm +++ b/code/modules/clothing/rogueclothes/hats.dm @@ -1366,6 +1366,7 @@ desc = "A hood worn by those who favor Psydon. Forever enduring!" icon_state = "psydonhood" item_state = "psydonhood" + color = null body_parts_covered = NECK slot_flags = ITEM_SLOT_HEAD dynamic_hair_suffix = "" diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/confessor.dm b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/confessor.dm index e944fdb4095..6b43d8de99d 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/confessor.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/confessor.dm @@ -21,22 +21,26 @@ H.mind.adjust_skillrank(/datum/skill/misc/stealing, 5, TRUE) H.mind.adjust_skillrank(/datum/skill/misc/lockpicking, 5, TRUE) H.mind.adjust_skillrank(/datum/skill/misc/tracking, 4, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 4, TRUE) cloak = /obj/item/clothing/suit/roguetown/armor/longcoat - beltr = /obj/item/rogueweapon/mace/cudgel wrists = /obj/item/clothing/neck/roguetown/psicross/silver gloves = /obj/item/clothing/gloves/roguetown/leather/black beltl = /obj/item/rogueweapon/huntingknife/idagger/steel + beltr = /obj/item/quiver/bolts backr = /obj/item/storage/backpack/rogue/satchel/black - belt = /obj/item/storage/belt/rogue/leather + backl = /obj/item/gun/ballistic/revolver/grenadelauncher/crossbow + belt = /obj/item/storage/belt/rogue/leather/knifebelt/black/psydon pants = /obj/item/clothing/under/roguetown/trou/leather armor = /obj/item/clothing/suit/roguetown/armor/leather/studded shirt = /obj/item/clothing/suit/roguetown/shirt/shortshirt/random shoes = /obj/item/clothing/shoes/roguetown/boots mask = /obj/item/clothing/mask/rogue/facemask/psydonmask head = /obj/item/clothing/head/roguetown/roguehood/psydon - backpack_contents = list(/obj/item/roguekey/inquisition = 1, /obj/item/lockpickring/mundane = 1) + backpack_contents = list(/obj/item/roguekey/inquisition = 1, /obj/item/lockpickring/mundane = 1, /obj/item/rogueweapon/mace/cudgel) H.change_stat("strength", -1) // weasel H.change_stat("endurance", 3) H.change_stat("perception", 2) H.change_stat("speed", 3) ADD_TRAIT(H, TRAIT_DODGEEXPERT, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_INQUISITION, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm index 677c2ae9a50..26bcf4dca21 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/disciple.dm @@ -36,6 +36,7 @@ H.change_stat("perception", -1) ADD_TRAIT(H, TRAIT_DODGEEXPERT, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_INQUISITION, TRAIT_GENERIC) var/datum/devotion/C = new /datum/devotion(H, H.patron) C.grant_spells_templar(H) diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/psydoniantemplar.dm b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/psydoniantemplar.dm index 447e1f1365f..df03ed57b11 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/psydoniantemplar.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/orthoclasses/psydoniantemplar.dm @@ -45,6 +45,7 @@ ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_INQUISITION, TRAIT_GENERIC) H.dna.species.soundpack_m = new /datum/voicepack/male/knight() var/datum/devotion/C = new /datum/devotion(H, H.patron) @@ -54,15 +55,15 @@ /datum/outfit/job/roguetown/psydoniantemplar/choose_loadout(mob/living/carbon/human/H) . = ..() - var/weapons = list("Bastard Sword","Flail","Mace") + var/weapons = list("Bastard Sword","Whip","Executioner Sword") var/weapon_choice = input(H,"Choose your weapon.", "TAKE UP ARMS") as anything in weapons switch(weapon_choice) if("Bastard Sword") H.put_in_hands(new /obj/item/rogueweapon/sword/long(H), TRUE) H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) - if("Flail") - H.put_in_hands(new /obj/item/rogueweapon/flail(H), TRUE) + if("Whip") + H.put_in_hands(new /obj/item/rogueweapon/whip(H), TRUE) H.mind.adjust_skillrank(/datum/skill/combat/whipsflails, 1, TRUE) - if("Mace") - H.put_in_hands(new /obj/item/rogueweapon/mace(H), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/maces, 1, TRUE) + if("Executioner Sword") + H.put_in_hands(new /obj/item/rogueweapon/sword/long/exe(H), TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) diff --git a/code/modules/jobs/job_types/roguetown/Inquisition/puritan.dm b/code/modules/jobs/job_types/roguetown/Inquisition/puritan.dm index 5c8608fa5f1..6d9e838a8c6 100644 --- a/code/modules/jobs/job_types/roguetown/Inquisition/puritan.dm +++ b/code/modules/jobs/job_types/roguetown/Inquisition/puritan.dm @@ -65,6 +65,7 @@ ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_SILVER_BLESSED, TRAIT_GENERIC) + ADD_TRAIT(H, TRAIT_INQUISITION, TRAIT_GENERIC) /mob/living/carbon/human/proc/torture_victim() set name = "Extract Confession" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index ba2227efb55..8bc247aca93 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -98,6 +98,9 @@ var/heretic_text = get_heretic_text(user) if(heretic_text) . += span_notice(heretic_text) + var/inquisition_text =get_inquisition_text(user) + if(inquisition_text) + . +=span_notice(inquisition_text) if(leprosy == 1) . += span_necrosis("A LEPER...") @@ -578,6 +581,15 @@ return heretic_text + +// Used for Inquisition tags +/mob/living/proc/get_inquisition_text(mob/examiner) + var/inquisition_text + if(HAS_TRAIT(src, TRAIT_INQUISITION) && HAS_TRAIT(examiner, TRAIT_INQUISITION)) + inquisition_text += "Fellow Member of the Inquisition" + + return inquisition_text + /// Returns antagonist-related examine text for the mob, if any. Can return null. /mob/living/proc/get_villain_text(mob/examiner) var/villain_text diff --git a/icons/roguetown/clothing/head.dmi b/icons/roguetown/clothing/head.dmi index 7ebf9b49014..5c5d22a9924 100644 Binary files a/icons/roguetown/clothing/head.dmi and b/icons/roguetown/clothing/head.dmi differ diff --git a/icons/roguetown/items/misc.dmi b/icons/roguetown/items/misc.dmi index 390053d391e..5c5d48a9485 100644 Binary files a/icons/roguetown/items/misc.dmi and b/icons/roguetown/items/misc.dmi differ diff --git a/roguetown.dme b/roguetown.dme index 502a48e0a6e..54b3a6dba9f 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -1227,6 +1227,7 @@ #include "code\game\objects\items\rogueitems\dmusicbox.dm" #include "code\game\objects\items\rogueitems\flintsparker.dm" #include "code\game\objects\items\rogueitems\gems.dm" +#include "code\game\objects\items\rogueitems\inquisitionrelics.dm" #include "code\game\objects\items\rogueitems\instruments.dm" #include "code\game\objects\items\rogueitems\keyrings.dm" #include "code\game\objects\items\rogueitems\keys.dm" diff --git a/sound/magic/psydonmusicbox.ogg b/sound/magic/psydonmusicbox.ogg new file mode 100644 index 00000000000..2509936c73c Binary files /dev/null and b/sound/magic/psydonmusicbox.ogg differ