public Character( Size size, int armorClass, Dice hitDice, ICollection <DamageType> damageResistances, ICollection <DamageType> damageImmunities, Point pointOnMap, int speed, Common.Abilities.Abilities abilities, ICollection <Condition> conditionImmunities, ICollection <Sense> senses, ICollection <Language> languages, Abstractions.Challenge.Challenge challenge, ICollection <PassiveSkill> passiveSkills, ICollection <IAction> actions, Common.Abilities.Abilities.AbilityEnum spellCastingAbility, Abstractions.SavingThrows.SavingThrows savingThrows, int reach ) : base( size: size, hitDice: hitDice, armorClass: armorClass, damageImmunities: damageImmunities, damageResistances: damageResistances, pointOnMap: pointOnMap) { Speed = speed; Abilities = abilities; SpellCastingAbility = spellCastingAbility; SavingThrows = savingThrows; Languages = languages; Challenge = challenge; PassiveSkills = passiveSkills; Reach = reach; // Add all the "base" actions that every character has access to Actions = new List <IAction> { new UnarmedStrike(this) }; foreach (var action in actions) { Actions.Add(action); } //------------------------------------ // Calculations //------------------------------------ Initiative = Calculate.Initiative(Abilities.Dexterity.Modifier); PassivePerception = Calculate.PassivePerception(Abilities.Wisdom.Modifier); }
public PhysicalObject( Size size, Dice hitDice, int armorClass, ICollection <DamageType> damageImmunities, ICollection <DamageType> damageResistances, Point pointOnMap ) { Size = size; HitDice = hitDice; ArmorClass = armorClass; DamageImmunities = damageImmunities; DamageResistances = damageResistances; PointOnMap = pointOnMap; // HitPoints will change with each new object creation HitPoints = HitDice.Roll(); }