示例#1
0
class Bugbear(CharacterClass):
    name = "Bugbear"
    restriction_set = restrictions.RestrictionSet(
        armor=restrictions.ArmorRestrictionSet(included=(LeatherArmor, )))
    level_table = LevelTable(levels=(
        Level(
            value=-1,
            attack_bonus=1,
            experience_required=-3000,
            hit_dice=dice.D8(1),
            saving_throws_set=Fighter.level_table.get(1).saving_throws_set,
        ),
        Level(value=0,
              attack_bonus=2,
              experience_required=-1500,
              hit_dice=dice.D8(2),
              saving_throws_set=Fighter.level_table.get(1).saving_throws_set),
        Level(
            value=1,
            attack_bonus=2,
            experience_required=0,
            hit_dice=dice.D8(2),
            saving_throws_set=Fighter.level_table.get(1).saving_throws_set,
            special_ability_set=SpecialAbilitySet((
                specialabilities.BugBearStealth,
                specialabilities.MoveSilently(20), specialabilities.Hide(10))),
        )))
示例#2
0
class Gnoll(CharacterClass):
    name = "Gnoll"
    restriction_set = restrictions.RestrictionSet(
        armor=restrictions.ArmorRestrictionSet(included=(LeatherArmor, )))
    level_table = LevelTable(levels=(
        Level(value=0,
              attack_bonus=1,
              experience_required=-1500,
              hit_dice=dice.D8(1),
              saving_throws_set=Fighter.level_table.get(1).saving_throws_set),
        Level(
            value=1,
            attack_bonus=2,
            experience_required=0,
            hit_dice=dice.D8(2),
            saving_throws_set=Fighter.level_table.get(1).saving_throws_set,
        )))
