Esempio n. 1
0
        public override void Initialize()
        {
            int targetPlayerId = 0;

            if (Config.PlayersNumber == 2)
            {
                targetPlayerId = GameplayScreen.Rand.Next(0, 2);
            }

            MoverManager.Initialize(Game.GameplayScreen.Players[targetPlayerId].GetPosition);

            MoverManager.movers.Clear();

            Position = Vector2.Zero;
            _motion  = new Vector2(1, 0);
            _ready   = false;

            _totalHealth = InitialHealth * ((DefeatNumber + 1) / 2f);
            _health      = _totalHealth;

            IsAlive = true;

            _timer = Config.BossInitialTimer;

            Rotation             = 0;
            _rotationIncrementor = 0.001f;

            base.Initialize();
        }
Esempio n. 2
0
        public GameManager(XmasHell game)
        {
            _game = game;

            _bullets = new List <Bullet>();
            _lasers  = new List <Laser>();
            _endGame = false;

            MoverManager    = new MoverManager(_game);
            CollisionWorld  = new CollisionWorld(_game);
            ParticleManager = new ParticleManager(_game);

            //Random = new Random(GameConfig.RandomSeed);
            Random = new Random();

            _cameraZoomTimer = new CountdownTimer(GameConfig.EndGameCameraZoomTime);
            _cameraZoomTimer.Stop();
            _cameraZoomTimer.Completed += CameraZoomTimerCompleted;

            _explosionTimer = new CountdownTimer(GameConfig.EndGameExplosionTime);
            _explosionTimer.Stop();
            _explosionTimer.Completed += ExplosionTimerCompleted;

            _transitioningToEndGame = false;
            _cantMove = false;
        }
Esempio n. 3
0
        public override void Initialize()
        {
            _backgroundMainRectangle = new Rectangle(0, 0, Config.GameArea.X, Config.GameArea.Y);

            // Bullet manager
            _moverManager = new MoverManager((DnK)Game);
            GameManager.GameDifficulty = Config.GameDifficultyDelegate;

            base.Initialize();

            _defaultView = GraphicsDevice.Viewport;

            // First player
            _player = new Player(GameRef, _defaultView, 1, Config.PlayersController[0], new Vector2(Config.GameArea.X / 2f, Config.GameArea.Y - 150));
            _player.Initialize();

            _moverManager.Initialize(_player.GetPosition);
            _moverManager.movers.Clear();

            AddBullet(true);

            // Watch the bullet pattern file
            _watcher = new FileSystemWatcher
            {
                Path         = _patternDirectory,
                NotifyFilter = NotifyFilters.LastWrite,
                Filter       = _patternFileName
            };

            // Add event handler
            _watcher.Changed += OnChanged;

            // Begin watching
            _watcher.EnableRaisingEvents = true;
        }
Esempio n. 4
0
    void Start()
    {
        Assert.IsNotNull(gameManagers.chaserManagerClass);
        Assert.IsNotNull(gameManagers.UIManagerClass);
        Assert.IsNotNull(gameManagers.spawnPointManagerClass);
        Assert.IsNotNull(gameManagers.asteroidStormManagerClass);
        Assert.IsNotNull(players, "playerShips niet geassigned");

        //UIManager
        UIManager UIManager = Instantiate(gameManagers.UIManagerClass);

        UIManager.playerShip = players[0];

        // Spawn Point Manager
        SpawnPointManager spawnPointManager = Instantiate(gameManagers.spawnPointManagerClass);

        // Asteroid Storm Manager
        //if (difficulty > 0)
        //{
        //    AsteroidStormManager asteroidStormManager = Instantiate(gameManagers.asteroidStormManagerClass);
        //    asteroidStormManager.spawnPointManager = spawnPointManager;
        //}

        // Enemy Managers
        ChaserManager chaserManager = Instantiate(gameManagers.chaserManagerClass);

        chaserManager.SetPlayers(players);
        chaserManager.SetSpawnPoints(spawnPointManager.chaserSpawnPoints);

        MoverManager moverManager = Instantiate(gameManagers.MoverManagerClass);

        moverManager.SetPlayers(players);
        moverManager.SetSpawnPoints(spawnPointManager.movingSpawnPoints);
    }
