private void GameScreen_Load(object sender, EventArgs e) { //adjusting label locations for various screen resolutions healthTwoLabel.Left = healthTwoLabel.Location.X + this.Width - 1600; healthRegenTwoLabel.Left = healthRegenTwoLabel.Location.X + this.Width - 1600; bodyDamageTwoLabel.Left = bodyDamageTwoLabel.Location.X + this.Width - 1600; bulletSpeedTwoLabel.Left = bulletSpeedTwoLabel.Location.X + this.Width - 1600; bulletHealthTwoLabel.Left = bulletHealthTwoLabel.Location.X + this.Width - 1600; reloadTwoLabel.Left = reloadTwoLabel.Location.X + this.Width - 1600; speedTwoLabel.Left = speedTwoLabel.Location.X + this.Width - 1600; bulletDamageTwoLabel.Left = bulletDamageTwoLabel.Location.X + this.Width - 1600; health1Label.Top = this.Height - 20; xp1Label.Top = this.Height - 20; level1Label.Top = this.Height - 20; health2Label.Top = this.Height - 20; xp2Label.Top = this.Height - 20; level2Label.Top = this.Height - 20; health2Label.Left = health2Label.Location.X + this.Width - 1600; xp2Label.Left = xp2Label.Location.X + this.Width - 1600; level2Label.Left = level2Label.Location.X + this.Width - 1600; //create mega square Square g = new Square(this.Width / 2 - 150, this.Height / 2 - 150, 300, 2500, 30); squareList.Add(g); //game start sound gameStart.Play(); //reset variables keyCoolDown1 = keyCoolDown2 = attribute1 = attribute2 = healthRegenCounter = 0; squareGenerationSpeed = 300; //create bot objects with attributes and add them to botList p1 = new Bot(blueBrush, 1, 50, this.Height / 2 - 20, 40, baseMaxHealth, baseDamage, baseSpeed, "none", baseBulletHealth, baseBulletDamage, baseBulletSpeed, baseReload, baseRegen, baseMaxHealth, 1, 0, 0); botList.Add(p1); p2 = new Bot(redBrush, 2, this.Width - 90, this.Height / 2 - 20, 40, baseMaxHealth, baseDamage, baseSpeed, "none", baseBulletHealth, baseBulletDamage, baseBulletSpeed, baseReload, baseRegen, baseMaxHealth, 1, 0, 0); botList.Add(p2); //create 20 squares for (int i = 0; i <= 20; i++) { addShape = true; //random location shapeX = randGen.Next(1, this.Width - squareSize - 1); shapeY = randGen.Next(1, this.Height - squareSize - 1); newSquare = new Rectangle(shapeX, shapeY, squareSize, squareSize); //check to see if collision with a square foreach (Square s in squareList) { r = new Rectangle(s.x - 1, s.y - 1, s.size + 1, s.size + 1); if (r.IntersectsWith(newSquare)) { addShape = false; } } //if not colliding, add shape if (addShape == true) { Square f = new Square(shapeX, shapeY, squareSize, squareHp, squareDamage); squareList.Add(f); } } addShape = true; //create 5 hexagons for (int i = 0; i <= 5; i++) { shapeX = randGen.Next(1, this.Width - hexagonSize - 1); shapeY = randGen.Next(1, this.Height - hexagonSize - 1); newSquare = new Rectangle(shapeX, shapeY, hexagonSize, hexagonSize); //check to see if collision with a square foreach (Square s in squareList) { r = new Rectangle(s.x - 1, s.y - 1, s.size + 1, s.size + 1); if (r.IntersectsWith(newSquare)) { addShape = false; } } //check to see if collision with a hexagon foreach (Hexagon h in hexagonList) { r = new Rectangle(h.x - 1, h.y - 1, h.size + 1, h.size + 1); if (r.IntersectsWith(newSquare)) { addShape = false; } } if (addShape == true) { Hexagon f = new Hexagon(shapeX, shapeY, hexagonSize, hexagonHp, hexagonDamage); hexagonList.Add(f); } //start game gameLoop.Enabled = true; } }
private void LevelUp(Bot p, int attribute) { //upgrade attribute for specific player if (p.playerNumber == 1) { //upgrade selected attribute if (attribute == 0) { //cannot upgrade if label forecolour is red if (healthLabel.ForeColor != Color.Red) { p.hp += 50; p.maxHealth += 50; p.boost++; //if max upgrade make label forecolour red if (p.maxHealth > 375) { healthLabel.ForeColor = Color.Red; } } } else if (attribute == 1) { if (healthRegenLabel.ForeColor != Color.Red) { p.healthRegen += 4; p.boost++; if (p.healthRegen > 24) { healthRegenLabel.ForeColor = Color.Red; } } } else if (attribute == 2) { if (bodyDamageLabel.ForeColor != Color.Red) { p.damage += 10; p.boost++; if (p.damage > 58) { bodyDamageLabel.ForeColor = Color.Red; } } } else if (attribute == 3) { if (bulletSpeedLabel.ForeColor != Color.Red) { p.bulletSpeed += 8; p.boost++; if (p.bulletSpeed > 44) { bulletSpeedLabel.ForeColor = Color.Red; } } } else if (attribute == 4) { if (bulletHealthLabel.ForeColor != Color.Red) { p.bulletHealth += 13; p.boost++; if (p.bulletHealth > 69) { bulletHealthLabel.ForeColor = Color.Red; } } } else if (attribute == 5) { if (bulletDamageLabel.ForeColor != Color.Red) { p.bulletDamage += 17; p.boost++; if (p.bulletDamage > 93) { bulletDamageLabel.ForeColor = Color.Red; } } } else if (attribute == 6) { if (reloadLabel.ForeColor != Color.Red) { p.reload -= 4; p.boost++; if (p.reload < 6) { reloadLabel.ForeColor = Color.Red; } } } else { if (speedLabel.ForeColor != Color.Red) { p.speed += 2; p.boost++; if (p.speed > 13) { speedLabel.ForeColor = Color.Red; } } } } else { if (attribute == 0) { if (healthTwoLabel.ForeColor != Color.Red) { p.hp += 50; p.maxHealth += 50; p.boost++; if (p.maxHealth > 375) { healthTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 1) { if (healthRegenTwoLabel.ForeColor != Color.Red) { p.healthRegen += 4; p.boost++; if (p.healthRegen > 24) { healthRegenTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 2) { if (bodyDamageTwoLabel.ForeColor != Color.Red) { p.damage += 10; p.boost++; if (p.damage > 58) { bodyDamageTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 3) { if (bulletSpeedTwoLabel.ForeColor != Color.Red) { p.bulletSpeed += 8; p.boost++; if (p.bulletSpeed > 44) { bulletSpeedTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 4) { if (bulletHealthTwoLabel.ForeColor != Color.Red) { p.bulletHealth += 13; p.boost++; if (p.bulletHealth > 69) { bulletHealthTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 5) { if (bulletDamageTwoLabel.ForeColor != Color.Red) { p.bulletDamage += 17; p.boost++; if (p.bulletDamage > 93) { bulletDamageTwoLabel.ForeColor = Color.Red; } } } else if (attribute == 6) { if (reloadTwoLabel.ForeColor != Color.Red) { p.reload -= 4; p.boost++; if (p.reload < 6) { reloadTwoLabel.ForeColor = Color.Red; } } } else { if (speedTwoLabel.ForeColor != Color.Red) { p.speed += 2; p.boost++; if (p.speed > 13) { speedTwoLabel.ForeColor = Color.Red; } } } } }