示例#1
0
        public override void Update(GameTime gameTime)
        {
            switch (StateMachine.CurrentState)
            {
            case ShipFollowingState following:
            {
                if (following.Target.IsDead)
                {
                    StateMachine.SetState <ShipIdleState>();
                }

                ScanForTarget(gameTime);
            }
            break;

            case ShipFollowPositionState followPosition:
            {
                ScanForTarget(gameTime);
            }
            break;

            case ShipIdleState idle:
            {
                AIHelper.BigSetFollowState(this);
            }
            break;

            case RepairShipRepairState repair:
            {
                if (repair.Target.IsDead || repair.Target.CurrentArmourHP >= repair.Target.BaseArmourHP)
                {
                    AIHelper.BigSetFollowState(this);
                }
            }
            break;
            }

            base.Update(gameTime);
        } // Update