Exemple #1
0
        protected virtual bool ProcessFalling(bool isFailing)
        {
            SpriteTypeEnum cur1 = Room[X, Y];
            SpriteTypeEnum cur2 = Room[X + 1, Y];
            SpriteTypeEnum pos1 = Room[X, Y + 1];
            SpriteTypeEnum pos2 = Room[X + 1, Y + 1];

            bool result;

            if (isFailing)
            {
                result = HasNoStrongHold(pos1, true) && HasNoStrongHold(pos2, true) &&
                         !(Maps.IsBiomass(cur1) && Maps.IsBiomass(cur2));
            }
            else
            {
                result = HasNoStrongHold(pos1, false) && HasNoStrongHold(pos2, false) &&
                         !(Maps.IsStairs(cur1) || Maps.IsStairs(cur2));
            }

            if (result)
            {
                Y++;
            }
            return(result);
        }
Exemple #2
0
        protected virtual bool CanMove(DirectionEnum direction)
        {
            bool result = false;

            switch (direction)
            {
            case DirectionEnum.Up:
            {
                if (Y == 0)
                {
                    break;
                }
                SpriteTypeEnum cur1 = Room[X, Y];
                SpriteTypeEnum cur2 = Room[X + 1, Y];
                SpriteTypeEnum pos1 = Room[X, Y - 1];
                SpriteTypeEnum pos2 = Room[X + 1, Y - 1];
                result = ((Maps.IsStairs(cur1) && Maps.IsStairs(cur2)) && !(Maps.IsWall(pos1) || Maps.IsWall(pos2)));
                break;
            }

            case DirectionEnum.Down:
            {
                if (Y == 16)
                {
                    break;
                }
                SpriteTypeEnum pos1 = Room[X, Y + 1];
                SpriteTypeEnum pos2 = Room[X + 1, Y + 1];
                result = (HasNoStrongHold(pos1, false) && HasNoStrongHold(pos2, false)) ||
                         (Maps.IsStairs(pos1) && Maps.IsStairs(pos2));
                break;
            }

            case DirectionEnum.Left:
            {
                if (X == 0)
                {
                    break;
                }
                SpriteTypeEnum pos = Room[X - 1, Y];
                result = !Maps.IsWall(pos);
                break;
            }

            case DirectionEnum.Right:
            {
                if (X == 49)
                {
                    break;
                }
                SpriteTypeEnum pos = Room[X + 2, Y];
                result = !Maps.IsWall(pos);
                break;
            }
            }
            return(result);
        }
Exemple #3
0
 protected SpriteTypeEnum GetSprite(SpriteTypeEnum oldSprite)
 {
     if (oldSprite == SpriteTypeEnum.WallLive1)
         return SpriteTypeEnum.WallLive2;
     if (oldSprite == SpriteTypeEnum.WallLive2)
         return SpriteTypeEnum.WallLive3;
     if (oldSprite == SpriteTypeEnum.WallLive3)
         return SpriteTypeEnum.BrickWall;
     return oldSprite;
 }
Exemple #4
0
 protected SpriteTypeEnum GetSprite(SpriteTypeEnum oldSprite)
 {
     if (oldSprite == SpriteTypeEnum.Biomass1)
         return SpriteTypeEnum.Biomass2;
     if (oldSprite == SpriteTypeEnum.Biomass2)
         return SpriteTypeEnum.Biomass3;
     if (oldSprite == SpriteTypeEnum.Biomass3)
         return SpriteTypeEnum.Biomass4;
     if (oldSprite == SpriteTypeEnum.Biomass4)
         return SpriteTypeEnum.Biomass1;
     return oldSprite;
 }
Exemple #5
0
        private bool HasNoStrongHold(SpriteTypeEnum sprite, bool isFalling)
        {
            bool result = Maps.IsBiomass(sprite) ||
                          Maps.IsLiveWall(sprite) ||
                          Maps.IsSpace(sprite) ||
                          Maps.IsChest(sprite);

            if (isFalling && !result)
            {
                result = Maps.IsFloor(sprite);
            }
            return(result);
        }
