本文整理汇总了C#中IUnit.Attack方法的典型用法代码示例。如果您正苦于以下问题:C# IUnit.Attack方法的具体用法?C# IUnit.Attack怎么用?C# IUnit.Attack使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IUnit
的用法示例。
在下文中一共展示了IUnit.Attack方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Attack
public void Attack(IUnit attacker, IUnit target)
{
int damage = attacker.Attack() - target.Defend();
if (damage > 0)
{
target.CurrentHitPoints -= damage;
if (this.IsPlayerTurn)
{
GameEngine.BattleScreen.ShowDamageBox(-damage, Color.Red, this.CurrentTarget.PicBox);
}
else
{
GameEngine.BattleScreen.ShowDamageBox(-damage, Color.Red, GameEngine.BattleScreen.characterPicture);
}
}
if (target.CurrentHitPoints <= 0)
{
if (this.IsPlayerTurn)
{
this.EnemyList[this.CurrentTargetId].PicBox.Hide();
this.EnemyList[this.CurrentTargetId].IsAlive = false;
GameEngine.PlayerCharacter.Experience += this.EnemyList[this.CurrentTargetId].Experience;
if (GameEngine.PlayerCharacter.Experience >= GameEngine.BattleScreen.experienceBar.Maximum)
{
GameEngine.PlayerCharacter.Level++;
GameEngine.PlayerCharacter.Strength++;
GameEngine.PlayerCharacter.Intelligence++;
GameEngine.PlayerCharacter.Dexterity++;
GameEngine.PlayerCharacter.Vitality++;
GameEngine.BattleScreen.experienceBar.Maximum = GameEngine.PlayerCharacter.CalculateExperience(GameEngine.PlayerCharacter.Level);
GameEngine.PlayerCharacter.CalculateHitPoints();
GameEngine.PlayerCharacter.Experience = 0;
GameEngine.BattleScreen.experienceBar.Value = 0;
}
else
{
GameEngine.BattleScreen.experienceBar.Value = GameEngine.PlayerCharacter.Experience;
}
bool aliveEnemies = false;
foreach(IEnemy enemy in this.EnemyList) {
if (enemy.IsAlive)
{
aliveEnemies = true;
break;
}
}
if (aliveEnemies == false)
{
MessageBox.Show("YOU ARE VICTORIOUS!");
GameEngine.BattleScreen.Close();
GameEngine.Map.Show();
Sound.Sound.PlayMapSound();
}
}
else
{
throw new EndBattleException();
}
}
}
示例2: ShowTargetBox
public void ShowTargetBox(Label box, IUnit enemy)
{
box.Show();
box.Text = "\nAttack: " + enemy.Attack()
+ "\nDefense: " + enemy.Defend()
+ "\nHitpoints: " + enemy.CurrentHitPoints;
}