combat system overhaul - d20/hack-like

This commit is contained in:
Llywelwyn 2023-07-28 06:29:59 +01:00
parent 32044dbb6a
commit c169a1eae6
20 changed files with 762 additions and 292 deletions

View file

@ -59,43 +59,43 @@
"id": "equip_dagger",
"name": { "name": "dagger", "plural": "daggers" },
"renderable": { "glyph": ")", "fg": "#808080", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_MELEE"],
"effects": { "melee_power_bonus": "1" }
"flags": ["EQUIP_MELEE", "FINESSE"],
"effects": { "base_damage": "1d4"}
},
{
"id": "equip_shortsword",
"name": { "name": "shortsword", "plural": "shortswords" },
"renderable": { "glyph": ")", "fg": "#C0C0C0", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_MELEE"],
"effects": { "melee_power_bonus": "2" }
"flags": ["EQUIP_MELEE", "STRENGTH"],
"effects": { "base_damage": "1d6"}
},
{
"id": "equip_longsword",
"name": { "name": "longsword", "plural": "longswords" },
"renderable": { "glyph": ")", "fg": "#FFF8DC", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_MELEE"],
"effects": { "melee_power_bonus": "3" }
"flags": ["EQUIP_MELEE", "STRENGTH"],
"effects": { "base_damage": "1d8" }
},
{
"id": "equip_smallshield",
"name": { "name": "buckler", "plural": "bucklers" },
"renderable": { "glyph": "[", "fg": "#808080", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_SHIELD"],
"effects": { "defence_bonus": "1" }
"effects": { "ac": "1" }
},
{
"id": "equip_mediumshield",
"name": { "name": "medium shield", "plural": "medium shields" },
"renderable": { "glyph": "[", "fg": "#C0C0C0", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_SHIELD"],
"effects": { "defence_bonus": "2", "melee_power_bonus": "-1" }
"effects": { "ac": "2", "melee_power_bonus": "-1" }
},
{
"id": "equip_largeshield",
"name": { "name": "large shield", "plural": "large shields" },
"renderable": { "glyph": "[", "fg": "#FFF8DC", "bg": "#000000", "order": 2 },
"flags": ["EQUIP_SHIELD"],
"effects": { "defence_bonus": "4", "melee_power_bonus": "-2" }
"effects": { "ac": "4", "melee_power_bonus": "-2" }
},
{
"id": "wand_magicmissile",

View file

@ -3,204 +3,233 @@
"id": "npc_barkeep",
"name": "barkeep",
"renderable": { "glyph": "@", "fg": "#EE82EE", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 1, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander",
"quips": ["Drink?"]
},
{
"id": "npc_townsperson",
"name": "townsperson",
"renderable": { "glyph": "@", "fg": "#9fa86c", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander",
"quips": ["You won't catch me quipping."]
},
{
"id": "npc_drunk",
"name": "drunk",
"renderable": { "glyph": "@", "fg": "#a0a83c", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander",
"quips": ["Hic!", "H-Hic'."]
},
{
"id": "npc_fisher",
"name": "fisher",
"renderable": { "glyph": "@", "fg": "#3ca3a8", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander",
"quips": ["Placeholder."]
},
{
"id": "npc_dockworker",
"name": "dock worker",
"renderable": { "glyph": "@", "fg": "#68d8de", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 1, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander",
"quips": ["Placeholder."]
},
{
"id": "npc_priest",
"name": "priest",
"renderable": { "glyph": "@", "fg": "#FFFFFF", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 1 },
"vision_range": 4,
"ai": "bystander"
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4
},
{
"id": "npc_miner",
"name": "miner",
"renderable": { "glyph": "@", "fg": "#946123", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"vision_range": 4,
"ai": "bystander"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d8"}
]
},
{
"id": "npc_guard",
"name": "smalltown guard",
"renderable": { "glyph": "@", "fg": "#034efc", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 12, "hp": 12, "defence": 3, "power": 3 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"level": 2,
"vision_range": 4,
"ai": "bystander",
"quips": ["You wont catch me down the mine.", "I'm not paid enough for that."]
"quips": ["You wont catch me down the mine.", "I'm not paid enough for that."],
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d8"}
]
},
{
"id": "dog_little",
"name": "little dog",
"renderable": { "glyph": "d", "fg": "#FFFFFF", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 6, "hp": 6, "defence": 0, "power": 1 },
"flags": ["BYSTANDER", "BLOCKS_TILE"],
"level": 2,
"bac": 6,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d6"}
]
},
{
"id": "rat",
"name": "rat",
"renderable": { "glyph": "r", "fg": "#aa6000", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 4, "hp": 4, "defence": 0, "power": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"bac": 6,
"vision_range": 8,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d2"}
]
},
{
"id": "rat_giant",
"name": "giant rat",
"renderable": { "glyph": "r", "fg": "#bb8000", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 4, "hp": 4, "defence": 0, "power": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 2,
"bac": 7,
"vision_range": 8,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d3"}
]
},
{
"id": "dog",
"name": "dog",
"renderable": { "glyph": "d", "fg": "#EEEEEE", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 2 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 4,
"bac": 5,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d6"}
]
},
{
"id": "dog_large",
"name": "large dog",
"renderable": { "glyph": "d", "fg": "#DDDDDD", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 12, "hp": 12, "defence": 0, "power": 3 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 6,
"bac": 4,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "2d4"}
]
},
{
"id": "goblin",
"name": "goblin",
"renderable": { "glyph": "g", "fg": "#00FF00", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 6, "hp": 6, "defence": 0, "power": 2 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d4"}
]
},
{
"id": "kobold",
"name": "kobold",
"renderable": { "glyph": "k", "fg": "#AA5500", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 6, "hp": 6, "defence": 0, "power": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"vision_range": 7,
"ai": "melee"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d4"}
]
},
{
"id": "jackal",
"name": "jackal",
"renderable": { "glyph": "d", "fg": "#AA5500", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 6, "hp": 6, "defence": 0, "power": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"bac": 7,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d2"}
]
},
{
"id": "fox",
"name": "fox",
"renderable": { "glyph": "d", "fg": "#FF0000", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 4, "hp": 4, "defence": 0, "power": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"bac": 7,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d3"}
]
},
{
"id": "coyote",
"name": "coyote",
"renderable": { "glyph": "d", "fg": "#6E3215", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 2 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"bac": 7,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "1d4"}
]
},
{
"id": "wolf",
"name": "wolf",
"renderable": { "glyph": "d", "fg": "#5E4225", "bg": "#000000", "order": 1 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"bac": 4,
"vision_range": 12,
"attacks": [
{ "name": "bites", "hit_bonus": 0, "damage": "2d4"}
]
},
{
"id": "goblin_chieftain",
"name": "goblin chieftain",
"renderable": { "glyph": "G", "fg": "#00FF00", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 1, "power": 2 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 2,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d8"}
]
},
{
"id": "orc",
"name": "orc",
"renderable": { "glyph": "o", "fg": "#00FF00", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 8, "hp": 8, "defence": 0, "power": 3 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d6"}
]
},
{
"id": "orc_large",
"name": "large orc",
"renderable": { "glyph": "o", "fg": "#008000", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 12, "hp": 12, "defence": 1, "power": 3 },
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 2,
"vision_range": 12,
"ai": "melee"
"attacks": [
{ "name": "hits", "hit_bonus": 0, "damage": "1d6"}
]
},
{
"id": "ogre",
"name": "ogre",
"renderable": { "glyph": "O", "fg": "#00FF00", "bg": "#000000", "order": 1 },
"flags": ["BLOCKS_TILE"],
"stats": { "max_hp": 24, "hp": 24, "defence": 3, "power": 3 },
"vision_range": 8,
"ai": "melee"
"flags": ["MONSTER", "BLOCKS_TILE"],
"level": 5,
"bac": 5,
"vision_range": 8
}
]

View file

@ -60,10 +60,13 @@
{ "id": "orc_large", "weight": 1, "difficulty": 3},
{ "id": "goblin_chieftain", "weight": 1, "difficulty": 3},
{ "id": "dog", "weight": 1, "difficulty": 4},
{ "id": "ogre", "weight": 1, "difficulty": 4},
{ "id": "dog_large", "weight": 1, "difficulty": 5}
{ "id": "dog", "weight": 1, "difficulty": 5},
{ "id": "wolf", "weight": 2, "difficulty": 6},
{ "id": "dog_large", "weight": 1, "difficulty": 7}
]
},
{