public void LevelUpdate(KeyboardState keyboard) //this checks whatever the character presses to see what to level up { if (keyboard.IsKeyDown(Keys.D1)) // they press 1 and it levels up the health { MaxHealth += 10; Health += 10; Experience -= level * 100; //takes away the amount of experience needed for that level level += 1; //adds one to their level CurrentQuickState = QuickState.MenuOff; //turns off the menu } if (keyboard.IsKeyDown(Keys.D2)) //does the same but for mana { MaxMana += 10; Mana += 10; Experience -= level * 100; level += 1; CurrentQuickState = QuickState.MenuOff; } if (keyboard.IsKeyDown(Keys.D3))// the same but for strength { Strength += 5; Experience -= level * 100; level += 1; CurrentQuickState = QuickState.MenuOff; } if (keyboard.IsKeyDown(Keys.D4) && MSpeed <= 15)// same but for movement speed { MSpeed += 2; Experience -= level * 100; level += 1; CurrentQuickState = QuickState.MenuOff; } if (keyboard.IsKeyDown(Keys.D5))//same { ASpeed += 5; Experience -= level * 100; level += 1; CurrentQuickState = QuickState.MenuOff; } if (keyboard.IsKeyDown(Keys.D6))// same { Intelligence += 5; Experience -= level * 100; level += 1; CurrentQuickState = QuickState.MenuOff; } }
public void DrawStatsDisplay(SpriteBatch spriteBatch, SpriteFont font, Viewport Viewport, KeyboardState keyboard, Texture2D Menu1, Texture2D Menu2, Texture2D Menu3, Vector2 centre, Rectangle rectangle, Texture2D hpBar, Texture2D manaBar, Texture2D barBack) // this draws the stat board { switch (CurrentQuickState) //this switch determines whether to draw all the stats or just health and mana { case QuickState.MenuOff: //if the menu is off //it just draws the health and mana in the top left of the viewport spriteBatch.Draw(Menu1, new Vector2(centre.X - rectangle.Width / 2 + 160, centre.Y - rectangle.Height * 2 / 3 + 120), Color.White); spriteBatch.DrawString(font, Name, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120)), Color.Orange); spriteBatch.Draw(barBack, new Vector2((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15), Color.White); spriteBatch.Draw(hpBar, new Rectangle((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15, (int)((float)Health / (float)MaxHealth * 165), 15), Color.White); spriteBatch.DrawString(font, "Health: " + Health + "/" + MaxHealth, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15), Color.Orange); spriteBatch.Draw(barBack, new Vector2((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15 * 2), Color.White); spriteBatch.Draw(manaBar, new Rectangle((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15 * 2, (int)((float)Mana / (float)MaxMana * 165), 15), Color.White); spriteBatch.DrawString(font, "Mana: " + Mana + "/" + MaxMana, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 2), Color.Orange); if (keyboard.IsKeyDown(Keys.LeftShift)) // if they press shift { CurrentQuickState = QuickState.MenuOn; // it switches it into the menu on state } break; case QuickState.MenuOn: //if the menus on spriteBatch.Draw(Menu2, new Vector2(centre.X - rectangle.Width / 2 + 160, centre.Y - rectangle.Height * 2 / 3 + 120), Color.White); spriteBatch.DrawString(font, Name, new Vector2(centre.X - rectangle.Width / 2 + 160, centre.Y - rectangle.Height * 2 / 3 + 120), Color.Orange); spriteBatch.Draw(barBack, new Vector2((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15), Color.White); spriteBatch.Draw(hpBar, new Rectangle((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15, (int)((float)Health / (float)MaxHealth * 165), 15), Color.White); spriteBatch.DrawString(font, "Health: " + Health + "/" + MaxHealth, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15), Color.Orange); spriteBatch.Draw(barBack, new Vector2((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15 * 2), Color.White); spriteBatch.Draw(manaBar, new Rectangle((int)(centre.X - rectangle.Width / 2 + 240), (int)(centre.Y - rectangle.Height * 2 / 3 + 126) + 15 * 2, (int)((float)Mana / (float)MaxMana * 165), 15), Color.White); spriteBatch.DrawString(font, "Mana: " + Mana + "/" + MaxMana, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 2), Color.Orange); spriteBatch.DrawString(font, "Strength: " + Strength.ToString(), new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 3), Color.Orange); spriteBatch.DrawString(font, "MSpeed: " + MSpeed.ToString(), new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 4), Color.Orange); spriteBatch.DrawString(font, "ASpeed: " + ASpeed.ToString(), new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 5), Color.Orange); spriteBatch.DrawString(font, "Intelligence: " + Intelligence.ToString(), new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 6), Color.Orange); spriteBatch.DrawString(font, "Experience: " + Experience.ToString() + "/" + level * 100, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 7), Color.Orange); //it draws all the stats in the top left of the viewport if (keyboard.IsKeyUp(Keys.LeftShift)) //if the shift key is let go { CurrentQuickState = QuickState.MenuOff; //it shuts the menu off } break; case QuickState.LevelUp: // when they player is leveling up //it shows all the stats and which key to press to level them up spriteBatch.Draw(Menu3, new Vector2(centre.X - rectangle.Width / 2 + 160, centre.Y - rectangle.Height * 2 / 3 + 120), Color.White); spriteBatch.DrawString(font, Name, new Vector2(centre.X - rectangle.Width / 2 + 160, centre.Y - rectangle.Height * 2 / 3 + 120), Color.Orange); spriteBatch.DrawString(font, "Health: " + Health + "/" + MaxHealth + " Press 1 to level up Health", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15), Color.Orange); spriteBatch.DrawString(font, "Mana: " + Mana + "/" + MaxMana + " Press 2 to level up Mana", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 2), Color.Orange); spriteBatch.DrawString(font, "Strength: " + Strength.ToString() + " Press 3 to level up Strength", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 3), Color.Orange); if (MSpeed <= 15) { spriteBatch.DrawString(font, "MSpeed: " + MSpeed.ToString() + " Press 4 to level up Move Speed", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 4), Color.Orange); } else { spriteBatch.DrawString(font, "MSpeed: " + MSpeed.ToString() + " MAX", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 4), Color.Orange); } spriteBatch.DrawString(font, "ASpeed: " + ASpeed.ToString() + " Press 5 to level up Attack Speed", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 5), Color.Orange); spriteBatch.DrawString(font, "Intelligence: " + Intelligence.ToString() + " Press 6 to level up Intelligence", new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 6), Color.Orange); spriteBatch.DrawString(font, "Experience: " + Experience.ToString() + "/" + level * 100, new Vector2(centre.X - rectangle.Width / 2 + 160, (centre.Y - rectangle.Height * 2 / 3 + 120) + 15 * 7), Color.Orange); LevelUpdate(keyboard); //this is the level update method to see which key they press and do something accordingly break; } }
public void LevelUp()//the level up method sets the quickstate menu state to level up { CurrentQuickState = QuickState.LevelUp; }