makes spears require priming to explode on throw, makes it possible to rip embedded objects out instantly by pressing resist if the item is normal sized or larger (#7450)

This commit is contained in:
deathride58
2018-08-23 03:30:33 -04:00
committed by kevinz000
parent e5a983861b
commit 695bbef473
6 changed files with 58 additions and 26 deletions
+3
View File
@@ -794,3 +794,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
if (item_flags & NODROP)
return
return ..()
/obj/item/proc/grenade_prime_react(obj/item/grenade/nade)
return
@@ -87,6 +87,9 @@
if(ismob(loc))
var/mob/M = loc
M.dropItemToGround(src)
else if(isitem(loc))
var/obj/item/I = loc
I.grenade_prime_react(src)
/obj/item/grenade/attackby(obj/item/W, mob/user, params)
+18 -13
View File
@@ -463,7 +463,7 @@
force_wielded = 18
throwforce = 20
throw_speed = 4
embedding = list("embedded_impact_pain_multiplier" = 3)
embedding = list("embedded_impact_pain_multiplier" = 3, "embed_chance" = 90)
armour_penetration = 10
materials = list(MAT_METAL=1150, MAT_GLASS=2075)
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -478,14 +478,25 @@
. = ..()
AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad.
/obj/item/twohanded/spear/attack_self(mob/user)
if(explosive)
explosive.attack_self(user)
return
. = ..()
/obj/item/twohanded/rightclick_attack_self(mob/user)
if(wielded) //Trying to unwield it
unwield(user)
else //Trying to wield it
wield(user)
return TRUE
/obj/item/twohanded/spear/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
if(explosive)
user.say("[war_cry]")
explosive.forceMove(user)
explosive.prime()
user.gib()
qdel(src)
return BRUTELOSS
return BRUTELOSS
@@ -496,7 +507,7 @@
/obj/item/twohanded/spear/examine(mob/user)
..()
if(explosive)
to_chat(user, "<span class='notice'>Alt-click to set your war cry.</span>")
to_chat(user, "<span class='notice'>Use in your hands to activate the attached explosive.</span><br><span class='notice'>Alt-click to set your war cry.</span><br><span class='notice'>Right-click in combat mode to wield</span>")
/obj/item/twohanded/spear/update_icon()
if(explosive)
@@ -511,17 +522,11 @@
return
if(explosive && wielded)
user.say("[war_cry]")
explosive.forceMove(AM)
explosive.prime()
qdel(src)
//THIS MIGHT BE UNBALANCED SO I DUNNO // it totally is.
/obj/item/twohanded/spear/throw_impact(atom/target)
. = ..()
if(!.) //not caught
if(explosive)
explosive.prime()
qdel(src)
/obj/item/twohanded/spear/grenade_prime_react(obj/item/grenade/nade)
nade.forceMove(get_turf(src))
qdel(src)
/obj/item/twohanded/spear/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE))