- Expand race TOML schema: 7 stats, body shape (size/weight/custom slots), natural armor and attacks with damage types, resistances, traits/disadvantages, regen multipliers, vision types, XP rate, guild compatibility - Replace equipped_weapon/equipped_armor with slot-based HashMap<String, Object> - Each race defines available equipment slots; default humanoid slots as fallback - Combat uses natural weapons/armor from race when no gear equipped - DB migration from old weapon/armor columns to equipped_json - Add Dragon race: huge body, custom slots (forelegs/wings/tail), fire breath, natural armor 8, fire immune, slow XP rate for balance - Update all existing races with expanded fields (traits, resistances, vision, regen) - Objects gain optional slot field; kind=weapon/armor still works as fallback - Update chargen to display race traits, size, natural attacks, vision - Update stats display to show equipment and natural bonuses separately - Update TESTING.md and AGENTS.md with race/slot system documentation Made-with: Cursor
66 lines
1.4 KiB
TOML
66 lines
1.4 KiB
TOML
name = "Dragon"
|
|
description = "Ancient and mighty, dragons are creatures of immense power and terrifying intellect. Their scaled bodies house furnace-hot hearts and minds sharp enough to match any scholar."
|
|
metarace = "draconic"
|
|
|
|
[stats]
|
|
strength = 4
|
|
dexterity = -2
|
|
constitution = 3
|
|
intelligence = 1
|
|
wisdom = 1
|
|
perception = 2
|
|
charisma = -1
|
|
|
|
[body]
|
|
size = "huge"
|
|
weight = 2000
|
|
slots = ["head", "neck", "torso", "forelegs", "hindlegs", "tail", "wings", "main_hand", "off_hand"]
|
|
|
|
[natural]
|
|
armor = 8
|
|
|
|
[natural.attacks]
|
|
[natural.attacks.bite]
|
|
damage = 12
|
|
type = "physical"
|
|
|
|
[natural.attacks.claw]
|
|
damage = 8
|
|
type = "physical"
|
|
|
|
[natural.attacks.tail_sweep]
|
|
damage = 6
|
|
type = "physical"
|
|
|
|
[natural.attacks.fire_breath]
|
|
damage = 15
|
|
type = "fire"
|
|
cooldown_ticks = 5
|
|
|
|
traits = ["flight", "fire_breath", "darkvision", "frightful_presence", "ancient_knowledge", "treasure_sense"]
|
|
disadvantages = ["conspicuous", "slow_leveling", "large_target", "cannot_enter_small_spaces"]
|
|
|
|
[resistances]
|
|
fire = 0.0
|
|
cold = 1.5
|
|
physical = 0.7
|
|
poison = 0.3
|
|
|
|
[regen]
|
|
hp = 1.5
|
|
mana = 1.2
|
|
endurance = 0.8
|
|
|
|
[guild_compatibility]
|
|
good = ["sorcerer", "elementalist"]
|
|
average = ["warrior", "berserker"]
|
|
poor = ["thief", "bard"]
|
|
restricted = ["monk"]
|
|
|
|
[misc]
|
|
lifespan = 5000
|
|
diet = "carnivore"
|
|
xp_rate = 0.7
|
|
natural_terrain = ["mountains", "caves", "volcanic"]
|
|
vision = ["normal", "darkvision", "infravision", "thermal"]
|