mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 10:11:09 +00:00
## About The Pull Request The shocks from the shock touch mutation now ignore insulated gloves, because you're touching your victim's body, not giving them a handshake. The shocks from punching charged energy fields (special holosigns from emagged cyborgs) now DON'T ignore insulated gloves, because you're literally punching them with your hand. The shocks from running into charged energy fields now DON'T ignore insulated gloves, to be consistent with things like electrified doors. The shocks from the on_mob_life() effect of liquid electricity now ignore insulated gloves, like the shocks from the on_mob_life() effect of teslium do (thanks for pointing this out, Angustmeta!). ## Why It's Good For The Game Logical sense and consistency in what forms of protection shocks check for are good things, I think.
52 lines
2.2 KiB
Plaintext
52 lines
2.2 KiB
Plaintext
/datum/mutation/human/shock
|
|
name = "Shock Touch"
|
|
desc = "The affected can channel excess electricity through their hands without shocking themselves, allowing them to shock others."
|
|
quality = POSITIVE
|
|
locked = TRUE
|
|
difficulty = 16
|
|
text_gain_indication = "<span class='notice'>You feel power flow through your hands.</span>"
|
|
text_lose_indication = "<span class='notice'>The energy in your hands subsides.</span>"
|
|
power = /obj/effect/proc_holder/spell/targeted/touch/shock
|
|
instability = 30
|
|
|
|
/obj/effect/proc_holder/spell/targeted/touch/shock
|
|
name = "Shock Touch"
|
|
desc = "Channel electricity to your hand to shock people with."
|
|
drawmessage = "You channel electricity into your hand."
|
|
dropmessage = "You let the electricity from your hand dissipate."
|
|
hand_path = /obj/item/melee/touch_attack/shock
|
|
charge_max = 100
|
|
clothes_req = FALSE
|
|
action_icon_state = "zap"
|
|
|
|
/obj/item/melee/touch_attack/shock
|
|
name = "\improper shock touch"
|
|
desc = "This is kind of like when you rub your feet on a shag rug so you can zap your friends, only a lot less safe."
|
|
catchphrase = null
|
|
on_use_sound = 'sound/weapons/zapbang.ogg'
|
|
icon_state = "zapper"
|
|
inhand_icon_state = "zapper"
|
|
|
|
/obj/item/melee/touch_attack/shock/afterattack(atom/target, mob/living/carbon/user, proximity)
|
|
if(!proximity)
|
|
return
|
|
if(iscarbon(target))
|
|
var/mob/living/carbon/C = target
|
|
if(C.electrocute_act(15, user, 1, SHOCK_NOGLOVES | SHOCK_NOSTUN))//doesnt stun. never let this stun
|
|
C.dropItemToGround(C.get_active_held_item())
|
|
C.dropItemToGround(C.get_inactive_held_item())
|
|
C.add_confusion(15)
|
|
C.visible_message("<span class='danger'>[user] electrocutes [target]!</span>","<span class='userdanger'>[user] electrocutes you!</span>")
|
|
return ..()
|
|
else
|
|
user.visible_message("<span class='warning'>[user] fails to electrocute [target]!</span>")
|
|
return ..()
|
|
else if(isliving(target))
|
|
var/mob/living/L = target
|
|
L.electrocute_act(15, user, 1, SHOCK_NOSTUN)
|
|
L.visible_message("<span class='danger'>[user] electrocutes [target]!</span>","<span class='userdanger'>[user] electrocutes you!</span>")
|
|
return ..()
|
|
else
|
|
to_chat(user,"<span class='warning'>The electricity doesn't seem to affect [target]...</span>")
|
|
return ..()
|