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)