Exemple #6
0
 protected SpriteTypeEnum GetSprite(SpriteTypeEnum oldSprite)
 {
     if (oldSprite == SpriteTypeEnum.WallLive1)
     {
         return(SpriteTypeEnum.WallLive2);
     }
     if (oldSprite == SpriteTypeEnum.WallLive2)
     {
         return(SpriteTypeEnum.WallLive3);
     }
     if (oldSprite == SpriteTypeEnum.WallLive3)
     {
         return(SpriteTypeEnum.BrickWall);
     }
     return(oldSprite);
 }
Exemple #7
0
        public override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Game.BackgroundColor);

            Game.SpriteBatch.Begin();
            DrawInfoPanel(Game.SpriteBatch);
            for (int x = 0; x < Maps.CapacityX; x++)
            {
                for (int y = 0; y < Maps.CapacityY; y++)
                {
                    SpriteTypeEnum item = this[x, y];
                    Game.SpriteBatch.Draw(Game.Sprites[item, Game.BackColor].Texture, new Vector2(x * 16, (y + 2) * 32),
                                          Color.White);
                }
            }
            Game.SpriteBatch.End();

            base.Draw(gameTime);
        }
Exemple #8
0
 protected SpriteTypeEnum GetSprite(SpriteTypeEnum oldSprite)
 {
     if (oldSprite == SpriteTypeEnum.Biomass1)
     {
         return(SpriteTypeEnum.Biomass2);
     }
     if (oldSprite == SpriteTypeEnum.Biomass2)
     {
         return(SpriteTypeEnum.Biomass3);
     }
     if (oldSprite == SpriteTypeEnum.Biomass3)
     {
         return(SpriteTypeEnum.Biomass4);
     }
     if (oldSprite == SpriteTypeEnum.Biomass4)
     {
         return(SpriteTypeEnum.Biomass1);
     }
     return(oldSprite);
 }
Exemple #9
0
 private void CorrectHeroStairsPosition(DirectionEnum direction)
 {
     if (direction == DirectionEnum.Down || direction == DirectionEnum.Up)
     {
         SpriteTypeEnum pos1 = Room[X, Y];
         SpriteTypeEnum pos2 = Room[X + 1, Y];
         if (direction == DirectionEnum.Down)
         {
             pos1 = Room[X, Y + 1];
             pos2 = Room[X + 1, Y + 1];
         }
         if (pos1 == SpriteTypeEnum.StairsRight)
         {
             X--;
         }
         if (pos2 == SpriteTypeEnum.StairsLeft)
         {
             X++;
         }
     }
 }
Exemple #10
0
        protected virtual void ActorUpdate(GameTime gameTime)
        {
            _isFalling = ProcessFalling(_isFalling);
            if (!_isFalling)
            {
                bool isMoving = Move(Direction);
                if (!isMoving)
                {
                    Direction = DirectionEnum.None;
                }
            }
            else
            {
                Direction = DirectionEnum.None;
            }

            if (OnReportPostion != null)
            {
                OnReportPostion(this, new ReportPostionEventArgs(X, Y));
            }

            _heroSprite = GetSprite(_isFalling, _heroSprite);
        }
Exemple #11
0
 public static bool IsSpace(SpriteTypeEnum source)
 {
     return(source == SpriteTypeEnum.Space || source == SpriteTypeEnum.Chest);
 }
Exemple #12
0
 public static bool IsStairs(SpriteTypeEnum source)
 {
     return(source >= SpriteTypeEnum.StairsLeft && source <= SpriteTypeEnum.StairsRight);
 }
Exemple #13
0
 private bool CanMoveBottom(SpriteTypeEnum sprite)
 {
     return(!Maps.IsStairs(sprite) && !Maps.IsWall(sprite) && !Maps.IsChest(sprite) && !Maps.IsFloor(sprite));
 }
Exemple #14
0
 private bool CanMoveBottom(SpriteTypeEnum sprite)
 {
     return !Maps.IsStairs(sprite) && !Maps.IsWall(sprite) && !Maps.IsChest(sprite) && !Maps.IsFloor(sprite);
 }
Exemple #15
0
 public static bool IsWall(SpriteTypeEnum source)
 {
     return IsBrickWall(source) || IsStoneWall(source);
 }
Exemple #16
0
 public GameSprite(SpriteTypeEnum itemType, Texture2D texture, BackColorEnum backColor)
 {
     ItemType  = itemType;
     Texture   = texture;
     BackColor = backColor;
 }
