public void DestroyBrick(BrickCell brick) { brick.RemoveFromField(); int powerup = brick.powerup; if (powerup != Powerups.None) { int cx = brick.GetCx(); int cy = brick.GetCy(); AddCell(new PowerupCell(powerup, cx, cy)); } }
private void SetupPowerups(PowerupInfo[] powerupInfo) { foreach (PowerupInfo info in powerupInfo) { if (info.bornWith) { List <Player> playerList = players.list; foreach (Player player in playerList) { player.TryAddPowerup(info.powerupIndex); } } } BrickCell[] brickCells = new BrickCell[GetWidth() * GetHeight()]; int count = GetBrickCells(brickCells); if (count == 0) { return; } ShuffleCells(brickCells, count); CVar[] POWERUPS_COUNT = CVars.powerupsCount; int brickIndex = 0; foreach (PowerupInfo info in powerupInfo) { if (info.forbidden || info.bornWith) { continue; } int powerupIndex = info.powerupIndex; int powerupCount = POWERUPS_COUNT[powerupIndex].intValue; if (powerupCount < 0) { if (MathHelp.NextInt(10) < -powerupCount) { continue; } powerupCount = 1; } for (int i = 0; i < powerupCount; ++i) { BrickCell cell = brickCells[brickIndex++]; int cx = cell.GetCx(); int cy = cell.GetCy(); cell.powerup = powerupIndex; if (brickIndex == count) { break; } } if (brickIndex == count) { break; } } }