public DiceRoll GetBonus(GetBonusDto bonusDto) { var diceRoll = new DiceRoll(); var totalBonus = FixedValue.GetValueOrDefault(); if (AbilityModifyer != null) { totalBonus += bonusDto.Abilities.First(x => x.Ability.ID == AbilityModifyer.ID).GetCurrentModifier(bonusDto); } else if (ClassProgression != null && ClassProgression.Any()) { var progressions = ClassProgression.Where(x => x.AtLevel <= bonusDto.Classes.FirstOrDefault(y => y.Class.ID == x.ClassProgression.ID)?.Level).OrderByDescending(x => x.AtLevel).FirstOrDefault(); if (progressions != null) { diceRoll += progressions.Bonues; } } diceRoll.AddFixedAmount(totalBonus); if (Dice != null) { diceRoll.AddDice(Dice.GetDice()); } return(diceRoll); }
public static ClassProgression MapSeedToEntity(ClassLevelSeed classLevelSeed) { var classProgressionEntity = new ClassProgression(); MapSeedToEntity(classLevelSeed, classProgressionEntity); return(classProgressionEntity); }
public int GetAmount(GetBonusDto bonues, Guid parentAbilityId) { var totalAmount = 0; if (FixedAmount.HasValue) { totalAmount += FixedAmount.Value + (Ability == null ? 0 : bonues.Abilities.First(x => x.Ability.ID == Ability.ID).GetCurrentModifier(bonues)); } if (ClassProgression != null) { totalAmount += ClassProgression.Count(x => x.AtLevel <= bonues.Classes.First(y => y.Class.ID == x.ClassProgression.ID).Level); } if (TradeWith != null) { switch (TradeWith.ApplyTo.ApplyToType) { case BonusApplyToType.BaseAttack: totalAmount += bonues.Character.GetCurrentMaxBaseAttack(); break; default: throw new NotImplementedException("Trade not implementet"); } } return(totalAmount - bonues.Round.ActivatedAbilities.Where(x => x.AbilityId == parentAbilityId).Select(x => x.Charges).Sum()); }
public static void MapSeedToEntity(ClassLevelSeed classLevelSeed, ClassProgression classProgressionEntity) { classProgressionEntity.ArmorClassBonus = classLevelSeed.ac_bonus; classProgressionEntity.BaseAttackBonus = classLevelSeed.base_attack_bonus; classProgressionEntity.BonusSpells = classLevelSeed.bonus_spells; classProgressionEntity.CasterLevel = classLevelSeed.caster_level; classProgressionEntity.ClassName = classLevelSeed.name; classProgressionEntity.FlurryOfBlows = classLevelSeed.flurry_of_blows; classProgressionEntity.FortitudeSave = classLevelSeed.fort_save; classProgressionEntity.Id = classLevelSeed.Id; classProgressionEntity.Level = classLevelSeed.level; classProgressionEntity.PointsPerDay = classLevelSeed.points_per_day; classProgressionEntity.PowerLevel = classLevelSeed.power_level; classProgressionEntity.PowersKnown = classLevelSeed.powers_known; classProgressionEntity.Reference = classLevelSeed.reference; classProgressionEntity.ReflexSave = classLevelSeed.ref_save; classProgressionEntity.Slots0 = classLevelSeed.slots_0; classProgressionEntity.Slots1 = classLevelSeed.slots_1; classProgressionEntity.Slots2 = classLevelSeed.slots_2; classProgressionEntity.Slots3 = classLevelSeed.slots_3; classProgressionEntity.Slots4 = classLevelSeed.slots_4; classProgressionEntity.Slots5 = classLevelSeed.slots_5; classProgressionEntity.Slots6 = classLevelSeed.slots_6; classProgressionEntity.Slots7 = classLevelSeed.slots_7; classProgressionEntity.Slots8 = classLevelSeed.slots_8; classProgressionEntity.Slots9 = classLevelSeed.slots_9; classProgressionEntity.Special = classLevelSeed.special; classProgressionEntity.SpellsKnown0 = classLevelSeed.spells_known_0; classProgressionEntity.SpellsKnown1 = classLevelSeed.spells_known_1; classProgressionEntity.SpellsKnown2 = classLevelSeed.spells_known_2; classProgressionEntity.SpellsKnown3 = classLevelSeed.spells_known_3; classProgressionEntity.SpellsKnown4 = classLevelSeed.spells_known_4; classProgressionEntity.SpellsKnown5 = classLevelSeed.spells_known_5; classProgressionEntity.SpellsKnown6 = classLevelSeed.spells_known_6; classProgressionEntity.SpellsKnown7 = classLevelSeed.spells_known_7; classProgressionEntity.SpellsKnown8 = classLevelSeed.spells_known_8; classProgressionEntity.SpellsKnown9 = classLevelSeed.spells_known_9; classProgressionEntity.UnarmedDamage = classLevelSeed.unarmed_damage; classProgressionEntity.UnarmoredSpeedBonus = classLevelSeed.unarmored_speed_bonus; classProgressionEntity.WillSave = classLevelSeed.will_save; }
public static void MapModelToEntity(ClassLevelViewModel classLevel, ClassProgression classProgressionEntity) { Mapper.Map(classLevel, classProgressionEntity); }
public static ClassLevelViewModel MapEntityToModel(ClassProgression classProgressionEntity) { return(Mapper.Map <ClassLevelViewModel>(classProgressionEntity)); }