diff --git a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm
index d84bfcfed90..d49a74f25d7 100644
--- a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm
+++ b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm
@@ -2,11 +2,11 @@
/obj/item/clockwork/ratvarian_spear
name = "ratvarian spear"
desc = "A razor-sharp spear made of brass. It thrums with barely-contained energy."
- clockwork_desc = "A fragile spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last long."
+ clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "ratvarian_spear"
item_state = "ratvarian_spear"
- force = 17 //Extra damage is dealt to silicons in attack()
+ force = 15 //Extra damage is dealt to targets in attack()
throwforce = 40
sharpness = IS_SHARP_ACCURATE
attack_verb = list("stabbed", "poked", "slashed")
@@ -22,11 +22,13 @@
/obj/item/clockwork/ratvarian_spear/proc/update_force()
if(ratvar_awakens) //If Ratvar is alive, the spear is extremely powerful
- force = 30
+ force = 25
throwforce = 50
+ armour_penetration = 10
else
force = initial(force)
throwforce = initial(throwforce)
+ armour_penetration = 0
/obj/item/clockwork/ratvarian_spear/examine(mob/user)
..()
@@ -45,31 +47,32 @@
else
impaling = TRUE
attack_verb = list("impaled")
- force += 23 //40 damage if ratvar isn't alive, 53 if he is
+ force += 22 //40 damage if ratvar isn't alive, 50 if he is
+ armour_penetration += 10 //if you're impaling someone, armor sure isn't that useful
user.stop_pulling()
- if(impaling)
- if(hitsound)
- playsound(loc, hitsound, get_clamped_volume(), 1, -1)
- user.lastattacked = target
- target.lastattacker = user
- if(!target.attacked_by(src, user))
- impaling = FALSE //if we got blocked, stop impaling
- add_logs(user, target, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
- add_fingerprint(user)
- else //todo yell at someone to make attack() use proper return values
- ..()
+ if(hitsound)
+ playsound(loc, hitsound, get_clamped_volume(), 1, -1)
+ user.lastattacked = target
+ target.lastattacker = user
+ if(!target.attacked_by(src, user)) //TODO MAKE ATTACK() USE PROPER RETURN VALUES
+ impaling = FALSE //if we got blocked, stop impaling
+ else
+ if(issilicon(target))
+ var/mob/living/silicon/S = target
+ if(S.stat != DEAD)
+ S.visible_message("[S] shudders violently at [src]'s touch!", "ERROR: Temperature rising!")
+ S.adjustFireLoss(22)
+ else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage
+ var/mob/living/M = target
+ if(M.stat != DEAD)
+ M << "Your body flares with agony at [src]'s presence!"
+ M.adjustFireLoss(15)
+ else
+ target.adjustFireLoss(3)
+ add_logs(user, target, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
+ add_fingerprint(user)
- if(issilicon(target))
- var/mob/living/silicon/S = target
- if(S.stat != DEAD)
- S.visible_message("[S] shudders violently at [src]'s touch!", "ERROR: Temperature rising!")
- S.adjustFireLoss(25)
- else if(iscultist(target) || isconstruct(target)) //Cultists take extra fire damage
- var/mob/living/M = target
- if(M.stat != DEAD)
- M << "Your body flares with agony at [src]'s presence!"
- M.adjustFireLoss(10)
attack_verb = list("stabbed", "poked", "slashed")
update_force()
if(impaling)
@@ -106,16 +109,23 @@
/obj/item/clockwork/ratvarian_spear/throw_impact(atom/target)
var/turf/T = get_turf(target)
- if(..() || !isliving(target))
- return
- var/mob/living/L = target
- if(issilicon(L) || iscultist(L))
- L.Stun(6)
- L.Weaken(6)
+ if(isliving(target))
+ var/mob/living/L = target
+ if(is_servant_of_ratvar(L))
+ if(L.put_in_active_hand(src))
+ L.visible_message("[L] catches [src] out of the air!")
+ else
+ L.visible_message("[src] bounces off of [L], as if repelled by an unseen force!")
+ else if(!..())
+ if(issilicon(L) || iscultist(L))
+ L.Stun(6)
+ L.Weaken(6)
+ else
+ L.Stun(2)
+ L.Weaken(2)
+ break_spear(T)
else
- L.Stun(2)
- L.Weaken(2)
- break_spear(T)
+ ..()
/obj/item/clockwork/ratvarian_spear/proc/break_spear(turf/T)
if(src)
diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm
index bc62c7b1157..4803ce5cd0e 100644
--- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm
+++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_scripts.dm
@@ -185,6 +185,7 @@
var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr))
owner.put_in_hands(R)
if(!ratvar_awakens)
+ R.clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long."
owner << "Your spear begins to break down in this plane of existence. You can't use it for long!"
addtimer(R, "break_spear", base_cooldown, FALSE)
cooldown = base_cooldown + world.time