Beispiel #1
0
 public Capsule(CapsuleTypes type, Arkanoid game, PlayArena playArena, Vector2 location) : base(game)
 {
     PlayArena   = playArena;
     Motion      = new Vector2(0, 2);
     Location    = location;
     CapsuleType = type;
     Texture     = GetCapTexture(type);
 }
Beispiel #2
0
        public static List <Brick> GetLevelBrickMap(Arkanoid game, PlayArena playArena, Level map)
        {
            var by      = map.BricksHigh;
            var bx      = map.BricksWide;
            var bricks  = new BrickTypes[by][];
            var chances = new int[by][];
            var powers  = new CapsuleTypes[by][];

            for (var y = 0; y < by; y++)
            {
                bricks[y]  = new BrickTypes[bx];
                chances[y] = new int[bx];
                powers[y]  = new CapsuleTypes[bx];
                for (var x = 0; x < bx; x++)
                {
                    BrickTypes bt;
                    if (!Enum.TryParse(Enum.GetNames(typeof(BrickTypes))[map.GetBrickValue(y, x)], out bt))
                    {
                        bt = BrickTypes.Empty;
                    }
                    bricks[y][x] = bt;
                    CapsuleTypes p;
                    if (!Enum.TryParse(Enum.GetNames(typeof(CapsuleTypes))[map.GetPowerValue(y, x)], out p))
                    {
                        p = CapsuleTypes.Slow; //todo make random
                    }
                    bricks[y][x]  = bt;
                    chances[y][x] = map.GetChanceValue(y, x);
                    powers[y][x]  = p;
                }
            }
            var bm = new List <Brick>();

            for (var y = 0; y < bricks.Length; y++)
            {
                for (var x = 0; x < bricks[y].Length; x++)
                {
                    var b = bricks[y][x];
                    if (b != BrickTypes.Empty)
                    {
                        bm.Add(Types.GetBrick(b, game, playArena, GetBrickLocation(game, x, y), chances[y][x],
                                              powers[y][x]));
                    }
                }
            }
            return(bm);
        }
Beispiel #3
0
        public Brick(Arkanoid game, PlayArena playArena, Sprite texture, Sprite flash, Vector2 location, int score,
                     int life, int chance, CapsuleTypes capsuleType) : base(game)
        {
            PlayArena          = playArena;
            Texture            = texture;
            FlashTexture       = flash;
            Location           = location;
            IsInvincible       = life == -1 || life == -3 || life == -5 || life == -9;
            IsRegen            = life == -2 || life == -7;
            IsTeleport         = life == -3;
            IsTransmit         = life == -8;
            IsHorizontalMoving = life == -9;
            IsSwap             = life == -4 || life == -5 || life == -6;

            Regen       = TimeSpan.Zero;
            Swap        = IsTransmit ? new TimeSpan(0, 0, 0, Arkanoid.Random.Next(2, 6)) : new TimeSpan(0, 0, 0, 0, 500);
            Score       = score;
            Life        = life == -2 || life == -4 ? 2 : life == -6 || life == -8 ? 1 : life == -7 ? 4 : life;
            InitialLife = Life;
            Chance      = chance;
            CapsuleType = capsuleType;
        }
Beispiel #4
0
 public static Capsule GetCapsule(CapsuleTypes type, PlayArena playArena, Arkanoid game, Vector2 location)
 {
     return(new Capsule(type, game, playArena, location));
 }