Exemple #17
0
 public static bool IsLiveWall(SpriteTypeEnum source)
 {
     return (source >= SpriteTypeEnum.WallLive1 && source <= SpriteTypeEnum.WallLive3);
 }
Exemple #18
0
        protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite)
        {
            if (_shootStage == ShootStageEnum.Fire)
            {
                _shootStage = ShootStageEnum.None;
                DirectionEnum direction = _shootDirection;
                if (direction == DirectionEnum.Left)
                {
                    return(SpriteTypeEnum.HeroShotLeft);
                }
                return(SpriteTypeEnum.HeroShotRight);
            }

            if (_shootStage == ShootStageEnum.Preparation)
            {
                _shootStage = ShootStageEnum.Fire;
                if (_shootDirection == DirectionEnum.Left)
                {
                    return(SpriteTypeEnum.HeroPrepareShotLeft);
                }
                return(SpriteTypeEnum.HeroPrepareShotRight);
            }

            if (IsInBiomass)
            {
                _bioMassAttempts--;
                if (_bioMassAttempts == 0 && OnLifeFired != null)
                {
                    OnLifeFired(this, new EventArgs());
                }

                if (oldSprite == SpriteTypeEnum.HeroInBiomass1)
                {
                    return(SpriteTypeEnum.HeroInBiomass2);
                }
                if (oldSprite == SpriteTypeEnum.HeroInBiomass2)
                {
                    return(SpriteTypeEnum.HeroInBiomass3);
                }
                return(SpriteTypeEnum.HeroInBiomass1);
            }

            if (isFalling || (Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)) // Fall and Stairs
            {
                if (oldSprite == SpriteTypeEnum.HeroStairsLeft)
                {
                    return(SpriteTypeEnum.HeroStairsRight);
                }
                return(SpriteTypeEnum.HeroStairsLeft);
            }

            if (Direction == DirectionEnum.None) //  Idle
            {
                if (_heroIdleDivider)
                {
                    _heroIdleDivider = false;

                    if (oldSprite == SpriteTypeEnum.HeroIdleRight)
                    {
                        _heroIdleHeadDirection = DirectionEnum.Left;
                        return(SpriteTypeEnum.HeroIdle);
                    }
                    if (oldSprite == SpriteTypeEnum.HeroIdleLeft)
                    {
                        _heroIdleHeadDirection = DirectionEnum.Right;
                        return(SpriteTypeEnum.HeroIdle);
                    }
                    if (oldSprite == SpriteTypeEnum.HeroIdle)
                    {
                        if (_heroIdleHeadDirection == DirectionEnum.Right)
                        {
                            return(SpriteTypeEnum.HeroIdleRight);
                        }
                        if (_heroIdleHeadDirection == DirectionEnum.Left)
                        {
                            return(SpriteTypeEnum.HeroIdleLeft);
                        }
                    }
                }
                else
                {
                    _heroIdleDivider = true;
                    return(oldSprite);
                }
            }
            if (Direction == DirectionEnum.Left)
            {
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft1)
                {
                    return(SpriteTypeEnum.HeroMoveLeft2);
                }
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft2)
                {
                    return(SpriteTypeEnum.HeroMoveLeft3);
                }
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft3)
                {
                    return(SpriteTypeEnum.HeroMoveLeft4);
                }
                return(SpriteTypeEnum.HeroMoveLeft1);
            }
            if (Direction == DirectionEnum.Right)
            {
                if (oldSprite == SpriteTypeEnum.HeroMoveRight1)
                {
                    return(SpriteTypeEnum.HeroMoveRight2);
                }
                if (oldSprite == SpriteTypeEnum.HeroMoveRight2)
                {
                    return(SpriteTypeEnum.HeroMoveRight3);
                }
                if (oldSprite == SpriteTypeEnum.HeroMoveRight3)
                {
                    return(SpriteTypeEnum.HeroMoveRight4);
                }
                return(SpriteTypeEnum.HeroMoveRight1);
            }
            return(SpriteTypeEnum.HeroIdle);
        }
