public Collectible(Texture2D sprite, Vector2 position, Tile currentTile)
 {
     Active = true;
     drawing = sprite;
     this.position = position;
     CurrentTile = currentTile;
 }
Example #2
0
        /// <summary>
        /// Moves the character.
        /// </summary>
        /// <param name="actualTile">The actual tile.</param>
        /// <returns>Tile.</returns>
        public Tile MoveCharacter(Tile actualTile)
        {
            Tile destination = actualTile;

            if (police.actualTile.GetPosition().X == police.Player.actualTile.GetPosition().X)
            {
                if (police.actualTile.GetPosition().Y > police.Player.actualTile.GetPosition().Y)
                {
                    police.XSpeed = 0;
                    police.YSpeed = -DespicableGame.SPEED * 2;
                    return actualTile.TopTile;
                }
                else
                {
                    police.XSpeed = 0;
                    police.YSpeed = DespicableGame.SPEED * 2;
                    return actualTile.BotomTile;
                }
            }
            else
            {
                if (police.actualTile.GetPosition().X > police.Player.actualTile.GetPosition().X)
                {
                    police.XSpeed = -DespicableGame.SPEED * 2;
                    police.YSpeed = 0;
                    return actualTile.LeftTile;
                }
                else
                {
                    police.XSpeed = DespicableGame.SPEED * 2;
                    police.YSpeed = 0;
                    return actualTile.RightTile;
                }
            }
        }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ExitShip"/> class.
 /// </summary>
 /// <param name="image">The image.</param>
 /// <param name="tile">The tile.</param>
 public ExitShip(Texture2D image, Tile tile)
 {
     this.position = tile.GetPosition();
     this.image = image;
     this.tile = tile;
     visible = false;
 }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Teleporter"/> class.
 /// </summary>
 /// <param name="topTile">The top tile.</param>
 /// <param name="botomTile">The botom tile.</param>
 /// <param name="leftTile">The left tile.</param>
 /// <param name="rightTile">The right tile.</param>
 public Teleporter(Tile topTile, Tile botomTile, Tile leftTile, Tile rightTile)
 {
     this.TopTile = topTile;
     this.BotomTile = botomTile;
     this.LeftTile = leftTile;
     this.RightTile = rightTile;
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Money"/> class.
 /// </summary>
 /// <param name="image">The image.</param>
 /// <param name="tile">The tile.</param>
 public Money(Texture2D image, Tile tile)
 {
     this.position = tile.GetPosition();
     this.image = image;
     this.tile = tile;
     visible = true;
 }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Character"/> class.
        /// </summary>
        /// <param name="sprite">The sprite.</param>
        /// <param name="position">The position.</param>
        /// <param name="actualTile">The actual tile.</param>
        public Character(Texture2D sprite, Vector2 position, Tile actualTile)
        {
            XSpeed = 0;
            YSpeed = 0;

            drawing = sprite;
            this.position = position;
            this.actualTile = actualTile;
        }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Police"/> class.
 /// </summary>
 /// <param name="drawing">The drawing.</param>
 /// <param name="position">The position.</param>
 /// <param name="actualTile">The actual tile.</param>
 /// <param name="player">The player.</param>
 public Police(Texture2D drawing, Vector2 position, Tile actualTile, PlayableCharacter player)
     : base(drawing, position, actualTile)
 {
     this.drawing = drawing;
     this.position = position;
     this.actualTile = actualTile;
     this.state = new NormalState(this);
     this.player = player;
 }
Example #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Character" /> class.
 /// </summary>
 /// <param name="sprite">The sprite.</param>
 /// <param name="position">The position.</param>
 /// <param name="actualTile">The actual tile.</param>
 public PlayableCharacter(Texture2D sprite, Vector2 position, Tile actualTile)
     : base(sprite, position, actualTile)
 {
     Destination = null;
     nbOfCurrentLives = NUMBER_OF_LIVES_AT_BEGINING;
     Alive = true;
     hardcoreMode = false;
     onStarPower = false;
     armed = false;
 }
Example #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Projectile"/> class.
        /// </summary>
        /// <param name="sprite">The sprite.</param>
        /// <param name="position">The position.</param>
        /// <param name="actualTile">The actual tile.</param>
        /// <param name="directions">The directions.</param>
        public Projectile(Texture2D sprite, Vector2 position, Tile actualTile, Directions directions)
        {
            drawing = sprite;
            this.position = position;
            this.actualTile = actualTile;
            this.direction = directions;
            this.hasExpired = false;

            this.XSpeed = 0;
            this.YSpeed = 0;
        }
 public PlayerCharacter(Texture2D drawing, Vector2 position, Tile currentTile)
     : base(drawing, position, currentTile)
 {
     unleashed = false;
     powerUpInStore = null;
     ResetLives();
     baseSpeed = 4;
     Speed = baseSpeed;
     goalCollected = 0;
     looksScary = false;
 }
        public Character(Texture2D sprite, Vector2 position, Tile currentTile, bool isFriendly = true)
        {
            SpeedX = 0;
            SpeedY = 0;

            drawing = sprite;
            this.position = position;
            CurrentTile = currentTile;
            Destination = currentTile;
            this.isFriendly = isFriendly;
            stunned = false;
        }
        /// <summary>
        /// Move the AI.
        /// </summary>
        /// <param name="aiTile">The ai tile.</param>
        /// <returns>Tile.</returns>
        public override Tile AIMovement(Tile aiTile)
        {
            Random r = new Random();
            if (labyrinth == null)
            {
                return actualTile;
            }
            while (true)
            {
                int randomChoice = r.Next(4);

                if (randomChoice == 0)
                {
                    if (actualTile.yOrder > 0)
                    {
                        XSpeed = 0;
                        YSpeed = -DespicableGame.SPEED;
                        return labyrinth.GetTile(actualTile.xOrder, actualTile.yOrder - 1);
                    }
                }

                if (randomChoice == 1)
                {
                    if (actualTile.yOrder < 9)
                    {
                        XSpeed = 0;
                        YSpeed = DespicableGame.SPEED;
                        return labyrinth.GetTile(actualTile.xOrder, actualTile.yOrder + 1);
                    }
                }

                if (randomChoice == 2)
                {
                    if (actualTile.xOrder > 0)
                    {
                        XSpeed = -DespicableGame.SPEED;
                        YSpeed = 0;
                        return labyrinth.GetTile(actualTile.xOrder - 1, actualTile.yOrder);
                    }
                }

                if (randomChoice == 3)
                {
                    if (actualTile.xOrder < 13)
                    {
                        XSpeed = DespicableGame.SPEED;
                        YSpeed = 0;
                        return labyrinth.GetTile(actualTile.xOrder + 1, actualTile.yOrder);
                    }
                }
            }
        }
Example #13
0
        //AI totalement random et qui ne peut pas entrer dans les téléporteurs.  À revoir absolument.
        /// <summary>
        /// Ais the movement.
        /// </summary>
        /// <param name="aiTile">The ai tile.</param>
        /// <returns>Tile.</returns>
        public virtual Tile AIMovement(Tile aiTile)
        {
            Random r = new Random();

            while (true)
            {
                int randomChoice = r.Next(4);

                if (randomChoice == 0)
                {
                    //Plus efficace qu'un &&, dès que la première condition courante est remplie, on arrête le test
                    if (!(aiTile.TopTile == null || aiTile.TopTile is Teleporter))
                    {
                        XSpeed = 0;
                        YSpeed = -DespicableGame.SPEED;
                        return aiTile.TopTile;
                    }
                }

                if (randomChoice == 1)
                {
                    if (!(aiTile.BotomTile == null || aiTile.BotomTile is Teleporter))
                    {
                        XSpeed = 0;
                        YSpeed = DespicableGame.SPEED;
                        return aiTile.BotomTile;
                    }
                }

                if (randomChoice == 2)
                {
                    if (!(aiTile.LeftTile == null || aiTile.LeftTile is Teleporter))
                    {
                        XSpeed = -DespicableGame.SPEED;
                        YSpeed = 0;
                        return aiTile.LeftTile;
                    }
                }

                if (randomChoice == 3)
                {
                    if (!(aiTile.RightTile == null || aiTile.RightTile is Teleporter))
                    {
                        XSpeed = DespicableGame.SPEED;
                        YSpeed = 0;
                        return aiTile.RightTile;
                    }
                }
            }
        }
Example #14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PowerUp"/> class.
        /// </summary>
        /// <param name="position">The position.</param>
        /// <param name="actualTile">The actual tile.</param>
        public PowerUp(Vector2 position, Tile actualTile)
        {
            //this.drawing = drawing;
            this.position = position;
            this.actualTile = actualTile;

            int rnGesus = rand.Next(2);
            if (rnGesus == 0) type = PowerUpType.star;
            else type = PowerUpType.weapon;

            duration = new Timer(LIFESPAN);
            duration.Elapsed += ExpirationTimeHasPassed;
            duration.Enabled = true;
            hasExpired = false;
        }
 public NonPlayerCharacter(Texture2D drawing, Vector2 position, Tile currentTile, bool isFriendly)
     : base(drawing, position, currentTile, isFriendly)
 {
     baseSpeed = 2;
     Speed = baseSpeed;
 }
        public float DistanceToTile(Tile tile)
        {
            Vector2 currentPosition = new Vector2(Destination.GetPosition().X, Destination.GetPosition().Y);
            Vector2 testDistance = new Vector2(tile.GetPosition().X, tile.GetPosition().Y);

            return Vector2.Distance(testDistance, currentPosition);
        }
Example #17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Labyrinth"/> class.
        /// </summary>
        public Labyrinth()
        {
            _tiles = new Tile[WIDTH][];

            for (int i = 0; i < WIDTH; i++)
            {
                _tiles[i] = new Tile[HEIGHT];
            }

            policeSpawnPoints.Add(new KeyValuePair<int, int>(6, 0));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(7, 0));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(0, 4));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(0, 5));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(6, 9));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(7, 9));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(13, 4));
            policeSpawnPoints.Add(new KeyValuePair<int, int>(13, 5));

            _tiles[0][0] = new Tile(5, 0, 0);
            _tiles[0][1] = new Tile(6, 0, 1);
            _tiles[0][2] = new Tile(5, 0, 2);
            _tiles[0][3] = new Tile(6, 0, 3);
            _tiles[0][4] = new Tile(13, 0, 4);
            _tiles[0][5] = new Tile(14, 0, 5);
            _tiles[0][6] = new Tile(5, 0, 6);
            _tiles[0][7] = new Tile(4, 0, 7);
            _tiles[0][8] = new Tile(12, 0, 8);
            _tiles[0][9] = new Tile(6, 0, 9);

            _tiles[1][0] = new Tile(3, 1, 0);
            _tiles[1][1] = new Tile(9, 1, 1);
            _tiles[1][2] = new Tile(10, 1, 2);
            _tiles[1][3] = new Tile(1, 1, 3);
            _tiles[1][4] = new Tile(4, 1, 4);
            _tiles[1][5] = new Tile(12, 1, 5);
            _tiles[1][6] = new Tile(2, 1, 6);
            _tiles[1][7] = new Tile(3, 1, 7);
            _tiles[1][8] = new Tile(5, 1, 8);
            _tiles[1][9] = new Tile(10, 1, 9);

            _tiles[2][0] = new Tile(3, 2, 0);
            _tiles[2][1] = new Tile(13, 2, 1);
            _tiles[2][2] = new Tile(4, 2, 2);
            _tiles[2][3] = new Tile(2, 2, 3);
            _tiles[2][4] = new Tile(9, 2, 4);
            _tiles[2][5] = new Tile(6, 2, 5);
            _tiles[2][6] = new Tile(3, 2, 6);
            _tiles[2][7] = new Tile(11, 2, 7);
            _tiles[2][8] = new Tile(3, 2, 8);
            _tiles[2][9] = new Tile(7, 2, 9);

            _tiles[3][0] = new Tile(1, 3, 0);
            _tiles[3][1] = new Tile(12, 3, 1);
            _tiles[3][2] = new Tile(10, 3, 2);
            _tiles[3][3] = new Tile(9, 3, 3);
            _tiles[3][4] = new Tile(6, 3, 4);
            _tiles[3][5] = new Tile(9, 3, 5);
            _tiles[3][6] = new Tile(8, 3, 6);
            _tiles[3][7] = new Tile(6, 3, 7);
            _tiles[3][8] = new Tile(1, 3, 8);
            _tiles[3][9] = new Tile(10, 3, 9);

            _tiles[4][0] = new Tile(3, 4, 0);
            _tiles[4][1] = new Tile(5, 4, 1);
            _tiles[4][2] = new Tile(6, 4, 2);
            _tiles[4][3] = new Tile(5, 4, 3);
            _tiles[4][4] = new Tile(8, 4, 4);
            _tiles[4][5] = new Tile(4, 4, 5);
            _tiles[4][6] = new Tile(6, 4, 6);
            _tiles[4][7] = new Tile(9, 4, 7);
            _tiles[4][8] = new Tile(8, 4, 8);
            _tiles[4][9] = new Tile(6, 4, 9);

            _tiles[5][0] = new Tile(9, 5, 0);
            _tiles[5][1] = new Tile(2, 5, 1);
            _tiles[5][2] = new Tile(3, 5, 2);
            _tiles[5][3] = new Tile(3, 5, 3);
            _tiles[5][4] = new Tile(5, 5, 4);
            _tiles[5][5] = new Tile(10, 5, 5);
            _tiles[5][6] = new Tile(9, 5, 6);
            _tiles[5][7] = new Tile(4, 5, 7);
            _tiles[5][8] = new Tile(4, 5, 8);
            _tiles[5][9] = new Tile(10, 5, 9);

            _tiles[6][0] = new Tile(7, 6, 0);
            _tiles[6][1] = new Tile(3, 6, 1);
            _tiles[6][2] = new Tile(9, 6, 2);
            _tiles[6][3] = new Tile(8, 6, 3);
            _tiles[6][4] = new Tile(10, 6, 4);
            _tiles[6][5] = new Tile(5, 6, 5);
            _tiles[6][6] = new Tile(12, 6, 6);
            _tiles[6][7] = new Tile(2, 6, 7);
            _tiles[6][8] = new Tile(3, 6, 8);
            _tiles[6][9] = new Tile(7, 6, 9);

            _tiles[7][0] = new Tile(11, 7, 0);
            _tiles[7][1] = new Tile(1, 7, 1);
            _tiles[7][2] = new Tile(4, 7, 2);
            _tiles[7][3] = new Tile(12, 7, 3);
            _tiles[7][4] = new Tile(6, 7, 4);
            _tiles[7][5] = new Tile(3, 7, 5);
            _tiles[7][6] = new Tile(5, 7, 6);
            _tiles[7][7] = new Tile(2, 7, 7);
            _tiles[7][8] = new Tile(3, 7, 8);
            _tiles[7][9] = new Tile(11, 7, 9);

            _tiles[8][0] = new Tile(13, 8, 0);
            _tiles[8][1] = new Tile(2, 8, 1);
            _tiles[8][2] = new Tile(9, 8, 2);
            _tiles[8][3] = new Tile(6, 8, 3);
            _tiles[8][4] = new Tile(9, 8, 4);
            _tiles[8][5] = new Tile(8, 8, 5);
            _tiles[8][6] = new Tile(2, 8, 6);
            _tiles[8][7] = new Tile(9, 8, 7);
            _tiles[8][8] = new Tile(0, 8, 8);
            _tiles[8][9] = new Tile(14, 8, 9);

            _tiles[9][0] = new Tile(5, 9, 0);
            _tiles[9][1] = new Tile(8, 9, 1);
            _tiles[9][2] = new Tile(6, 9, 2);
            _tiles[9][3] = new Tile(9, 9, 3);
            _tiles[9][4] = new Tile(4, 9, 4);
            _tiles[9][5] = new Tile(12, 9, 5);
            _tiles[9][6] = new Tile(10, 9, 6);
            _tiles[9][7] = new Tile(5, 9, 7);
            _tiles[9][8] = new Tile(8, 9, 8);
            _tiles[9][9] = new Tile(14, 9, 9);

            _tiles[10][0] = new Tile(3, 10, 0);
            _tiles[10][1] = new Tile(5, 10, 1);
            _tiles[10][2] = new Tile(0, 10, 2);
            _tiles[10][3] = new Tile(12, 10, 3);
            _tiles[10][4] = new Tile(8, 10, 4);
            _tiles[10][5] = new Tile(12, 10, 5);
            _tiles[10][6] = new Tile(6, 10, 6);
            _tiles[10][7] = new Tile(3, 10, 7);
            _tiles[10][8] = new Tile(5, 10, 8);
            _tiles[10][9] = new Tile(6, 10, 9);

            _tiles[11][0] = new Tile(3, 11, 0);
            _tiles[11][1] = new Tile(3, 11, 1);
            _tiles[11][2] = new Tile(1, 11, 2);
            _tiles[11][3] = new Tile(6, 11, 3);
            _tiles[11][4] = new Tile(5, 11, 4);
            _tiles[11][5] = new Tile(12, 11, 5);
            _tiles[11][6] = new Tile(8, 11, 6);
            _tiles[11][7] = new Tile(2, 11, 7);
            _tiles[11][8] = new Tile(3, 11, 8);
            _tiles[11][9] = new Tile(3, 11, 9);

            _tiles[12][0] = new Tile(9, 12, 0);
            _tiles[12][1] = new Tile(2, 12, 1);
            _tiles[12][2] = new Tile(11, 12, 2);
            _tiles[12][3] = new Tile(1, 12, 3);
            _tiles[12][4] = new Tile(8, 12, 4);
            _tiles[12][5] = new Tile(12, 12, 5);
            _tiles[12][6] = new Tile(4, 12, 6);
            _tiles[12][7] = new Tile(8, 12, 7);
            _tiles[12][8] = new Tile(10, 12, 8);
            _tiles[12][9] = new Tile(3, 12, 9);

            _tiles[13][0] = new Tile(13, 13, 0);
            _tiles[13][1] = new Tile(8, 13, 1);
            _tiles[13][2] = new Tile(12, 13, 2);
            _tiles[13][3] = new Tile(10, 13, 3);
            _tiles[13][4] = new Tile(13, 13, 4);
            _tiles[13][5] = new Tile(14, 13, 5);
            _tiles[13][6] = new Tile(9, 13, 6);
            _tiles[13][7] = new Tile(12, 13, 7);
            _tiles[13][8] = new Tile(12, 13, 8);
            _tiles[13][9] = new Tile(10, 13, 9);

            for (int i = 0; i < WIDTH; i++)
            {
                for (int j = 0; j < HEIGHT; j++)
                {
                    if (!_tiles[i][j].IsTopWall())
                    {
                        _tiles[i][j].TopTile = _tiles[i][j - 1];
                    }

                    if (!_tiles[i][j].IsBotomWall())
                    {
                        _tiles[i][j].BotomTile = _tiles[i][j + 1];
                    }

                    if (!_tiles[i][j].IsLeftWall())
                    {
                        _tiles[i][j].LeftTile = _tiles[i - 1][j];
                    }

                    if (!_tiles[i][j].IsRightWall())
                    {
                        _tiles[i][j].RightTile = _tiles[i + 1][j];
                    }
                }
            }

            //Pour tester le policier, on lui offre une ouverture
            _tiles[6][9].TopTile = _tiles[6][8];
            _tiles[7][9].TopTile = _tiles[7][8];
            _tiles[6][0].BotomTile = _tiles[6][1];
            _tiles[7][0].BotomTile = _tiles[7][1];
            _tiles[0][4].RightTile = _tiles[1][4];
            _tiles[0][5].RightTile = _tiles[1][5];
            _tiles[13][4].LeftTile = _tiles[12][4];
            _tiles[13][5].LeftTile = _tiles[12][5];

            //On place le téléporteur
            Teleporter teleporter = new Teleporter(_tiles[0][0], _tiles[13][0], _tiles[0][9], _tiles[13][9]);
            _tiles[6][4].RightTile = teleporter;
            _tiles[7][4].LeftTile = teleporter;
        }
