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); }
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); }
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; }
public static Capsule GetCapsule(CapsuleTypes type, PlayArena playArena, Arkanoid game, Vector2 location) { return(new Capsule(type, game, playArena, location)); }
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)); } } }
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); } } }