diff options
Diffstat (limited to 'worldbuilding_guide')
| -rw-r--r-- | worldbuilding_guide/items.md | 83 | ||||
| -rw-r--r-- | worldbuilding_guide/mobs.md | 56 |
2 files changed, 134 insertions, 5 deletions
diff --git a/worldbuilding_guide/items.md b/worldbuilding_guide/items.md index 0a4592b..a1ca8c1 100644 --- a/worldbuilding_guide/items.md +++ b/worldbuilding_guide/items.md @@ -9,13 +9,88 @@ description: "A sturdy bronze pickaxe." value: 10 stackable: false equip_slot: main_hand # optional — where it equips -weapon_type: melee # optional — melee or ranged -stats: # optional — combat bonuses - attack_bonus: 2 - strength_bonus: 1 +weapon_type: melee # optional — melee, ranged, or science +attack_type: stab # stab/slash/crush/ranged/science — determines accuracy type +stats: # optional — per-type combat bonuses + stab_attack: 4 + slash_attack: -2 + crush_attack: 2 + strength_bonus: 3 speed: 5 # ticks between attacks tool_type: pickaxe # used by gather behaviors that require "tool: pickaxe" tool_speed: 2 # reduces gather wait time +requirements: # optional — skill levels needed to equip + attack: 1 +``` + +### Equipment Stats (ItemStats) + +Weapons have per-type **attack bonuses** — these determine accuracy based on the weapon's `attack_type`: + +| Field | Description | +|---|---| +| `stab_attack` | Accuracy bonus for stab attacks | +| `slash_attack` | Accuracy bonus for slash attacks | +| `crush_attack` | Accuracy bonus for crush attacks | +| `science_attack` | Accuracy bonus for science attacks | +| `ranged_attack` | Accuracy bonus for ranged attacks | + +Armor has per-type **defense bonuses** — the mob's `attack_type` determines which defense is used: + +| Field | Description | +|---|---| +| `stab_defense` | Defense vs stab attacks | +| `slash_defense` | Defense vs slash attacks | +| `crush_defense` | Defense vs crush attacks | +| `science_defense` | Defense vs science attacks (negative on metal armor) | +| `ranged_defense` | Defense vs ranged attacks | + +Other damage/utility bonuses: + +| Field | Description | +|---|---| +| `strength_bonus` | Melee max hit bonus | +| `ranged_strength` | Ranged max hit bonus (on ammo) | +| `science_damage` | Science max hit bonus | +| `technology_bonus` | Reduces tech battery drain rate | + +### Attack Type + +Weapons should always set `attack_type`. Common mappings: + +| Category | attack_type | +|---|---| +| Swords | slash | +| Daggers | stab | +| Axes | slash | +| Pickaxes | stab | +| Bows | ranged | +| Unarmed | crush (default) | + +### Equipment Requirements + +Higher-tier equipment requires skill levels to equip: + +```yaml +requirements: + attack: 20 # melee weapons + defense: 20 # armor + ranged: 30 # ranged weapons/armor +``` + +Standard tiers: bronze/iron (none), steel (5), black (10), mithril (20), adamant (30), rune (40), dragon (60). + +### Ranged Ammo + +Arrows and bolts use `ranged_strength` for damage. Accuracy comes from the bow: + +```yaml +id: iron_arrow +name: iron arrow +stackable: true +equip_slot: ammo +stats: + ranged_strength: 10 ``` ### Color diff --git a/worldbuilding_guide/mobs.md b/worldbuilding_guide/mobs.md index a025e86..55c41b0 100644 --- a/worldbuilding_guide/mobs.md +++ b/worldbuilding_guide/mobs.md @@ -1,6 +1,6 @@ ## Mobs -Basic combat mob: +Basic combat mob with per-type defense bonuses: ```yaml id: "man" name: "man" @@ -12,6 +12,12 @@ hp: 7 speed: 5 aggressive: false respawn_ticks: 30 +attack_type: crush # stab/slash/crush/ranged/science (default: crush) +stab_defense: 0 # per-type defense bonuses +slash_defense: 0 +crush_defense: 0 +science_defense: 0 +ranged_defense: 0 drops: remains: "bones" # always dropped on death loot: @@ -28,6 +34,46 @@ combat_descriptions: - "is engaged in a fight to the death with %s" ``` +### Aggressive Mobs + +Mobs with `aggressive: true` auto-attack players entering their room (1-tick delay). Only aggros if the player's combat level is at most double the mob's combat level. Checked on room enter and login. + +```yaml +id: goblin +name: goblin +aggressive: true # attacks players on sight +attack: 1 +strength: 3 +defense: 3 +hp: 12 +attack_type: slash +attack_bonus: 3 # equipment-equivalent attack bonus for mob's attack roll +strength_bonus: 2 # equipment-equivalent strength bonus for mob's max hit +stab_defense: 4 +slash_defense: 3 +crush_defense: -2 # weak to crush — negative defense is valid +science_defense: 0 +ranged_defense: 3 +``` + +### Mob Attack/Defense Fields + +| Field | Description | +|---|---| +| `attack` | Attack level (base accuracy) | +| `strength` | Strength level (base max hit) | +| `defense` | Defense level (base defense) | +| `hp` | Hit points | +| `ranged` | Ranged level (for ranged/science mobs) | +| `science` | Science level | +| `attack_bonus` | Equipment-equivalent attack bonus (added to attack roll) | +| `strength_bonus` | Equipment-equivalent strength bonus (added to max hit) | +| `attack_type` | Determines which player defense is used against this mob | +| `stab_defense` through `ranged_defense` | Per-type defense bonuses | +| `weakness` | Elemental weakness (solar/hydro/eco/bio) — for future Science combat | + +### Protected/Unique Mobs + Mob with a behavior — can be talked to, toggled, etc: ```yaml id: "guard" @@ -42,6 +88,14 @@ hp: 30 speed: 5 aggressive: false respawn_ticks: 60 +attack_type: slash +attack_bonus: 8 +strength_bonus: 6 +stab_defense: 12 +slash_defense: 15 +crush_defense: 10 +science_defense: -5 +ranged_defense: 12 idle_descriptions: - "scans the area with a watchful eye" - "adjusts the grip on his weapon" |