Example #18
0
 public Minion(Texture2D dessin, Vector2 position, Tile currentTile, bool isFriendly)
     : base(dessin, position, currentTile, isFriendly)
 {
     CurrentState = new Wander(this);
 }
Example #19
0
        public void VerifyMovement(Tile tileDestionation, int xSpeed, int ySpeed)
        {
            //Si la direction choisie n'est pas nulle
            if (tileDestionation != null)
            {
                //On vérifie si la case est un téléporteur
                Tile teleportationTest = TestTeleporter(tileDestionation);

                //Si non, on bouge
                if (teleportationTest == null)
                {
                    Destination = tileDestionation;
                    XSpeed = xSpeed;
                    YSpeed = ySpeed;
                }
                //Si oui, on se téléporte.
                else
                {
                    actualTile = teleportationTest;
                    position = new Vector2(actualTile.GetPosition().X, actualTile.GetPosition().Y);
                }

                CheckIfTileContainsMoney(tileDestionation);
            }
        }
 public ConfusedGhostMinion(Texture2D drawing, Vector2 position, Tile actualTile, Labyrinth lab)
     : base(drawing, position, actualTile)
 {
     labyrinth = lab;
     Destination = AIMovement(actualTile);
 }
Example #21
0
 /// <summary>
 /// Checks if tile contains money.
 /// </summary>
 /// <param name="tileDestionation">The tile destionation.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 private bool CheckIfTileContainsMoney(Tile tileDestionation)
 {
     if (tileDestionation.Money != null) return tileDestionation.Money.CheckIfWasTaken(this);
     return false;
 }
