/// <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; }