aight
This commit is contained in:
@@ -59,7 +59,20 @@
|
||||
if(. & STOP_ATTACK_PROC_CHAIN)
|
||||
return
|
||||
. |= I.attack(src, user, attackchain_flags, damage_multiplier)
|
||||
if(!(. & NO_AUTO_CLICKDELAY_HANDLING)) // SAFETY NET - unless the proc tells us we should not handle this, give them the basic melee cooldown!
|
||||
I.ApplyAttackCooldown(user, src)
|
||||
|
||||
/**
|
||||
* Called when someone uses us to attack a mob in melee combat.
|
||||
*
|
||||
* This proc respects CheckAttackCooldown() default clickdelay handling.
|
||||
*
|
||||
* @params
|
||||
* * mob/living/M - target
|
||||
* * mob/living/user - attacker
|
||||
* * attackchain_Flags - see [code/__DEFINES/_flags/return_values.dm]
|
||||
* * damage_multiplier - what to multiply the damage by
|
||||
*/
|
||||
/obj/item/proc/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
|
||||
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
|
||||
return
|
||||
@@ -80,7 +93,6 @@
|
||||
|
||||
user.do_attack_animation(M)
|
||||
M.attacked_by(src, user, attackchain_flags, damage_multiplier)
|
||||
ApplyAttackCooldown(user, M)
|
||||
|
||||
log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])")
|
||||
add_fingerprint(user)
|
||||
@@ -97,7 +109,6 @@
|
||||
return
|
||||
user.do_attack_animation(O)
|
||||
O.attacked_by(src, user)
|
||||
ApplyAttackCooldown(user, O)
|
||||
var/weight = getweight(user, STAM_COST_ATTACK_OBJ_MULT)
|
||||
if(weight)
|
||||
user.adjustStaminaLossBuffered(weight)//CIT CHANGE - makes attacking things cause stamina loss
|
||||
@@ -124,7 +135,7 @@
|
||||
if(!(SKILL_TRAIN_ATTACK_OBJ in I.used_skills[skill]))
|
||||
continue
|
||||
user.mind.auto_gain_experience(skill, I.skill_gain)
|
||||
|
||||
I.ApplyAttackCooldown(user, src)
|
||||
if(totitemdamage)
|
||||
visible_message("<span class='danger'>[user] has hit [src] with [I]!</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||
//only witnesses close by and the victim see a hit message.
|
||||
@@ -190,9 +201,20 @@
|
||||
var/datum/skill/S = GLOB.skill_datums[skill]
|
||||
user.mind.auto_gain_experience(skill, I.skill_gain*S.item_skill_gain_multi)
|
||||
|
||||
// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
|
||||
// Click parameters is the params string from byond Click() code, see that documentation.
|
||||
/**
|
||||
* Called after attacking something if the melee attack chain isn't interrupted before.
|
||||
* Also called when clicking on something with an item without being in melee range
|
||||
*
|
||||
* WARNING: This does not automatically check clickdelay if not in a melee attack! Be sure to account for this!
|
||||
*
|
||||
* @params
|
||||
* * target - The thing we clicked
|
||||
* * user - mob of person clicking
|
||||
* * proximity_flag - are we in melee range/doing it in a melee attack
|
||||
* * click_parameters - mouse control parameters, check BYOND ref.
|
||||
*/
|
||||
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters)
|
||||
SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user