Example #22
0
        /// <summary>
        /// Moves the character.
        /// </summary>
        /// <param name="actualTile">The actual tile.</param>
        /// <returns>Tile.</returns>
        public Tile MoveCharacter(Tile actualTile)
        {
            int loopBreaker = 0;

            while (true)
            {
                int randomChoice = r.Next(4);

                if (randomChoice == 0)
                {
                    if (!(actualTile.TopTile == null || actualTile.TopTile is Teleporter))
                    {
                        if (actualTile.TopTile.GetPosition().Y > police.Player.actualTile.GetPosition().Y || loopBreaker > 50)
                        {
                            police.XSpeed = 0;
                            police.YSpeed = -DespicableGame.SPEED;
                            return actualTile.TopTile;
                        }
                    }
                }

                if (randomChoice == 1)
                {
                    if (!(actualTile.BotomTile == null || actualTile.BotomTile is Teleporter))
                    {
                        if (actualTile.BotomTile.GetPosition().Y < police.Player.actualTile.GetPosition().Y || loopBreaker > 50)
                        {
                            police.XSpeed = 0;
                            police.YSpeed = DespicableGame.SPEED;
                            return actualTile.BotomTile;
                        }
                    }
                }

                if (randomChoice == 2)
                {
                    if (!(actualTile.LeftTile == null || actualTile.LeftTile is Teleporter))
                    {
                        if (actualTile.LeftTile.GetPosition().X > police.Player.actualTile.GetPosition().X || loopBreaker > 50)
                        {
                            police.XSpeed = -DespicableGame.SPEED;
                            police.YSpeed = 0;
                            return actualTile.LeftTile;
                        }
                    }
                }

                if (randomChoice == 3)
                {
                    if (!(actualTile.RightTile == null || actualTile.RightTile is Teleporter))
                    {
                        if (actualTile.RightTile.GetPosition().X < police.Player.actualTile.GetPosition().X || loopBreaker > 50)
                        {
                            police.XSpeed = DespicableGame.SPEED;
                            police.YSpeed = 0;
                            return actualTile.RightTile;
                        }
                    }
                }

                loopBreaker++;
            }
        }
