public static int MaximumDamagePerRound(this RulesText rulesText, Creature creature) => rulesText .Get <DamageToken>() .ByTokenGrouping() .CalculateMax(token => token.CalculateDamage(creature));
public static int MaximumDifficultyClass(this RulesText rulesText, Creature creature) => rulesText .Get <DifficultyClassToken>() .ByTokenGrouping() .CalculateMax(token => token.CalculateDifficultyClass(creature));
public static int MaximumAttackBonus(this RulesText rulesText, Creature creature) => rulesText .Get <AttackToken>() .ByTokenGrouping() .CalculateMax(token => token.CalculateAttack(creature));
public static IEnumerable <T> Get <T>(this RulesText rulesText) => rulesText.Tokens.Where(token => token is T).Cast <T>();
public static bool DealsDamage(this RulesText rulesText) => rulesText.Get <DamageToken>().Any();
public static bool HasSpecialEffect(this RulesText rulesText) => rulesText.Get <DifficultyClassToken>().Any();
public static bool IsAttack(this RulesText rulesText) => rulesText.Get <AttackToken>().Any();