Esempio n. 5
0
 public Boss(DnK game)
     : base(game)
 {
     MoverManager = new MoverManager(Game);
     GameManager.GameDifficulty = Config.GameDifficultyDelegate;
     DefeatNumber = 0;
     _speed       = 1f;
 }
Esempio n. 6
0
 public PathRenderer(MoverManager mover, BaseMovable moving, Texture2D texture, Texture2D endTexture, Point pointSize, int maxX, int maxY) :
     base(mover, moving)
 {
     _texture    = texture;
     _endTexture = endTexture;
     _pointSize  = pointSize;
     MaxX        = maxX;
     MaxY        = maxY;
 }
Esempio n. 7
0
        public void Draw(GameTime gameTime, Matrix viewMatrix)
        {
            foreach (var part in _parts)
            {
                part.Draw(gameTime, viewMatrix);
            }

            _core.Draw(gameTime);

            MoverManager.Draw(gameTime);
        }
    private void Start()
    {
        _gameStateManager      = GetComponent <GameStateManager>();
        _waveIndicatorAnimator = waveIndicator.GetComponent <Animator>();
        _mementoManager        = GetComponent <MementoManager>();
        _moverManager          = GetComponent <MoverManager>();
        _spawnPointManager     = GetComponent <SpawnPointManager>();

        _dogAnimation = dogIndicator.GetComponent <Animator>();
        _audioSource  = GetComponent <AudioSource>();

        _windowAnimation = windowObject.GetComponent <Animator>();
    }
Esempio n. 9
0
        public OpenWorldGameMode(ViewportAdapter viewPort, IPossibleMovements possibleMovements, string worldName, EntityManager entityManager, StoryEngine storyEngine, EventHandler clickEvent) : base(clickEvent)
        {
            _entityManager      = entityManager;
            EntityRenderersDict = new Dictionary <Entity, AbstractEntityRenderer>();
            _possibleMovements  = possibleMovements;
            _content            = ContentManagerFactory.RequestContentManager();
            RenderList          = new List <IRenderable>();
            Map = _content.Load <TiledMap>($"TopDownRpg/{worldName}");
            var graphics = StaticServiceLocator.GetService <GraphicsDevice>();

            _mapRenderer = new FullMapRenderer(graphics);
            _mapRenderer.SwapMap(Map);
            _tileSize     = new Vector2(Map.TileWidth, Map.TileHeight);
            _moverManager = new MoverManager();
            var collisionSystem = new CompositeAbstractCollisionSystem(_possibleMovements);

            _expiringSpatialHash = new ExpiringSpatialHashCollisionSystem <Entity>(_possibleMovements);
            _spatialHashMover    = new SpatialHashMoverManager <Entity>(collisionSystem, _expiringSpatialHash);
            AddPlayer();
            var entityController = EntityControllerFactory.AddEntityController(PlayerEntity.Instance, _possibleMovements, _moverManager);
            var texture          = _content.Load <Texture2D>("TopDownRpg/Path");
            var endTexture       = _content.Load <Texture2D>("TopDownRpg/BluePathEnd");

            collisionSystem.AddCollisionSystem(new TiledCollisionSystem(_possibleMovements, Map, "Collision-Layer"));
            collisionSystem.AddCollisionSystem(_expiringSpatialHash);
            CollisionSystem = collisionSystem;
            AddClickController(PlayerEntity.Instance);
            PathRenderer = new PathRenderer(_moverManager, PlayerEntity.Instance, texture, endTexture, _tileSize.ToPoint(), Map.Width, Map.Height);
            UpdateList.Add(_expiringSpatialHash);
            UpdateList.Add(entityController);
            UpdateList.Add(_spatialHashMover);
            UpdateList.Add(_moverManager);
            CameraTracker = CameraTrackerFactory.CreateTracker(viewPort, EntityRenderersDict[PlayerEntity.Instance], Map);
            UpdateList.Add(CameraTracker);
            LoadEntities();
            var dialogFont = _content.Load <SpriteFont>("dialog");
            var settings   = StaticServiceLocator.GetService <IControllerSettings>();

            DialogBox = new EntityStoryBoxDialog(ScreenSize.Size, dialogFont, settings.GamePadEnabled);
            GuiManager.AddGuiLayer(DialogBox);
            storyEngine.LoadWorld(AddEntity, RemoveEntity, CollisionSystem.CheckMovementCollision, worldName);
            InteractEvent += (sender, args) =>
            {
                var facingDirection = PlayerEntity.Instance.FacingDirection;
                var interactTarget  = (PlayerEntity.Instance.Position + facingDirection).ToPoint();
                Interact(interactTarget);
            };
            AddInteractionController();
            CameraController.AddCameraZoomController(CameraTracker, ClickController);
            CameraController.AddCameraMovementController(CameraTracker, ClickController);
        }