示例#3
0
class Thief(CharacterClass):
    name = "Thief"
    restriction_set = restrictions.RestrictionSet(
        ability_score=restrictions.AbilityScoreRestrictionSet(
            minimum_set=abilityscores.AbilityScoreSet(dexterity=9)),
        armor=restrictions.ArmorRestrictionSet(
            included=(armor.types.Clothing, armor.types.LightArmor)))
    special_abilities = specialabilities.SpecialAbilitySet(
        (specialabilities.SneakAttack))
    level_table = LevelTable(
        levels=(Level(value=1,
                      attack_bonus=1,
                      experience_required=0,
                      hit_dice=dice.D4(1),
                      saving_throws_set=SavingThrowSet(death_poison=13,
                                                       dragon_breath=16,
                                                       paralysis_stone=13,
                                                       spells=15,
                                                       wands=14),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(80),
                          specialabilities.Hide(10),
                          specialabilities.Listen(30),
                          specialabilities.MoveSilently(25),
                          specialabilities.OpenLock(25),
                          specialabilities.RemoveTraps(20),
                          specialabilities.PickPockets(30),
                      ))),
                Level(value=2,
                      attack_bonus=1,
                      experience_required=1500,
                      hit_dice=dice.D4(2),
                      saving_throws_set=SavingThrowSet(death_poison=12,
                                                       dragon_breath=15,
                                                       paralysis_stone=12,
                                                       spells=14,
                                                       wands=14),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(81),
                          specialabilities.Hide(15),
                          specialabilities.Listen(34),
                          specialabilities.MoveSilently(30),
                          specialabilities.OpenLock(30),
                          specialabilities.RemoveTraps(25),
                          specialabilities.PickPockets(35),
                      ))),
                Level(value=3,
                      attack_bonus=2,
                      experience_required=3000,
                      hit_dice=dice.D4(3),
                      saving_throws_set=SavingThrowSet(death_poison=12,
                                                       dragon_breath=15,
                                                       paralysis_stone=12,
                                                       spells=14,
                                                       wands=14),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(82),
                          specialabilities.Hide(20),
                          specialabilities.Listen(38),
                          specialabilities.MoveSilently(35),
                          specialabilities.OpenLock(35),
                          specialabilities.RemoveTraps(30),
                          specialabilities.PickPockets(40),
                      ))),
                Level(value=4,
                      attack_bonus=2,
                      experience_required=6000,
                      hit_dice=dice.D4(4),
                      saving_throws_set=SavingThrowSet(death_poison=11,
                                                       dragon_breath=14,
                                                       paralysis_stone=12,
                                                       spells=13,
                                                       wands=13),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(83),
                          specialabilities.Hide(25),
                          specialabilities.Listen(42),
                          specialabilities.MoveSilently(40),
                          specialabilities.OpenLock(40),
                          specialabilities.RemoveTraps(35),
                          specialabilities.PickPockets(45),
                      ))),
                Level(value=5,
                      attack_bonus=3,
                      experience_required=12000,
                      hit_dice=dice.D4(5),
                      saving_throws_set=SavingThrowSet(death_poison=11,
                                                       dragon_breath=14,
                                                       paralysis_stone=12,
                                                       spells=13,
                                                       wands=13),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(84),
                          specialabilities.Hide(30),
                          specialabilities.Listen(46),
                          specialabilities.MoveSilently(45),
                          specialabilities.OpenLock(45),
                          specialabilities.RemoveTraps(40),
                          specialabilities.PickPockets(50),
                      ))),
                Level(value=6,
                      attack_bonus=3,
                      experience_required=24000,
                      hit_dice=dice.D4(6),
                      saving_throws_set=SavingThrowSet(death_poison=11,
                                                       dragon_breath=13,
                                                       paralysis_stone=11,
                                                       spells=13,
                                                       wands=13),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(85),
                          specialabilities.Hide(35),
                          specialabilities.Listen(50),
                          specialabilities.MoveSilently(50),
                          specialabilities.OpenLock(50),
                          specialabilities.RemoveTraps(45),
                          specialabilities.PickPockets(55),
                      ))),
                Level(value=7,
                      attack_bonus=4,
                      experience_required=48000,
                      hit_dice=dice.D4(7),
                      saving_throws_set=SavingThrowSet(death_poison=11,
                                                       dragon_breath=13,
                                                       paralysis_stone=11,
                                                       spells=13,
                                                       wands=13),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(86),
                          specialabilities.Hide(40),
                          specialabilities.Listen(54),
                          specialabilities.MoveSilently(55),
                          specialabilities.OpenLock(55),
                          specialabilities.RemoveTraps(50),
                          specialabilities.PickPockets(60),
                      ))),
                Level(value=8,
                      attack_bonus=4,
                      experience_required=90000,
                      hit_dice=dice.D4(8),
                      saving_throws_set=SavingThrowSet(death_poison=10,
                                                       dragon_breath=12,
                                                       paralysis_stone=11,
                                                       spells=12,
                                                       wands=12),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(87),
                          specialabilities.Hide(45),
                          specialabilities.Listen(58),
                          specialabilities.MoveSilently(60),
                          specialabilities.OpenLock(60),
                          specialabilities.RemoveTraps(55),
                          specialabilities.PickPockets(65),
                      ))),
                Level(value=9,
                      attack_bonus=5,
                      experience_required=180000,
                      hit_dice=dice.D4(9),
                      saving_throws_set=SavingThrowSet(death_poison=10,
                                                       dragon_breath=12,
                                                       paralysis_stone=11,
                                                       spells=12,
                                                       wands=12),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(88),
                          specialabilities.Hide(50),
                          specialabilities.Listen(62),
                          specialabilities.MoveSilently(65),
                          specialabilities.OpenLock(65),
                          specialabilities.RemoveTraps(60),
                          specialabilities.PickPockets(70),
                      ))),
                Level(value=10,
                      attack_bonus=5,
                      experience_required=270000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=2,
                      saving_throws_set=SavingThrowSet(death_poison=9,
                                                       dragon_breath=11,
                                                       paralysis_stone=10,
                                                       spells=11,
                                                       wands=12),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(89),
                          specialabilities.Hide(53),
                          specialabilities.Listen(65),
                          specialabilities.MoveSilently(68),
                          specialabilities.OpenLock(68),
                          specialabilities.RemoveTraps(63),
                          specialabilities.PickPockets(74),
                      ))),
                Level(value=11,
                      attack_bonus=5,
                      experience_required=360000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=4,
                      saving_throws_set=SavingThrowSet(death_poison=9,
                                                       dragon_breath=11,
                                                       paralysis_stone=10,
                                                       spells=11,
                                                       wands=12),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(90),
                          specialabilities.Hide(56),
                          specialabilities.Listen(68),
                          specialabilities.MoveSilently(71),
                          specialabilities.OpenLock(71),
                          specialabilities.RemoveTraps(66),
                          specialabilities.PickPockets(78),
                      ))),
                Level(value=12,
                      attack_bonus=6,
                      experience_required=450000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=6,
                      saving_throws_set=SavingThrowSet(death_poison=9,
                                                       dragon_breath=10,
                                                       paralysis_stone=10,
                                                       spells=11,
                                                       wands=10),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(91),
                          specialabilities.Hide(59),
                          specialabilities.Listen(71),
                          specialabilities.MoveSilently(74),
                          specialabilities.OpenLock(74),
                          specialabilities.RemoveTraps(69),
                          specialabilities.PickPockets(82),
                      ))),
                Level(value=13,
                      attack_bonus=6,
                      experience_required=540000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=8,
                      saving_throws_set=SavingThrowSet(death_poison=9,
                                                       dragon_breath=10,
                                                       paralysis_stone=10,
                                                       spells=11,
                                                       wands=10),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(92),
                          specialabilities.Hide(62),
                          specialabilities.Listen(74),
                          specialabilities.MoveSilently(77),
                          specialabilities.OpenLock(77),
                          specialabilities.RemoveTraps(72),
                          specialabilities.PickPockets(86),
                      ))),
                Level(value=14,
                      attack_bonus=6,
                      experience_required=630000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=10,
                      saving_throws_set=SavingThrowSet(death_poison=8,
                                                       dragon_breath=9,
                                                       paralysis_stone=9,
                                                       spells=10,
                                                       wands=10),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(93),
                          specialabilities.Hide(65),
                          specialabilities.Listen(77),
                          specialabilities.MoveSilently(80),
                          specialabilities.OpenLock(80),
                          specialabilities.RemoveTraps(75),
                          specialabilities.PickPockets(90),
                      ))),
                Level(value=15,
                      attack_bonus=7,
                      experience_required=720000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=12,
                      saving_throws_set=SavingThrowSet(death_poison=8,
                                                       dragon_breath=9,
                                                       paralysis_stone=9,
                                                       spells=10,
                                                       wands=10),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(94),
                          specialabilities.Hide(68),
                          specialabilities.Listen(80),
                          specialabilities.MoveSilently(83),
                          specialabilities.OpenLock(83),
                          specialabilities.RemoveTraps(78),
                          specialabilities.PickPockets(94),
                      ))),
                Level(value=16,
                      attack_bonus=7,
                      experience_required=810000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=14,
                      saving_throws_set=SavingThrowSet(death_poison=7,
                                                       dragon_breath=8,
                                                       paralysis_stone=9,
                                                       spells=9,
                                                       wands=9),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(95),
                          specialabilities.Hide(69),
                          specialabilities.Listen(83),
                          specialabilities.MoveSilently(85),
                          specialabilities.OpenLock(84),
                          specialabilities.RemoveTraps(79),
                          specialabilities.PickPockets(95),
                      ))),
                Level(value=17,
                      attack_bonus=7,
                      experience_required=900000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=16,
                      saving_throws_set=SavingThrowSet(death_poison=7,
                                                       dragon_breath=8,
                                                       paralysis_stone=9,
                                                       spells=9,
                                                       wands=9),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(96),
                          specialabilities.Hide(70),
                          specialabilities.Listen(86),
                          specialabilities.MoveSilently(87),
                          specialabilities.OpenLock(85),
                          specialabilities.RemoveTraps(80),
                          specialabilities.PickPockets(96),
                      ))),
                Level(value=18,
                      attack_bonus=8,
                      experience_required=990000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=18,
                      saving_throws_set=SavingThrowSet(death_poison=7,
                                                       dragon_breath=7,
                                                       paralysis_stone=8,
                                                       spells=9,
                                                       wands=9),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(97),
                          specialabilities.Hide(71),
                          specialabilities.Listen(89),
                          specialabilities.MoveSilently(89),
                          specialabilities.OpenLock(86),
                          specialabilities.RemoveTraps(81),
                          specialabilities.PickPockets(97),
                      ))),
                Level(value=19,
                      attack_bonus=8,
                      experience_required=1080000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=20,
                      saving_throws_set=SavingThrowSet(death_poison=7,
                                                       dragon_breath=7,
                                                       paralysis_stone=8,
                                                       spells=9,
                                                       wands=9),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(98),
                          specialabilities.Hide(72),
                          specialabilities.Listen(92),
                          specialabilities.MoveSilently(91),
                          specialabilities.OpenLock(87),
                          specialabilities.RemoveTraps(82),
                          specialabilities.PickPockets(98),
                      ))),
                Level(value=20,
                      attack_bonus=8,
                      experience_required=1170000,
                      hit_dice=dice.D4(9),
                      hit_dice_flat_bonus=22,
                      saving_throws_set=SavingThrowSet(death_poison=6,
                                                       dragon_breath=6,
                                                       paralysis_stone=8,
                                                       spells=8,
                                                       wands=8),
                      special_ability_set=specialabilities.SpecialAbilitySet((
                          specialabilities.ClimbWalls(99),
                          specialabilities.Hide(73),
                          specialabilities.Listen(95),
                          specialabilities.MoveSilently(93),
                          specialabilities.OpenLock(88),
                          specialabilities.RemoveTraps(83),
                          specialabilities.PickPockets(99),
                      )))))
