private void UpdateAgentWithoutTarget(BaseAgent agent, IEnumerable <LivingEntity> players, float dt) { foreach (var player in players) { if (Vector3.Distance(agent.Position, player.Position) < agent.AggroRange) { agent.Target = player; } } }
private void UpdateAgentWithTarget(BaseAgent agent, float dt) { if (agent.HasCastedAbility()) { foreach (var aData in agent.GetNewlyCastedAbilities()) { AddAbilityToQueue(aData, agent); } agent.ClearNewlyCastedAbilities(); } if (agent.AggroRange * BaseAgent.ExtraAggroRange < Vector3.Distance(agent.Position, agent.Target.Position)) { agent.Target = null; } }
public void AddAbilityToQueue(ClientCastAbilityData data, BaseAgent caster) { this._newCastedAbilities.Add(new AgentCastData(caster, data)); this._hasCastedAbility = true; }
public AgentCastData(BaseAgent caster, ClientCastAbilityData castData) { this.CastData = castData; this.Caster = caster; }
public void AddSpawnToQueue(BaseAgent agent) { this._newSpawnData.Add(agent); this._agents.Add(agent); this._hasSpawnData = true; }