コード例 #1
0
        private void OnCharacterSpawned(BaseCharacterController character)
        {
            AgentController agent = character as AgentController;

            if (agent != null)
            {
                CharacterFaction faction = agent.Config.Faction;
                if (!_agentsByFaction[faction].Contains(agent))
                {
                    _agentsByFaction[faction].Add(agent);
                }

                if (!_hostileToPlayer.ContainsKey(agent))
                {
                    _hostileToPlayer[agent] = false;
                }
            }
            else if (Player == null)
            {
                //Must be a player
                Player = character as PlayerController;
                Debug.Assert(Player != null);
            }
        }
コード例 #2
0
 public bool IsHostileToPlayer(AgentController agent)
 {
     return(_hostileToPlayer[agent]);
 }
コード例 #3
0
 public void EndHostilityToPlayer(AgentController agent)
 {
     agent.RemoveEnemy(CharacterFaction.Player);
     Player.RemoveEnemy(agent.Config.Faction);
     _hostileToPlayer[agent] = false;
 }
コード例 #4
0
        public bool CanSeeCharacter(AgentController agent, BaseCharacterController other)
        {
            float distance = Vector3.Distance(other.transform.position, agent.transform.position);

            return(LineOfSightCheck(agent.transform, other.transform, agent._agentConfig.VisionRange));
        }
コード例 #5
0
 private float DistanceThreshold(AgentController owner)
 {
     return(_minePointDistanceThresholdBase + (owner.GetAbsoluteDesireValue(DesireType.Money) - _moneyDesireThreshold));
 }
コード例 #6
0
 public void MarkAsHostileToPlayer(AgentController agent)
 {
     agent.AddEnemy(CharacterFaction.Player);
     Player.AddEnemy(agent.Config.Faction);
     _hostileToPlayer[agent] = true;
 }
コード例 #7
0
ファイル: FleeState.cs プロジェクト: Yann4/Thesis
 public override bool ShouldRunState(AgentController owner, out StateConfig config)
 {
     config = null;
     return(false);
 }
コード例 #8
0
 public MineCurrencyConfig(AgentController Owner, Inventory toMine) : base(States.Mine, StatePriority.LongTerm, Owner)
 {
     ToMine = toMine;
 }
コード例 #9
0
ファイル: FleeState.cs プロジェクト: Yann4/Thesis
 public FleeConfig(AgentController owner, BaseCharacterController attacker) : base(States.Flee, StatePriority.Immediate, owner)
 {
     Attacker = attacker;
 }
コード例 #10
0
 public StealConfig(Inventory stealFrom, AgentController owner) : base(States.Steal, StatePriority.LongTerm, owner)
 {
     ToStealFrom = stealFrom;
 }
コード例 #11
0
ファイル: IdleState.cs プロジェクト: Yann4/Thesis
 public IdleConfig(AgentController owner, float maxWaitDuration, StatePriority prio = StatePriority.LongTerm) :
     base(States.Idle, prio, owner)
 {
     MaxWaitDuration = maxWaitDuration;
 }
コード例 #12
0
 public MoveToConfig(Vector2 target, AgentController owner, float tolerance = 2.0f)
     : base(States.MoveTo, StatePriority.Immediate, owner)
 {
     Target    = target;
     Tolerance = tolerance;
 }
コード例 #13
0
 public AttackConfig(AgentController owner, BaseCharacterController target)
     : base(States.Attack, StatePriority.Normal, owner)
 {
     Target = target;
 }