public void start(UltimateBeingV2 ub)
        {
            this.TurnCount             = 1;
            this.Being                 = ub;
            this.Being.DamageReduction = 100;
            this.LastUsedSkills        = new List <SkillUB2>();
            this.PlayerHp              = App.State.CurrentHealth;
            this.PlayerEnergy          = 1000;
            this.IsFighting            = true;
            this.DoubleUp              = false;
            this.DamageBlock           = false;
            this.DamageReflect         = false;
            this.HitchanceBonus        = 0;
            this.DodgeChance           = 0;
            this.CounterChance         = 0;
            this.MysticMode            = null;
            this.TransformationAura    = null;
            this.GodSpeedModeDuration  = 0;
            this.Being.PowerUp         = false;
            this.InfoText              = string.Empty;
            this.PlayerSkills          = new List <SkillUB2>();
            this.PlayerSkills.Add(new SkillUB2
            {
                Name         = "Mystic Mode",
                Desc         = "50% more attack and 25% damage reduction for 6 turns",
                TypeEnum     = SkillTypeUBV2.MysticMode,
                EnergyCost   = 30,
                BuffDuration = 6,
                Buff         = 50
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name         = "Transformation aura",
                Desc         = "100 % more attack and 50% damage reduction for 5 turns",
                TypeEnum     = SkillTypeUBV2.TransformationAura,
                EnergyCost   = 80,
                BuffDuration = 5,
                Buff         = 100
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "God Speed",
                Desc       = "Do 2 actions in one turn for the next 4 turns",
                TypeEnum   = SkillTypeUBV2.GodSpeed,
                EnergyCost = 150,
                IncreaseActionsDuration = 8
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name         = "Elemental manipulation",
                Desc         = "Doubles the damage of the next attack",
                TypeEnum     = SkillTypeUBV2.ElementalManipulation,
                EnergyCost   = 30,
                DoubleDamage = true
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name          = "Reflection barrier",
                Desc          = "Reflect the next attack",
                TypeEnum      = SkillTypeUBV2.ReflectionBarrier,
                EnergyCost    = 200,
                ReflectDamage = true
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name               = "Clairvoyance",
                Desc               = "65% chance to dodge and counter the next attack",
                TypeEnum           = SkillTypeUBV2.Clairvoyance,
                EnergyCost         = 100,
                DodgeCounterChance = 65
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "Focused breathing",
                Desc       = "Recover 15% of hp",
                TypeEnum   = SkillTypeUBV2.FocusedBreathing,
                EnergyCost = -60,
                HealPerc   = 15
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "Aura Ball",
                Desc       = "Attack with an aura ball",
                TypeEnum   = SkillTypeUBV2.AuraBall,
                EnergyCost = 20,
                Damage     = 2
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "Big Bang",
                Desc       = "Attack with big bang, twice as much damage as aura ball",
                TypeEnum   = SkillTypeUBV2.BigBang,
                EnergyCost = 40,
                Damage     = 4,
                HealPerc   = -10
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "lonioi hero summon",
                Desc       = "Damage depending on your highest god defeated",
                TypeEnum   = SkillTypeUBV2.IonioiHeroSummon,
                EnergyCost = App.State.Statistic.HighestGodDefeated * 1.8,
                Damage     = App.State.Statistic.HighestGodDefeated / 10
            });
            Creation creation = App.State.AllCreations.FirstOrDefault((Creation x) => x.TypeEnum == ub.CreationNeeded);

            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "Give " + creation.Name,
                Desc       = "Gives away one " + creation.Name,
                TypeEnum   = SkillTypeUBV2.GiveBaseCreation,
                EnergyCost = -20
            });
            this.PlayerSkills.Add(new SkillUB2
            {
                Name       = "Give " + ub.CreationName,
                Desc       = "Gives away one " + ub.CreationName,
                TypeEnum   = SkillTypeUBV2.GiveModifiedCreation,
                EnergyCost = -20
            });
            foreach (SkillUB2 current in this.PlayerSkills)
            {
                if (current.EnergyCost > 0)
                {
                    current.Desc = current.Desc + "\nEnergy cost: " + current.EnergyCost.ToGuiText(true);
                }
                else if (current.EnergyCost < 0)
                {
                    current.Desc = current.Desc + "\nRecovers " + current.EnergyCost.ToGuiText(true) + " energy";
                }
                if (current.HealPerc < 0)
                {
                    current.Desc = current.Desc + "\nReduces your hp by " + (current.HealPerc * -1).ToGuiText(true) + " %";
                }
                if (current.Damage > 0)
                {
                    current.Desc = current.Desc + "\nBase Damage: " + current.Damage.ToGuiText(false);
                }
            }
        }
 public void NextTurn(SkillUB2 skillUsed)
 {
     if (this.GodSpeedModeDuration > 0 && !this.TurnUsed)
     {
         this.TurnUsed = true;
         this.InfoText = this.InfoText + "\nYou used " + skillUsed.Name;
     }
     else
     {
         this.InfoText  = "Turn " + this.TurnCount.ToGuiText(true) + "\nYou used " + skillUsed.Name;
         this.TurnUsed  = false;
         this.TurnCount = ++this.TurnCount;
     }
     this.PlayerEnergy += 10;
     if (skillUsed.EnergyCost + 10 >= this.PlayerEnergy)
     {
         this.InfoText = string.Concat(new string[]
         {
             "Turn ",
             this.TurnCount.ToGuiText(true),
             "\nYou didin't have enough energy to use ",
             skillUsed.Name,
             " and wasted a turn."
         });
         this.UBAttack(false);
         return;
     }
     this.PlayerEnergy -= skillUsed.EnergyCost;
     if (this.PlayerEnergy > 1000)
     {
         this.PlayerEnergy = 1000;
     }
     if (this.MysticMode != null)
     {
         this.MysticMode.Duration -= 1L;
     }
     if (this.TransformationAura != null)
     {
         this.TransformationAura.Duration -= 1L;
     }
     if (skillUsed.TypeEnum == SkillTypeUBV2.MysticMode)
     {
         this.MysticMode = new DamageChange(skillUsed.Buff.ToInt(), (long)skillUsed.BuffDuration.ToInt());
     }
     if (skillUsed.TypeEnum == SkillTypeUBV2.TransformationAura)
     {
         this.TransformationAura = new DamageChange(skillUsed.Buff.ToInt(), (long)skillUsed.BuffDuration.ToInt());
     }
     this.GodSpeedModeDuration = --this.GodSpeedModeDuration;
     if (this.GodSpeedModeDuration < 0)
     {
         this.GodSpeedModeDuration = 0;
     }
     if (skillUsed.IncreaseActionsDuration > 0)
     {
         this.GodSpeedModeDuration = skillUsed.IncreaseActionsDuration;
     }
     if (skillUsed.DoubleDamage)
     {
         this.DoubleUp = true;
     }
     if (skillUsed.ReflectDamage)
     {
         this.DamageReflect = true;
     }
     if (skillUsed.DodgeCounterChance > 0)
     {
         this.DodgeChance   = skillUsed.DodgeCounterChance;
         this.CounterChance = skillUsed.DodgeCounterChance;
     }
     if (skillUsed.HealPerc != 0)
     {
         this.PlayerHp += App.State.MaxHealth * skillUsed.HealPerc / 100;
         if (this.PlayerHp > App.State.MaxHealth)
         {
             this.PlayerHp = App.State.MaxHealth;
         }
     }
     this.Fight(skillUsed, this.TurnUsed);
 }