Gives the bartender their own version of judo (#21886)

This commit is contained in:
GDN
2023-09-01 17:20:47 -05:00
committed by GitHub
parent 7336750e48
commit 08eb183875
4 changed files with 34 additions and 3 deletions
+30
View File
@@ -63,3 +63,33 @@
/datum/martial_art/cqc/explaination_footer(user)
to_chat(user, "<b>Your unarmed strikes hit about twice as hard as your peers, on average.</b>")
/datum/martial_art/judo/under_siege
name = "Professional Bodyguarding"
var/static/list/areas_under_siege = typecacheof(list(/area/crew_quarters/kitchen, /area/crew_quarters/bar))
/datum/martial_art/judo/under_siege/teach(mob/living/carbon/human/H, make_temporary)
RegisterSignal(H, COMSIG_AREA_ENTERED, PROC_REF(bar_check))
return ..()
/datum/martial_art/judo/under_siege/remove(mob/living/carbon/human/H)
UnregisterSignal(H, COMSIG_AREA_ENTERED)
return ..()
/datum/martial_art/judo/under_siege/proc/bar_check(mob/living/carbon/human/H, area/entered_area)
SIGNAL_HANDLER
if(!is_type_in_typecache(entered_area, areas_under_siege))
var/list/held_items = list(H.get_active_hand(), H.get_inactive_hand())
for(var/obj/item/slapper/parry/smacking_hand in held_items)
qdel(smacking_hand)
can_parry = FALSE
weight = 0
else
can_parry = TRUE
weight = 5
/datum/martial_art/judo/under_siege/can_use(mob/living/carbon/human/H)
var/area/A = get_area(H)
if(!(is_type_in_typecache(A, areas_under_siege)))
return FALSE
return ..()