Esempio n. 10
0
    private void Start()
    {
        var gameController = GameObject.FindGameObjectWithTag("GameController");

        _mementoManager    = gameController.GetComponent <MementoManager>();
        _spawnPointManager = gameController.GetComponent <SpawnPointManager>();
        _moverManager      = gameController.GetComponent <MoverManager>();
        _navMeshAgent      = GetComponent <NavMeshAgent>();
        _animator          = GetComponentInChildren <Animator>();

        _navMeshAgent.speed = settings.walkingSpeed;

        audioSource = GetComponent <AudioSource>();
    }
Esempio n. 11
0
        private void AddBullet(bool clear)
        {
            if (clear)
            {
                //clear out all the bulelts
                MoverManager.movers.Clear();
            }

            //add a new bullet in the center of the screen
            _mover   = (Mover)MoverManager.CreateBullet();
            _mover.X = Position.X;
            _mover.Y = Position.Y - 5;
            _mover.SetBullet(_myPatterns[_currentPattern].RootNode);
        }
Esempio n. 12
0
        public Boss(GameRunner gameRef, Player player, int iteration = 50, float step = 25)
        {
            _gameRef                   = gameRef;
            _defeatCounter             = 0;
            MoverManager               = new MoverManager(gameRef);
            GameManager.GameDifficulty = Config.GameDifficultyDelegate;
            this.player                = player;
            _iteration                 = iteration;
            _step             = step;
            _previousBossPart = null;

            _parts            = new List <BossPart>();
            _currentPartIndex = 0;

            //MoverManager.Initialize(player.Position);
        }
Esempio n. 13
0
 public BossCore(
     GameRunner gameRef,
     Entity parent,
     PositionDelegate playerPositionDelegate,
     MoverManager moverManager,
     List <BulletPattern> bulletPatterns,
     float initialHp = 100f)
     : base(gameRef)
 {
     _parent    = parent;
     _hp        = initialHp;
     _activated = false;
     _playerPositionDelegate = playerPositionDelegate;
     _moverManager           = moverManager;
     _bulletPatterns         = bulletPatterns;
 }
Esempio n. 14
0
        public Boss(DnK gameRef, List <Player> players, int iteration = 50, float step = 25)
        {
            _gameRef                   = gameRef;
            _defeatCounter             = 0;
            MoverManager               = new MoverManager(gameRef);
            GameManager.GameDifficulty = Config.GameDifficultyDelegate;
            _players                   = players;
            _iteration                 = iteration;
            _step             = step;
            _previousBossPart = null;

            _parts            = new List <BossPart>();
            _currentPartIndex = 0;

            int targetPlayerId = _gameRef.Rand.Next(0, _players.Count);

            MoverManager.Initialize(_players[targetPlayerId].GetPosition);
        }
Esempio n. 15
0
        public GameManager(XmasHell game)
        {
            _game    = game;
            _bullets = new List <Bullet>();
            _lasers  = new List <Laser>();
            _endGame = false;

            MoverManager    = new MoverManager(_game);
            CollisionWorld  = new CollisionWorld(_game);
            ParticleManager = new ParticleManager(_game);

            //Random = new Random(GameConfig.RandomSeed);
            Random = new Random();

            _endGameTimer = new CountdownTimer(1);
            _endGameTimer.Stop();
            _endGameTimer.Completed += EndGameTimerCompleted;
            _endGameFirstTime        = true;
        }
