Merge pull request #11249 from Fox-McCloud/updates-power-gloves

Updates and Buffs Power Gloves
This commit is contained in:
variableundefined
2019-04-07 21:19:37 +08:00
committed by GitHub
2 changed files with 53 additions and 17 deletions
+40 -16
View File
@@ -43,26 +43,50 @@
..()
/datum/middleClickOverride/power_gloves
var/last_shocked = 0
var/shock_delay = 120
/datum/middleClickOverride/power_gloves/onClick(var/atom/A, var/mob/living/user)
/datum/middleClickOverride/power_gloves/onClick(atom/A, mob/living/carbon/human/user)
if(A == user || user.a_intent == INTENT_HELP || user.a_intent == INTENT_GRAB)
return
if(user.incapacitated())
return
if(world.time < last_shocked + shock_delay)
var/obj/item/clothing/gloves/color/yellow/power/P = user.gloves
if(world.time < P.last_shocked + P.shock_delay)
to_chat(user, "<span class='warning'>The gloves are still recharging.</span>")
return
if(!isliving(A))
to_chat(user, "<span class='warning'>Shocking an inanimate object would be pointless.</span>")
return
var/mob/living/L = A
var/turf/T = get_turf(user)
var/obj/structure/cable/C = locate() in T
if(!C || !istype(C))
to_chat(user, "<span class='warning'>There is no cable here to power the gloves.</span>")
return
user.visible_message("<span class='warning'>[user.name] fires an arc of electricity at [L]!</span>", "<span class='warning'>You fire an arc of electricity at [L]!</span>", "You hear the loud crackle of electricity!")
playsound(user.loc, 'sound/effects/eleczap.ogg', 75, 1)
user.Beam(L,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5)
electrocute_mob(L, C, user)
last_shocked = world.time
if(!P.unlimited_power)
if(!C || !istype(C))
to_chat(user, "<span class='warning'>There is no cable here to power the gloves.</span>")
return
var/turf/target_turf = get_turf(A)
target_turf.hotspot_expose(2000, 400)
playsound(user.loc, 'sound/effects/eleczap.ogg', 40, 1)
var/atom/beam_from = user
var/atom/target_atom = A
for(var/i in 0 to 3)
beam_from.Beam(target_atom, icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 6)
if(isliving(target_atom))
var/mob/living/L = target_atom
if(user.a_intent == INTENT_DISARM)
L.Weaken(3)
else
if(P.unlimited_power)
L.electrocute_act(1000, P, 0) //Just kill them
else
electrocute_mob(L, C, P)
break
var/list/next_shocked = list()
for(var/atom/movable/AM in orange(3, target_atom))
if(AM == user || istype(AM, /obj/effect) || isobserver(AM))
continue
next_shocked.Add(AM)
beam_from = target_atom
target_atom = pick(next_shocked)
A = target_atom
next_shocked.Cut()
P.last_shocked = world.time
+13 -1
View File
@@ -12,6 +12,9 @@
description_antag = "These are a pair of power gloves, and can be used to fire bolts of electricity while standing over powered power cables."
var/old_mclick_override
var/datum/middleClickOverride/power_gloves/mclick_override = new /datum/middleClickOverride/power_gloves
var/last_shocked = 0
var/shock_delay = 40
var/unlimited_power = FALSE // Does this really need explanation?
/obj/item/clothing/gloves/color/yellow/power/equipped(mob/user, slot)
if(!ishuman(user))
@@ -21,7 +24,10 @@
if(H.middleClickOverride)
old_mclick_override = H.middleClickOverride
H.middleClickOverride = mclick_override
to_chat(H, "<span class='notice'>You feel electricity begin to build up in [src].</span>")
if(!unlimited_power)
to_chat(H, "<span class='notice'>You feel electricity begin to build up in [src].</span>")
else
to_chat(H, "<span class='biggerdanger'>You feel like you have UNLIMITED POWER!!</span>")
/obj/item/clothing/gloves/color/yellow/power/dropped(mob/user, slot)
if(!ishuman(user))
@@ -34,6 +40,12 @@
else
H.middleClickOverride = null
/obj/item/clothing/gloves/color/yellow/power/unlimited
name = "UNLIMITED POWER gloves"
desc = "These gloves possess UNLIMITED POWER."
shock_delay = 0
unlimited_power = TRUE
/obj/item/clothing/gloves/color/yellow/fake
desc = "These gloves will protect the wearer from electric shock. They don't feel like rubber..."
siemens_coefficient = 1