Проблема в следующих строках:
DialogResult dialogResult;
if (playerHP > 0)
{
dialogResult = MessageBox.Show("Do you want to leave?", "Message box", MessageBoxButtons.YesNo);
}
} while (DialogResult == DialogResult.No && enemyHP > 0);
Как упоминал @JayV, в 3-й строке есть опечатка, она должна быть:
} while (dialogResult == DialogResult.No && enemyHP > 0);
Однако может случиться, что dialogResult
не будет инициализирован к тому времени, когда будет выполнено это условие, поскольку присваивание происходит внутри ветви if.
Итак, измените первую строку, указав значение по умолчанию, которое будет иметь смысл DialogResult.No
:
DialogResult dialogResult = DialogResult.No;
У вас также есть небольшая проблема:
if (enemyHP > 0)
MessageBox.Show("He also dealt 5 damage to you.);
playerHP -= 5;
Строка MessageBox.Show
проходит внутри ветви if
, но, поскольку вы не добавляли скобки, вы, вероятно, не понимали, что следующая строка всегда выполняется.
Вот почему:
Всегда используйте скобки!
if (enemyHP > 0)
{
MessageBox.Show("He also dealt 5 damage to you.);
playerHP -= 5;
}