Esempio n. 16
0
 public Turret(
     DnK gameRef,
     Entity parent,
     Entity target,
     MoverManager moverManager,
     Vector2 initialPosition,
     BulletPattern pattern,
     Color color)
     : base(gameRef)
 {
     _initialPosition = initialPosition;
     X             = InitialPosition.X;
     Y             = InitialPosition.Y;
     _parent       = parent;
     _target       = target;
     _moverManager = moverManager;
     _pattern      = pattern;
     _timer        = new TimeSpan(0, 0, (int)(GameRef.Rand.NextDouble() * 30));
     _color        = color;
     Scale         = new Vector2(0.5f, 0.5f);
 }
Esempio n. 17
0
        public BossPart(
            GameRunner gameRef,
            Boss bossRef,
            Player player,
            MoverManager moverManager,
            List <BulletPattern> bulletPatterns,
            Color color,
            float initialHealth,
            Texture2D pixel,
            int iteration             = 50,
            float step                = 25,
            List <Turret> turrets     = null,
            PolygonShape polygonShape = null,
            bool mainPart             = false)
            : base(gameRef)
        {
            this.pixel      = pixel;
            _bossRef        = bossRef;
            _mainPart       = mainPart;
            this.player     = player;
            _moverManager   = moverManager;
            _bulletPatterns = bulletPatterns ?? new List <BulletPattern>();

            _health    = initialHealth;
            _displayHp = false;
            _color     = color;

            _iteration = iteration;
            _step      = step;

            _accelerationDecreaseFactor = 0.00075f;

            _turrets          = turrets ?? new List <Turret>();
            _polygonShape     = polygonShape;
            _collisionBoxesHp = new Dictionary <CollisionConvexPolygon, float>();
            _targetPosition   = Vector2.Zero;
            _targetAngle      = 0f;
        }
