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))), )))
class Goblin(Humanoid): name = "Goblin" hit_dice = dice.D1(1) attack_bonus = AttackBonusTable.get_by_hit_dice(1) attack_sets = None base_armor_class = 11 morale = 7 movement = movement.MovementSet(walk=units.FeetPerGameTurn(30)) no_appearing = AppearingSet(dice_dungeon=dice.D4(2), dice_wild=dice.D10(6), dice_lair=dice.D10(6)) save_as = Fighter.level_table.levels[hit_dice.amount].saving_throws_set special_abilities = SpecialAbilitySet((Darkvision, )) size = Size.Small weight = units.Pound(45) xp = 10
class PolarBear(Bear): name = "Polar Bear" hit_dice = dice.D8(6) attack_bonus = AttackBonusTable.get_by_hit_dice(hit_dice.amount) attack_sets = [ AttackChain( AttackSet(Claw(dice.D6(1)), amount=2, special_properties=specialproperties.BearHug), AttackSet(Bite(dice.D10(1))) ), AttackSet(Crush(dice.D8(2))) ] base_armor_class = 14 morale = 8 movement = movement.MovementSet(walk=units.FeetPerGameTurn(40)) no_appearing = AppearingSet(dice_dungeon=dice.D1(1), dice_wild=dice.D2(1), dice_lair=dice.D2(1)) save_as = Fighter.level_table.levels[hit_dice.amount].saving_throws_set special_abilities = SpecialAbilitySet((LastBreath,)) size = Size.Large weight = units.Pound(992) xp = 500
class CaveBear(Animal): name = "Cave Bear" hit_dice = dice.D8(7) attack_bonus = AttackBonusTable.get_by_hit_dice(hit_dice.amount) attack_sets = [ AttackChain( AttackSet(Claw(dice.D8(1)), amount=2, special_properties=specialproperties.BearHug), AttackSet(Bite(dice.D6(2)))), AttackSet(Crush(dice.D8(2))) ] base_armor_class = 15 morale = 9 movement = movement.MovementSet(walk=units.FeetPerGameTurn(40)) no_appearing = AppearingSet(dice_dungeon=dice.D2(1), dice_wild=dice.D2(1), dice_lair=dice.D2(1)) save_as = Fighter.level_table.levels[hit_dice.amount].saving_throws_set special_abilities = SpecialAbilitySet((LastBreath, )) xp = 670