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