public AHelper(Magus mage, uint ageToCompleteBy, double desire, ushort conditionDepth, CalculateDesireFunc desireFunc = null) { Mage = mage; AgeToCompleteBy = ageToCompleteBy; Desire = desire; ConditionDepth = conditionDepth; _desireFunc = desireFunc; }
public VisCondition(Magus magus, uint ageToCompleteBy, double desire, List<Ability> abilities, double totalNeeded, ushort conditionDepth) : base(magus, ageToCompleteBy, desire, conditionDepth) { _mage = magus; VisTypes = abilities; AmountNeeded = totalNeeded; HasAuraCondition auraCondition = new HasAuraCondition(_mage, AgeToCompleteBy - 2, Desire, (ushort)(ConditionDepth + 2)); HasLabCondition labCondition = new HasLabCondition(_mage, AgeToCompleteBy - 1, Desire, (ushort)(ConditionDepth + 1)); _vimSufficient = VisTypes.Contains(MagicArts.Vim); }
public LongevityRitualGoal(Magus magus, uint? ageToCompleteBy, double desire) : base(magus, ageToCompleteBy, desire) { }
public void ModifyActionList(Magus mage, ConsideredActions alreadyConsidered, IList<string> log) { double dueDateDesire = _desirePerPoint / (Tier + 1); if (DueDate != null) { if (DueDate == 0) { log.Add("Has Covenant Condition failed"); return; } dueDateDesire /= (double)DueDate; } double currentAura = mage.Covenant.Aura.Strength; double auraCount = mage.KnownAuras.Count; double areaLore = mage.GetAbility(Abilities.AreaLore).Value; areaLore += mage.GetCastingTotal(MagicArtPairs.InVi) / 10; areaLore += mage.GetAttribute(AttributeType.Perception).Value; double probOfBetter = 1 - (currentAura * currentAura * auraCount / (5 * areaLore)); double maxAura = Math.Sqrt(5.0 * areaLore / auraCount); double averageGain = maxAura * probOfBetter / 2.0; if (probOfBetter > 0) { double desire = dueDateDesire * averageGain; log.Add("Finding a better aura to build a lab in worth " + desire.ToString("0.00")); alreadyConsidered.Add(new FindAura(Abilities.AreaLore, desire)); } }
public HasLabCondition(Magus magus, uint ageToCompleteBy, double desire, ushort conditionDepth = 1) : base(magus, ageToCompleteBy, desire, conditionDepth) { _mage = magus; }
public LabTotalIncreaseHelper(Magus mage, uint ageToCompleteBy, double desirePerPoint, ushort conditionDepth, ArtPair arts, bool allowVimVisUse, CalculateDesireFunc desireFunc) : base(mage, ageToCompleteBy, desirePerPoint, conditionDepth, arts, allowVimVisUse, desireFunc) { }
public CastingTotalIncreaseHelper(Magus mage, uint ageToCompleteBy, double desirePerPoint, ushort conditionDepth, ArtPair arts, bool allowVimVisUse, CalculateDesireFunc desireFunc) : base(mage, ageToCompleteBy, desirePerPoint, conditionDepth, arts, allowVimVisUse, desireFunc) { }
public static void BuildVerditius() { Verditius = new Magus(80); Verditius.Name = "Verditius"; Verditius.House = Houses.Verditius; Verditius.GetAttribute(AttributeType.Stamina).BaseValue = 1; Verditius.GetAttribute(AttributeType.Strength).BaseValue = 0; Verditius.GetAttribute(AttributeType.Dexterity).BaseValue = 2; Verditius.GetAttribute(AttributeType.Quickness).BaseValue = -3; Verditius.GetAttribute(AttributeType.Intelligence).BaseValue = 3; Verditius.GetAttribute(AttributeType.Communication).BaseValue = -2; Verditius.GetAttribute(AttributeType.Presence).BaseValue = 2; Verditius.GetAttribute(AttributeType.Perception).BaseValue = 2; Verditius.GetAbility(MagicArts.Creo).AddExperience(15); Verditius.GetAbility(MagicArts.Intellego).AddExperience(0); Verditius.GetAbility(MagicArts.Muto).AddExperience(0); Verditius.GetAbility(MagicArts.Perdo).AddExperience(0); Verditius.GetAbility(MagicArts.Rego).AddExperience(15); Verditius.GetAbility(MagicArts.Animal).AddExperience(0); Verditius.GetAbility(MagicArts.Aquam).AddExperience(0); Verditius.GetAbility(MagicArts.Auram).AddExperience(0); Verditius.GetAbility(MagicArts.Corpus).AddExperience(0); Verditius.GetAbility(MagicArts.Herbam).AddExperience(0); Verditius.GetAbility(MagicArts.Ignem).AddExperience(0); Verditius.GetAbility(MagicArts.Imaginem).AddExperience(0); Verditius.GetAbility(MagicArts.Mentem).AddExperience(0); Verditius.GetAbility(MagicArts.Terram).AddExperience(15); Verditius.GetAbility(MagicArts.Vim).AddExperience(15); Verditius.GetAbility(Abilities.AreaLore).AddExperience(15); Verditius.GetAbility(Abilities.ArtesLiberales).AddExperience(30); Verditius.GetAbility(Abilities.English).AddExperience(75); Verditius.GetAbility(Abilities.Etiquette).AddExperience(30); Verditius.GetAbility(Abilities.Latin).AddExperience(75); Verditius.GetAbility(Abilities.MagicTheory).AddExperience(30); Verditius.GetAbility(Abilities.ParmaMagica).AddExperience(5); Verditius.GetAbility(Abilities.Penetration).AddExperience(5); Verditius.GetAbility(Abilities.Craft).AddExperience(30); Verditius.GetAbility(Abilities.Philosophae).AddExperience(5); AbilityScoreGoal goal = new AbilityScoreGoal(Verditius, null, 1, MagicArts.Intellego, 5); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, MagicArts.Muto, 5); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, MagicArts.Perdo, 5); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, MagicArts.Rego, 5); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, MagicArts.Terram, 20); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, Abilities.Philosophae, 4); Verditius.AddGoal(goal); goal = new AbilityScoreGoal(Verditius, null, 1, Abilities.Craft, 5); Verditius.AddGoal(goal); ApprenticeGoal app = new ApprenticeGoal(Verditius, null, 1); Verditius.AddGoal(app); }
//private double _currentDesire; public FindNewAuraHelper(Magus mage, uint ageToCompleteBy, double desirePerPoint, ushort conditionDepth, bool allowVimVisUse, CalculateDesireFunc desireFunc) : base(mage, ageToCompleteBy, desirePerPoint, conditionDepth, desireFunc) { _allowVimVisUse = allowVimVisUse; }
public TeachApprenticeGoal(Magus magus, uint ageToCompleteBy, double desire) : base(magus, ageToCompleteBy, desire) { _mage = magus; }
public FindNewAuraHelper(Magus mage, uint ageToCompleteBy, double desirePerPoint, ushort conditionDepth, bool allowVimVisUse, CalculateDesireFunc desireFunc) : base(mage, ageToCompleteBy, desirePerPoint, conditionDepth, desireFunc) { _allowVimVisUse = allowVimVisUse; }
public static void BuildMerinita() { Merinita = new Magus(80); Merinita.Name = "Merinita"; Merinita.House = Houses.Merinita; Merinita.GetAttribute(AttributeType.Stamina).BaseValue = 0; Merinita.GetAttribute(AttributeType.Strength).BaseValue = -1; Merinita.GetAttribute(AttributeType.Dexterity).BaseValue = 0; Merinita.GetAttribute(AttributeType.Quickness).BaseValue = 0; Merinita.GetAttribute(AttributeType.Intelligence).BaseValue = 1; Merinita.GetAttribute(AttributeType.Communication).BaseValue = 1; Merinita.GetAttribute(AttributeType.Presence).BaseValue = 3; Merinita.GetAttribute(AttributeType.Perception).BaseValue = 0; Merinita.GetAbility(MagicArts.Creo).AddExperience(10); Merinita.GetAbility(MagicArts.Intellego).AddExperience(15); Merinita.GetAbility(MagicArts.Muto).AddExperience(15); Merinita.GetAbility(MagicArts.Perdo).AddExperience(10); Merinita.GetAbility(MagicArts.Rego).AddExperience(10); Merinita.GetAbility(MagicArts.Animal).AddExperience(0); Merinita.GetAbility(MagicArts.Aquam).AddExperience(0); Merinita.GetAbility(MagicArts.Auram).AddExperience(0); Merinita.GetAbility(MagicArts.Corpus).AddExperience(0); Merinita.GetAbility(MagicArts.Herbam).AddExperience(55); Merinita.GetAbility(MagicArts.Ignem).AddExperience(0); Merinita.GetAbility(MagicArts.Imaginem).AddExperience(0); Merinita.GetAbility(MagicArts.Mentem).AddExperience(0); Merinita.GetAbility(MagicArts.Terram).AddExperience(15); Merinita.GetAbility(MagicArts.Vim).AddExperience(0); Merinita.GetAbility(Abilities.AreaLore).AddExperience(15); Merinita.GetAbility(Abilities.ArtesLiberales).AddExperience(5); Merinita.GetAbility(Abilities.English).AddExperience(75); Merinita.GetAbility(Abilities.Etiquette).AddExperience(15); Merinita.GetAbility(Abilities.Latin).AddExperience(50); Merinita.GetAbility(Abilities.MagicTheory).AddExperience(15); Merinita.GetAbility(Abilities.ParmaMagica).AddExperience(5); Merinita.GetAbility(Abilities.Penetration).AddExperience(0); Merinita.GetAbility(Abilities.MerinitaLore).AddExperience(50); AbilityScoreGoal goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Herbam, 20); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Animal, 15); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Creo, 5); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Intellego, 5); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Muto, 5); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Perdo, 5); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, MagicArts.Rego, 5); Merinita.AddGoal(goal); goal = new AbilityScoreGoal(Merinita, null, 1, Abilities.MerinitaLore, 5); Merinita.AddGoal(goal); }
public static void BuildDiedne() { Diedne = new Magus(80); Diedne.Name = "Diedne"; Diedne.House = Houses.Diedne; Diedne.GetAttribute(AttributeType.Stamina).BaseValue = 1; Diedne.GetAttribute(AttributeType.Strength).BaseValue = -2; Diedne.GetAttribute(AttributeType.Dexterity).BaseValue = 0; Diedne.GetAttribute(AttributeType.Quickness).BaseValue = 0; Diedne.GetAttribute(AttributeType.Intelligence).BaseValue = 1; Diedne.GetAttribute(AttributeType.Communication).BaseValue = 1; Diedne.GetAttribute(AttributeType.Presence).BaseValue = 3; Diedne.GetAttribute(AttributeType.Perception).BaseValue = 1; Diedne.GetAbility(MagicArts.Creo).AddExperience(12); Diedne.GetAbility(MagicArts.Intellego).AddExperience(12); Diedne.GetAbility(MagicArts.Muto).AddExperience(12); Diedne.GetAbility(MagicArts.Perdo).AddExperience(12); Diedne.GetAbility(MagicArts.Rego).AddExperience(12); Diedne.GetAbility(MagicArts.Animal).AddExperience(6); Diedne.GetAbility(MagicArts.Aquam).AddExperience(6); Diedne.GetAbility(MagicArts.Auram).AddExperience(6); Diedne.GetAbility(MagicArts.Corpus).AddExperience(6); Diedne.GetAbility(MagicArts.Herbam).AddExperience(6); Diedne.GetAbility(MagicArts.Ignem).AddExperience(6); Diedne.GetAbility(MagicArts.Imaginem).AddExperience(6); Diedne.GetAbility(MagicArts.Mentem).AddExperience(6); Diedne.GetAbility(MagicArts.Terram).AddExperience(6); Diedne.GetAbility(MagicArts.Vim).AddExperience(6); Diedne.GetAbility(Abilities.AreaLore).AddExperience(30); Diedne.GetAbility(Abilities.ArtesLiberales).AddExperience(0); Diedne.GetAbility(Abilities.English).AddExperience(75); Diedne.GetAbility(Abilities.Etiquette).AddExperience(15); Diedne.GetAbility(Abilities.Latin).AddExperience(0); Diedne.GetAbility(Abilities.MagicTheory).AddExperience(30); Diedne.GetAbility(Abilities.ParmaMagica).AddExperience(30); Diedne.GetAbility(Abilities.Penetration).AddExperience(30); Diedne.GetAbility(Abilities.Concentration).AddExperience(30); AbilityScoreGoal goal = new AbilityScoreGoal(Diedne, null, 5, MagicArts.Creo, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1.05, MagicArts.Intellego, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1.05, MagicArts.Muto, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1.05, MagicArts.Perdo, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1.05, MagicArts.Rego, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1.05, MagicArts.Animal, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Aquam, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Corpus, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Herbam, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Ignem, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Imaginem, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Mentem, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Terram, 5); Diedne.AddGoal(goal); goal = new AbilityScoreGoal(Diedne, null, 1, MagicArts.Vim, 5); Diedne.AddGoal(goal); ApprenticeGoal app = new ApprenticeGoal(Diedne, null, 1); Diedne.AddGoal(app); }
public static void BuildTytalus() { Tytalus = new Magus(80); Tytalus.Name = "Tytalus"; Tytalus.House = Houses.Tytalus; Tytalus.GetAttribute(AttributeType.Stamina).BaseValue = 3; Tytalus.GetAttribute(AttributeType.Strength).BaseValue = 0; Tytalus.GetAttribute(AttributeType.Dexterity).BaseValue = 0; Tytalus.GetAttribute(AttributeType.Quickness).BaseValue = -1; Tytalus.GetAttribute(AttributeType.Intelligence).BaseValue = 2; Tytalus.GetAttribute(AttributeType.Communication).BaseValue = -2; Tytalus.GetAttribute(AttributeType.Presence).BaseValue = -1; Tytalus.GetAttribute(AttributeType.Perception).BaseValue = 2; Tytalus.GetAbility(MagicArts.Creo).AddExperience(0); Tytalus.GetAbility(MagicArts.Intellego).AddExperience(0); Tytalus.GetAbility(MagicArts.Muto).AddExperience(10); Tytalus.GetAbility(MagicArts.Perdo).AddExperience(15); Tytalus.GetAbility(MagicArts.Rego).AddExperience(55); Tytalus.GetAbility(MagicArts.Animal).AddExperience(0); Tytalus.GetAbility(MagicArts.Aquam).AddExperience(0); Tytalus.GetAbility(MagicArts.Auram).AddExperience(0); Tytalus.GetAbility(MagicArts.Corpus).AddExperience(0); Tytalus.GetAbility(MagicArts.Herbam).AddExperience(0); Tytalus.GetAbility(MagicArts.Ignem).AddExperience(0); Tytalus.GetAbility(MagicArts.Imaginem).AddExperience(0); Tytalus.GetAbility(MagicArts.Mentem).AddExperience(0); Tytalus.GetAbility(MagicArts.Terram).AddExperience(0); Tytalus.GetAbility(MagicArts.Vim).AddExperience(0); Tytalus.GetAbility(Abilities.AreaLore).AddExperience(30); Tytalus.GetAbility(Abilities.ArtesLiberales).AddExperience(5); Tytalus.GetAbility(Abilities.English).AddExperience(75); Tytalus.GetAbility(Abilities.Etiquette).AddExperience(15); Tytalus.GetAbility(Abilities.Latin).AddExperience(50); Tytalus.GetAbility(Abilities.MagicTheory).AddExperience(30); Tytalus.GetAbility(Abilities.ParmaMagica).AddExperience(30); Tytalus.GetAbility(Abilities.Penetration).AddExperience(30); Tytalus.GetAbility(Abilities.Concentration).AddExperience(15); AbilityScoreGoal goal = new AbilityScoreGoal(Tremere, null, 1, MagicArts.Rego, 20); Tytalus.AddGoal(goal); goal = new AbilityScoreGoal(Tremere, null, 1, MagicArts.Mentem, 10); Tytalus.AddGoal(goal); goal = new AbilityScoreGoal(Tremere, null, 1, Abilities.Penetration, 5); Tytalus.AddGoal(goal); goal = new AbilityScoreGoal(Tremere, null, 1, Abilities.Finesse, 5); Tytalus.AddGoal(goal); ApprenticeGoal app = new ApprenticeGoal(Tremere, null, 1); Tytalus.AddGoal(app); }
public FindVisSourceHelper(Magus mage, List<Ability> visTypes, uint ageToCompleteBy, double desirePerPoint, ushort conditionDepth, bool allowVimVis, CalculateDesireFunc desireFunc) : base(mage, ageToCompleteBy, desirePerPoint, conditionDepth, desireFunc) { _visTypes = visTypes; _allowVimVis = allowVimVis; }
public static void BuildBjornaer() { Bjornaer = new Magus(80); Bjornaer.Name = "Bjornaer"; Bjornaer.House = Houses.Bjornaer; Bjornaer.GetAttribute(AttributeType.Stamina).BaseValue = 3; Bjornaer.GetAttribute(AttributeType.Strength).BaseValue = 1; Bjornaer.GetAttribute(AttributeType.Dexterity).BaseValue = -2; Bjornaer.GetAttribute(AttributeType.Quickness).BaseValue = -2; Bjornaer.GetAttribute(AttributeType.Intelligence).BaseValue = 2; Bjornaer.GetAttribute(AttributeType.Communication).BaseValue = 1; Bjornaer.GetAttribute(AttributeType.Presence).BaseValue = 2; Bjornaer.GetAttribute(AttributeType.Perception).BaseValue = -1; Bjornaer.GetAbility(MagicArts.Creo).AddExperience(0); Bjornaer.GetAbility(MagicArts.Intellego).AddExperience(0); Bjornaer.GetAbility(MagicArts.Muto).AddExperience(15); Bjornaer.GetAbility(MagicArts.Perdo).AddExperience(0); Bjornaer.GetAbility(MagicArts.Rego).AddExperience(0); Bjornaer.GetAbility(MagicArts.Animal).AddExperience(15); Bjornaer.GetAbility(MagicArts.Aquam).AddExperience(0); Bjornaer.GetAbility(MagicArts.Auram).AddExperience(0); Bjornaer.GetAbility(MagicArts.Corpus).AddExperience(15); Bjornaer.GetAbility(MagicArts.Herbam).AddExperience(0); Bjornaer.GetAbility(MagicArts.Ignem).AddExperience(0); Bjornaer.GetAbility(MagicArts.Imaginem).AddExperience(0); Bjornaer.GetAbility(MagicArts.Mentem).AddExperience(0); Bjornaer.GetAbility(MagicArts.Terram).AddExperience(0); Bjornaer.GetAbility(MagicArts.Vim).AddExperience(0); Bjornaer.GetAbility(Abilities.AreaLore).AddExperience(45); Bjornaer.GetAbility(Abilities.ArtesLiberales).AddExperience(5); Bjornaer.GetAbility(Abilities.English).AddExperience(75); Bjornaer.GetAbility(Abilities.Etiquette).AddExperience(0); Bjornaer.GetAbility(Abilities.Latin).AddExperience(50); Bjornaer.GetAbility(Abilities.MagicTheory).AddExperience(30); Bjornaer.GetAbility(Abilities.ParmaMagica).AddExperience(5); Bjornaer.GetAbility(Abilities.Penetration).AddExperience(0); Bjornaer.GetAbility(Abilities.Concentration).AddExperience(0); Bjornaer.GetAbility(Abilities.Heartbeast).AddExperience(30); Bjornaer.GetAbility(Abilities.BjornaerLore).AddExperience(75); AbilityScoreGoal goal = new AbilityScoreGoal(Bjornaer, null, 1, MagicArts.Animal, 20); Bjornaer.AddGoal(goal); ApprenticeGoal apprentice = new ApprenticeGoal(Bjornaer, null, 1); Bjornaer.AddGoal(apprentice); goal = new AbilityScoreGoal(Bjornaer, null, 1.01, Abilities.BjornaerLore, 5); Bjornaer.AddGoal(goal); goal = new AbilityScoreGoal(Bjornaer, null, 1.02, Abilities.Heartbeast, 5); Bjornaer.AddGoal(goal); }
public WritingHelper(Magus mage, uint ageToCompleteBy, double desire, ushort conditionDepth, CalculateDesireFunc desireFunc = null) : base(mage, ageToCompleteBy, desire, conditionDepth, desireFunc) { }
public override void ModifyVisDesires(Magus magus, VisDesire[] visDesires) { base.ModifyVisDesires(magus, visDesires); }
public GauntletApprenticeGoal(Magus magus, uint ageToCompleteBy, double desire) : base(magus, ageToCompleteBy, desire) { _mage = magus; }
public static void BuildBonisagus() { Bonisgaus = new Magus(80); Bonisgaus.Name = "Bonisagus"; Bonisgaus.House = Houses.Bonisagus; Bonisgaus.GetAttribute(AttributeType.Stamina).BaseValue = 1; Bonisgaus.GetAttribute(AttributeType.Strength).BaseValue = -2; Bonisgaus.GetAttribute(AttributeType.Dexterity).BaseValue = -2; Bonisgaus.GetAttribute(AttributeType.Quickness).BaseValue = -2; Bonisgaus.GetAttribute(AttributeType.Intelligence).BaseValue = 5; Bonisgaus.GetAttribute(AttributeType.Communication).BaseValue = 2; Bonisgaus.GetAttribute(AttributeType.Presence).BaseValue = -2; Bonisgaus.GetAttribute(AttributeType.Perception).BaseValue = 0; Bonisgaus.GetAbility(MagicArts.Creo).AddExperience(1); Bonisgaus.GetAbility(MagicArts.Intellego).AddExperience(1); Bonisgaus.GetAbility(MagicArts.Muto).AddExperience(1); Bonisgaus.GetAbility(MagicArts.Perdo).AddExperience(1); Bonisgaus.GetAbility(MagicArts.Rego).AddExperience(1); Bonisgaus.GetAbility(MagicArts.Animal).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Aquam).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Auram).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Corpus).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Herbam).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Ignem).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Imaginem).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Mentem).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Terram).AddExperience(0); Bonisgaus.GetAbility(MagicArts.Vim).AddExperience(55); Bonisgaus.GetAbility(Abilities.AreaLore).AddExperience(0); Bonisgaus.GetAbility(Abilities.ArtesLiberales).AddExperience(15); Bonisgaus.GetAbility(Abilities.English).AddExperience(75); Bonisgaus.GetAbility(Abilities.Etiquette).AddExperience(45); Bonisgaus.GetAbility(Abilities.Latin).AddExperience(75); Bonisgaus.GetAbility(Abilities.MagicTheory).AddExperience(75); Bonisgaus.GetAbility(Abilities.ParmaMagica).AddExperience(5); Bonisgaus.GetAbility(Abilities.Penetration).AddExperience(5); Bonisgaus.GetAbility(Abilities.Concentration).AddExperience(5); AbilityScoreGoal goal = new AbilityScoreGoal(Bonisgaus, null, 1, Abilities.MagicTheory, 10); Bonisgaus.AddGoal(goal); ApprenticeGoal apprentice = new ApprenticeGoal(Bonisgaus, null, 1); Bonisgaus.AddGoal(apprentice); }
public static void BuildCriamon() { Criamon = new Magus(80); Criamon.Name = "Criamon"; Criamon.House = Houses.Criamon; Criamon.GetAttribute(AttributeType.Stamina).BaseValue = 1; Criamon.GetAttribute(AttributeType.Strength).BaseValue = -2; Criamon.GetAttribute(AttributeType.Dexterity).BaseValue = -2; Criamon.GetAttribute(AttributeType.Quickness).BaseValue = 1; Criamon.GetAttribute(AttributeType.Intelligence).BaseValue = 2; Criamon.GetAttribute(AttributeType.Communication).BaseValue = -1; Criamon.GetAttribute(AttributeType.Presence).BaseValue = 3; Criamon.GetAttribute(AttributeType.Perception).BaseValue = 2; Criamon.GetAbility(MagicArts.Creo).AddExperience(0); Criamon.GetAbility(MagicArts.Intellego).AddExperience(15); Criamon.GetAbility(MagicArts.Muto).AddExperience(0); Criamon.GetAbility(MagicArts.Perdo).AddExperience(0); Criamon.GetAbility(MagicArts.Rego).AddExperience(0); Criamon.GetAbility(MagicArts.Animal).AddExperience(0); Criamon.GetAbility(MagicArts.Aquam).AddExperience(0); Criamon.GetAbility(MagicArts.Auram).AddExperience(0); Criamon.GetAbility(MagicArts.Corpus).AddExperience(0); Criamon.GetAbility(MagicArts.Herbam).AddExperience(0); Criamon.GetAbility(MagicArts.Ignem).AddExperience(0); Criamon.GetAbility(MagicArts.Imaginem).AddExperience(0); Criamon.GetAbility(MagicArts.Mentem).AddExperience(0); Criamon.GetAbility(MagicArts.Terram).AddExperience(0); Criamon.GetAbility(MagicArts.Vim).AddExperience(15); Criamon.GetAbility(Abilities.AreaLore).AddExperience(30); Criamon.GetAbility(Abilities.ArtesLiberales).AddExperience(30); Criamon.GetAbility(Abilities.English).AddExperience(75); Criamon.GetAbility(Abilities.Etiquette).AddExperience(15); Criamon.GetAbility(Abilities.Latin).AddExperience(50); Criamon.GetAbility(Abilities.MagicTheory).AddExperience(50); Criamon.GetAbility(Abilities.ParmaMagica).AddExperience(5); Criamon.GetAbility(Abilities.Penetration).AddExperience(0); Criamon.GetAbility(Abilities.Concentration).AddExperience(30); Criamon.GetAbility(Abilities.EnigmaticWisdom).AddExperience(15); Criamon.GetAbility(Abilities.CriamonLore).AddExperience(30); AbilityScoreGoal goal = new AbilityScoreGoal(Criamon, null, 1, Abilities.MagicTheory, 5); Criamon.AddGoal(goal); goal = new AbilityScoreGoal(Criamon, null, 1, Abilities.EnigmaticWisdom, 5); Criamon.AddGoal(goal); goal = new AbilityScoreGoal(Criamon, null, 1, Abilities.CriamonLore, 5); Criamon.AddGoal(goal); ApprenticeGoal app = new ApprenticeGoal(Criamon, null, 1); Criamon.AddGoal(app); }
public ReadingHelper(Ability ability, Magus mage, uint ageToCompleteBy, double desire, ushort conditionDepth, CalculateDesireFunc desireFunc = null) : base(mage, ageToCompleteBy, desire, conditionDepth, desireFunc) { _ability = ability; }
protected void HandleVisUse(Magus mage, CharacterAbilityBase magicArt, ConsideredActions alreadyConsidered, IList<string> log) { // see if the mage has enough vis of this type double stockpile = mage.GetVisCount(magicArt.Ability); double visNeed = 0.5 + (magicArt.Value / 10.0); double increase = magicArt.GetValueGain(mage.VisStudyRate); double baseDesire = CalculateDesire(increase) / (BaseTier + 1); if (BaseDueDate != null) { baseDesire /= (double)BaseDueDate; } // if so, assume vis will return an average of 6XP + aura if (stockpile > visNeed) { log.Add("Studying vis for " + magicArt.Ability.AbilityName + " worth " + baseDesire.ToString("0.00")); VisStudying visStudy = new VisStudying(magicArt.Ability, baseDesire); alreadyConsidered.Add(visStudy); // TODO: how do we decrement the cost of the vis? } // putting a limit here to how far the circular loop will go else if (baseDesire >= 0.01) { List<Ability> visType = new List<Ability>(); visType.Add(magicArt.Ability); VisCondition visCondition = new VisCondition(visType, visNeed - stockpile, baseDesire, (byte)(BaseTier + 1), BaseDueDate == null ? null : BaseDueDate - 1); visCondition.ModifyActionList(mage, alreadyConsidered, log); } }
public static void BuildFlambeau() { Flambeau = new Magus(80); Flambeau.Name = "Flambeau"; Flambeau.House = Houses.Flambeau; Flambeau.GetAttribute(AttributeType.Stamina).BaseValue = 2; Flambeau.GetAttribute(AttributeType.Strength).BaseValue = 2; Flambeau.GetAttribute(AttributeType.Dexterity).BaseValue = 2; Flambeau.GetAttribute(AttributeType.Quickness).BaseValue = 0; Flambeau.GetAttribute(AttributeType.Intelligence).BaseValue = 1; Flambeau.GetAttribute(AttributeType.Communication).BaseValue = -2; Flambeau.GetAttribute(AttributeType.Presence).BaseValue = 2; Flambeau.GetAttribute(AttributeType.Perception).BaseValue = -2; Flambeau.GetAbility(MagicArts.Creo).AddExperience(3); Flambeau.GetAbility(MagicArts.Intellego).AddExperience(0); Flambeau.GetAbility(MagicArts.Muto).AddExperience(0); Flambeau.GetAbility(MagicArts.Perdo).AddExperience(3); Flambeau.GetAbility(MagicArts.Rego).AddExperience(3); Flambeau.GetAbility(MagicArts.Animal).AddExperience(0); Flambeau.GetAbility(MagicArts.Aquam).AddExperience(0); Flambeau.GetAbility(MagicArts.Auram).AddExperience(0); Flambeau.GetAbility(MagicArts.Corpus).AddExperience(0); Flambeau.GetAbility(MagicArts.Herbam).AddExperience(0); Flambeau.GetAbility(MagicArts.Ignem).AddExperience(21); Flambeau.GetAbility(MagicArts.Imaginem).AddExperience(0); Flambeau.GetAbility(MagicArts.Mentem).AddExperience(0); Flambeau.GetAbility(MagicArts.Terram).AddExperience(0); Flambeau.GetAbility(MagicArts.Vim).AddExperience(0); Flambeau.GetAbility(Abilities.AreaLore).AddExperience(15); Flambeau.GetAbility(Abilities.ArtesLiberales).AddExperience(15); Flambeau.GetAbility(Abilities.English).AddExperience(75); Flambeau.GetAbility(Abilities.Etiquette).AddExperience(30); Flambeau.GetAbility(Abilities.Latin).AddExperience(75); Flambeau.GetAbility(Abilities.MagicTheory).AddExperience(30); Flambeau.GetAbility(Abilities.ParmaMagica).AddExperience(30); Flambeau.GetAbility(Abilities.Penetration).AddExperience(30); Flambeau.GetAbility(Abilities.Concentration).AddExperience(30); AbilityScoreGoal goal = new AbilityScoreGoal(Flambeau, null, 1, MagicArts.Ignem, 20); Flambeau.AddGoal(goal); goal = new AbilityScoreGoal(Flambeau, null, 1, Abilities.Penetration, 5); Flambeau.AddGoal(goal); goal = new AbilityScoreGoal(Flambeau, null, 1, Abilities.ParmaMagica, 5); Flambeau.AddGoal(goal); ApprenticeGoal app = new ApprenticeGoal(Flambeau, null, 1); Flambeau.AddGoal(app); }
private void HandleAuras(Magus mage, ConsideredActions alreadyConsidered, IList<string> log) { double greatestAura = mage.KnownAuras.Select(a => a.Strength).Max(); double currentAura = mage.Covenant.Aura.Strength; if (greatestAura > currentAura) { Aura bestAura = mage.KnownAuras.Where(a => a.Strength == greatestAura).First(); if (mage.Laboratory == null) { // just move the covenant right now log.Add("Since no lab built, moving to better aura."); mage.FoundCovenant(bestAura); } else { // how do we want to rate the value of moving and having to build a new lab? // it seems like basically the same as any other single-season activity double gain = greatestAura - currentAura; double dueDateDesire = CalculateDesire(gain) / (BaseTier + 1); if (BaseDueDate != null) { if (BaseDueDate == 0) { return; } dueDateDesire /= (double)(BaseDueDate - 1); } log.Add("Moving to new aura (to boost lab total) worth " + dueDateDesire.ToString("0.00")); alreadyConsidered.Add(new BuildLaboratory(bestAura, Abilities.MagicTheory, dueDateDesire)); } } else { double auraCount = mage.KnownAuras.Count; double areaLore = mage.GetAbility(Abilities.AreaLore).Value; areaLore += mage.GetCastingTotal(MagicArtPairs.InVi) / 10; areaLore += mage.GetAttribute(AttributeType.Perception).Value; double probOfBetter = 1 - (currentAura * currentAura * auraCount / (5 * areaLore)); double maxAura = Math.Sqrt(5.0 * areaLore / auraCount); double averageGain = maxAura * probOfBetter / 2.0; double dueDateDesire = CalculateDesire(averageGain) / (BaseTier + 1); if (BaseDueDate != null) { if (BaseDueDate == 0) { return; } dueDateDesire /= (double)(BaseDueDate - 1); } if (probOfBetter > 0) { log.Add("Finding a better aura to build a lab in worth " + dueDateDesire.ToString("0.00")); alreadyConsidered.Add(new FindAura(Abilities.AreaLore, dueDateDesire)); } } }
public PracticeHelper(Ability ability, Magus mage, uint ageToCompleteBy, double desire, ushort conditionDepth, CalculateDesireFunc desireFunc = null) : base(mage, ageToCompleteBy, desire, conditionDepth, desireFunc) { _ability = ability; }