Exemple #19
0
        protected virtual void ActorUpdate(GameTime gameTime)
        {
            _isFalling = ProcessFalling(_isFalling);
            bool isMoving = false;
            if (!_isFalling)
            {
                isMoving = Move(Direction);
                if (!isMoving)
                    Direction = DirectionEnum.None;
            }
            else
                Direction = DirectionEnum.None;

            if (OnReportPostion != null)
                OnReportPostion(this, new ReportPostionEventArgs(X, Y));

            _heroSprite = GetSprite(_isFalling, _heroSprite);
        }
Exemple #20
0
 private bool HasNoStrongHold(SpriteTypeEnum sprite, bool isFalling)
 {
     bool result = Maps.IsBiomass(sprite)
                   || Maps.IsLiveWall(sprite)
                   || Maps.IsSpace(sprite)
                   || Maps.IsChest(sprite);
     if (isFalling && !result)
         result = Maps.IsFloor(sprite);
     return result;
 }
Exemple #21
0
 protected abstract SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite);
Exemple #22
0
 protected abstract SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite);
Exemple #23
0
 public static bool IsStairs(SpriteTypeEnum source)
 {
     return source >= SpriteTypeEnum.StairsLeft && source <= SpriteTypeEnum.StairsRight;
 }
Exemple #24
0
 public static bool IsFloor(SpriteTypeEnum source)
 {
     return source == SpriteTypeEnum.Floor;
 }
Exemple #25
0
        protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite)
        {
            if (HasCaught && !_hero.IsInBiomass)
            {
                _isHeroCaughtAnimation--;
                if (_isHeroCaughtAnimation == 0 && OnLifeFired != null)
                {
                    OnLifeFired(this, new EventArgs());
                }

                if (oldSprite == SpriteTypeEnum.DevilStairsLeft)
                {
                    return(SpriteTypeEnum.DevilStairsRight);
                }
                return(SpriteTypeEnum.DevilStairsLeft);
            }
            if (isFalling || Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)
            {
                if (oldSprite == SpriteTypeEnum.DevilStairsLeft)
                {
                    return(SpriteTypeEnum.DevilStairsRight);
                }
                return(SpriteTypeEnum.DevilStairsLeft);
            }
            if (Direction == DirectionEnum.Left)
            {
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft1)
                {
                    return(SpriteTypeEnum.DevilMoveLeft2);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft2)
                {
                    return(SpriteTypeEnum.DevilMoveLeft3);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft3)
                {
                    return(SpriteTypeEnum.DevilMoveLeft4);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft4)
                {
                    return(SpriteTypeEnum.DevilMoveLeft5);
                }
                return(SpriteTypeEnum.DevilMoveLeft1);
            }
            if (Direction == DirectionEnum.Right)
            {
                if (oldSprite == SpriteTypeEnum.DevilMoveRight1)
                {
                    return(SpriteTypeEnum.DevilMoveRight2);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveRight2)
                {
                    return(SpriteTypeEnum.DevilMoveRight3);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveRight3)
                {
                    return(SpriteTypeEnum.DevilMoveRight4);
                }
                if (oldSprite == SpriteTypeEnum.DevilMoveRight4)
                {
                    return(SpriteTypeEnum.DevilMoveRight5);
                }
                return(SpriteTypeEnum.DevilMoveRight1);
            }
            if (oldSprite == SpriteTypeEnum.DevilStairsLeft || oldSprite == SpriteTypeEnum.DevilStairsRight)
            {
                return(SpriteTypeEnum.DevilMoveLeft1);
            }

            return(oldSprite);
        }
Exemple #26
0
 public static bool IsSpace(SpriteTypeEnum source)
 {
     return source == SpriteTypeEnum.Space || source == SpriteTypeEnum.Chest;
 }
