protected ABrain(Unit unit) { _unit = unit; Combat = (CombatInterface_Npc)unit.CbtInterface; AI = unit.AiInterface; _pet = unit as Pet; }
public Unit() : base() { ItmInterface = new ItemsInterface(this); CbtInterface = new CombatInterface(this); StsInterface = new StatsInterface(this); QtsInterface = new QuestsInterface(this); MvtInterface = new MovementInterface(this); AbtInterface = new AbilityInterface(this); AiInterface = new AIInterface(this); }
public Unit() : base() { ItmInterface = AddInterface<ItemsInterface>(); CbtInterface = AddInterface<CombatInterface>(); StsInterface = AddInterface<StatsInterface>(); QtsInterface = AddInterface<QuestsInterface>(); MvtInterface = AddInterface<MovementInterface>(); AbtInterface = AddInterface<AbilityInterface>(); AiInterface = AddInterface<AIInterface>(); }
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 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 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 bool Load() { AI = _Owner.GetUnit().AiInterface; ClearTargets(); return(base.Load()); }
public GuardBrain(AIInterface Interface) : base(Interface) { }
public AgressiveBrain(AIInterface Interface) : base(Interface) { }
public override bool Load() { AI = _Owner.GetUnit().AiInterface; ClearTargets(); return base.Load(); }
public ABrain(AIInterface Interface) { this.Interface = Interface; }
public PassiveBrain(AIInterface Interface) : base(Interface) { }
public override bool Load() { AIInterface = UnitOwner.AiInterface; CurrentTarget = null; return(base.Load()); }