Esempio n. 18
0
        public void Update(GameTime gameTime)
        {
            _timer -= gameTime.ElapsedGameTime;
            if (_timer < TimeSpan.Zero)
            {
                _timer = Config.BossInitialTimer;
            }

            // If the main part is destroyed, we destroy all parts
            // (or if the boss core is destroyed instead)
            if (!_core.IsAlive)
            {
                // Destroy all parts
                foreach (var part in Parts)
                {
                    part.TakeDamage(9999);
                }

                _defeatCounter++;
                Reset();
            }

            _core.Update(gameTime);

            if (!_mainPartIsDead && !_mainPart.IsAlive)
            {
                _mainPartIsDead = true;
                _core.Activate();
            }

            for (int i = 0; i < _parts.Count; i++)
            {
                _parts[i].Update(gameTime);

                if (!_parts[i].IsAlive)
                {
                    _parts.Remove(_parts[i]);
                }
            }

            // Check bullets to players collision
            for (int i = 0; i < MoverManager.movers.Count; i++)
            {
                foreach (var player in _players)
                {
                    if (MoverManager.movers[i].Intersects(player))
                    {
                        // Destroyed by shield?
                        if (player.IsInvincible)
                        {
                            ParticleExplosion(MoverManager.movers[i].Position);
                            MoverManager.RemoveBullet(MoverManager.movers[i]);
                        }
                        else
                        {
                            player.Hit();
                        }
                    }
                }
            }

            if (Config.Debug)
            {
                /*
                 * //check input to increment/decrement the current bullet pattern
                 * if (InputHandler.KeyPressed(Keys.A))
                 * {
                 *  //decrement the pattern
                 *  if (0 >= _currentPatternIndex)
                 *  {
                 *      //if it is at the beginning, move to the end
                 *      _currentPatternIndex = _bulletPatterns.Count - 1;
                 *  }
                 *  else
                 *  {
                 *      _currentPatternIndex--;
                 *  }
                 *
                 *  AddBullet(true);
                 * }
                 * else if (InputHandler.KeyPressed(Keys.X))
                 * {
                 *  //increment the pattern
                 *  if ((_bulletPatterns.Count - 1) <= _currentPatternIndex)
                 *  {
                 *      //if it is at the beginning, move to the end
                 *      _currentPatternIndex = 0;
                 *  }
                 *  else
                 *  {
                 *      _currentPatternIndex++;
                 *  }
                 *
                 *  AddBullet(true);
                 * }
                 * else if (InputHandler.KeyPressed(Keys.LeftControl))
                 * {
                 *  AddBullet(false);
                 * }
                 * else */

                if (_parts.Count > 0)
                {
                    var currentBossPart = _parts[_currentPartIndex];
                    var dt = (float)gameTime.ElapsedGameTime.TotalSeconds * 100;

                    if (InputHandler.KeyDown(Keys.Space))
                    {
                        currentBossPart.GenerateStructure();
                    }
                    else if (InputHandler.KeyPressed(Keys.OemPlus))
                    {
                        currentBossPart.IterateStructure();
                    }
                    else if (InputHandler.KeyDown(Keys.O))
                    {
                        currentBossPart.IterateStructure();
                    }

                    // Motion

                    if (InputHandler.KeyPressed(Keys.N))
                    {
                        _currentPartIndex = (_currentPartIndex + 1) % _parts.Count;
                    }

                    var acceleration = 0.1f;
                    if (InputHandler.KeyDown(Keys.I))
                    {
                        currentBossPart.ApplyImpulse(new Vector2(0, -1), new Vector2(acceleration));
                    }
                    if (InputHandler.KeyDown(Keys.L))
                    {
                        currentBossPart.ApplyImpulse(new Vector2(1, 0), new Vector2(acceleration));
                    }
                    if (InputHandler.KeyDown(Keys.K))
                    {
                        currentBossPart.ApplyImpulse(new Vector2(0, 1), new Vector2(acceleration));
                    }
                    if (InputHandler.KeyDown(Keys.J))
                    {
                        currentBossPart.ApplyImpulse(new Vector2(-1, 0), new Vector2(acceleration));
                    }

                    // Left vector
                    if (InputHandler.KeyDown(Keys.F))
                    {
                        var direction = new Vector2(
                            (float)-Math.Sin(currentBossPart.Rotation),
                            (float)Math.Cos(currentBossPart.Rotation)
                            );

                        currentBossPart.ApplyImpulse(direction, new Vector2(0.05f));
                    }

                    // Right vector
                    if (InputHandler.KeyPressed(Keys.G))
                    {
                        var direction = new Vector2(
                            (float)-Math.Cos(currentBossPart.Rotation) * -1,
                            (float)Math.Sin(currentBossPart.Rotation)
                            );

                        direction = new Vector2(-direction.Y, direction.X);

                        currentBossPart.ApplyImpulse(direction, new Vector2(acceleration));
                    }

                    if (InputHandler.KeyDown(Keys.PageUp))
                    {
                        currentBossPart.ApplyAngularImpulse(.1f);
                    }
                    else if (InputHandler.KeyDown(Keys.PageDown))
                    {
                        currentBossPart.ApplyAngularImpulse(-0.1f);
                    }

                    if (InputHandler.KeyPressed(Keys.H))
                    {
                        currentBossPart.DisplayHpSwitch();
                    }
                }
            }

            MoverManager.Update(gameTime);
            MoverManager.FreeMovers();
        }