Exemple #27
0
        protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite)
        {
            if (_shootStage == ShootStageEnum.Fire)
            {
                _shootStage = ShootStageEnum.None;
                DirectionEnum direction = _shootDirection;
                if (direction == DirectionEnum.Left)
                    return SpriteTypeEnum.HeroShotLeft;
                return SpriteTypeEnum.HeroShotRight;
            }

            if (_shootStage == ShootStageEnum.Preparation)
            {
                _shootStage = ShootStageEnum.Fire;
                if (_shootDirection == DirectionEnum.Left)
                    return SpriteTypeEnum.HeroPrepareShotLeft;
                return SpriteTypeEnum.HeroPrepareShotRight;
            }

            if (IsInBiomass)
            {
                _bioMassAttempts--;
                if (_bioMassAttempts == 0 && OnLifeFired != null)
                    OnLifeFired(this, new EventArgs());

                if (oldSprite == SpriteTypeEnum.HeroInBiomass1)
                    return SpriteTypeEnum.HeroInBiomass2;
                if (oldSprite == SpriteTypeEnum.HeroInBiomass2)
                    return SpriteTypeEnum.HeroInBiomass3;
                return SpriteTypeEnum.HeroInBiomass1;
            }

            if (isFalling || (Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)) // Fall and Stairs
            {
                if (oldSprite == SpriteTypeEnum.HeroStairsLeft)
                    return SpriteTypeEnum.HeroStairsRight;
                return SpriteTypeEnum.HeroStairsLeft;
            }

            if (Direction == DirectionEnum.None) //  Idle
            {
                if (_heroIdleDivider)
                {
                    _heroIdleDivider = false;

                    if (oldSprite == SpriteTypeEnum.HeroIdleRight)
                    {
                        _heroIdleHeadDirection = DirectionEnum.Left;
                        return SpriteTypeEnum.HeroIdle;
                    }
                    if (oldSprite == SpriteTypeEnum.HeroIdleLeft)
                    {
                        _heroIdleHeadDirection = DirectionEnum.Right;
                        return SpriteTypeEnum.HeroIdle;
                    }
                    if (oldSprite == SpriteTypeEnum.HeroIdle)
                    {
                        if (_heroIdleHeadDirection == DirectionEnum.Right)
                            return SpriteTypeEnum.HeroIdleRight;
                        if (_heroIdleHeadDirection == DirectionEnum.Left)
                            return SpriteTypeEnum.HeroIdleLeft;
                    }
                }
                else
                {
                    _heroIdleDivider = true;
                    return oldSprite;
                }
            }
            if (Direction == DirectionEnum.Left)
            {
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft1)
                    return SpriteTypeEnum.HeroMoveLeft2;
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft2)
                    return SpriteTypeEnum.HeroMoveLeft3;
                if (oldSprite == SpriteTypeEnum.HeroMoveLeft3)
                    return SpriteTypeEnum.HeroMoveLeft4;
                return SpriteTypeEnum.HeroMoveLeft1;
            }
            if (Direction == DirectionEnum.Right)
            {
                if (oldSprite == SpriteTypeEnum.HeroMoveRight1)
                    return SpriteTypeEnum.HeroMoveRight2;
                if (oldSprite == SpriteTypeEnum.HeroMoveRight2)
                    return SpriteTypeEnum.HeroMoveRight3;
                if (oldSprite == SpriteTypeEnum.HeroMoveRight3)
                    return SpriteTypeEnum.HeroMoveRight4;
                return SpriteTypeEnum.HeroMoveRight1;
            }
            return SpriteTypeEnum.HeroIdle;
        }
Exemple #28
0
 public static bool IsStoneWall(SpriteTypeEnum source)
 {
     return source == SpriteTypeEnum.StoneWall;
 }
Exemple #29
0
 public GameSprite this[SpriteTypeEnum itemType, BackColorEnum backColor]
 {
     get { return(_collection.FirstOrDefault(c => c.ItemType == itemType && c.BackColor == backColor)); }
 }
Exemple #30
0
 public static bool IsBiomass(SpriteTypeEnum source)
 {
     return(source >= SpriteTypeEnum.Biomass1 && source <= SpriteTypeEnum.Biomass4);
 }
Exemple #31
0
 public static bool IsBrickWall(SpriteTypeEnum source)
 {
     return(source == SpriteTypeEnum.BrickWall);
 }
Exemple #32
0
 private bool CanMoveLeft(SpriteTypeEnum sprite)
 {
     return CanMoveBottom(sprite) && !Maps.IsBiomass(sprite);
 }
Exemple #33
0
 public static bool IsChest(SpriteTypeEnum source)
 {
     return(source == SpriteTypeEnum.Chest);
 }
