/// <summary> /// Effectively starts a combat with enemy /// Attacking is the same for every faction /// </summary> /// <param name="enemy"></param> public void RealAttack(IUnit enemy) { this.ChangeState(UnitState.Attacking); enemy.ChangeState(UnitState.Defending); GameMaster.GM.CurrentGame.Fight(this, enemy); // Check wounds after fighting if (this.Hp == 0) this.Die(); else this.ChangeState(UnitState.Idle); if (enemy.Hp == 0) { enemy.Die(); if (!enemy.Position.IsOccupied()) this.Move(enemy.Position); } else enemy.ChangeState(UnitState.Idle); this.Mvt--; }