Beispiel #5
0
        public static Brick GetBrick(BrickTypes type, Arkanoid game, PlayArena playArena, Vector2 location, int chance,
                                     CapsuleTypes capsuleType)
        {
            switch (type)
            {
            case BrickTypes.White:
            {
                return(new Brick(game, playArena, Sprites.BrkWhite, Sprites.BrkFlash, location, Scoring.White, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Yellow:
            {
                return(new Brick(game, playArena, Sprites.BrkYellow, Sprites.BrkFlash, location, Scoring.Yellow, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Pink:
            {
                return(new Brick(game, playArena, Sprites.BrkPink, Sprites.BrkFlash, location, Scoring.Pink, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Blue:
            {
                return(new Brick(game, playArena, Sprites.BrkBlue, Sprites.BrkFlash, location, Scoring.Blue, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Red:
            {
                return(new Brick(game, playArena, Sprites.BrkRed, Sprites.BrkFlash, location, Scoring.Red, 1, chance,
                                 capsuleType));
            }

            case BrickTypes.Green:
            {
                return(new Brick(game, playArena, Sprites.BrkGreen, Sprites.BrkFlash, location, Scoring.Green, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.SkyBlue:
            {
                return(new Brick(game, playArena, Sprites.BrkSkyBlue, Sprites.BrkFlash, location, Scoring.SkyBlue, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Orange:
            {
                return(new Brick(game, playArena, Sprites.BrkOrange, Sprites.BrkFlash, location, Scoring.Orange, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.Silver:
            {
                return(new Brick(game, playArena, Sprites.BrkSilver, Sprites.BrkFlash, location, Scoring.Silver, 2,
                                 chance, capsuleType));
            }

            case BrickTypes.Gold:
            {
                return(new Brick(game, playArena, Sprites.BrkGold, Sprites.BrkFlash, location, 0, -1, chance,
                                 capsuleType));
            }

            case BrickTypes.Regen:
            {
                return(new Brick(game, playArena, Sprites.BrkRegen, Sprites.BrkFlash, location, Scoring.Silver, -2,
                                 chance, capsuleType));
            }

            case BrickTypes.Teleport:
            {
                return(new Brick(game, playArena, Sprites.BrkTeleport, Sprites.BrkFlash, location, 0, -3, chance,
                                 capsuleType));
            }

            case BrickTypes.SilverSwap:
            {
                return(new Brick(game, playArena, Sprites.BrkSilverSwap, Sprites.BrkFlash, location, Scoring.Silver,
                                 -4, chance, capsuleType));
            }

            case BrickTypes.GoldSwap:
            {
                return(new Brick(game, playArena, Sprites.BrkGoldSwap, Sprites.BrkFlash, location, 0, -5, chance,
                                 capsuleType));
            }

            case BrickTypes.BlueSwap:
            {
                return(new Brick(game, playArena, Sprites.BrkBlueSwap, Sprites.BrkFlash, location, Scoring.Blue, -6,
                                 chance, capsuleType));
            }

            case BrickTypes.Black:
            {
                return(new Brick(game, playArena, Sprites.BrkBlack, Sprites.BrkFlash, location, Scoring.Black, 4,
                                 chance, capsuleType));
            }

            case BrickTypes.DarkRed:
            {
                return(new Brick(game, playArena, Sprites.BrkDarkRed, Sprites.BrkFlash, location, Scoring.DarkRed, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.DarkBlue:
            {
                return(new Brick(game, playArena, Sprites.BrkDarkBlue, Sprites.BrkFlash, location, Scoring.DarkBlue, 1,
                                 chance, capsuleType));
            }

            case BrickTypes.BlackRegen:
            {
                return(new Brick(game, playArena, Sprites.BrkBlackRegen, Sprites.BrkFlash, location, Scoring.Black,
                                 -7, chance, capsuleType));
            }

            case BrickTypes.Transmit:
            {
                return(new Brick(game, playArena, Sprites.BrkTransmit, Sprites.BrkFlash, location, Scoring.Transmit,
                                 -8, chance, capsuleType));
            }

            case BrickTypes.HorizonalMove:
            {
                return(new Brick(game, playArena, Sprites.BrkGold, Sprites.BrkFlash, location, 0, -9, chance,
                                 capsuleType));
            }

            default:
            {
                return(new Brick(game, playArena, Sprites.BrkWhite, Sprites.BrkFlash, location, 0, -1, chance,
                                 capsuleType));
            }
            }
        }
Beispiel #6
0
        public static Sprite GetCapTexture(CapsuleTypes type)
        {
            switch (type)
            {
            case CapsuleTypes.Catch:
            {
                return(Sprites.PwrCatchC);
            }

            case CapsuleTypes.Disrupt:
            {
                return(Sprites.PwrDisruptD);
            }

            case CapsuleTypes.Exit:
            {
                return(Sprites.PwrExitB);
            }

            case CapsuleTypes.Expand:
            {
                return(Sprites.PwrExpandE);
            }

            case CapsuleTypes.Fast:
            {
                return(Sprites.PwrFastF);
            }

            case CapsuleTypes.Laser:
            {
                return(Sprites.PwrLaserL);
            }

            case CapsuleTypes.Life:
            {
                return(Sprites.PwrLifeP);
            }

            case CapsuleTypes.MegaBall:
            {
                return(Sprites.PwrMegaBallH);
            }

            case CapsuleTypes.Reduce:
            {
                return(Sprites.PwrReduceR);
            }

            case CapsuleTypes.Slow:
            {
                return(Sprites.PwrSlowS);
            }

            case CapsuleTypes.Illusion:
            {
                return(Sprites.PwrIllusionI);
            }

            case CapsuleTypes.Orbit:
            {
                return(Sprites.PwrOrbitO);
            }

            case CapsuleTypes.Twin:
            {
                return(Sprites.PwrTwinT);
            }

            case CapsuleTypes.Random:
            {
                return(Sprites.PwrRandom);
            }

            case CapsuleTypes.MegaLaser:
            {
                return(Sprites.PwrMegaLaserM);
            }

            case CapsuleTypes.ElectricFence:
            {
                return(Sprites.PwrElectricFence);
            }

            case CapsuleTypes.MagnaBall:
            {
                return(Sprites.PwrMagnaBallG);
            }

            default:
            {
                return(null);
            }
            }
        }