Exemple #34
0
 public GameSprite(SpriteTypeEnum itemType, Texture2D texture, BackColorEnum backColor)
 {
     ItemType = itemType;
     Texture = texture;
     BackColor = backColor;
 }
Exemple #35
0
 private bool CanMoveLeft(SpriteTypeEnum sprite)
 {
     return(CanMoveBottom(sprite) && !Maps.IsBiomass(sprite));
 }
Exemple #36
0
        public static SpriteTypeEnum[,] Get(int mapsBank, int stage)
        {
            List <string> map = LoadMap(mapsBank, stage);

            var result = new SpriteTypeEnum[CapacityX, CapacityY];

            for (int j = 0; j < CapacityY; j++)
            {
                for (int i = 0; i < CapacityX; i++)
                {
                    // render map
                    char value = map[j][i];
                    if (value == '#')
                    {
                        result[i, j] = SpriteTypeEnum.StoneWall;
                    }
                    else if (value == '%')
                    {
                        result[i, j] = SpriteTypeEnum.BrickWall;
                    }
                    else if (value == '$')
                    {
                        result[i, j] = SpriteTypeEnum.Chest;
                    }
                    else if (value == '^')
                    {
                        result[i, j] = SpriteTypeEnum.Floor;
                    }
                    else if (value == '[')
                    {
                        result[i, j] = SpriteTypeEnum.StairsLeft;
                    }
                    else if (value == ']')
                    {
                        result[i, j] = SpriteTypeEnum.StairsRight;
                    }
                    else if (value == '<')
                    {
                        result[i, j] = SpriteTypeEnum.ExitDoorLeft;
                    }
                    else if (value == '>')
                    {
                        result[i, j] = SpriteTypeEnum.ExitDoorRight;
                    }
                    else if (value == '1')
                    {
                        result[i, j] = SpriteTypeEnum.Biomass1;
                    }
                    else if (value == '2')
                    {
                        result[i, j] = SpriteTypeEnum.Biomass2;
                    }
                    else if (value == '3')
                    {
                        result[i, j] = SpriteTypeEnum.Biomass3;
                    }
                    else if (value == '4')
                    {
                        result[i, j] = SpriteTypeEnum.Biomass4;
                    }
                }
            }

            for (int i = 0; i < 2; i++) // devil entrance render
            {
                result[15 + i, 0] = SpriteTypeEnum.Space;
                result[30 + i, 0] = SpriteTypeEnum.Space;
            }

            return(result);
        }
Exemple #37
0
        protected override SpriteTypeEnum GetSprite(bool isFalling, SpriteTypeEnum oldSprite)
        {
            if (HasCaught && !_hero.IsInBiomass)
            {
                _isHeroCaughtAnimation--;
                if (_isHeroCaughtAnimation == 0 && OnLifeFired != null)
                    OnLifeFired(this, new EventArgs());

                if (oldSprite == SpriteTypeEnum.DevilStairsLeft)
                    return SpriteTypeEnum.DevilStairsRight;
                return SpriteTypeEnum.DevilStairsLeft;
            }
            if (isFalling || Direction == DirectionEnum.Up || Direction == DirectionEnum.Down)
            {
                if (oldSprite == SpriteTypeEnum.DevilStairsLeft)
                    return SpriteTypeEnum.DevilStairsRight;
                return SpriteTypeEnum.DevilStairsLeft;
            }
            if (Direction == DirectionEnum.Left)
            {
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft1)
                    return SpriteTypeEnum.DevilMoveLeft2;
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft2)
                    return SpriteTypeEnum.DevilMoveLeft3;
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft3)
                    return SpriteTypeEnum.DevilMoveLeft4;
                if (oldSprite == SpriteTypeEnum.DevilMoveLeft4)
                    return SpriteTypeEnum.DevilMoveLeft5;
                return SpriteTypeEnum.DevilMoveLeft1;
            }
            if (Direction == DirectionEnum.Right)
            {
                if (oldSprite == SpriteTypeEnum.DevilMoveRight1)
                    return SpriteTypeEnum.DevilMoveRight2;
                if (oldSprite == SpriteTypeEnum.DevilMoveRight2)
                    return SpriteTypeEnum.DevilMoveRight3;
                if (oldSprite == SpriteTypeEnum.DevilMoveRight3)
                    return SpriteTypeEnum.DevilMoveRight4;
                if (oldSprite == SpriteTypeEnum.DevilMoveRight4)
                    return SpriteTypeEnum.DevilMoveRight5;
                return SpriteTypeEnum.DevilMoveRight1;
            }
            if (oldSprite == SpriteTypeEnum.DevilStairsLeft || oldSprite == SpriteTypeEnum.DevilStairsRight)
                return SpriteTypeEnum.DevilMoveLeft1;

            return oldSprite;
        }
