Skip to content
Snippets Groups Projects
Commit 7ce36fbf authored by Susan Yuen's avatar Susan Yuen
Browse files

Fixed game over button position

parent 34dfba45
No related branches found
No related tags found
No related merge requests found
......@@ -374,6 +374,155 @@ namespace Controller
drawUI.drawAttackConfirm(spriteBatch, font, largeFont, largestFont, player1, graph);
//draw char info screen menu
drawUI.drawInfoScreen(spriteBatch, player1, font, largeFont);
Unit unit = GameState.selectedUnit;
#region Attack menu
Button confirmButton = unit.getButtonType(ButtonType.AttackConfirm);
Vector2 attackInfoLocation2 = new Vector2(519, 0);
if (GameState.attackConfirmOpen && !GameState.isAnimating)
{
Unit attackedUnit = GameState.unitToAttack;
// get attack stats
bool isMagicAttack = GameFunction.isMagicalAttack(unit);
int damageDealt = DamageCalculations.getDamageDealt(unit, attackedUnit, isMagicAttack);
int hitCount = DamageCalculations.getHitCount(unit, attackedUnit);
int hitRate = DamageCalculations.getHitRate(unit, attackedUnit);
int critRate = DamageCalculations.getCritRate(unit, attackedUnit);
// get enemy counter attack stats
isMagicAttack = GameFunction.isMagicalAttack(attackedUnit);
int damageDealt2 = DamageCalculations.getDamageDealt(attackedUnit, unit, isMagicAttack);
int hitCount2 = DamageCalculations.getHitCount(attackedUnit, unit);
int hitRate2 = DamageCalculations.getHitRate(attackedUnit, unit);
int critRate2 = DamageCalculations.getCritRate(attackedUnit, unit);
if (GameState.currentPlayer == player1)
{
spriteBatch.Draw(unit.getCharAttackInfo(), Vector2.Zero, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charAttackInfoBackground texture for current character
spriteBatch.DrawString(largeFont, damageDealt.ToString(), new Vector2(180, 458), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws damage dealt
spriteBatch.DrawString(font, " x " + hitCount.ToString(), new Vector2(195, 459), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws hit count
spriteBatch.DrawString(largeFont, hitRate.ToString() + " %", new Vector2(170, 488), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws hit rate
spriteBatch.DrawString(largeFont, critRate.ToString() + " %", new Vector2(170, 518), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws crit rate
spriteBatch.DrawString(largestFont, unit.Hp.ToString(), new Vector2(342, 475), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit health
spriteBatch.DrawString(largeFont, unit.equippedWeapon.name.ToString(), new Vector2(40, 348), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit's weapon
spriteBatch.Draw(attackedUnit.getCharAttackInfo(), attackInfoLocation2, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charAttackInfoBackground for unit being attacked
spriteBatch.DrawString(largestFont, attackedUnit.Hp.ToString(), new Vector2(862, 475), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws enemy unit health
spriteBatch.DrawString(largeFont, attackedUnit.equippedWeapon.name.ToString(), new Vector2(715, 348), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit's weapon
if (GameFunction.isEnemyUnitInRange(graph, attackedUnit, unit))
{
spriteBatch.DrawString(largeFont, damageDealt2.ToString(), new Vector2(700, 458), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack damage
spriteBatch.DrawString(font, " x " + hitCount2.ToString(), new Vector2(715, 459), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack hit count
spriteBatch.DrawString(largeFont, hitRate2.ToString() + " %", new Vector2(690, 488), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack hit rate
spriteBatch.DrawString(largeFont, critRate2.ToString() + " %", new Vector2(690, 518), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack crit rate
}
}
else
{
spriteBatch.Draw(attackedUnit.getCharAttackInfo(), Vector2.Zero, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charAttackInfoBackground texture for current character
spriteBatch.DrawString(largeFont, damageDealt.ToString(), new Vector2(180, 458), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack damage
spriteBatch.DrawString(font, " x " + hitCount.ToString(), new Vector2(195, 459), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack hit count
spriteBatch.DrawString(largeFont, hitRate.ToString() + " %", new Vector2(170, 488), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack hit rate
spriteBatch.DrawString(largeFont, critRate.ToString() + " %", new Vector2(170, 518), Color.DarkBlue, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws counterattack crit rate
spriteBatch.DrawString(largestFont, attackedUnit.Hp.ToString(), new Vector2(342, 475), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws enemy unit health
spriteBatch.DrawString(largeFont, attackedUnit.equippedWeapon.name.ToString(), new Vector2(40, 348), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit's weapon
spriteBatch.Draw(unit.getCharAttackInfo(), attackInfoLocation2, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charAttackInfoBackground for current character
spriteBatch.DrawString(largestFont, unit.Hp.ToString(), new Vector2(862, 475), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit health
spriteBatch.DrawString(largeFont, unit.equippedWeapon.name.ToString(), new Vector2(715, 348), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit's weapon
if (GameFunction.isEnemyUnitInRange(graph, unit, attackedUnit))
{
spriteBatch.DrawString(largeFont, damageDealt.ToString(), new Vector2(700, 458), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws damage
spriteBatch.DrawString(font, " x " + hitCount.ToString(), new Vector2(715, 459), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws hit count
spriteBatch.DrawString(largeFont, hitRate.ToString() + " %", new Vector2(690, 488), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws hit rate
spriteBatch.DrawString(largeFont, critRate.ToString() + " %", new Vector2(690, 518), Color.DarkRed, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws crit rate
}
}
spriteBatch.Draw(confirmButton.getImage(), confirmButton.getPixelCoordinates(), null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.8f);
}
#endregion
#region Character Info Screen player1
//if player 1, prints info screen for player 1
if ((GameState.currentPlayer == player1) && (!GameState.attackConfirmOpen))
{
Vector2 statLocation = new Vector2(170, 535); // starting location for first stat
Vector2 statLocation2 = new Vector2(235, 535); // starting location for first stat
Vector2 increment = new Vector2(0, 20); // increment downwards for each stat
Vector2 infoLocation = new Vector2(20, 513);
int[] stats = unit.getStats();
for (int k = 0; k < 4; k++) //for stats - level, str, int, skill,
{
spriteBatch.DrawString(font, stats[k].ToString(), statLocation, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f);
statLocation = statLocation + increment; //increment downwards
}
for (int t = 4; t < 7; t++) //for stats - speed, defense, resistance
{
spriteBatch.DrawString(font, stats[t].ToString(), statLocation2, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f);
statLocation2 = statLocation2 + increment; //increment downwards
}
spriteBatch.DrawString(largeFont, unit.Hp.ToString(), new Vector2(278, 532), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit hp
spriteBatch.Draw(unit.getCharInfo(), infoLocation, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charInfoBackground texture
}
//else, info screen for player 2
else
{
if (!GameState.attackConfirmOpen)
{
Vector2 statLocation = new Vector2(795, 533); //starting location for first stat
Vector2 statLocation2 = new Vector2(860, 533); //starting location for first stat
Vector2 increment = new Vector2(0, 20); //increment downwards for each stat
Vector2 infoLocation = new Vector2(635, 513);
int[] stats = unit.getStats();
for (int k = 0; k < 4; k++) //for stats - level, str, int, skill,
{
spriteBatch.DrawString(font, stats[k].ToString(), statLocation, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f);
statLocation = statLocation + increment; //increment downwards
}
for (int t = 4; t < 7; t++) //for stats - speed, defense, resistance
{
spriteBatch.DrawString(font, stats[t].ToString(), statLocation2, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f);
statLocation2 = statLocation2 + increment; //increment downwards
}
spriteBatch.DrawString(largeFont, unit.Hp.ToString(), new Vector2(893, 532), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.6f); //draws unit HP
spriteBatch.Draw(unit.getCharInfo(), infoLocation, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw charInfoBackground texture
}
}
#endregion
}
#region Game Over
if (GameState.gameOver)
{
Vector2 gameOverLocation = new Vector2(-370, -300);
spriteBatch.DrawString(largestFont, "Game Over", new Vector2(350, 200), Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0f); //draws Game Over Text
spriteBatch.Draw(gameOver, Vector2.Zero, null, Color.White, 0, gameOverLocation, 1f, SpriteEffects.None, 0f);
spriteBatch.Draw(backGround, Vector2.Zero, null, Color.Black * 0.5f, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.9f);
}
#endregion
if (GameState.transitionTurn)
{
if (GameState.currentPlayer == player1)
{
spriteBatch.Draw(player1Transition, Vector2.Zero, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw turn transition
}
else if (GameState.currentPlayer == player2)
{
spriteBatch.Draw(player2Transition, Vector2.Zero, null, Color.White, 0, Vector2.Zero, 1f, SpriteEffects.None, 0.7f); //draw turn transition
}
}
//draw game over menu
drawUI.drawGameOverMenu(spriteBatch, gameOver, backGround, largestFont);
......
......@@ -549,9 +549,12 @@ namespace Controller
}
}
// returns whether or not the unit performed a magical attack
/**
Returns whether or not the unit performed a magical attack.
\param unit Unit to check.
*/
// TODO: change this function to factor the weapon type rather than unit type
private static bool isMagicalAttack(Unit unit)
public static bool isMagicalAttack(Unit unit)
{
if ((unit.getClass() == UnitType.Warrior) || (unit.getClass() == UnitType.Archer))
{
......
......@@ -93,8 +93,8 @@ namespace Controller
// upon game over screen, detect click on exit game button
if (GameState.gameOver)
{
if (mouseClickCoordinates.X > 370 && mouseClickCoordinates.X < 556 &&
mouseClickCoordinates.Y > 300 && mouseClickCoordinates.Y < 396)
if (currentMouseState.X > 370 && currentMouseState.X < 556 &&
currentMouseState.Y > 300 && currentMouseState.Y < 396)
{
GameState.exitGameClicked = true;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment