From 5a2e1e27c622ef2f366773129c1152119a3527a5 Mon Sep 17 00:00:00 2001 From: Dhaeleena M'iar Date: Fri, 22 May 2026 15:38:02 -0300 Subject: [PATCH 1/2] IN HER NAME! Ira's necro project --- .../objects/items/rogueitems/necro_relics.dm | 8 +- .../adventurer/types/wretch/necromancer.dm | 4 +- .../roguetown/other/lich_skeleton.dm | 43 ++++- .../necromancer/raise_undead_formation.dm | 12 +- .../necromancer/raise_undead_guard.dm | 18 +- .../roguetown/necromancer/tame_undead.dm | 14 +- .../modules/clothing/rogueclothes/cloaks.dm | 19 ++ .../npc/skeleton/skeleton_necromancer.dm | 171 ++++++++++++++++++ .../code/modules/shields/shields.dm | 26 +++ .../icons/clothing/onmob/tabards.dmi | Bin 0 -> 3684 bytes .../icons/clothing/tabards.dmi | Bin 0 -> 1103 bytes .../icons/weapons/shields32.dmi | Bin 0 -> 1105 bytes roguetown.dme | 3 + 13 files changed, 292 insertions(+), 26 deletions(-) create mode 100644 modular_causticcove/code/modules/clothing/rogueclothes/cloaks.dm create mode 100644 modular_causticcove/code/modules/mob/living/carbon/human/npc/skeleton/skeleton_necromancer.dm create mode 100644 modular_causticcove/code/modules/shields/shields.dm create mode 100644 modular_causticcove/icons/clothing/onmob/tabards.dmi create mode 100644 modular_causticcove/icons/clothing/tabards.dmi create mode 100644 modular_causticcove/icons/weapons/shields32.dmi diff --git a/code/game/objects/items/rogueitems/necro_relics.dm b/code/game/objects/items/rogueitems/necro_relics.dm index 2186b9e6564..d07819c35cb 100644 --- a/code/game/objects/items/rogueitems/necro_relics.dm +++ b/code/game/objects/items/rogueitems/necro_relics.dm @@ -104,13 +104,17 @@ target.crystal = WEAKREF(src) target.key = C.key current_charges-- - SSjob.EquipRank(target, "Greater Skeleton", TRUE) + //Caustic Edit + SSjob.EquipRank(target, "Fortified Skeleton", TRUE) + //Caustic Edit end target.visible_message(span_warning("[target]'s eyes light up with an eerie glow!")) var/datum/weakref/W = WEAKREF(target) active_skeletons += W target.mind.AddSpell(new /obj/effect/proc_holder/spell/self/suicidebomb/lesser) - addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon/human, choose_name_popup), "GREATER SKELETON"), 3 SECONDS) + //Caustic Edit + addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon/human, choose_name_popup), "FORTIFIED SKELETON"), 3 SECONDS) + //Caustic Edit end addtimer(CALLBACK(target, TYPE_PROC_REF(/mob/living/carbon/human, choose_pronouns_and_body)), 7 SECONDS) if(current_charges <= 0) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/wretch/necromancer.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/wretch/necromancer.dm index a281c53d0ca..a44abe4395a 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/wretch/necromancer.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/wretch/necromancer.dm @@ -18,7 +18,7 @@ STATKEY_SPD = 1 ) age_mod = /datum/class_age_mod/wretch/rogue_mage - subclass_mage_aspects = list("mastery" = FALSE, "major" = 1, "minor" = 0, "utilities" = 4, "ward" = TRUE) + subclass_mage_aspects = list("mastery" = FALSE, "major" = 1, "minor" = 2, "utilities" = 6, "ward" = TRUE) // Caustic Edit subclass_skills = list( /datum/skill/combat/polearms = SKILL_LEVEL_EXPERT, //Caustic Cove Edit /datum/skill/combat/staves = SKILL_LEVEL_EXPERT, //Caustic Cove Edit @@ -27,7 +27,6 @@ /datum/skill/combat/wrestling = SKILL_LEVEL_JOURNEYMAN, /datum/skill/combat/unarmed = SKILL_LEVEL_JOURNEYMAN, /datum/skill/misc/reading = SKILL_LEVEL_MASTER, - /datum/skill/misc/medicine = SKILL_LEVEL_APPRENTICE, // Have to grind a bit, but can use the ZRONK chair right away /datum/skill/craft/alchemy = SKILL_LEVEL_EXPERT, /datum/skill/magic/arcane = SKILL_LEVEL_EXPERT, /datum/skill/misc/medicine = SKILL_LEVEL_JOURNEYMAN, //For lux extractions. @@ -63,6 +62,7 @@ H.set_patron(/datum/patron/inhumen/zizo) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/eyebite) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/bonechill) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/diagnose/secular) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/minion_order) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/gravemark) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/raise_undead_formation/necromancer) diff --git a/code/modules/jobs/job_types/roguetown/other/lich_skeleton.dm b/code/modules/jobs/job_types/roguetown/other/lich_skeleton.dm index 2c346ece39a..8a129e4a585 100644 --- a/code/modules/jobs/job_types/roguetown/other/lich_skeleton.dm +++ b/code/modules/jobs/job_types/roguetown/other/lich_skeleton.dm @@ -84,7 +84,7 @@ LICH SKELETONS if("Flail") beltr = /obj/item/rogueweapon/flail/sflail/paflail H.adjust_skillrank(/datum/skill/combat/whipsflails, 1, TRUE) - var/tabards = list("Black Jupon", "Black Tabard", "Black Cloak + Greathood") + var/tabards = list("Black Jupon", "Black Tabard", "Black Cloak + Greathood", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") @@ -94,6 +94,10 @@ LICH SKELETONS if("Black Cloak + Greathood") cloak = /obj/item/clothing/cloak/half/lich mask = /obj/item/clothing/cloak/tabard/stabard/guardhood/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy @@ -175,7 +179,7 @@ LICH SKELETONS l_hand = /obj/item/gun/ballistic/revolver/grenadelauncher/sling beltl = /obj/item/quiver/sling/paalloy H.adjust_skillrank(/datum/skill/combat/slings, 1, TRUE) - var/tabards = list("Black Cloak + Greathood", "Black Jupon", "Black Tabard") + var/tabards = list("Black Cloak + Greathood", "Black Jupon", "Black Tabard", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") @@ -185,6 +189,10 @@ LICH SKELETONS if("Black Cloak + Greathood") cloak = /obj/item/clothing/cloak/half/lich mask = /obj/item/clothing/cloak/tabard/stabard/guardhood/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy @@ -266,7 +274,7 @@ LICH SKELETONS head = /obj/item/clothing/head/roguetown/helmet/heavy/knight/paalloy shirt = /obj/item/clothing/suit/roguetown/armor/gambeson/light armor = /obj/item/clothing/suit/roguetown/armor/chainmail/hauberk/paalloy/heavy - var/tabards = list("Black Tabard", "Black Jupon", "Black Cloak + Greathood") + var/tabards = list("Black Tabard", "Black Jupon", "Black Cloak + Greathood", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") @@ -276,6 +284,10 @@ LICH SKELETONS if("Black Cloak + Greathood") cloak = /obj/item/clothing/cloak/half/lich mask = /obj/item/clothing/cloak/tabard/stabard/guardhood/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy @@ -330,7 +342,7 @@ LICH SKELETONS beltl = /obj/item/rogueweapon/pick/paalloy H.adjust_blindness(-3) - var/tabards = list("Black Cloak + Greathood", "Black Jupon", "Black Tabard") + var/tabards = list("Black Cloak + Greathood", "Black Jupon", "Black Tabard", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards H.set_blindness(0) switch(tabard_choice) @@ -341,6 +353,10 @@ LICH SKELETONS if("Black Cloak + Greathood") cloak = /obj/item/clothing/cloak/half/lich mask = /obj/item/clothing/cloak/tabard/stabard/guardhood/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy @@ -405,7 +421,7 @@ LICH SKELETONS if("Dagger") beltr = /obj/item/rogueweapon/huntingknife/idagger/steel/padagger H.adjust_skillrank(/datum/skill/combat/knives, 1, TRUE) - var/tabards = list("Black Cloak + Greathood", "Black Jupon") + var/tabards = list("Black Cloak + Greathood", "Black Jupon", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") @@ -413,6 +429,10 @@ LICH SKELETONS if("Black Cloak + Greathood") cloak = /obj/item/clothing/cloak/half/lich mask = /obj/item/clothing/cloak/tabard/stabard/guardhood/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy @@ -473,13 +493,18 @@ LICH SKELETONS l_hand = /obj/item/rogueweapon/shield/tower/metal/palloy H.adjust_skillrank(/datum/skill/combat/whipsflails, 1, TRUE) H.adjust_skillrank(/datum/skill/combat/shields, 1, TRUE) - var/tabards = list("Black Tabard", "Black Jupon") + var/tabards = list("Black Tabard", "Black Jupon", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") cloak = /obj/item/clothing/cloak/tabard/stabard/surcoat/lich if("Black Tabard") cloak = /obj/item/clothing/cloak/tabard/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end + H.energy = H.max_energy @@ -637,13 +662,17 @@ LICH SKELETONS existing_eyes.Remove(H, TRUE) existing_eyes.Insert(H) - var/tabards = list("Black Tabard", "Black Jupon") + var/tabards = list("Black Tabard", "Black Jupon", "Zizite Tabard") //Caustic Edit var/tabard_choice = input(H, "Choose your CLOAK.", "BARE YOUR MASTER'S HERALDRY.") as anything in tabards switch(tabard_choice) if("Black Jupon") cloak = /obj/item/clothing/cloak/tabard/stabard/surcoat/lich if("Black Tabard") cloak = /obj/item/clothing/cloak/tabard/lich + //Caustic Edit + if("Zizite Tabard") + cloak = /obj/item/clothing/cloak/tabard/zizo + //Caustic Edit end H.energy = H.max_energy diff --git a/code/modules/spells/roguetown/necromancer/raise_undead_formation.dm b/code/modules/spells/roguetown/necromancer/raise_undead_formation.dm index 41263fb5c14..6549a3c74ac 100644 --- a/code/modules/spells/roguetown/necromancer/raise_undead_formation.dm +++ b/code/modules/spells/roguetown/necromancer/raise_undead_formation.dm @@ -7,15 +7,17 @@ overlay_state = "animate" range = 7 sound = list('sound/magic/magnet.ogg') - releasedrain = 40 - chargetime = 6 SECONDS + //Caustic Edit + releasedrain = 20 + chargetime = 2 SECONDS warnie = "spellwarning" no_early_release = TRUE charging_slowdown = 1 chargedloop = /datum/looping_sound/invokegen gesture_required = TRUE // Summon spell associated_skill = /datum/skill/magic/arcane - recharge_time = 20 SECONDS + recharge_time = 15 SECONDS + //Caustic Edit end var/cabal_affine = FALSE var/is_summoned = FALSE var/to_spawn = 4 @@ -80,7 +82,9 @@ /obj/effect/proc_holder/spell/invoked/raise_undead_formation/necromancer cabal_affine = TRUE is_summoned = TRUE - recharge_time = 35 SECONDS + //Caustic Edit + recharge_time = 20 SECONDS + //Caustic Edit end to_spawn = 3 diff --git a/code/modules/spells/roguetown/necromancer/raise_undead_guard.dm b/code/modules/spells/roguetown/necromancer/raise_undead_guard.dm index 96b38a47d41..3793601d539 100644 --- a/code/modules/spells/roguetown/necromancer/raise_undead_guard.dm +++ b/code/modules/spells/roguetown/necromancer/raise_undead_guard.dm @@ -1,21 +1,25 @@ /obj/effect/proc_holder/spell/invoked/raise_undead_guard name = "Conjure Undead" - desc = "Invoke forbidden magicka to summon a mindless, shambling skeleton.
Mindless skeletons can be given orders to guard, patrol, and attack by their \ - summoner.
These skeletons are weaker than their more complex-jointed counterparts, but are harder to incapacitate." + //Caustic Edit + desc = "Invoke forbidden magicka to summon a mindless, shambling skeleton.
These Mindless skeletons can not be given orders to guard, patrol, and attack by their \ + summoner.
These skeletons are stronger than their less complex-jointed counterparts." + //Caustic Edit end clothes_req = FALSE overlay_state = "animate" range = 7 sound = list('sound/magic/magnet.ogg') - releasedrain = 40 - chargetime = 3 SECONDS + //Caustic Edit + releasedrain = 20 + chargetime = 2 SECONDS warnie = "spellwarning" no_early_release = TRUE charging_slowdown = 1 chargedloop = /datum/looping_sound/invokegen gesture_required = TRUE // Summon spell associated_skill = /datum/skill/magic/arcane - recharge_time = 30 SECONDS + recharge_time = 20 SECONDS + //Caustic Edit end hide_charge_effect = TRUE /obj/effect/proc_holder/spell/invoked/raise_undead_guard/cast(list/targets, mob/living/user) @@ -32,7 +36,9 @@ return FALSE new /obj/effect/temp_visual/gib_animation(T, "gibbed-h") - var/mob/living/skeleton_new = new /mob/living/carbon/human/species/skeleton/npc/bogguard(T, user) + //Caustic Edit + var/mob/living/skeleton_new = new /mob/living/carbon/human/species/skeleton/npc/summon/random(T, user) + //Caustic Edit end spawn(11) //Ashamed of this but I hate how after_creation() uses spawn too and I'm not making a timer for this. Proc needs a look-over. - Ryan skeleton_new.faction |= list("cabal", "[user.mind.current.real_name]_faction") return TRUE diff --git a/code/modules/spells/roguetown/necromancer/tame_undead.dm b/code/modules/spells/roguetown/necromancer/tame_undead.dm index 65bd407ae84..640f2f44a84 100644 --- a/code/modules/spells/roguetown/necromancer/tame_undead.dm +++ b/code/modules/spells/roguetown/necromancer/tame_undead.dm @@ -1,15 +1,19 @@ /obj/effect/proc_holder/spell/invoked/tame_undead name = "Tame Undead" + //Caustic Edit desc = "Oftentymes, husks and shamblers walk aimlessly - uncertain of their future. They need not look further, any longer. \ - Requires the target to be within four tiles. Works on undead animals, too." + Requires the target to be within seven tiles. Works on undead animals, too." + //Caustic Edit end overlay_state = "raiseskele" - range = 4 + //Caustic Edit + range = 7 warnie = "sydwarning" - recharge_time = 60 SECONDS - releasedrain = 40 - chargetime = 5 SECONDS + recharge_time = 5 SECONDS + releasedrain = 10 + chargetime = 1 SECONDS charging_slowdown = 1 + //Caustic Edit end gesture_required = TRUE chargedloop = /datum/looping_sound/invokegen no_early_release = TRUE diff --git a/modular_causticcove/code/modules/clothing/rogueclothes/cloaks.dm b/modular_causticcove/code/modules/clothing/rogueclothes/cloaks.dm new file mode 100644 index 00000000000..21e3fa096d7 --- /dev/null +++ b/modular_causticcove/code/modules/clothing/rogueclothes/cloaks.dm @@ -0,0 +1,19 @@ +/obj/item/clothing/cloak/tabard/zizo_alt + name = "Zizo tabard" + desc = "An outer garment commonly worn by soldiers. This one is worn down and has HER symbol on it." + icon_state = "tabard_zizo_alt" + icon = 'modular_causticcove/icons/clothing/tabards.dmi' + mob_overlay_icon = 'modular_causticcove/icons/clothing/onmob/tabards.dmi' + sleeved = 'modular_causticcove/icons/clothing/onmob/tabards.dmi' + sleevetype = "shirt" + sellprice = 10 //Religious... + +/obj/item/clothing/cloak/tabard/zizo + name = "Zizo tabard" + desc = "An outer garment commonly worn by soldiers. This one has HER symbol on it." + icon_state = "tabard_zizo" + icon = 'modular_causticcove/icons/clothing/tabards.dmi' + mob_overlay_icon = 'modular_causticcove/icons/clothing/onmob/tabards.dmi' + sleeved = 'modular_causticcove/icons/clothing/onmob/tabards.dmi' + sleevetype = "shirt" + sellprice = 10 //Religious... diff --git a/modular_causticcove/code/modules/mob/living/carbon/human/npc/skeleton/skeleton_necromancer.dm b/modular_causticcove/code/modules/mob/living/carbon/human/npc/skeleton/skeleton_necromancer.dm new file mode 100644 index 00000000000..0a001caa947 --- /dev/null +++ b/modular_causticcove/code/modules/mob/living/carbon/human/npc/skeleton/skeleton_necromancer.dm @@ -0,0 +1,171 @@ +/mob/living/carbon/human/species/skeleton/npc/summon/soldier + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/soldier + +/mob/living/carbon/human/species/skeleton/npc/summon/spear + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/spear + +/mob/living/carbon/human/species/skeleton/npc/summon/heavy + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/heavy + +/mob/living/carbon/human/species/skeleton/npc/summon/dagger + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/dagger + +/mob/living/carbon/human/species/skeleton/npc/summon/hammer + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/hammer + + +/mob/living/carbon/human/species/skeleton/npc/summon/random + +/mob/living/carbon/human/species/skeleton/npc/summon/random/Initialize() + var/outfit = rand(1, 5) + switch(outfit) + if(1) + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/soldier + if(2) + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/spear + if(3) + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/heavy + if(4) + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/dagger + if(5) + skel_outfit = /datum/outfit/job/roguetown/skeleton/npc/hammer + ..() + +/datum/outfit/job/roguetown/skeleton/npc/soldier/pre_equip(mob/living/carbon/human/H) + ..() + H.STASTR = rand(12,14) + H.STASPD = 8 + H.STACON = 7 + H.STAWIL = 12 + H.STAINT = 1 + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) + H.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/maces, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/axes, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/shields, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) + name = "Zizite Soldier" + cloak = /obj/item/clothing/cloak/tabard/zizo_alt + head = /obj/item/clothing/head/roguetown/helmet/sallet/iron + armor = /obj/item/clothing/suit/roguetown/armor/plate/cuirass/iron + shirt = /obj/item/clothing/suit/roguetown/armor/chainmail/iron + pants = /obj/item/clothing/under/roguetown/chainlegs/iron + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/iron + gloves = /obj/item/clothing/gloves/roguetown/chain/iron + l_hand = /obj/item/rogueweapon/shield/ironshzizo + r_hand = /obj/item/rogueweapon/sword/iron + +/datum/outfit/job/roguetown/skeleton/npc/spear/pre_equip(mob/living/carbon/human/H) + ..() + H.STASTR = rand(12,14) + H.STASPD = 8 + H.STACON = 7 + H.STAWIL = 12 + H.STAINT = 1 + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) + H.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/maces, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/axes, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/shields, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) + name = "Zizite Spearman" + cloak = /obj/item/clothing/cloak/tabard/zizo_alt + head = /obj/item/clothing/head/roguetown/helmet/kettle/iron + armor = /obj/item/clothing/suit/roguetown/armor/plate/cuirass/iron + shirt = /obj/item/clothing/suit/roguetown/armor/gambeson + pants = /obj/item/clothing/under/roguetown/chainlegs/iron/kilt + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/iron + gloves = /obj/item/clothing/gloves/roguetown/fingerless_leather + r_hand = /obj/item/rogueweapon/spear + +/datum/outfit/job/roguetown/skeleton/npc/heavy/pre_equip(mob/living/carbon/human/H) + ..() + H.STASTR = 14 + H.STASPD = 6 + H.STACON = 9 + H.STAWIL = 14 + H.STAINT = 1 + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) + H.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/maces, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/axes, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/shields, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) + name = "Zizite Heavy" + cloak = /obj/item/clothing/cloak/tabard/zizo_alt + head = /obj/item/clothing/head/roguetown/helmet/heavy/bucket/iron + armor = /obj/item/clothing/suit/roguetown/armor/plate/iron + shirt = /obj/item/clothing/suit/roguetown/armor/chainmail/iron + pants = /obj/item/clothing/under/roguetown/chainlegs/iron + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/iron + gloves = /obj/item/clothing/gloves/roguetown/plate/iron + r_hand = /obj/item/rogueweapon/greatsword/iron + +/datum/outfit/job/roguetown/skeleton/npc/dagger/pre_equip(mob/living/carbon/human/H) + ..() + H.STASTR = 12 + H.STASPD = 14 + H.STACON = 4 + H.STAWIL = 12 + H.STAINT = 1 + H.STAPER = 14 + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) + H.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/maces, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/axes, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/shields, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) + name = "Zizite Rogue" + cloak = /obj/item/clothing/cloak/tabard/zizo_alt + mask = /obj/item/clothing/mask/rogue/facemask + armor = /obj/item/clothing/suit/roguetown/armor/plate/cuirass/iron + shirt = /obj/item/clothing/suit/roguetown/armor/gambeson + pants = /obj/item/clothing/under/roguetown/chainlegs/iron/kilt + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/iron + gloves = /obj/item/clothing/gloves/roguetown/fingerless_leather + l_hand = /obj/item/rogueweapon/huntingknife/idagger + r_hand = /obj/item/rogueweapon/huntingknife/idagger + +/datum/outfit/job/roguetown/skeleton/npc/hammer/pre_equip(mob/living/carbon/human/H) + ..() + H.STASTR = rand(12,14) + H.STASPD = 8 + H.STACON = 7 + H.STAWIL = 12 + H.STAINT = 1 + ADD_TRAIT(H, TRAIT_HEAVYARMOR, TRAIT_GENERIC) + H.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/maces, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/axes, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/shields, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + H.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + H.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) + H.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) + name = "Zizite Breaker" + cloak = /obj/item/clothing/cloak/tabard/zizo_alt + head = /obj/item/clothing/head/roguetown/helmet/sallet/iron + armor = /obj/item/clothing/suit/roguetown/armor/plate/cuirass/iron + shirt = /obj/item/clothing/suit/roguetown/armor/chainmail/iron + pants = /obj/item/clothing/under/roguetown/chainlegs/iron + shoes = /obj/item/clothing/shoes/roguetown/boots/armor/iron + gloves = /obj/item/clothing/gloves/roguetown/chain/iron + l_hand = /obj/item/rogueweapon/shield/ironshzizo + r_hand = /obj/item/rogueweapon/mace/warhammer diff --git a/modular_causticcove/code/modules/shields/shields.dm b/modular_causticcove/code/modules/shields/shields.dm new file mode 100644 index 00000000000..3eab36191e5 --- /dev/null +++ b/modular_causticcove/code/modules/shields/shields.dm @@ -0,0 +1,26 @@ +/obj/item/rogueweapon/shield/ironshzizo + name = "Zizoid shield" + desc = "A heavy and encumbering iron shield. This one has HER symbol painted on it." + icon_state = "ironshzizo" + icon = 'modular_causticcove/icons/weapons/shields32.dmi' + force = 20 + throwforce = 25 // "I can do this all day." + dropshrink = 0.8 + coverage = 50 + resistance_flags = null + flags_1 = CONDUCT_1 + attacked_sound = list('sound/combat/parry/shield/metalshield (1).ogg','sound/combat/parry/shield/metalshield (2).ogg','sound/combat/parry/shield/metalshield (3).ogg') + parrysound = list('sound/combat/parry/shield/metalshield (1).ogg','sound/combat/parry/shield/metalshield (2).ogg','sound/combat/parry/shield/metalshield (3).ogg') + possible_item_intents = list(SHIELD_SMASH_METAL, SHIELD_BLOCK) // No SHIELD_BASH. Too heavy to swing quickly, or something. + max_integrity = 220 + anvilrepair = /datum/skill/craft/weaponsmithing + +/obj/item/rogueweapon/shield/ironshzizo/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list("shrink" = 0.6,"sx" = -5,"sy" = -1,"nx" = 6,"ny" = -1,"wx" = 0,"wy" = -2,"ex" = 0,"ey" = -2,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0) + if("onback") + return list("shrink" = 0.6,"sx" = 1,"sy" = 4,"nx" = 1,"ny" = 2,"wx" = 3,"wy" = 3,"ex" = -3,"ey" = 3,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 8,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 1,"southabove" = 0,"eastabove" = 0,"westabove" = 0) + diff --git a/modular_causticcove/icons/clothing/onmob/tabards.dmi b/modular_causticcove/icons/clothing/onmob/tabards.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1302f5097228f4b4b1695058c8e5fb5640b859ea GIT binary patch literal 3684 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 literal 0 HcmV?d00001 diff --git a/modular_causticcove/icons/clothing/tabards.dmi b/modular_causticcove/icons/clothing/tabards.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6fe453aee3cde283ea66147474de5d88b22fae3d GIT binary patch literal 1103 zcmV-V1hD&wP)V=-0C)j)j=KtkFc3xS%vTKBFT1O)jVNNFzaS%tX21s|gMwdg&{n&1xTm-= z=4Dm4STr?k#(7>B%rO0YLG7%?21)*)tl`nhEnY}Wz(}Ykr@MoXwWCQQP@0_&%MaAx zXf`)L^>1yAWm{ZlPAYgTt8~zXMMzvUL^l$m(Ls%yaWm>@Ox!d^7meaT;zmte)B#;2__r-Brl~0{kZOYT zeBampnxj(gj=nB(zocn<@6zw@ectciRf|L-w3$tF0k{BM04@L*fD6C{-~zB?gM&kc zx7ACzY>p--o@wsQy3od-oR ztmkJlwBifW<45)wd0R>9%jpQDK{2cEaCY)VcTYnT80+ z#pWddC#T>GO@7w`3G>gs4md z=!Zgk$lu*XiP<>`p;DiX;n>l43;-cMeEx!T0@geJgkDxSkQ7d-t^?3NcKm4h`+E9y z0e}L89~>DNF#1oNq!uBpm)2t971cCK?d_A_SMqUMEVL*E0Da^?QUJD|KG%V|0JwVP zvJny|te1rG{z`}k4MX1dM&v&LG&UIJ?w|?)=ed=BT>!w4-_4yp(t%%~E<$g&_&g;< z56--&lyD>+C|2U{KS_BJ)ctxHKs9}i0_8=J0iX!tbO8dnc322cm8dg$ZcnNK;GJ6` z=X$OBjweBO!qc!ITOm6DVO&!k`qlKg=bQCmPT@NqgdmLY!e>}G8Kv>flOU$Bu}DO_BxVD407Fnyce|_wsyc!B z^w|&vYw5EAf}Kua3jlgB9)fVPI8lBoJRrgk4qOk1jhQaJT%7^ItG7|+k5|bsR5=83 z3RKfKM}d{TEdbp9uz5^^c-Ucaz6VaA2V)50M`BfVz&r#2!u0g#s`?xS@nl+E3gE;! zmjM7F-X}I`cHpkK{#tCBTOojX#67o7_iWS<;-1ow!%uvb09c>fW9O$2vOZYpJN`=y zq&vh9e-t5Z?)PwVmw3l@juujE3V=-0C)i`7R`G zhk(a~NZ#RsbJqiVNhe!m8i83umrYe-Qppr-D0mlbrtBMFnnEmb0Com-o60S6x&7}C z=g=H#m?_z3000A=Nklij`C*LuEckct2(&NF^AIB1LIwqwvEc|lSn z7~YK2b+Il)W28AkqnolE2*AZL>vvNVkWa)x_KF~RJfIl{T=Pi;F!C!&a}1S@{`yAO z5M=>SyuPW0zR!Gk51T6s5Kt5VyZub)E^(l66$r)&v9Z1ZqoYrSssL`^xocjy*hZPB zYQ^B4ti}TP08P2x0ly%_`02FU-Is>cGCD@$*0eFXqw&TMc;#p0HZqY0P;Nqgyq#Pj9 zWc5O9171!(6Dk7m+6$R9HI-xm-~_w86ksT}MP;F_XpLYsV_MBaeKQ90os0&WD6rmnl+=gYaAXxP43v4@jZ@rqflB^Z2)wDY}a+_ zetSKe<2?MhYBoTI!8IWZW8UjIxZf!xRuGao-Jfo2VW~~h2V5DsJ z6^~*Lk%@1yQg|tQgB`#5yasP&pY6tYR)Y>*BOs5eQz@`-#5zBOLy@xC9|&;s#x2tq zQ~)6s<`*Hl{0(~9)>HLen5wO%rt32_0-7)i9nwkffEsuuDfDXQM{qWks~(^fg3bl( zYSt6{JZR5nDeDPi@7ZF&Ph&WAx}tbRfKmwjr-Kj0NVBqV+us1&`>fuQN3lEJjkqfS zjDdmc^e=$FTDgETxG+ESF)E3>1}Ft76?A6oR`^f=JbJqN&Hb)dBYY%)zZoY0#}4ot X$8C#0*i-%j00000NkvXXu0mjf-$(QJ literal 0 HcmV?d00001 diff --git a/roguetown.dme b/roguetown.dme index 8b05e0af18f..0728bf5f370 100644 --- a/roguetown.dme +++ b/roguetown.dme @@ -3485,6 +3485,7 @@ #include "modular_causticcove\code\modules\classes\shrine_priest\shrine_guardian.dm" #include "modular_causticcove\code\modules\classes\shrine_priest\shrine_priest.dm" #include "modular_causticcove\code\modules\client\customizers\organ\genitals.dm" +#include "modular_causticcove\code\modules\clothing\rogueclothes\cloaks.dm" #include "modular_causticcove\code\modules\dcbot\config.dm" #include "modular_causticcove\code\modules\dcbot\internaltools\ahelprelay.dm" #include "modular_causticcove\code\modules\dcbot\internaltools\whitelost.dm" @@ -3517,6 +3518,7 @@ #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\hobgoblin.dm" #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\npc\hobgoblin_npc.dm" #include "modular_causticcove\code\modules\mob\living\carbon\hobgoblin\species\hobgoblin_species.dm" +#include "modular_causticcove\code\modules\mob\living\carbon\human\npc\skeleton\skeleton_necromancer.dm" #include "modular_causticcove\code\modules\mob\living\carbon\human\species_types\witchshape\bat.dm" #include "modular_causticcove\code\modules\mob\living\carbon\human\species_types\witchshape\cabbit.dm" #include "modular_causticcove\code\modules\mob\living\carbon\human\species_types\witchshape\cat.dm" @@ -3536,6 +3538,7 @@ #include "modular_causticcove\code\modules\roguecrafting\items.dm" #include "modular_causticcove\code\modules\roguecrafting\leather.dm" #include "modular_causticcove\code\modules\roguetown\roguestock\import.dm" +#include "modular_causticcove\code\modules\shields\shields.dm" #include "modular_causticcove\code\modules\size_scaling\helperfunctions.dm" #include "modular_causticcove\code\modules\size_scaling\mobholder.dm" #include "modular_causticcove\code\modules\size_scaling\prefs.dm" From 0db23f09e7584ba6e82569ad77f8c9655fd1e3a7 Mon Sep 17 00:00:00 2001 From: Dhaeleena M'iar Date: Fri, 22 May 2026 16:55:10 -0300 Subject: [PATCH 2/2] Bonechill kinda like minor miracle --- code/modules/spells/roguetown/necromancer/bone_chill.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/spells/roguetown/necromancer/bone_chill.dm b/code/modules/spells/roguetown/necromancer/bone_chill.dm index 6d85509fd5e..1d746f826b5 100644 --- a/code/modules/spells/roguetown/necromancer/bone_chill.dm +++ b/code/modules/spells/roguetown/necromancer/bone_chill.dm @@ -26,9 +26,8 @@ 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 && (affecting.heal_damage(50, 50) || affecting.heal_wounds(50))) - target.update_damage_overlays() + target.apply_status_effect(/datum/status_effect/buff/healing, 10) //Caustic edit + target.update_damage_overlays() //Caustic edit target.visible_message(span_danger("[target] reforms under the vile energy!"), span_notice("I'm remade by dark magic!")) return TRUE