Example #23
0
 /// <summary>
 /// Prepares character's movement.
 /// </summary>
 /// <param name="tileDestionation">The tile destionation.</param>
 /// <param name="xSpeed">The x speed.</param>
 /// <param name="ySpeed">The y speed.</param>
 public void PrepareMovement(Tile tileDestionation, int xSpeed, int ySpeed)
 {
     Destination = tileDestionation;
     XSpeed = xSpeed;
     YSpeed = ySpeed;
 }
Example #24
0
 public Powerup(Texture2D drawing, Vector2 position, Tile CurrentTile, PowerupType type)
     : base(drawing, position, CurrentTile)
 {
     this.type = type;
 }
 private Tile TestTeleporter(Tile theTile)
 {
     if (theTile is Teleporter)
     {
         return ((Teleporter)theTile).Teleport();
     }
     return null;
 }
 private void MinionDropPowerup(Tile spawnTile)
 {
     Vector2 visualPosition = new Vector2(labyrinth.GetTile(spawnTile.PositionX, spawnTile.PositionY).GetPosition().X, labyrinth.GetTile(spawnTile.PositionX, spawnTile.PositionY).GetPosition().Y);
     Collectible newPowerup = CollectibleFactory.CreateCollectible(CollectibleFactory.CollectibleType.POWERUP, visualPosition, spawnTile);
     collectiblesToCreate.Add(newPowerup);
     newPowerup.AddObserver(this);
 }
 public PoliceOfficer(Texture2D dessin, Vector2 position, Tile currentTile, bool isFriendly)
     : base(dessin, position, currentTile, isFriendly)
 {
     CurrentState = new Patrol(this);
 }
Example #28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NPC"/> class.
 /// </summary>
 /// <param name="drawing">The drawing.</param>
 /// <param name="position">The position.</param>
 /// <param name="actualTile">The actual tile.</param>
 public NPC(Texture2D drawing, Vector2 position, Tile actualTile)
     : base(drawing, position, actualTile)
 {
     Destination = AIMovement(actualTile);
 }
Example #29
0
 public Goal(Texture2D drawing, Vector2 position, Tile CurrentTile)
     : base(drawing, position, CurrentTile)
 {
 }
        public void CheckMovement(Tile tileDestination, int vitesseX, int vitesseY)
        {
            if (tileDestination != null)
            {
                //Check if the tile is a teleporter
                Tile testTeleportation = TestTeleporter(tileDestination);

                //If not, we move
                if (testTeleportation == null)
                {
                    Destination = tileDestination;
                    SpeedX = vitesseX;
                    SpeedY = vitesseY;
                }
                //If so, we teleport ourselves
                else
                {
                    CurrentTile = testTeleportation;
                    Destination = CurrentTile;
                    SpeedX = 0;
                    SpeedY = 0;
                }
            }
        }