Exemple #38
0
 public static bool IsWall(SpriteTypeEnum source)
 {
     return(IsBrickWall(source) || IsStoneWall(source));
 }
Exemple #39
0
            public static SpriteTypeEnum[,] Get(int mapsBank, int stage)
            {
            List<string> map = LoadMap(mapsBank, stage);

            var result = new SpriteTypeEnum[CapacityX, CapacityY];
            for (int j = 0; j < CapacityY; j++)
            {
                for (int i = 0; i < CapacityX; i++)
                {
                    // render borders
                    if ((i == 0 || (i == CapacityX - 1) || (j == 0 || (j == CapacityY - 1))))
                        result[i, j] = SpriteTypeEnum.StoneWall;
                    else
                    {
                        // render map
                        char value = map[j - 1][i - 1];
                        if (value == 'W')
                            result[i, j] = SpriteTypeEnum.StoneWall;
                        else if (value == 'B')
                            result[i, j] = SpriteTypeEnum.BrickWall;
                        else if (value == 'C')
                            result[i, j] = SpriteTypeEnum.Chest;
                        else if (value == '`')
                            result[i, j] = SpriteTypeEnum.Floor;
                        else if (value == ']')
                            result[i, j] = SpriteTypeEnum.StairsLeft;
                        else if (value == '[')
                            result[i, j] = SpriteTypeEnum.StairsRight;
                        else if (value == '1')
                            result[i, j] = SpriteTypeEnum.Biomass1;
                        else if (value == '2')
                            result[i, j] = SpriteTypeEnum.Biomass2;
                        else if (value == '3')
                            result[i, j] = SpriteTypeEnum.Biomass3;
                        else if (value == '4')
                            result[i, j] = SpriteTypeEnum.Biomass4;
                    }
                }
            }

            for (int i = 0; i < 2; i++) // devil entrance render
            {
                result[15 + i, 0] = SpriteTypeEnum.Space;
                result[30 + i, 0] = SpriteTypeEnum.Space;
            }

            //exit door render
            result[1, 0] = SpriteTypeEnum.ExitDoorLeft;
            result[2, 0] = SpriteTypeEnum.ExitDoorRight;

            return result;
            }
Exemple #40
0
 public static bool IsStoneWall(SpriteTypeEnum source)
 {
     return(source == SpriteTypeEnum.StoneWall);
 }
Exemple #41
0
 public static bool IsBiomass(SpriteTypeEnum source)
 {
     return source >= SpriteTypeEnum.Biomass1 && source <= SpriteTypeEnum.Biomass4;
 }
Exemple #42
0
 public static bool IsExitDoor(SpriteTypeEnum source)
 {
     return(source >= SpriteTypeEnum.ExitDoorLeft && source <= SpriteTypeEnum.ExitDoorRight);
 }
Exemple #43
0
 public static bool IsBrickWall(SpriteTypeEnum source)
 {
     return source == SpriteTypeEnum.BrickWall;
 }
Exemple #44
0
 public static bool IsFloor(SpriteTypeEnum source)
 {
     return(source == SpriteTypeEnum.Floor);
 }
Exemple #45
0
 public static bool IsChest(SpriteTypeEnum source)
 {
     return source == SpriteTypeEnum.Chest;
 }
Exemple #46
0
 public static bool IsLiveWall(SpriteTypeEnum source)
 {
     return(source >= SpriteTypeEnum.WallLive1 && source <= SpriteTypeEnum.WallLive3);
 }
Exemple #47
0
 public static bool IsExitDoor(SpriteTypeEnum source)
 {
     return source >= SpriteTypeEnum.ExitDoorLeft && source <= SpriteTypeEnum.ExitDoorRight;
 }