/// <summary>
 /// Slouzi pro klonovani
 /// </summary>
 /// <param name="unit"></param>
 /// <param name="not"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="atribut"></param>
 public Unit(Unit unit, Notoriety not, int x, int y, AttributePair atribut)
     : base(unit.attack, unit.defense, unit.animatedSprite, x, y)
 {
     Name = unit.Name;
     Notoriety = not;
     isInHero = false;
     HitPoints = atribut;
 }
 /// <summary>
 /// Jadro simulace boje dvou stran
 /// </summary>
 public static void SimulateTheFight(Hero left, Unit right, out bool whowon, out string LOG)
 {
     LOG = "";
     Random x = new Random();
     int WhoStarts = x.Next(0,2);
     while (!right.isDead && left.units.Count != 0)
     {
         int index = x.Next(0, left.units.Count);
         if (WhoStarts == 0)
         {
             ushort dmg = (left.units[index].Attack - right.Defense > 0) ? (ushort)(left.units[index].Attack - right.Defense) : (ushort)1;
             right.HitPoints.Damage(dmg);
             LOG += "Ubral jste nepriteli " + dmg + " zivotu\n";
             WhoStarts = 1;
         }
         else
         {
             ushort dmg = (right.Attack - left.units[index].Defense > 0) ? (ushort)(right.Attack - left.units[index].Defense) : (ushort)1;
             left.units[index].HitPoints.Damage(dmg);
             LOG += "Nepritel ubral " + left.units[index].Name + " " + dmg + " zivotu\n";
             WhoStarts = 0;
         }
         left.CheckUnits();
     }
     if (right.isDead)
         whowon = false;
     else
         whowon = true;
 }
        /// <summary>
        /// Klonovani pri deserializaci
        /// </summary>
        /// <param name="not"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="attack"></param>
        /// <param name="defense"></param>
        /// <param name="atribut"></param>
        /// <param name="isInHero"></param>
        /// <returns></returns>
        public Unit Clone(Notoriety not, int x, int y, int attack, int defense, AttributePair atribut,bool isInHero)
        {
            AnimatedSprite sprite = (AnimatedSprite)this.animatedSprite.Clone();
            Unit unitClone = new Unit(this.Name, this.Attack, this.Defense, sprite, x, y, atribut);
            Unit unitClone2 = new Unit(unitClone, not, x, y, this.HitPoints);
            unitClone2.attack = attack;
            unitClone2.defense = defense;
            unitClone2.HitPoints = atribut;
            unitClone2.isInHero = isInHero;

            return unitClone2;
        }
        /// <summary>
        /// Klonovani pro novou jednotku
        /// </summary>
        /// <param name="not"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public Unit Clone(Notoriety not, int x, int y)
        {
            AnimatedSprite sprite = (AnimatedSprite)this.animatedSprite.Clone();
            Unit unitClone = new Unit(this.Name, this.Attack, this.Defense, sprite, x, y, this.HitPoints);
            Unit unitClone2 = new Unit(unitClone, not, x, y, this.HitPoints);

            return unitClone2;
        }