public static void GenerationPanel(PanelInMap kPanelInMap, float moveMap, Random rand, ref PanelInMap objRandom, List<BonusInMap> bonus) { if ((kPanelInMap != null) && (rand != null) && (objRandom != null) && (bonus != null)) { //Easy if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap < 3000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = 0; kPanelInMap.LeftFlag = false; //Generation Bad panel if (rand.Next(0, 5) == 2) { kPanelInMap.Type = 2; } else { objRandom = kPanelInMap; } //generation bonus BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 10); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } //NORMAL if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap > 3000.0f) && (moveMap <= 10000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = (uint)rand.Next(0, 2); kPanelInMap.LeftFlag = false; //Generation Bad panel if (rand.Next(0, 10) == 2) { kPanelInMap.Type = 2; } else { objRandom = kPanelInMap; } BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 20); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 1)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 3)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 2, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 4)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 12, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } //HARDCORE if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap > 10000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = 1; kPanelInMap.LeftFlag = false; //Generation Bad panel objRandom = kPanelInMap; if (rand.Next(0, 3) == 2) { kPanelInMap.Type = 5; objRandom = kPanelInMap; } //раскидываем бонусы BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 30); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 1)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 3)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 2, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 4)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 12, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } } }
public static void GenerationPanel(PanelInMap kPanelInMap, float moveMap, Random rand, ref PanelInMap objRandom, List <BonusInMap> bonus) { if ((kPanelInMap != null) && (rand != null) && (objRandom != null) && (bonus != null)) { //Easy if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap < 3000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = 0; kPanelInMap.LeftFlag = false; //Generation Bad panel if (rand.Next(0, 5) == 2) { kPanelInMap.Type = 2; } else { objRandom = kPanelInMap; } //generation bonus BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 10); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } //NORMAL if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap > 3000.0f) && (moveMap <= 10000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = (uint)rand.Next(0, 2); kPanelInMap.LeftFlag = false; //Generation Bad panel if (rand.Next(0, 10) == 2) { kPanelInMap.Type = 2; } else { objRandom = kPanelInMap; } BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 20); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 1)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 3)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 2, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 4)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 12, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } //HARDCORE if ((kPanelInMap.CoordY - moveMap < -10.0f) && (moveMap > 10000.0f)) { //Generation Static panel kPanelInMap.CoordY = rand.Next(30 + (int)objRandom.CoordY, 95 + (int)objRandom.CoordY); kPanelInMap.CoordX = rand.Next(20, 430); kPanelInMap.Type = 1; kPanelInMap.LeftFlag = false; //Generation Bad panel objRandom = kPanelInMap; if (rand.Next(0, 3) == 2) { kPanelInMap.Type = 5; objRandom = kPanelInMap; } //раскидываем бонусы BonusInMap bufBonusInMap = null; uint bufTypeBonus = (uint)rand.Next(0, 30); if ((kPanelInMap.Type == 0) && (bufTypeBonus == 0)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 1)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 16, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 0) && (bufTypeBonus == 2)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 8, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 3)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 2, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } if ((kPanelInMap.Type == 1) && (bufTypeBonus == 4)) { bufBonusInMap = new BonusInMap(kPanelInMap.CoordX + 12, kPanelInMap.CoordY + 14, bufTypeBonus, kPanelInMap.LeftFlag); bonus.Add(bufBonusInMap); } } } }