public float ComputeUnarmedDamage(IStatsVariables stats, IReadOnlyCollection <Effect> effects) { var strengthBonus = stats.Strength() / 200; var dexterityBonus = stats.Dexterity() / 200; return(ComputeMeleeDamage(strengthBonus + dexterityBonus, EffectRelationships.UnarmedDamageRelationship, effects)); }
public float ComputeSlashingDefense(IStatsVariables baseAttributeStats, IReadOnlyCollection <Effect> effects) { var strengthBonus = baseAttributeStats.Strength() / 200; var dexterityBonus = baseAttributeStats.Dexterity() / 200; return(ComputeMeleeDefense(strengthBonus + dexterityBonus, EffectRelationships.SlashingDefenseRelationship, effects)); }
public void Populate(IStatsVariables stats, IReadOnlyCollection <Effect> activeEffects, IReadOnlyCollection <IVariables> relatedVars) { var strengthValue = (int)activeEffects.CalculateBonusFor(EffectTypes.StrengthBonusAmount, EffectTypes.StrengthBonusPercentage); var dexterityValue = (int)activeEffects.CalculateBonusFor(EffectTypes.DexterityBonusAmount, EffectTypes.DexterityBonusPercentage); var constitutionValue = (int)activeEffects.CalculateBonusFor(EffectTypes.ConstitutionBonusAmount, EffectTypes.ConstitutionBonusPercentage); var intelligenceValue = (int)activeEffects.CalculateBonusFor(EffectTypes.IntelligenceBonusAmount, EffectTypes.IntelligenceBonusPercentage); var wisdomValue = (int)activeEffects.CalculateBonusFor(EffectTypes.WisdomBonusAmount, EffectTypes.WisdomBonusPercentage); var charismaValue = (int)activeEffects.CalculateBonusFor(EffectTypes.CharismaBonusAmount, EffectTypes.CharismaBonusPercentage); var allAttributeValue = (int)activeEffects.GetPotencyFor(EffectTypes.AllAttributeBonusAmount); stats.Strength(strengthValue + allAttributeValue); stats.Dexterity(dexterityValue + allAttributeValue); stats.Constitution(constitutionValue + allAttributeValue); stats.Intelligence(intelligenceValue + allAttributeValue); stats.Wisdom(wisdomValue + allAttributeValue); stats.Charisma(charismaValue + allAttributeValue); }
public float ComputePiercingDamage(IStatsVariables stats, IReadOnlyCollection <Effect> effects) { return(ComputeMeleeDamage(stats.Dexterity() / 100, EffectRelationships.PiercingDamageRelationship, effects)); }
public float ComputePiercingDefense(IStatsVariables baseAttributeStats, IReadOnlyCollection <Effect> effects) { return(ComputeMeleeDefense(baseAttributeStats.Dexterity() / 100, EffectRelationships.PiercingDefenseRelationship, effects)); }