Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public static ClassProgression MapSeedToEntity(ClassLevelSeed classLevelSeed)
        {
            var classProgressionEntity = new ClassProgression();

            MapSeedToEntity(classLevelSeed, classProgressionEntity);
            return(classProgressionEntity);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 public static void MapModelToEntity(ClassLevelViewModel classLevel, ClassProgression classProgressionEntity)
 {
     Mapper.Map(classLevel, classProgressionEntity);
 }
Ejemplo n.º 6
0
 public static ClassLevelViewModel MapEntityToModel(ClassProgression classProgressionEntity)
 {
     return(Mapper.Map <ClassLevelViewModel>(classProgressionEntity));
 }