From 416e0768398d7f4e26ea82cc4336a607b6a1a44b Mon Sep 17 00:00:00 2001 From: BadAtThisGame Date: Thu, 21 Nov 2024 20:42:00 +0200 Subject: [PATCH 1/7] Lich/Necromancer evil update --- code/__DEFINES/role_preferences.dm | 6 +- code/__DEFINES/traits.dm | 4 + code/_compile_options.dm | 2 +- code/_globalvars/lists/poll_ignore.dm | 4 +- code/game/gamemodes/game_mode.dm | 2 + code/game/gamemodes/roguetown/roguetown.dm | 29 +- code/modules/admin/sql_ban_system.dm | 3 +- .../antagonists/roguetown/villain/lich.dm | 192 ++++++++++++ .../antagonists/wizard/equipment/spellbook.dm | 5 - code/modules/mob/living/carbon/human/death.dm | 12 + code/modules/mob/living/death.dm | 30 ++ .../simple_animal/rogue/creacher/bigrat.dm | 4 +- code/modules/spells/roguetown/necromancer.dm | 286 ++++++++++++++++++ code/modules/spells/spell_types/lichdom.dm | 160 ---------- code/modules/surgery/bodyparts/_bodyparts.dm | 10 +- icons/mob/actions/roguespells.dmi | Bin 64478 -> 68088 bytes stonekeep.dme | 3 +- 17 files changed, 574 insertions(+), 178 deletions(-) create mode 100644 code/modules/antagonists/roguetown/villain/lich.dm create mode 100644 code/modules/spells/roguetown/necromancer.dm delete mode 100644 code/modules/spells/spell_types/lichdom.dm diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 6ce1022ddf..df0a434db9 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -14,6 +14,7 @@ #define ROLE_DELF "Dark Elf" #define ROLE_PREBEL "Peasant Rebel" #define ROLE_ZIZOIDCULTIST "Zizoid Cultist" +#define ROLE_LICH "Lich" #define ROLE_SYNDICATE "Syndicate" #define ROLE_TRAITOR "Traitor" @@ -45,6 +46,8 @@ #define ROLE_LAVALAND "Lavaland" #define ROLE_INTERNAL_AFFAIRS "Internal Affairs Agent" +#define ROLE_NECRO_SKELETON "Necromancer Skeleton" + //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough //(in game days played) to play that role @@ -75,7 +78,8 @@ GLOBAL_LIST_INIT(special_roles_rogue, list( ROLE_BANDIT = /datum/antagonist/bandit, ROLE_ZIZOIDCULTIST = /datum/antagonist/zizocultist, // ROLE_WEREWOLF = /datum/antagonist/werewolf, - ROLE_NBEAST = /datum/antagonist/vampirelord + ROLE_NBEAST = /datum/antagonist/vampirelord, + ROLE_LICH = /datum/antagonist/lich )) //Job defines for what happens when you fail to qualify for any job during job selection diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index b2824dd81d..d2c6734300 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -26,6 +26,7 @@ #define TRAIT_RETARD_ANATOMY "Inhumen Anatomy" //can't wear hats and shoes #define TRAIT_NASTY_EATER "Inhumen Digestion" //can eat rotten food, organs, poison berries, and drink murky water #define TRAIT_NOFALLDAMAGE1 "Minor fall damage immunity" +#define TRAIT_DEATHSIGHT "Veiled Whispers" // Is notified when a player character dies, but not told exactly where or how. #define TRAIT_ROT_EATER "Blessing of Pestra" //can eat rotten food #define TRAIT_ORGAN_EATER "Blessing of Graggar" #define TRAIT_SOUL_EXAMINE "Blessing of Necra" //can check bodies to see if they have departed @@ -59,6 +60,7 @@ #define TRAIT_IWASREVIVED "iwasrevived" //prevents PQ gain from reviving the same person twice #define TRAIT_IWASUNZOMBIFIED "iwasunzombified" //prevents PQ gain from curing a zombie twice #define TRAIT_ZIZOID_HUNTED "zizoidhunted" // Used to signal character has been marked by death by the Zizoid cult +#define TRAIT_CABAL "Of the Cabal" //Zizo cultists recognize each other too // JOB RELATED TRAITS @@ -109,6 +111,8 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_SHOCKIMMUNE = "I am immune to electrical shocks.", TRAIT_INTRAINING = "I'm going to be a knight someday! I can use training dummies more effectively than others.", TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.", + TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."), + TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal."), )) // trait accessor defines diff --git a/code/_compile_options.dm b/code/_compile_options.dm index cf3061a323..a904e52588 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -1,4 +1,4 @@ -// #define TESTING //By using the testing("message") proc you can create debug-feedback for people with this + #define TESTING //By using the testing("message") proc you can create debug-feedback for people with this //uncommented, but not visible in the release version) //#define DATUMVAR_DEBUGGING_MODE //Enables the ability to cache datum vars and retrieve later for debugging which vars changed. diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index 580caa1ad4..09102adda5 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -21,6 +21,7 @@ #define POLL_IGNORE_SPLITPERSONALITY "split_personality" #define POLL_IGNORE_CONTRACTOR_SUPPORT "contractor_support" #define POLL_IGNORE_ACADEMY_WIZARD "academy_wizard" +#define POLL_IGNORE_NECROMANCER_SKELETON "necromancer_skeleton" GLOBAL_LIST_INIT(poll_ignore_desc, list( @@ -44,7 +45,8 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_IMAGINARYFRIEND = "Imaginary Friend", POLL_IGNORE_SPLITPERSONALITY = "Split Personality", POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit", - POLL_IGNORE_ACADEMY_WIZARD = "Academy Wizard Defender" + POLL_IGNORE_ACADEMY_WIZARD = "Academy Wizard Defender", + POLL_IGNORE_NECROMANCER_SKELETON = "Necromancer Skeleton" )) GLOBAL_LIST_INIT(poll_ignore, init_poll_ignore()) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 98de617ce4..64301595c7 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -52,6 +52,7 @@ var/setup_error //What stopepd setting up the mode. var/list/datum/mind/villains = list() //Murders Runtimes via shoving this into parent + var/list/datum/mind/liches = list() var/list/datum/mind/vampires = list() var/list/datum/mind/deathknights = list() // Ditto as villains mind list. var/list/datum/mind/werewolves = list() @@ -59,6 +60,7 @@ var/list/datum/mind/cultists = list() var/list/datum/mind/pre_villains = list() + var/list/datum/mind/pre_liches = list() var/list/datum/mind/pre_werewolves = list() var/list/datum/mind/pre_vampires = list() var/list/datum/mind/pre_bandits = list() diff --git a/code/game/gamemodes/roguetown/roguetown.dm b/code/game/gamemodes/roguetown/roguetown.dm index 215dc5dcab..99c0a2a1f6 100644 --- a/code/game/gamemodes/roguetown/roguetown.dm +++ b/code/game/gamemodes/roguetown/roguetown.dm @@ -1,5 +1,5 @@ // This mode will become the main basis for the typical roguetown round. Based off of chaos mode. -GLOBAL_LIST_INIT(roguegamemodes, list("Rebellion", "Vampire Lord", "Extended", "Bandits", "CANCEL")) // This is mainly used for forcemgamemodes +GLOBAL_LIST_INIT(roguegamemodes, list("Rebellion", "Vampire Lord", "Extended", "Bandits", "Lich", "CANCEL")) // This is mainly used for forcemgamemodes /datum/game_mode/chaosmode name = "roguemode" @@ -169,6 +169,26 @@ GLOBAL_LIST_INIT(roguegamemodes, list("Rebellion", "Vampire Lord", "Extended", " else return TRUE +/datum/game_mode/chaosmode/proc/pick_lich() + restricted_jobs = list("King", "Queen", "Merchant", "Priest") + antag_candidates = get_players_for_role(ROLE_LICH) + var/datum/mind/lichman = pick_n_take(antag_candidates) + if(lichman) + var/blockme = FALSE + if(!(lichman in allantags)) + blockme = TRUE + if(blockme) + return + allantags -= lichman + pre_liches += lichman + lichman.special_role = ROLE_LICH + lichman.restricted_roles = restricted_jobs.Copy() + testing("[key_name(lichman)] has been selected as the [lichman.special_role]") + log_game("[key_name(lichman)] has been selected as the [lichman.special_role]") + for(var/antag in pre_liches) + GLOB.pre_setup_antags |= antag + restricted_jobs = list() + /datum/game_mode/chaosmode/proc/pick_bandits() //BANDITS banditgoal = rand(200,400) @@ -415,6 +435,13 @@ GLOBAL_LIST_INIT(roguegamemodes, list("Rebellion", "Vampire Lord", "Extended", " GLOB.pre_setup_antags -= cultist cultists += cultist +///////////////// LICH + for(var/datum/mind/lichman in pre_liches) + var/datum/antagonist/new_antag = new /datum/antagonist/lich() + addtimer(CALLBACK(lichman, TYPE_PROC_REF(/datum/mind, add_antag_datum), new_antag), rand(10,100)) + GLOB.pre_setup_antags -= lichman + liches += lichman + ///////////////// WWOLF for(var/datum/mind/werewolf in pre_werewolves) var/datum/antagonist/new_antag = new /datum/antagonist/werewolf() diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 9cbe8b1ea9..78a9cc16c5 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -254,9 +254,10 @@ var/list/long_job_lists = list("Peasants" = GLOB.peasant_positions, "Selfs" = GLOB.serf_positions, "Apprentices" = GLOB.apprentices_positions, + "Ghost and Other Roles" = list(ROLE_NECRO_SKELETON), "Antagonist Positions" = list(ROLE_VILLAIN, ROLE_WEREWOLF, ROLE_VAMPIRE, ROLE_NBEAST, ROLE_BANDIT, - ROLE_DELF, ROLE_PREBEL, ROLE_ZIZOIDCULTIST)) + ROLE_DELF, ROLE_PREBEL, ROLE_ZIZOIDCULTIST, ROLE_LICH)) for(var/department in long_job_lists) output += "
" break_counter = 0 diff --git a/code/modules/antagonists/roguetown/villain/lich.dm b/code/modules/antagonists/roguetown/villain/lich.dm new file mode 100644 index 0000000000..a329242feb --- /dev/null +++ b/code/modules/antagonists/roguetown/villain/lich.dm @@ -0,0 +1,192 @@ +/datum/antagonist/lich + name = "Lich" + roundend_category = "Lich" + antagpanel_category = "Lich" + job_rank = ROLE_LICH + confess_lines = list( + "I WILL LIVE ETERNAL!", + "I AM BEHIND SEVEN PHYLACTERIES!", + "YOU CANNOT KILL ME!", + ) + var/list/phylacteries = list() + var/out_of_lives = FALSE + +/mob/living/carbon/human + /// List of minions that this mob has control over. Used for things like the Lich's "Command Undead" spell. + var/list/mob/minions = list() + +/datum/antagonist/lich/on_gain() + var/datum/game_mode/C = SSticker.mode + C.liches |= owner + . = ..() + owner.special_role = name + skele_look() + equip_lich() + greet() + return ..() + +/datum/antagonist/lich/greet() + to_chat(owner.current, span_userdanger("The secret of immortality is mine, but this is not enough. A thousand lichdoms have risen and fallen over the eras. Mine will be the one to last.")) + owner.announce_objectives() + ..() + +/datum/antagonist/lich/proc/skele_look() + var/mob/living/carbon/human/L = owner.current + L.hairstyle = "Bald" + L.facial_hairstyle = "Shaved" + L.update_body() + L.update_hair() + L.update_body_parts(redraw = TRUE) + +/datum/antagonist/lich/proc/equip_lich() + owner.unknow_all_people() + for(var/datum/mind/MF in get_minds()) + owner.become_unknown_to(MF) + var/mob/living/carbon/human/L = owner.current + ADD_TRAIT(L, TRAIT_NOROGSTAM, "[type]") + ADD_TRAIT(L, TRAIT_NOHUNGER, "[type]") + ADD_TRAIT(L, TRAIT_NOBREATH, "[type]") + ADD_TRAIT(L, TRAIT_NOPAIN, "[type]") + ADD_TRAIT(L, TRAIT_TOXIMMUNE, "[type]") + ADD_TRAIT(L, TRAIT_STEELHEARTED, "[type]") + ADD_TRAIT(L, TRAIT_NOSLEEP, "[type]") + ADD_TRAIT(L, TRAIT_VAMPMANSION, "[type]") + ADD_TRAIT(L, TRAIT_NOMOOD, "[type]") + ADD_TRAIT(L, TRAIT_NOLIMBDISABLE, "[type]") + ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, "[type]") + ADD_TRAIT(L, TRAIT_LIMBATTACHMENT, "[type]") + ADD_TRAIT(L, TRAIT_SEEPRICES, "[type]") + ADD_TRAIT(L, TRAIT_CRITICAL_RESISTANCE, "[type]") + ADD_TRAIT(L, TRAIT_HEAVYARMOR, "[type]") + ADD_TRAIT(L, TRAIT_CABAL, "[type]") + ADD_TRAIT(L, TRAIT_DEATHSIGHT, "[type]") + L.cmode_music = 'sound/music/combat_cult.ogg' + L.faction = list("undead") + if(L.charflaw) + QDEL_NULL(L.charflaw) + L.mob_biotypes |= MOB_UNDEAD + var/obj/item/organ/eyes/eyes = L.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.Remove(L,1) + QDEL_NULL(eyes) + eyes = new /obj/item/organ/eyes/night_vision/zombie + eyes.Insert(L) + for(var/obj/item/bodypart/B in L.bodyparts) + B.skeletonize(FALSE) + L.equipOutfit(/datum/outfit/job/roguetown/lich) + L.set_patron(/datum/patron/inhumen/zizo) + +/datum/outfit/job/roguetown/lich/pre_equip(mob/living/carbon/human/H) + ..() + head = /obj/item/clothing/head/roguetown/helmet/skullcap/cult + pants = /obj/item/clothing/under/roguetown/chainlegs + shoes = /obj/item/clothing/shoes/roguetown/shortboots + neck = /obj/item/clothing/neck/roguetown/chaincoif + armor = /obj/item/clothing/suit/roguetown/shirt/robe/necromancer + shirt = /obj/item/clothing/suit/roguetown/shirt/tunic/ucolored + wrists = /obj/item/clothing/wrists/roguetown/bracers + gloves = /obj/item/clothing/gloves/roguetown/chain + belt = /obj/item/storage/belt/rogue/leather/black + backl = /obj/item/storage/backpack/rogue/satchel + beltr = /obj/item/reagent_containers/glass/bottle/rogue/manapot + beltl = /obj/item/rogueweapon/knife/dagger/steel + r_hand = /obj/item/rogueweapon/polearm/woodstaff + + H.mind.adjust_skillrank(/datum/skill/misc/reading, 6, TRUE) + H.mind?.adjust_skillrank(/datum/skill/craft/alchemy, 5, TRUE) + H.mind.adjust_skillrank(/datum/skill/magic/arcane, 5, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/riding, 4, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/misc/athletics, 1, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/swords, 2, TRUE) + H.mind.adjust_skillrank(/datum/skill/combat/knives, 5, TRUE) + H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) + //H.mind.adjust_skillrank(/datum/skill/misc/medicine, 4, TRUE) + + H.change_stat("strength", -1) + H.change_stat("intelligence", 5) + H.change_stat("constitution", 5) + H.change_stat("endurance", -1) + H.change_stat("speed", -1) + + H.mind.AddSpell(new /obj/effect/proc_holder/spell/self/command_undead) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/strengthen_undead) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/raise_undead) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fireball) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/bloodlightning) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/eyebite) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/sickness) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) + H.ambushable = FALSE + + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, choose_name_popup), "LICH"), 5 SECONDS) + +/datum/outfit/job/roguetown/lich/post_equip(mob/living/carbon/human/H) + ..() + var/datum/antagonist/lich/lichman = H.mind.has_antag_datum(/datum/antagonist/lich) + for(var/i in 1 to 3) + var/obj/item/phylactery/new_phylactery = new(H.loc) + lichman.phylacteries += new_phylactery + new_phylactery.possessor = lichman + H.equip_to_slot_or_del(new_phylactery,SLOT_IN_BACKPACK, TRUE) + +/datum/antagonist/lich/proc/consume_phylactery(timer = 10 SECONDS) + for(var/obj/item/phylactery/phyl in phylacteries) + phyl.be_consumed(timer) + phylacteries -= phyl + return TRUE + +/datum/antagonist/lich/proc/rise_anew() + var/mob/living/carbon/human/bigbad = owner.current + bigbad.revive(TRUE, TRUE) + + for(var/obj/item/bodypart/B in bigbad.bodyparts) + B.skeletonize(FALSE) + + bigbad.faction = list("undead") + if(bigbad.charflaw) + QDEL_NULL(bigbad.charflaw) + bigbad.mob_biotypes |= MOB_UNDEAD + var/obj/item/organ/eyes/eyes = bigbad.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.Remove(bigbad,1) + QDEL_NULL(eyes) + eyes = new /obj/item/organ/eyes/night_vision/zombie + eyes.Insert(bigbad) + + +/obj/item/phylactery + name = "phylactery" + desc = "Looks like it is filled with some intense power." + icon = 'icons/obj/wizard.dmi' + icon_state = "soulstone" + item_state = "electronic" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + layer = HIGH_OBJ_LAYER + w_class = WEIGHT_CLASS_TINY + light_color = "#003300" + var/datum/antagonist/lich/possessor + + var/resurrections = 0 + var/datum/mind/mind + var/respawn_time = 1800 + + var/static/active_phylacteries = 0 + +/obj/item/phylactery/Initialize(mapload, datum/mind/newmind) + . = ..() + filters += filter(type="drop_shadow", x=0, y=0, size=1, offset=2, color=rgb(rand(1,255),rand(1,255),rand(1,255))) + +/obj/item/phylactery/proc/be_consumed(timer) + var/offset = prob(50) ? -2 : 2 + animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = -1) //start shaking + visible_message(span_warning("[src] begins to glow and shake violently!")) + spawn(timer) + possessor.owner.current.forceMove(get_turf(src)) + possessor.rise_anew() + qdel(src) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 6034cd6c81..69163de39c 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -201,11 +201,6 @@ category = "Assistance" cost = 1 -/datum/spellbook_entry/lichdom - name = "Bind Soul" - spell_type = /obj/effect/proc_holder/spell/targeted/lichdom - category = "Defensive" - /datum/spellbook_entry/teslablast name = "Tesla Blast" spell_type = /obj/effect/proc_holder/spell/targeted/tesla diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index e8eb3ca2b1..111e3e3771 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -45,6 +45,18 @@ dust(just_ash=TRUE,drop_items=TRUE) return + var/datum/antagonist/lich/L = mind.has_antag_datum(/datum/antagonist/lich) + if (L && !L.out_of_lives) + if(L.consume_phylactery()) + visible_message(span_warning("[src]'s body begins to shake violently, as eldritch forces begin to whisk them away!")) + to_chat(src, span_userdanger("Death is not the end for me. I begin to rise again.")) + playsound(src, 'sound/magic/antimagic.ogg', 100, FALSE) + else + to_chat(src, span_userdanger("No, NO! This cannot be!")) + L.out_of_lives = TRUE + gib() + return + if(!gibbed) if(!is_in_roguetown(src)) zombie_check() diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 6c8012fb6a..3e5c58276e 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -128,4 +128,34 @@ set_typing_indicator(FALSE) + if (client) + if (!gibbed) + var/locale = prepare_deathsight_message() + for (var/mob/living/player in GLOB.player_list) + if (player.stat == DEAD || isbrain(player)) + continue + if (HAS_TRAIT(player, TRAIT_DEATHSIGHT)) + if (HAS_TRAIT(player, TRAIT_CABAL)) + to_chat(player, span_warning("I feel the faint passage of disjointed life essence as it flees [locale].")) + else + to_chat(player, span_warning("Veiled whispers herald the Undermaiden's gaze in my mind's eye as it turn towards [locale] for but a brief, singular moment.")) + return TRUE + +/mob/living/proc/prepare_deathsight_message() + var/area_of_death = lowertext(get_area_name(src)) + var/locale = "a locale wreathed in enigmatic fog" + switch (area_of_death) // we're deliberately obtuse with this. + if ("mountains", "mt decapitation") + locale = "a twisted tangle of soaring peaks" + if ("wilderness", "azure basin") + locale = "somewhere in the wilds" + if ("bog", "dense bog") + locale = "a wretched, fetid bog" + if ("coast", "coastforest") + locale = "somewhere betwixt Abyssor's realm and Dendor's bounty" + if ("indoors", "shop", "physician", "outdoors", "roofs", "manor", "wizard's tower", "garrison", "dungeon cell", "baths", "tavern") + locale = "the city of Azure Peak and all its bustling souls" + if ("church") + locale = "a hallowed place, sworn to the Ten" // special bit for the church since it's sacred ground + return locale diff --git a/code/modules/mob/living/simple_animal/rogue/creacher/bigrat.dm b/code/modules/mob/living/simple_animal/rogue/creacher/bigrat.dm index 9874a7a97b..cda3bace08 100644 --- a/code/modules/mob/living/simple_animal/rogue/creacher/bigrat.dm +++ b/code/modules/mob/living/simple_animal/rogue/creacher/bigrat.dm @@ -18,10 +18,10 @@ botched_butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/mince = 1) butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/mince = 1, - /obj/item/natural/fur/rous = 1) + /obj/item/natural/fur/rous = 1, /obj/item/alch/bone = 2) perfect_butcher_results = list(/obj/item/reagent_containers/food/snacks/rogue/meat/steak = 1, /obj/item/alch/sinew = 1, - /obj/item/natural/fur/rous = 1) + /obj/item/natural/fur/rous = 1, /obj/item/alch/bone = 4) health = ROUS_HEALTH maxHealth = ROUS_HEALTH diff --git a/code/modules/spells/roguetown/necromancer.dm b/code/modules/spells/roguetown/necromancer.dm new file mode 100644 index 0000000000..33ff4b6cc3 --- /dev/null +++ b/code/modules/spells/roguetown/necromancer.dm @@ -0,0 +1,286 @@ +/obj/effect/proc_holder/spell/invoked/strengthen_undead + name = "Strengthen Undead" + overlay_state = "raiseskele" + releasedrain = 30 + chargetime = 5 + range = 7 + warnie = "sydwarning" + movement_interrupt = FALSE + chargedloop = null + sound = 'sound/magic/whiteflame.ogg' + associated_skill = /datum/skill/magic/arcane + antimagic_allowed = TRUE + charge_max = 15 SECONDS + miracle = FALSE + +/obj/effect/proc_holder/spell/invoked/strengthen_undead/cast(list/targets, mob/living/user) + . = ..() + if(isliving(targets[1])) + var/mob/living/target = targets[1] + if(target.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead + var/obj/item/bodypart/affecting = target.get_bodypart(check_zone(user.zone_selected)) + if(affecting) + if(affecting.heal_damage(50, 50)) + target.update_damage_overlays() + if(affecting.heal_wounds(50)) + target.update_damage_overlays() + target.visible_message(span_danger("[target] reforms under the vile energy!"), span_notice("I'm remade by dark magic!")) + return TRUE + target.visible_message(span_info("Necrotic energy floods over [target]!"), span_userdanger("I feel colder as the dark energy floods into me!")) + if(iscarbon(target)) + target.Paralyze(50) + else + target.adjustBruteLoss(20) + return TRUE + return FALSE + +/obj/effect/proc_holder/spell/invoked/eyebite + name = "Eyebite" + overlay_state = "profane" + releasedrain = 30 + chargetime = 15 + range = 7 + warnie = "sydwarning" + movement_interrupt = FALSE + chargedloop = null + sound = 'sound/items/beartrap.ogg' + associated_skill = /datum/skill/magic/arcane + antimagic_allowed = TRUE + charge_max = 15 SECONDS + miracle = FALSE + +/obj/effect/proc_holder/spell/invoked/eyebite/cast(list/targets, mob/living/user) + . = ..() + if(isliving(targets[1])) + var/mob/living/carbon/target = targets[1] + target.visible_message(span_info("A loud crunching sound has come from [target]!"), span_userdanger("I feel arcane teeth biting into my eyes!")) + target.adjustBruteLoss(30) + target.blind_eyes(2) + target.blur_eyes(10) + return TRUE + return FALSE + +/obj/effect/proc_holder/spell/invoked/raise_undead + name = "Raise Undead" + desc = "" + clothes_req = FALSE + range = 7 + overlay_state = "raiseskele" + sound = list('sound/magic/magnet.ogg') + releasedrain = 40 + chargetime = 60 + warnie = "spellwarning" + no_early_release = TRUE + charging_slowdown = 1 + chargedloop = /datum/looping_sound/invokegen + associated_skill = /datum/skill/magic/arcane + charge_max = 30 SECONDS + + +/** + * Raises a minion from a corpse. Prioritizing ownership to original player > ghosts > npc. + * + * Vars: + * * targets: list of mobs that are targetted. + * * user: spell caster. + */ +/obj/effect/proc_holder/spell/invoked/raise_undead/cast(list/targets, mob/living/carbon/human/user) + . = ..() + + user.say("Hgf'ant'kthar!") + + var/obj = targets[1] + + if(!obj || !istype(obj, /mob/living/carbon/human)) + to_chat(user, span_warning("I need to cast this spell on a corpse.")) + return FALSE + + // bandaid until goblin skeleton immortality is fixed + if(istype(obj, /mob/living/carbon/human/species/goblin)) + to_chat(user, span_warning("I cannot raise goblins.")) + return FALSE + + var/mob/living/carbon/human/target = obj + + if(target.stat != DEAD) + to_chat(user, span_warning("I cannot raise the living.")) + return FALSE + + var/obj/item/bodypart/target_head = target.get_bodypart(BODY_ZONE_HEAD) + if(!target_head) + to_chat(user, span_warning("This corpse is headless.")) + return FALSE + + var/offer_refused = FALSE + + target.visible_message(span_warning("[target.real_name]'s body is engulfed by dark energy...")) + + if(target.ckey) //player still inside body + + var/offer = alert(target, "Do you wish to be reanimated as a minion?", "RAISED BY NECROMANCER", "Yes", "No") + var/offer_time = world.time + + if(offer == "No" || world.time > offer_time + 5 SECONDS) + to_chat(target, span_danger("Another soul will take over.")) + offer_refused = TRUE + + else if(offer == "Yes") + to_chat(target, span_danger("You rise as a minion.")) + target.turn_to_minion(user, target.ckey) + target.visible_message(span_warning("[target.real_name]'s eyes light up with an evil glow.")) + return TRUE + + if(!target.ckey || offer_refused) //player is not inside body or has refused, poll for candidates + + var/list/candidates = pollCandidatesForMob("Do you want to play as a Necromancer's minion?", null, null, null, 100, target, POLL_IGNORE_NECROMANCER_SKELETON) + + // theres at least one candidate + if(LAZYLEN(candidates)) + var/mob/C = pick(candidates) + target.turn_to_minion(user, C.ckey) + target.visible_message(span_warning("[target.real_name]'s eyes light up with an eerie glow.")) + + //no candidates, raise as npc + else + target.turn_to_minion(user) + target.visible_message(span_warning("[target.real_name]'s eyes light up with a weak glow.")) + + return TRUE + + return FALSE + +/** + * Turns a mob into a skeletonized minion. Used for raising undead minions. + * If a ckey is provided, the minion will be controlled by the player, NPC otherwise. + * + * Vars: + * * master: master of the minion. + * * ckey (optional): ckey of the player that will control the minion. + */ +/mob/living/carbon/human/proc/turn_to_minion(mob/living/carbon/human/master, ckey) + + if(!master) + return FALSE + + src.revive(TRUE, TRUE) + + if(ckey) //player + src.ckey = ckey + else //npc + aggressive = 1 + mode = AI_HUNT + wander = TRUE + + if(!mind) + mind_initialize() + + mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) + mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) + mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) + mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + mind.current.job = null + + dna.species.species_traits |= NOBLOOD + dna.species.soundpack_m = new /datum/voicepack/skeleton() + dna.species.soundpack_f = new /datum/voicepack/skeleton() + + + cmode_music = 'sound/music/combat_cult.ogg' + + patron = master.patron + mob_biotypes = MOB_UNDEAD + faction = list("undead") + ambushable = FALSE + underwear = "Nude" + + for(var/obj/item/bodypart/BP in bodyparts) + BP.skeletonize() + + var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.Remove(src,1) + QDEL_NULL(eyes) + + eyes = new /obj/item/organ/eyes/night_vision/zombie + eyes.Insert(src) + + if(charflaw) + QDEL_NULL(charflaw) + + ADD_TRAIT(src, TRAIT_NOMOOD, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_NOLIMBDISABLE, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_EASYDISMEMBER, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_LIMBATTACHMENT, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_NOHUNGER, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_NOBREATH, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_NOPAIN, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_TOXIMMUNE, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_NOSLEEP, TRAIT_GENERIC) + ADD_TRAIT(src, TRAIT_SHOCKIMMUNE, TRAIT_GENERIC) + + update_body() + + to_chat(src, span_userdanger("My master is [master.real_name].")) + + master.minions += src + + return TRUE + +/obj/effect/proc_holder/spell/invoked/projectile/sickness + name = "Ray of Sickness" + desc = "" + clothes_req = FALSE + range = 15 + projectile_type = /obj/projectile/magic/sickness + overlay_state = "profane" + sound = list('sound/misc/portal_enter.ogg') + active = FALSE + releasedrain = 30 + chargetime = 10 + warnie = "spellwarning" + no_early_release = TRUE + charging_slowdown = 1 + chargedloop = /datum/looping_sound/invokegen + associated_skill = /datum/skill/magic/arcane + charge_max = 15 SECONDS + +/obj/effect/proc_holder/spell/self/command_undead + name = "Command Undead" + desc = "!" + overlay_state = "animate" + sound = list('sound/magic/magnet.ogg') + invocation = "Zuth'gorash vel'thar dral'oth!" + invocation_type = "shout" + antimagic_allowed = TRUE + charge_max = 15 SECONDS + +/obj/effect/proc_holder/spell/self/command_undead/cast(mob/user = usr) + ..() + + var/message = input("Speak to your minions!", "LICH") as text|null + + if(!message) + return + + var/mob/living/carbon/human/lich_player = user + + to_chat(lich_player, span_boldannounce("Lich [lich_player.real_name] commands: [message]")) + + for(var/mob/player in lich_player.minions) + if(player.mind) + to_chat(player, span_boldannounce("Lich [lich_player.real_name] commands: [message]")) + + +/obj/projectile/magic/sickness + name = "Bolt of Sickness" + icon_state = "xray" + damage = 10 + damage_type = BURN + flag = "magic" + +/obj/projectile/magic/sickness/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.reagents.add_reagent(/datum/reagent/toxin, 3) diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm deleted file mode 100644 index 7695370cc8..0000000000 --- a/code/modules/spells/spell_types/lichdom.dm +++ /dev/null @@ -1,160 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/lichdom - name = "Bind Soul" - desc = "A dark necromantic pact that can forever bind my soul to an \ - item of my choosing. So long as both my body and the item remain \ - intact and on the same plane you can revive from death, though the time \ - between reincarnations grows steadily with use, along with the weakness \ - that the new skeleton body will experience upon 'birth'. Note that \ - becoming a lich destroys all internal organs except the brain." - school = "necromancy" - charge_max = 10 - clothes_req = FALSE - centcom_cancast = FALSE - invocation = "NECREM IMORTIUM!" - invocation_type = "shout" - range = -1 - level_max = 0 //cannot be improved - cooldown_min = 10 - include_user = TRUE - - action_icon = 'icons/mob/actions/actions_spells.dmi' - action_icon_state = "skeleton" - -/obj/effect/proc_holder/spell/targeted/lichdom/cast(list/targets,mob/user = usr) - for(var/mob/M in targets) - var/list/hand_items = list() - if(iscarbon(M)) - hand_items = list(M.get_active_held_item(),M.get_inactive_held_item()) - if(!hand_items.len) - to_chat(M, "I must hold an item you wish to make my phylactery!") - return - if(!M.mind.hasSoul) - to_chat(user, "I do not possess a soul!") - return - - var/obj/item/marked_item - - for(var/obj/item/item in hand_items) - // I ensouled the nuke disk once. But it's probably a really - // mean tactic, so probably should discourage it. - if((item.item_flags & ABSTRACT) || HAS_TRAIT(item, TRAIT_NODROP) || SEND_SIGNAL(item, COMSIG_ITEM_IMBUE_SOUL, user)) - continue - marked_item = item - to_chat(M, "I begin to focus my very being into [item]...") - break - - if(!marked_item) - to_chat(M, "None of the items you hold are suitable for emplacement of my fragile soul.") - return - - playsound(user, 'sound/blank.ogg', 100) - - if(!do_after(M, 50, needhand=FALSE, target=marked_item)) - to_chat(M, "My soul snaps back to my body as you stop ensouling [marked_item]!") - return - - marked_item.name = "ensouled [marked_item.name]" - marked_item.desc += "\nA terrible aura surrounds this item, its very existence is offensive to life itself..." - marked_item.add_atom_colour("#003300", ADMIN_COLOUR_PRIORITY) - - new /obj/item/phylactery(marked_item, M.mind) - - to_chat(M, "With a hideous feeling of emptiness you watch in horrified fascination as skin sloughs off bone! Blood boils, nerves disintegrate, eyes boil in their sockets! As my organs crumble to dust in my fleshless chest you come to terms with my choice. You're a lich!") - M.mind.hasSoul = FALSE - M.set_species(/datum/species/skeleton) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - H.dropItemToGround(H.wear_pants) - H.dropItemToGround(H.wear_armor) - H.dropItemToGround(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), SLOT_ARMOR) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), SLOT_PANTS) - - // you only get one phylactery. - M.mind.RemoveSpell(src) - - -/obj/item/phylactery - name = "phylactery" - desc = "" - icon = 'icons/obj/projectiles.dmi' - icon_state = "bluespace" - color = "#003300" - light_color = "#003300" - var/lon_range = 3 - var/resurrections = 0 - var/datum/mind/mind - var/respawn_time = 1800 - - var/static/active_phylacteries = 0 - -/obj/item/phylactery/Initialize(mapload, datum/mind/newmind) - . = ..() - mind = newmind - name = "phylactery of [mind.name]" - - active_phylacteries++ - GLOB.poi_list |= src - START_PROCESSING(SSobj, src) - set_light(lon_range) - if(initial(SSticker.mode.round_ends_with_antag_death)) - SSticker.mode.round_ends_with_antag_death = FALSE - -/obj/item/phylactery/Destroy(force=FALSE) - STOP_PROCESSING(SSobj, src) - active_phylacteries-- - GLOB.poi_list -= src - if(!active_phylacteries) - SSticker.mode.round_ends_with_antag_death = initial(SSticker.mode.round_ends_with_antag_death) - . = ..() - -/obj/item/phylactery/process() - if(QDELETED(mind)) - qdel(src) - return - - if(!mind.current || (mind.current && mind.current.stat == DEAD)) - addtimer(CALLBACK(src, PROC_REF(rise)), respawn_time, TIMER_UNIQUE) - -/obj/item/phylactery/proc/rise() - if(mind.current && mind.current.stat != DEAD) - return "[mind] already has a living body: [mind.current]" - - var/turf/item_turf = get_turf(src) - if(!item_turf) - return "[src] is not at a turf? NULLSPACE!?" - - var/mob/old_body = mind.current - var/mob/living/carbon/human/lich = new(item_turf) - - lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), SLOT_SHOES) - lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), SLOT_PANTS) - lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), SLOT_ARMOR) - lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), SLOT_HEAD) - - lich.real_name = mind.name - mind.transfer_to(lich) - mind.grab_ghost(force=TRUE) - lich.hardset_dna(null,null,lich.real_name,null, new /datum/species/skeleton) - to_chat(lich, "My bones clatter and shudder as you are pulled back into this world!") - var/turf/body_turf = get_turf(old_body) - lich.Paralyze(200 + 200*resurrections) - resurrections++ - if(old_body && old_body.loc) - if(iscarbon(old_body)) - var/mob/living/carbon/C = old_body - for(var/obj/item/W in C) - C.dropItemToGround(W) - for(var/X in C.internal_organs) - var/obj/item/organ/I = X - I.Remove(C) - I.forceMove(body_turf) - var/wheres_wizdo = dir2text(get_dir(body_turf, item_turf)) - if(wheres_wizdo) - old_body.visible_message("Suddenly [old_body.name]'s corpse falls to pieces! You see a strange energy rise from the remains, and speed off towards the [wheres_wizdo]!") - body_turf.Beam(item_turf,icon_state="lichbeam",time=10+10*resurrections,maxdistance=INFINITY) - old_body.dust() - - - return "Respawn of [mind] successful." diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 6485f66f44..46d2797b9f 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -201,7 +201,7 @@ for(var/obj/item/I in src) I.forceMove(T) -/obj/item/bodypart/proc/skeletonize() +/obj/item/bodypart/proc/skeletonize(lethal = TRUE) if(bandage) remove_bandage() for(var/obj/item/I in embedded_objects) @@ -210,14 +210,14 @@ qdel(I) skeletonized = TRUE -/obj/item/bodypart/chest/skeletonize() +/obj/item/bodypart/chest/skeletonize(lethal = TRUE) . = ..() - if(owner && !(NOBLOOD in owner.dna?.species?.species_traits)) + if(lethal && owner && !(NOBLOOD in owner.dna?.species?.species_traits)) owner.death() -/obj/item/bodypart/head/skeletonize() +/obj/item/bodypart/head/skeletonize(lethal = TRUE) . = ..() - if(owner && !(NOBLOOD in owner.dna?.species?.species_traits)) + if(lethal && owner && !(NOBLOOD in owner.dna?.species?.species_traits)) owner.death() /obj/item/bodypart/proc/consider_processing() diff --git a/icons/mob/actions/roguespells.dmi b/icons/mob/actions/roguespells.dmi index 92cc34d18854ebbf44a13572f2a18eeb66c79033..ebce5489ae4f74d7f4d628e87b672934e6b529ae 100644 GIT binary patch delta 51162 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 delta 47524 zcmXt81yEaCw+XO^-HH?nFZZ8$Gf5_A zXL2T4^2yr!F$I3(0WOgi;PKV^o_Rbs?qm^yTDYG$|;*wAzNjdbRVO_YQb+SkZnG?y=N|&mF4VA_#8Tdee2BrZ=-(OD$X2IyBO?pfbx$Xk^-~WX z&AcZb#NQZ~p@T@Dc zwh}`$b*~Y(n@Z;C7F4lZ>dnGKu53q%?PlR@EU?20vzFlg2T=IcFvs7pHQ@d^A;r#K zM6gy(OD=_24PMX>?o$a!XwL6`eVwM5f$l_Jq5@yejdHs-cX_rJW6p#xzwCT&`p-CD z0HAL6=!JNGKcm{Bq}L6{q2uc5V;Y2=}CDvufV*EpOTn|d=l6tES%N;u0m22Oemc=MD4k~Zs*|CO$KAvu~~u<|@H@PL4dYnV30 z-3QCtJ5g-PElP=kw^3CIH@6#okcN}m907U6n=&DyJ)+=faM*$w z94dxyHy;yomAd{plZXdapUCm?v9$=#tEIuPr4M<)dvVqNIpjSNGV6`5FCM4BV$DC% z*HYp`PS#z{4%vM7V3F`wc@n$W7FWHCnPZPkK4+ue1Tp6g;mWx$R%Jhog^W6GRsR0U z4OmOK=437Ion?m25q@P7{PLph;TDpsqEfGU-aq~KMJnG#)6KZ^2!||*0u)Cs(y=-6 z_9hv)S=aNGm53sgZr8lt-)Y<>Ghet2qKFlW2kyVg~IP7o7=1JSDr7WH8| zu6~UMDHGEPyG!@(9dD>u{hshPkrAsHh`GzKWRjNCYPFdy3e;4`JD#>VTT!v?<>~S` z%=H+1%&aAO9p-qbEv<3talGvHR+uDSn${EVUF&%&YN*X`3NpHVmhdqH#!lbrCYj%T z7gNPNKlX>zOwG{1deHZ_@VD8%ap8_7)I|6OOJ)B`;R4E?;#M@y zRRBPVNlC$@qoX>NF4oeS$vcS-akA!R=czrfV)B6F*d+vlko)8Hd}q^M=a(FT5fbRp zqK0PtjbeJ*UjqF z?DlI_+BhCW_rCp1zNi~U%(P@0>?p&4b2)3T#4`2s>W@RxJg#)KZ?Ici#c+%yGhD-t zlcnKx-arFoa@!`yg4dc*zn7HEq%rH7?T@FCtzrmu+yi)QzrO(VWbbOdyWg%{U~cSu zwVtl5tiU0mn^7z@t0AKgEC=&>Bv24fJO}96cUZ!}wZbEJIioqypoRaXGGB0Vw z_+#C@O@cdPEY&JG99rQq#I>8mt=Lzne4Jr1`6@XLuD^(^UAx1%&{$vYbnb`#$ijKE z(+YQKb?>Eae|@MB8zT- zM=Pec#cvn5+?zh>kF~19e}g=_m;}9g^?$eta&qclI{0=C1TCBJ+@EvpWCyeTA}JF+ zn7xdMKnT%Vq?*!?FU?Na{kDlY@Rgp;SW&Q8rcoGFgMHFrMTAGSl=qeHh>Cye;d4H}+f-WJ5KZ=d_6FR&x@fx6M z?QZWkX}DuwJuk&_9N1I-%lJo(v*&sy?e>3Ng2#CpHJaM&LND^rllt2EJoCR4`!^Q< zYL^VmrXUYJc{h@XL0OSxR;>9`msT7UbnAD6`(J8 `06oJ`DSJmTX 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 M Date: Thu, 21 Nov 2024 20:42:50 +0200 Subject: [PATCH 2/7] Testing mode --- code/_compile_options.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index a904e52588..9fd75373a9 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -1,4 +1,4 @@ - #define TESTING //By using the testing("message") proc you can create debug-feedback for people with this +//#define TESTING //By using the testing("message") proc you can create debug-feedback for people with this //uncommented, but not visible in the release version) //#define DATUMVAR_DEBUGGING_MODE //Enables the ability to cache datum vars and retrieve later for debugging which vars changed. From 8d0b43fdfc74a4faa1f3bde85967d2fd499a914d Mon Sep 17 00:00:00 2001 From: BadAtThisGame Date: Wed, 4 Dec 2024 01:05:50 +0200 Subject: [PATCH 3/7] No Azure Bleak --- code/modules/mob/living/death.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 48c098d6e3..9670a4f229 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -149,14 +149,14 @@ switch (area_of_death) // we're deliberately obtuse with this. if ("mountains", "mt decapitation") locale = "a twisted tangle of soaring peaks" - if ("wilderness", "azure basin") + if ("wilderness", "rockhill basin") locale = "somewhere in the wilds" if ("bog", "dense bog") locale = "a wretched, fetid bog" if ("coast", "coastforest") locale = "somewhere betwixt Abyssor's realm and Dendor's bounty" if ("indoors", "shop", "physician", "outdoors", "roofs", "manor", "wizard's tower", "garrison", "dungeon cell", "baths", "tavern") - locale = "the city of Azure Peak and all its bustling souls" + locale = "the city of Rockhill and all its bustling souls" if ("church") locale = "a hallowed place, sworn to the Ten" // special bit for the church since it's sacred ground return locale From 39fcc102c832ea7b4a678c8da9dcbaacae0cf0fb Mon Sep 17 00:00:00 2001 From: BadAtThisGame <79063506+BadAtThisGame302@users.noreply.github.com> Date: Sat, 11 Jan 2025 19:23:02 +0200 Subject: [PATCH 4/7] Update traits.dm --- code/__DEFINES/traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index e79a427b79..d4dfff4a0a 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -113,7 +113,7 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_SHOCKIMMUNE = "I am immune to electrical shocks.", TRAIT_INTRAINING = "I'm going to be a knight someday! I can use training dummies more effectively than others.", TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.", - TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."), + TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."), TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."), TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal.") )) From 621fc2a70206e9b2b1c9dc8509e47d0e8b870a8c Mon Sep 17 00:00:00 2001 From: BadAtThisGame Date: Sat, 11 Jan 2025 19:27:39 +0200 Subject: [PATCH 5/7] d --- code/__DEFINES/traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index d4dfff4a0a..6d01fcb24b 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.", TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."), TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."), - TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal.") + TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal."), )) // trait accessor defines From edfa78f1c91b8a32aab3efb65166f4c957521324 Mon Sep 17 00:00:00 2001 From: BadAtThisGame Date: Sat, 11 Jan 2025 19:54:14 +0200 Subject: [PATCH 6/7] Reverts --- code/__DEFINES/traits.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 6d01fcb24b..d4dfff4a0a 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.", TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."), TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."), - TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal."), + TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal.") )) // trait accessor defines From 0f5790028f098787d905fb1d5850217177dac86c Mon Sep 17 00:00:00 2001 From: BadAtThisGame <79063506+BadAtThisGame302@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:49:48 +0200 Subject: [PATCH 7/7] Update traits.dm --- code/__DEFINES/traits.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 6d7eb32b35..24ec283232 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -117,8 +117,8 @@ GLOBAL_LIST_INIT(roguetraits, list( TRAIT_MALUMFIRE = "My hands are blessed by Malum to forge items of superb quality.", TRAIT_MOB_FIRE_IMMUNE = span_info("I am not easily burned by flames."), TRAIT_DEATHSIGHT = span_info("I can feel when someone nearby draws the Undermaiden's attention."), - TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal.") - TRAIT_KAIZOKU = "Whether by birth or by learning, I've inherited the Islander ways instead of Imperial culture.", + TRAIT_CABAL = span_info("In secret, I have studied the ways of Zizo's ascension, and know of others of the Cabal."), + TRAIT_KAIZOKU = "Whether by birth or by learning, I've inherited the Islander ways instead of Imperial culture." )) // trait accessor defines