示例#4
0
class MagicUser(CharacterClass):
    name = "Magic-User"
    restriction_set = restrictions.RestrictionSet(
        ability_score=restrictions.AbilityScoreRestrictionSet(
            minimum_set=abilityscores.AbilityScoreSet(intelligence=9)
        ),
        armor=restrictions.ArmorRestrictionSet(included=(armor.types.Clothing, ), shields=False),
        weapons=restrictions.WeaponRestrictionSet(
            included=(
                weapons.types.Dagger,
                weapons.types.Cudgel,
                weapons.types.WalkingStaff,
            )
        )
    )
    special_abilities = specialabilities.SpecialAbilitySet(
        special_abilities=(
            specialabilities.ArcaneCaster,
            specialabilities.ReadMagic
        )
    )
    level_table = LevelTable(
        levels=(
            Level(
                value=1,
                attack_bonus=1,
                experience_required=0,
                hit_dice=dice.D4(1),
                saving_throws_set=SavingThrowSet(
                    death_poison=13,
                    dragon_breath=16,
                    paralysis_stone=13,
                    spells=15,
                    wands=14
                ),
                spell_slots_set=SpellSlotSet(level_1=1)
            ),
            Level(
                value=2,
                attack_bonus=1,
                experience_required=2500,
                hit_dice=dice.D4(2),
                saving_throws_set=SavingThrowSet(
                    death_poison=13,
                    dragon_breath=15,
                    paralysis_stone=13,
                    spells=14,
                    wands=14
                ),
                spell_slots_set=SpellSlotSet(level_1=2)
            ),
            Level(
                value=3,
                attack_bonus=1,
                experience_required=5000,
                hit_dice=dice.D4(3),
                saving_throws_set=SavingThrowSet(
                    death_poison=13,
                    dragon_breath=15,
                    paralysis_stone=13,
                    spells=14,
                    wands=14
                ),
                spell_slots_set=SpellSlotSet(level_1=2, level_2=1)
            ),
            Level(
                value=4,
                attack_bonus=2,
                experience_required=10000,
                hit_dice=dice.D4(4),
                saving_throws_set=SavingThrowSet(
                    death_poison=12,
                    dragon_breath=15,
                    paralysis_stone=12,
                    spells=13,
                    wands=13
                ),
                spell_slots_set=SpellSlotSet(level_1=2, level_2=2)
            ),
            Level(
                value=5,
                attack_bonus=2,
                experience_required=20000,
                hit_dice=dice.D4(5),
                saving_throws_set=SavingThrowSet(
                    death_poison=12,
                    dragon_breath=15,
                    paralysis_stone=12,
                    spells=13,
                    wands=13
                ),
                spell_slots_set=SpellSlotSet(level_1=2, level_2=2, level_3=1)
            ),
            Level(
                value=6,
                attack_bonus=3,
                experience_required=40000,
                hit_dice=dice.D4(6),
                saving_throws_set=SavingThrowSet(
                    death_poison=12,
                    dragon_breath=14,
                    paralysis_stone=11,
                    spells=13,
                    wands=12
                ),
                spell_slots_set=SpellSlotSet(level_1=3, level_2=2, level_3=2)
            ),
            Level(
                value=7,
                attack_bonus=3,
                experience_required=80000,
                hit_dice=dice.D4(7),
                saving_throws_set=SavingThrowSet(
                    death_poison=12,
                    dragon_breath=14,
                    paralysis_stone=11,
                    spells=13,
                    wands=12
                ),
                spell_slots_set=SpellSlotSet(level_1=3, level_2=2, level_3=2, level_4=1)
            ),
            Level(
                value=8,
                attack_bonus=3,
                experience_required=150000,
                hit_dice=dice.D4(8),
                saving_throws_set=SavingThrowSet(
                    death_poison=11,
                    dragon_breath=14,
                    paralysis_stone=10,
                    spells=12,
                    wands=11
                ),
                spell_slots_set=SpellSlotSet(level_1=3, level_2=3, level_3=2, level_4=2)
            ),
            Level(
                value=9,
                attack_bonus=4,
                experience_required=300000,
                hit_dice=dice.D4(9),
                saving_throws_set=SavingThrowSet(
                    death_poison=11,
                    dragon_breath=14,
                    paralysis_stone=10,
                    spells=12,
                    wands=11
                ),
                spell_slots_set=SpellSlotSet(level_1=3, level_2=3, level_3=2, level_4=2, level_5=1)
            ),
            Level(
                value=10,
                attack_bonus=4,
                experience_required=450000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=1,
                saving_throws_set=SavingThrowSet(
                    death_poison=11,
                    dragon_breath=13,
                    paralysis_stone=9,
                    spells=11,
                    wands=10
                ),
                spell_slots_set=SpellSlotSet(level_1=4, level_2=3, level_3=3, level_4=2, level_5=2)
            ),
            Level(
                value=11,
                attack_bonus=4,
                experience_required=600000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=2,
                saving_throws_set=SavingThrowSet(
                    death_poison=11,
                    dragon_breath=13,
                    paralysis_stone=9,
                    spells=11,
                    wands=10
                ),
                spell_slots_set=SpellSlotSet(level_1=4, level_2=4, level_3=3, level_4=2, level_5=2, level_6=1)
            ),
            Level(
                value=12,
                attack_bonus=4,
                experience_required=750000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=3,
                saving_throws_set=SavingThrowSet(
                    death_poison=10,
                    dragon_breath=13,
                    paralysis_stone=9,
                    spells=11,
                    wands=10
                ),
                spell_slots_set=SpellSlotSet(level_1=4, level_2=4, level_3=3, level_4=3, level_5=2, level_6=2)
            ),
            Level(
                value=13,
                attack_bonus=5,
                experience_required=900000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=4,
                saving_throws_set=SavingThrowSet(
                    death_poison=10,
                    dragon_breath=13,
                    paralysis_stone=9,
                    spells=11,
                    wands=10
                ),
                spell_slots_set=SpellSlotSet(level_1=4, level_2=4, level_3=4, level_4=3, level_5=2, level_6=2)
            ),
            Level(
                value=14,
                attack_bonus=5,
                experience_required=1050000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=5,
                saving_throws_set=SavingThrowSet(
                    death_poison=10,
                    dragon_breath=12,
                    paralysis_stone=8,
                    spells=10,
                    wands=9
                ),
                spell_slots_set=SpellSlotSet(level_1=4, level_2=4, level_3=4, level_4=3, level_5=3, level_6=2)
            ),
            Level(
                value=15,
                attack_bonus=5,
                experience_required=1200000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=6,
                saving_throws_set=SavingThrowSet(
                    death_poison=10,
                    dragon_breath=12,
                    paralysis_stone=8,
                    spells=10,
                    wands=9
                ),
                spell_slots_set=SpellSlotSet(level_1=5, level_2=4, level_3=4, level_4=3, level_5=3, level_6=2)
            ),
            Level(
                value=16,
                attack_bonus=6,
                experience_required=1350000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=7,
                saving_throws_set=SavingThrowSet(
                    death_poison=9,
                    dragon_breath=12,
                    paralysis_stone=7,
                    spells=9,
                    wands=8
                ),
                spell_slots_set=SpellSlotSet(level_1=5, level_2=5, level_3=4, level_4=3, level_5=3, level_6=2)
            ),
            Level(
                value=17,
                attack_bonus=6,
                experience_required=1500000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=8,
                saving_throws_set=SavingThrowSet(
                    death_poison=9,
                    dragon_breath=12,
                    paralysis_stone=7,
                    spells=9,
                    wands=8
                ),
                spell_slots_set=SpellSlotSet(level_1=5, level_2=5, level_3=4, level_4=4, level_5=3, level_6=3)
            ),
            Level(
                value=18,
                attack_bonus=6,
                experience_required=1650000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=9,
                saving_throws_set=SavingThrowSet(
                    death_poison=9,
                    dragon_breath=11,
                    paralysis_stone=6,
                    spells=9,
                    wands=7
                ),
                spell_slots_set=SpellSlotSet(level_1=6, level_2=5, level_3=4, level_4=4, level_5=3, level_6=3)
            ),
            Level(
                value=19,
                attack_bonus=7,
                experience_required=1800000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=10,
                saving_throws_set=SavingThrowSet(
                    death_poison=9,
                    dragon_breath=11,
                    paralysis_stone=6,
                    spells=9,
                    wands=7
                ),
                spell_slots_set=SpellSlotSet(level_1=6, level_2=5, level_3=5, level_4=4, level_5=3, level_6=3)
            ),
            Level(
                value=20,
                attack_bonus=7,
                experience_required=1950000,
                hit_dice=dice.D4(9),
                hit_dice_flat_bonus=11,
                saving_throws_set=SavingThrowSet(
                    death_poison=8,
                    dragon_breath=11,
                    paralysis_stone=5,
                    spells=8,
                    wands=6
                ),
                spell_slots_set=SpellSlotSet(level_1=6, level_2=5, level_3=5, level_4=4, level_5=4, level_6=3)
            )
        )
    )