public void Execute(Utility.ComponentContainer components) { var casting = components.Get <ISpellCasting>(); var spellList = casting.SpellList; var book = components.Get <Inventory>().Spellbooks.First(); for (int level = 0; level < spellsToAdd.Length; level++) { if (spellsToAdd[level].EqualsIgnoreCase("ALL")) { book.AddSpells(level, spellList.GetSpells(level, components.GetAll <ISpellCastingRule>())); } else { int spellsToChoose = spellsToAdd[level].ToInteger(); if (addModifier) { spellsToChoose += casting.CastingAbility.TotalModifier; } book.AddSpells( level, spellList.GetSpells(level, components.GetAll <ISpellCastingRule>()).Where(x => !book.ContainsSpell(level, x)) .Choose(spellsToChoose) ); } } }
public void Execute(Utility.ComponentContainer components) { var combatStyle = components.Get <CombatStyle>(); var rangerLevel = components.Get <ClassLevel>(); var token = new FeatToken(combatStyle.GetFeats(rangerLevel.Level), true); components.Add(token); }
public void Execute(Utility.ComponentContainer components) { var bloodline = components.Get <Bloodline>(); var casting = components.Get <SpontaneousCasting>(); var classLevel = components.Get <ClassLevel>(); var bonusSpell = bloodline.GetBonusSpell(classLevel.Level); casting.LearnSpell(spellLevel, bonusSpell); }
public void Execute(Utility.ComponentContainer components) { var bloodline = components.Get <Bloodline>(); var bloodlineLevel = components.Get <ClassLevel>(); var powerType = bloodline.GetPower(bloodlineLevel.Level); var power = Reflector.Instantiate <IBloodlinePower>(powerType); components.Add(power); }
public void Execute(Utility.ComponentContainer components) { var versatilePerformance = components.Get <VersatilePerformance>(); var skillRanks = components.Get <SkillRanks>(); var performSkills = skillRanks.GetSkills() .Where(x => x.Name.Contains("Perform") && !versatilePerformance.Skills.Contains(x)) .GroupBy(x => x.Score()); var highestGroup = performSkills.Max(x => x.Key); versatilePerformance.AddSkill(performSkills.First(x => x.Key == highestGroup).ChooseOne()); }
public void Execute(Utility.ComponentContainer components) { var mercies = components.Get <Mercies>(); if (mercies == null) { mercies = new Mercies(); components.Add(mercies); } var paladinLevel = components.Get <ClassLevel>(); var selected = mercyGateway.Where(x => x.Level <= paladinLevel.Level && !mercies.MercyList.Contains(x)).ChooseOne(); mercies.Add(selected); }
public void Execute(Utility.ComponentContainer components) { var fav = components.Get <FavoredTerrain>(); var upgrade = fav.TerrainTypes.ChooseOne(); fav.EnhanceBonus(upgrade); }
public void Execute(Utility.ComponentContainer components) { //TODO: Can be rewritten as stats that get a bonus.... var favEnemy = components.Get <FavoredEnemy>(); var upgrade = favEnemy.CreatureTypes.ChooseOne(); favEnemy.EnhanceBonus(upgrade); }
public void Execute(Utility.ComponentContainer components) { var wizardCasting = components.Get <WizardCasting>(); var school = arcaneGateway.ChooseOne(); wizardCasting.SetFocusSchool(school); components.Add(school); }
public void Execute(Utility.ComponentContainer components) { // Randomly pick 10 and gopherit var skillRanks = components.Get <SkillRanks>(); var skills = skillRanks.GetSkills().Choose(10); foreach (var s in skills) { skillRanks.SetClassSkill(s.Name); } }
public void Execute(Utility.ComponentContainer components) { var fav = components.Get <FavoredTerrain>(); if (fav == null) { fav = new FavoredTerrain(); components.Add(fav); } fav.Add(this.terrainTypeGateway.Where(x => !fav.TerrainTypes.Contains(x)).ChooseOne()); }
public void Execute(Utility.ComponentContainer components) { var favoredEnemy = components.Get <FavoredEnemy>(); if (favoredEnemy == null) { favoredEnemy = new FavoredEnemy(); components.Add(favoredEnemy); } var type = this.creatureTypeGateway.Where(x => !favoredEnemy.CreatureTypes.Contains(x)).ChooseOne(); favoredEnemy.Add(type); }
public void Execute(Utility.ComponentContainer components) { var wizardCasting = components.Get <WizardCasting>(); var focusSchool = wizardCasting.FocusSchool; if (focusSchool.NoOppositionSchools) { return; } var opps = arcaneSchools.Where( x => x.Equals(focusSchool) == false && !x.NoOppositionSchools ).Choose(2); wizardCasting.SetOppositionSchools(opps); }
public void Execute(Utility.ComponentContainer components) { components.Get <CharacterStrategy>().AddLanguageChoices(this.languages); }
public void Execute(Utility.ComponentContainer components) { var bloodline = components.Get <Bloodline>(); components.Add(new FeatToken(bloodline.GetBonusFeats())); }