From 9f876fefac631dfddbd9ff7809a010f4ad4cc86a Mon Sep 17 00:00:00 2001 From: necromanceranne <40847847+necromanceranne@users.noreply.github.com> Date: Mon, 22 Feb 2021 20:49:23 +1100 Subject: [PATCH] Various cult equipment rebalances to address energy weapon immunities being too common (#57091) * Removes mirror shield and shielded robe from forge, removes eldritch longsword from equipment and moves it to the forge, adds the nar'sian hardsuit to the forge with no slowdown and comparable stats to the shielded robe, gives eldritch longswords and cult daggers block chance --- code/modules/antagonists/cult/blood_magic.dm | 4 +- code/modules/antagonists/cult/cult_items.dm | 43 ++++++++++++++++--- .../antagonists/cult/cult_structures.dm | 12 +++--- 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 7e4add3923c..eb658a9d5c7 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -670,7 +670,7 @@ //Armor: Gives the target (cultist) a basic cultist combat loadout /obj/item/melee/blood_magic/armor name = "Arming Aura" - desc = "Will equipt cult combat gear onto a cultist on contact." + desc = "Will equip cult combat gear onto a cultist on contact." color = "#33cc33" // green /obj/item/melee/blood_magic/armor/afterattack(atom/target, mob/living/carbon/user, proximity) @@ -684,7 +684,7 @@ C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK) if(C == user) qdel(src) //Clears the hands - C.put_in_hands(new /obj/item/melee/cultblade(user)) + C.put_in_hands(new /obj/item/melee/cultblade/dagger(user)) C.put_in_hands(new /obj/item/restraints/legcuffs/bola/cult(user)) ..() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 210a25fcbc8..1aeaeebd220 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -20,6 +20,7 @@ w_class = WEIGHT_CLASS_SMALL force = 15 throwforce = 25 + block_chance = 25 wound_bonus = -10 bare_wound_bonus = 20 armour_penetration = 35 @@ -32,6 +33,19 @@ I.override = TRUE add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_dagger", I) +/obj/item/melee/cultblade/dagger/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + var/block_message = "[owner] parries [attack_text] with [src]" + if(owner.get_active_held_item() != src) + block_message = "[owner] parries [attack_text] with [src] in their offhand" + + if(iscultist(owner) && prob(final_block_chance) && attack_type != PROJECTILE_ATTACK) + new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) + playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) + owner.visible_message("[block_message]") + return TRUE + else + return FALSE + /obj/item/melee/cultblade name = "eldritch longsword" desc = "A sword humming with unholy energy. It glows with a dim red light." @@ -47,6 +61,7 @@ w_class = WEIGHT_CLASS_BULKY force = 30 // whoever balanced this got beat in the head by a bible too many times good lord throwforce = 10 + block_chance = 50 // now it's officially a cult esword wound_bonus = -50 bare_wound_bonus = 20 hitsound = 'sound/weapons/bladeslice.ogg' @@ -57,6 +72,15 @@ . = ..() AddComponent(/datum/component/butchering, 40, 100) +/obj/item/melee/cultblade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(iscultist(owner) && prob(final_block_chance)) + new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) + playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) + owner.visible_message("[owner] parries [attack_text] with [src]!") + return TRUE + else + return FALSE + /obj/item/melee/cultblade/attack(mob/living/target, mob/living/carbon/human/user) if(!iscultist(user)) user.Paralyze(100) @@ -76,6 +100,7 @@ force = 19 //can't break normal airlocks item_flags = NEEDS_PERMIT | DROPDEL flags_1 = NONE + block_chance = 25 //these dweebs don't get full block chance, because they're free cultists /obj/item/melee/cultblade/ghost/Initialize() . = ..() @@ -346,7 +371,7 @@ desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." icon_state = "cult_helmet" inhand_icon_state = "cult_helmet" - armor = list(MELEE = 70, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 40, ACID = 75) + armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 30, RAD = 30, FIRE = 100, ACID = 100) light_system = NO_LIGHT_SUPPORT light_range = 0 actions_types = list() @@ -358,9 +383,12 @@ desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/tome, /obj/item/melee/cultblade, /obj/item/tank/internals/) - armor = list(MELEE = 70, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 40, ACID = 75) + armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 30, RAD = 30, FIRE = 100, ACID = 100) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult +/obj/item/clothing/suit/space/hardsuit/cult/real + slowdown = 0 + /obj/item/sharpener/cult name = "eldritch whetstone" desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." @@ -446,7 +474,7 @@ /obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot) ..() - if(!iscultist(user)) + if(!iscultist(user) && slot == ITEM_SLOT_EYES) to_chat(user, "\"You want to be blind, do you?\"") user.dropItemToGround(src, TRUE) user.Dizzy(30) @@ -719,16 +747,19 @@ /obj/item/melee/cultblade/halberd/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(wielded) final_block_chance *= 2 - if(prob(final_block_chance)) + if(iscultist(owner) && prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") - playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, TRUE) + playsound(get_turf(owner), pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) return TRUE else playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) owner.visible_message("[owner] parries [attack_text] with [src]!") + new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) return TRUE - return FALSE + else + return FALSE /datum/action/innate/cult/halberd name = "Bloody Bond" diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 616434a03c7..be811878d7b 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -148,19 +148,19 @@ to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") return var/list/items = list( - "Shielded Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cult_armor"), + "Nar'sien Hardened Armor" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cult_armor"), "Flagellant's Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cultrobes"), - "Mirror Shield" = image(icon = 'icons/obj/shields.dmi', icon_state = "mirror_shield") + "Eldritch Longsword" = image(icon = 'icons/obj/items_and_weapons.dmi', icon_state = "cultblade") ) var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE) var/list/pickedtype = list() switch(choice) - if("Shielded Robe") - pickedtype += /obj/item/clothing/suit/hooded/cultrobes/cult_shield + if("Nar'sien Hardened Armor") + pickedtype += /obj/item/clothing/suit/space/hardsuit/cult/real if("Flagellant's Robe") pickedtype += /obj/item/clothing/suit/hooded/cultrobes/berserker - if("Mirror Shield") - pickedtype += /obj/item/shield/mirror + if("Eldritch Longsword") + pickedtype += /obj/item/melee/cultblade else return if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)