let's do this
This commit is contained in:
+10
-11
@@ -30,7 +30,7 @@
|
||||
if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON)
|
||||
return
|
||||
. = ClickOn(A, params)
|
||||
if(.)
|
||||
if(!(. & DISCARD_LAST_ACTION))
|
||||
FlushCurrentAction()
|
||||
else
|
||||
DiscardCurrentAction()
|
||||
@@ -94,30 +94,29 @@
|
||||
|
||||
if(restrained())
|
||||
DelayNextAction(CLICK_CD_HANDCUFFED)
|
||||
RestrainedClickOn(A)
|
||||
return TRUE
|
||||
return RestrainedClickOn(A)
|
||||
|
||||
if(in_throw_mode)
|
||||
throw_item(A)
|
||||
return TRUE
|
||||
return
|
||||
|
||||
var/obj/item/W = get_active_held_item()
|
||||
|
||||
if(W == A)
|
||||
W.attack_self(src)
|
||||
update_inv_hands()
|
||||
return TRUE
|
||||
return
|
||||
|
||||
//These are always reachable.
|
||||
//User itself, current loc, and user inventory
|
||||
if(A in DirectAccess())
|
||||
if(W)
|
||||
return !(W.melee_attack_chain(src, A, params) & DISCARD_LAST_ACTION)
|
||||
return W.melee_attack_chain(src, A, params)
|
||||
else
|
||||
. = UnarmedAttack(A, TRUE, a_intent)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return !(. & DISCARD_LAST_ACTION)
|
||||
return
|
||||
|
||||
//Can't reach anything else in lockers or other weirdness
|
||||
if(!loc.AllowClick())
|
||||
@@ -126,17 +125,17 @@
|
||||
//Standard reach turf to turf or reaching inside storage
|
||||
if(CanReach(A,W))
|
||||
if(W)
|
||||
return !(W.melee_attack_chain(src, A, params) & DISCARD_LAST_ACTION)
|
||||
return W.melee_attack_chain(src, A, params)
|
||||
else
|
||||
. = UnarmedAttack(A, TRUE, a_intent)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return !(. & DISCARD_LAST_ACTION)
|
||||
return
|
||||
else
|
||||
if(W)
|
||||
return !(W.ranged_attack_chain(src, A, params) & DISCARD_LAST_ACTION)
|
||||
return W.ranged_attack_chain(src, A, params)
|
||||
else
|
||||
return !(RangedAttack(A,params) & DISCARD_LAST_ACTION)
|
||||
return RangedAttack(A,params)
|
||||
|
||||
//Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it
|
||||
/atom/proc/IsObscured()
|
||||
|
||||
+9
-15
@@ -16,23 +16,17 @@
|
||||
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["shift"] && modifiers["ctrl"])
|
||||
CtrlShiftClickOn(A)
|
||||
return
|
||||
return CtrlShiftClickOn(A)
|
||||
if(modifiers["shift"] && modifiers["middle"])
|
||||
ShiftMiddleClickOn(A)
|
||||
return
|
||||
return ShiftMiddleClickOn(A)
|
||||
if(modifiers["middle"])
|
||||
MiddleClickOn(A)
|
||||
return
|
||||
return MiddleClickOn(A)
|
||||
if(modifiers["shift"])
|
||||
ShiftClickOn(A)
|
||||
return
|
||||
return ShiftClickOn(A)
|
||||
if(modifiers["alt"]) // alt and alt-gr (rightalt)
|
||||
AltClickOn(A)
|
||||
return
|
||||
return AltClickOn(A)
|
||||
if(modifiers["ctrl"])
|
||||
CtrlClickOn(A)
|
||||
return
|
||||
return CtrlClickOn(A)
|
||||
|
||||
if(!CheckActionCooldown(immediate = TRUE))
|
||||
return
|
||||
@@ -81,7 +75,7 @@
|
||||
. = W.melee_attack_chain(src, A, params)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return !(. & DISCARD_LAST_ACTION)
|
||||
return
|
||||
|
||||
if(!isturf(loc))
|
||||
return
|
||||
@@ -92,9 +86,9 @@
|
||||
. = W.melee_attack_chain(src, A, params)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return !(. & DISCARD_LAST_ACTION)
|
||||
return
|
||||
else
|
||||
return !(W.afterattack(A, src, 0, params) & DISCARD_LAST_ACTION)
|
||||
return W.afterattack(A, src, 0, params)
|
||||
|
||||
//Middle click cycles through selected modules.
|
||||
/mob/living/silicon/robot/MiddleClickOn(atom/A)
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
|
||||
if(restrained())
|
||||
DelayNextAction(CLICK_CD_HANDCUFFED)
|
||||
RestrainedClickOn(A)
|
||||
return TRUE
|
||||
return RestrainedClickOn(A)
|
||||
|
||||
if(in_throw_mode)
|
||||
throw_item(A)//todo: make it plausible to lightly toss items via right-click
|
||||
@@ -36,14 +35,14 @@
|
||||
//User itself, current loc, and user inventory
|
||||
if(A in DirectAccess())
|
||||
if(W)
|
||||
return !(W.rightclick__melee_attack_chain(src, A, params) & DISCARD_LAST_ACTION)
|
||||
return W.rightclick_melee_attack_chain(src, A, params)
|
||||
else
|
||||
if(!AltUnarmedAttack(A, TRUE))
|
||||
. = UnarmedAttack(A, TRUE, a_intent)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return (.)? TRUE : FALSE
|
||||
return TRUE
|
||||
return
|
||||
return
|
||||
|
||||
//Can't reach anything else in lockers or other weirdness
|
||||
if(!loc.AllowClick())
|
||||
@@ -52,22 +51,21 @@
|
||||
//Standard reach turf to turf or reaching inside storage
|
||||
if(CanReach(A,W))
|
||||
if(W)
|
||||
return !(W.rightclick_melee_attack_chain(src, A, params) & DISCARD_LAST_ACTION)
|
||||
return W.rightclick_melee_attack_chain(src, A, params)
|
||||
else
|
||||
if(!AltUnarmedAttack(A, TRUE))
|
||||
. = UnarmedAttack(A, TRUE, a_intent)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING) && ismob(A))
|
||||
DelayNextAction(CLICK_CD_MELEE)
|
||||
return (.)? TRUE : FALSE
|
||||
return TRUE
|
||||
return
|
||||
return
|
||||
else
|
||||
if(W)
|
||||
if(!W.altafterattack(A, src, FALSE, params))
|
||||
W.afterattack(A, src, FALSE, params)
|
||||
return W.afterattack(A, src, FALSE, params)
|
||||
else
|
||||
if(!AltRangedAttack(A, params))
|
||||
return !(RangedAttack(A, params) & DISCARD_LAST_ACTION)
|
||||
return TRUE
|
||||
return (RangedAttack(A, params)
|
||||
|
||||
/mob/proc/AltUnarmedAttack(atom/A, proximity_flag)
|
||||
if(ismob(A))
|
||||
|
||||
Reference in New Issue
Block a user