public override void OnAttacked(Unit attacker) { if (_petOwner.AIMode != (byte)PetCommand.Passive && !_petOwner.IsHeeling && !IgnoreDamageEvents && CurrentTarget == null) { switch (AIInterface.State) { case AiState.STANDING: AIInterface.ProcessCombatStart(attacker); break; case AiState.MOVING: AIInterface.ProcessCombatStart(attacker); break; } } RefreshCombatTimer(); _petOwner.Owner.CbtInterface.RefreshCombatTimer(); }
public override void OnTakeDamage(Unit fighter, uint damage, float hatredMod, uint mitigation = 0) { if (_petOwner.AIMode != (byte)PetCommand.Passive && !_petOwner.IsHeeling && !IgnoreDamageEvents && CurrentTarget == null) { switch (AIInterface.State) { case AiState.STANDING: AIInterface.ProcessCombatStart(fighter); break; case AiState.MOVING: AIInterface.ProcessCombatStart(fighter); break; } _Owner.EvtInterface.Notify(EventName.OnReceiveDamage, fighter, null); } RefreshCombatTimer(); _petOwner.Owner.CbtInterface.RefreshCombatTimer(); }
public override void OnDealDamage(Unit victim, uint damageCount) { if (_petOwner.AIMode != (byte)PetCommand.Passive && !_petOwner.IsHeeling && !IgnoreDamageEvents && CurrentTarget == null) { switch (AIInterface.State) { case AiState.STANDING: AIInterface.ProcessCombatStart(victim); break; case AiState.MOVING: AIInterface.ProcessCombatStart(victim); break; } _Owner.EvtInterface.Notify(EventName.OnDealDamage, victim, damageCount); } RefreshCombatTimer(); _petOwner.Owner.CbtInterface.RefreshCombatTimer(); }
public override bool Load() { AIInterface = UnitOwner.AiInterface; CurrentTarget = null; return(base.Load()); }