Merge pull request #12834 from silicons/clickcd_experimental
Experimental hybrid clickdelay system (No seriously I'm trying my best to not call it Minecraft attack delays)
This commit is contained in:
@@ -23,7 +23,6 @@
|
||||
gulp_size = max(round(reagents.total_volume / 5), 5)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone)
|
||||
|
||||
if(!reagents || !reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
return 0
|
||||
@@ -37,9 +36,6 @@
|
||||
|
||||
if(M == user)
|
||||
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
M.changeNext_move(CLICK_CD_MELEE * 0.5) //chug! chug! chug!
|
||||
|
||||
else
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed the contents of [src] to [M].</span>", "<span class='userdanger'>[user] attempts to feed the contents of [src] to [M].</span>")
|
||||
if(!do_mob(user, M))
|
||||
@@ -56,6 +52,10 @@
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/CheckAttackCooldown(mob/user, atom/target)
|
||||
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
|
||||
return user.CheckActionCooldown(fast? CLICK_CD_RANGE : CLICK_CD_MELEE)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
|
||||
@@ -129,8 +129,6 @@ All foods are distributed among various categories. Use common sense.
|
||||
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
||||
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
|
||||
return 0
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom
|
||||
else
|
||||
if(!isbrain(M)) //If you're feeding it to someone else.
|
||||
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
|
||||
@@ -167,6 +165,10 @@ All foods are distributed among various categories. Use common sense.
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/CheckAttackCooldown(mob/user, atom/target)
|
||||
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
|
||||
return user.CheckActionCooldown(fast? CLICK_CD_RANGE : CLICK_CD_MELEE)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||
. = ..()
|
||||
if(food_quality >= 70)
|
||||
|
||||
@@ -130,7 +130,7 @@ God bless America.
|
||||
/obj/machinery/deepfryer/attack_ai(mob/user)
|
||||
return
|
||||
|
||||
/obj/machinery/deepfryer/attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
/obj/machinery/deepfryer/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(frying)
|
||||
if(frying.loc == src)
|
||||
to_chat(user, "<span class='notice'>You eject [frying] from [src].</span>")
|
||||
@@ -146,6 +146,8 @@ God bless America.
|
||||
fry_loop.stop()
|
||||
return
|
||||
else if(user.pulling && user.a_intent == "grab" && iscarbon(user.pulling) && reagents.total_volume)
|
||||
if(!user.CheckActionCooldown(CLICK_CD_MELEE))
|
||||
return
|
||||
if(user.grab_state < GRAB_AGGRESSIVE)
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
return
|
||||
@@ -155,5 +157,5 @@ God bless America.
|
||||
C.apply_damage(min(30, reagents.total_volume), BURN, BODY_ZONE_HEAD)
|
||||
reagents.remove_any((reagents.total_volume/2))
|
||||
C.DefaultCombatKnockdown(60)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.DelayNextAction()
|
||||
return ..()
|
||||
|
||||
@@ -63,10 +63,7 @@
|
||||
/obj/machinery/gibber/relaymove(mob/living/user)
|
||||
go_out()
|
||||
|
||||
/obj/machinery/gibber/attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
/obj/machinery/gibber/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(operating)
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
/obj/machinery/grill/attack_ai(mob/user)
|
||||
return
|
||||
|
||||
/obj/machinery/grill/attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
/obj/machinery/grill/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(grilled_item)
|
||||
to_chat(user, "<span class='notice'>You take out [grilled_item] from [src].</span>")
|
||||
grilled_item.forceMove(drop_location())
|
||||
|
||||
@@ -106,8 +106,7 @@
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/item/pizzabox/attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
/obj/item/pizzabox/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(user.get_inactive_held_item() != src)
|
||||
return ..()
|
||||
if(open)
|
||||
|
||||
Reference in New Issue
Block a user