Esempio n. 19
0
        public override void Update(GameTime gameTime)
        {
            float dt = (float)gameTime.ElapsedGameTime.TotalSeconds * 100;

            if (Position.Y < (75 + Sprite.Height / 2f))
            {
                Position.Y += 1 * Speed * dt;

                if (Position.Y >= (75 + Sprite.Height / 2f))
                {
                    _ready = true;
                }
            }
            else
            {
                Rotation += _rotationIncrementor * dt;
                if (_rotationIncrementor < 1f)
                {
                    _rotationIncrementor += 0.001f;
                }


                if (_health <= 0)
                {
                    IsAlive = false;
                    _deadSound.Play();
                    MoverManager.movers.Clear();
                }


                if (Config.Debug)
                {
                    //check input to increment/decrement the current bullet pattern
                    if (InputHandler.KeyPressed(Keys.A))
                    {
                        //decrement the pattern
                        if (0 >= _currentPattern)
                        {
                            //if it is at the beginning, move to the end
                            _currentPattern = _myPatterns.Count - 1;
                        }
                        else
                        {
                            _currentPattern--;
                        }

                        AddBullet(true);
                    }
                    else if (InputHandler.KeyPressed(Keys.X))
                    {
                        //increment the pattern
                        if ((_myPatterns.Count - 1) <= _currentPattern)
                        {
                            //if it is at the beginning, move to the end
                            _currentPattern = 0;
                        }
                        else
                        {
                            _currentPattern++;
                        }

                        AddBullet(true);
                    }
                    else if (InputHandler.KeyPressed(Keys.LeftControl))
                    {
                        AddBullet(false);
                    }
                }

                _timer -= gameTime.ElapsedGameTime;
                if (_timer < TimeSpan.Zero)
                {
                    _timer = Config.BossInitialTimer;

                    /*
                     * if (MoverManager.movers.Count < 10)
                     *  AddBullet(false);
                     */
                }

                if (MoverManager.movers.Count <= 1)
                {
                    AddBullet(false);
                }

                MoverManager.Update(gameTime);
                MoverManager.FreeMovers();
            }

            base.Update(gameTime);
        }
Esempio n. 20
0
        public static BaseMovableController AddEntityController(BaseMovable moveable, IPossibleMovements possibleMovements, MoverManager moverManager)
        {
            var controller = new EntityControllerFactory();

            return(controller.CreateEntityController(moveable, possibleMovements, moverManager));
        }
Esempio n. 21
0
        public override BaseMovableController CreateEntityController(BaseMovable moveable,
                                                                     IPossibleMovements possibleMovements, MoverManager moverManager)
        {
            var controller    = base.CreateEntityController(moveable, possibleMovements, moverManager);
            var runningButton = new List <IButtonAble>();

            AddKeyBoardButton(runningButton, Keys.LeftShift);
            AddKeyBoardButton(runningButton, Keys.RightShift);
            AddGamePadButton(runningButton, Buttons.B);
            var entity = moveable as Entity;

            if (entity != null)
            {
                var smartButton = new CompositeSmartButton(runningButton)
                {
                    OnButtonJustPressed = (sender, args) => { entity.SpeedContext.SpeedState = new SpeedRunning(); },
                    OnButtonReleased    = (sender, args) => { entity.SpeedContext.SpeedState = new SpeedNormal(); }
                };
                controller.AddButton(smartButton);
            }
            return(controller);
        }
Esempio n. 22
0
 public abstract BaseMovableController CreateEntityController(BaseMovable entity, IPossibleMovements possibleMovements, MoverManager moverManager);
Esempio n. 23
0
 protected AbstractPathRenderer(MoverManager mover, BaseMovable moving)
 {
     Mover  = mover;
     Moving = moving;
 }
Esempio n. 24
0
 public async void MoveEntityTo(Point endPoint, Entity entity, Point tileSize, MoverManager moverManager, bool interact = false, Point?interactWith = null)
 {
     var searchParams = new SearchParameters(entity.Position.ToPoint(), endPoint, CollisionSystem, new Size(Map.Width, Map.Height));
     await Task.Run(() =>
     {
         var path                 = new AStarPathFinder(searchParams, _possibleMovements).FindPath();
         var pathMover            = new PathMover(entity, new FinitePath(path), new ExpiringSpatialHashMovementComplete <Entity>(_expiringSpatialHash, PlayerEntity.Instance));
         pathMover.OnCancelEvent += (sender, args) => entity.MovingDirection = new Vector2();
         if (interact && interactWith != null)
         {
             pathMover.OnCompleteEvent += (sender, args) => Interact(interactWith.Value);
         }
         moverManager.AddMover(pathMover);
     });
 }
