Exemplo n.º 1
0
        public Fighter(Ship owner, Vector2 position)
        {
            Owner    = owner;
            Type     = ShipType.Fighter;
            Position = position;

            LoadData();

            if (!IsPlayerShip)
            {
                Stance = ShipStance.Aggressive;
            }

            StateMachine.RegisterState(new ShipPatrolFollowState(this));
            StateMachine.RegisterState(new SmallShipAttackingState(this));
            StateMachine.RegisterState(new ShipIdleState(this));

            if (Stance == ShipStance.Aggressive)
            {
                EnemyTarget = AIHelper.FindClosestEnemy(this);

                if (EnemyTarget != null)
                {
                    var attacking = StateMachine.GetState <SmallShipAttackingState>();
                    attacking.Target = EnemyTarget;
                    StateMachine.Start <SmallShipAttackingState>();
                }
            }
            else
            {
                var patrolFollow = StateMachine.GetState <ShipPatrolFollowState>();
                patrolFollow.Target = Owner;
                StateMachine.Start <ShipPatrolFollowState>();
            }
        }