mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
Gives the bartender their own version of judo (#21886)
This commit is contained in:
@@ -166,7 +166,8 @@
|
||||
H.dna.default_blocks.Add(GLOB.soberblock)
|
||||
H.check_mutations = 1
|
||||
ADD_TRAIT(H, TRAIT_TABLE_LEAP, ROUNDSTART_TRAIT)
|
||||
|
||||
var/datum/martial_art/judo/under_siege/bouncer_delight = new
|
||||
bouncer_delight.teach(H)
|
||||
|
||||
|
||||
/datum/job/chef
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
* * user - The attacking user
|
||||
*/
|
||||
/obj/item/melee/classic_baton/proc/baton_knockdown(mob/living/target, mob/living/user)
|
||||
if(user.mind?.martial_art?.no_baton)
|
||||
if(user.mind?.martial_art?.no_baton && user.mind?.martial_art?.can_use(user))
|
||||
to_chat(user, user.mind.martial_art.no_baton_reason)
|
||||
return
|
||||
if(issilicon(target))
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
user.visible_message("<span class='danger'>[user] accidentally hits [user.p_themselves()] with [src]!</span>",
|
||||
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
|
||||
return
|
||||
if(user.mind?.martial_art?.no_baton)
|
||||
if(user.mind?.martial_art?.no_baton && user.mind?.martial_art?.can_use(user))
|
||||
to_chat(user, user.mind.martial_art.no_baton_reason)
|
||||
return
|
||||
if(issilicon(M)) // Can't stunbaton borgs and AIs
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
Reference in New Issue
Block a user