Esempio n. 25
0
 public BaseMovableController(BaseMovable baseMovable, IPossibleMovements possibleMovements, MoverManager moverManager, IReadOnlyDictionary <Directions, List <IButtonAble> > directionButtons)
 {
     _possibleMovements = possibleMovements;
     ToMove             = baseMovable;
     SmartController    = new SmartController();
     CreateCompositeButton(directionButtons[Directions.Up], baseMovable, new Vector2(0, -1), moverManager);
     CreateCompositeButton(directionButtons[Directions.Down], baseMovable, new Vector2(0, 1), moverManager);
     CreateCompositeButton(directionButtons[Directions.Left], baseMovable, new Vector2(-1, 0), moverManager);
     CreateCompositeButton(directionButtons[Directions.Right], baseMovable, new Vector2(1, 0), moverManager);
 }
        public override BaseMovableController CreateEntityController(BaseMovable entity, IPossibleMovements possibleMovements, MoverManager moverManager)
        {
            var directions = new Dictionary <BaseMovableController.Directions, List <IButtonAble> >
            {
                [BaseMovableController.Directions.Down]  = new List <IButtonAble>(),
                [BaseMovableController.Directions.Up]    = new List <IButtonAble>(),
                [BaseMovableController.Directions.Left]  = new List <IButtonAble>(),
                [BaseMovableController.Directions.Right] = new List <IButtonAble>()
            };

            if (ControllerSettings.GamePadEnabled)
            {
                directions[BaseMovableController.Directions.Down].Add(new JoyStickGamePadButton(Buttons.DPadDown));
                directions[BaseMovableController.Directions.Left].Add(new JoyStickGamePadButton(Buttons.DPadLeft));
                directions[BaseMovableController.Directions.Up].Add(new JoyStickGamePadButton(Buttons.DPadUp));
                directions[BaseMovableController.Directions.Right].Add(new JoyStickGamePadButton(Buttons.DPadRight));
            }
            if (ControllerSettings.KeyBoardMouseEnabled)
            {
                directions[BaseMovableController.Directions.Down].Add(new KeyButton(Keys.S));
                directions[BaseMovableController.Directions.Down].Add(new KeyButton(Keys.Down));
                directions[BaseMovableController.Directions.Left].Add(new KeyButton(Keys.A));
                directions[BaseMovableController.Directions.Left].Add(new KeyButton(Keys.Left));
                directions[BaseMovableController.Directions.Up].Add(new KeyButton(Keys.Up));
                directions[BaseMovableController.Directions.Up].Add(new KeyButton(Keys.W));
                directions[BaseMovableController.Directions.Right].Add(new KeyButton(Keys.D));
                directions[BaseMovableController.Directions.Right].Add(new KeyButton(Keys.Right));
            }
            return(new BaseMovableController(entity, possibleMovements, moverManager, directions));
        }
Esempio n. 27
0
        private void CreateCompositeButton(IEnumerable <IButtonAble> buttons, BaseMovable entityMover, Vector2 moveBy, MoverManager moverManager)
        {
            var smartButton = new CompositeSmartButton(buttons)
            {
                OnButtonJustPressed = (sender, args) =>
                {
                    ButtonsDown++;
                    ToMove.Moving = PlayerMove;
                    moverManager.RemoveMover(entityMover);
                    MoveBy(moveBy, entityMover.Position);
                },
                OnButtonHeldDown = (sender, args) =>
                {
                    ToMove.Moving = PlayerMove;
                    MoveBy(moveBy, entityMover.Position);
                },
                OnButtonReleased = (sender, args) =>
                {
                    ButtonsDown--;
                    ToMove.Moving = PlayerMove;
                    moverManager.RemoveMover(entityMover);
                    Release(moveBy);
                }
            };

            AddButton(smartButton);
        }
Esempio n. 28
0
 public EndPointPathRenderer(MoverManager mover, BaseMovable moving, Texture2D endTexture, Point pointSize) : base(mover, moving)
 {
     _pointSize  = pointSize;
     _endTexture = endTexture;
 }