mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-10 01:22:41 +00:00
All credits to the author for this handy little script. I Committed the modified python script to tool directory. Although it needs to be in the root folder of your repo to work. To notice the improved compile times, in dreammaker go to Build > Preferences > and untick "automatically set file_dir for subfolders" If this commit inteferes with any large projects just revert it, do your thing, then rerun the script. Easy-peasy. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4488 316c924e-a436-60f5-8080-3fe189b3f50e
96 lines
2.8 KiB
Plaintext
96 lines
2.8 KiB
Plaintext
/obj/item/weapon/melee/baton
|
|
name = "stun baton"
|
|
desc = "A stun baton for incapacitating people with."
|
|
icon_state = "stunbaton"
|
|
item_state = "baton"
|
|
flags = FPRINT | TABLEPASS
|
|
slot_flags = SLOT_BELT
|
|
force = 10
|
|
throwforce = 7
|
|
w_class = 3
|
|
var/charges = 10
|
|
var/status = 0
|
|
origin_tech = "combat=2"
|
|
|
|
|
|
/obj/item/weapon/melee/baton/update_icon()
|
|
if(status)
|
|
icon_state = "stunbaton_active"
|
|
else
|
|
icon_state = "stunbaton"
|
|
|
|
/obj/item/weapon/melee/baton/attack_self(mob/user as mob)
|
|
if(status && (CLUMSY in user.mutations) && prob(50))
|
|
user << "\red You grab the [src] on the wrong side."
|
|
user.Weaken(30)
|
|
charges--
|
|
if(charges < 1)
|
|
status = 0
|
|
update_icon()
|
|
return
|
|
if(charges > 0)
|
|
status = !status
|
|
user << "<span class='notice'>\The [src] is now [status ? "on" : "off"].</span>"
|
|
playsound(src.loc, "sparks", 75, 1, -1)
|
|
update_icon()
|
|
else
|
|
status = 0
|
|
user << "<span class='warning'>\The [src] is out of charge.</span>"
|
|
add_fingerprint(user)
|
|
|
|
/obj/item/weapon/melee/baton/attack(mob/M as mob, mob/user as mob)
|
|
if(status && (CLUMSY in user.mutations) && prob(50))
|
|
user << "<span class='danger'>You accidentally hit yourself with the [src]!</span>"
|
|
user.Weaken(30)
|
|
charges--
|
|
if(charges < 1)
|
|
status = 0
|
|
update_icon()
|
|
return
|
|
|
|
var/mob/living/carbon/human/H = M
|
|
if(isrobot(M))
|
|
..()
|
|
return
|
|
|
|
if(user.a_intent == "hurt")
|
|
if(!..()) return
|
|
H.apply_effect(5, WEAKEN, 0)
|
|
H.visible_message("<span class='danger'>[M] has been beaten with the [src] by [user]!</span>")
|
|
playsound(src.loc, "swing_hit", 50, 1, -1)
|
|
else if(!status)
|
|
H.visible_message("<span class='warning'>[M] has been prodded with the [src] by [user]. Luckily it was off.</span>")
|
|
return
|
|
|
|
if(status)
|
|
H.apply_effect(10, STUN, 0)
|
|
H.apply_effect(10, WEAKEN, 0)
|
|
H.apply_effect(10, STUTTER, 0)
|
|
user.lastattacked = M
|
|
H.lastattacker = user
|
|
if(isrobot(src.loc))
|
|
var/mob/living/silicon/robot/R = src.loc
|
|
if(R && R.cell)
|
|
R.cell.use(50)
|
|
else
|
|
charges--
|
|
H.visible_message("<span class='danger'>[M] has been stunned with the [src] by [user]!</span>")
|
|
user.attack_log += "\[[time_stamp()]\]<font color='red'> Stunned [H.name] ([H.ckey]) with [src.name]</font>"
|
|
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by [user.name] ([user.ckey]) with [src.name]</font>"
|
|
log_attack("<font color='red'>[user.name] ([user.ckey]) stunned [H.name] ([H.ckey]) with [src.name]</font>" )
|
|
playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
|
if(charges < 1)
|
|
status = 0
|
|
update_icon()
|
|
|
|
add_fingerprint(user)
|
|
|
|
/obj/item/weapon/melee/baton/emp_act(severity)
|
|
switch(severity)
|
|
if(1)
|
|
charges = 0
|
|
if(2)
|
|
charges = max(0, charges - 5)
|
|
if(charges < 1)
|
|
status = 0
|
|
update_icon() |