aboutsummaryrefslogtreecommitdiff
path: root/worldbuilding_guide
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-19 02:40:22 -0400
committerhistoria <[not public]>2026-06-19 02:40:22 -0400
commit2ae4a052fd1c15c3c6ba0f1dd324d896371aaffc (patch)
tree3caef60f71a462b7e7ace668053e1f02fb61db15 /worldbuilding_guide
parent86aec0e14eb6fec0a39d742bab1761dad8d7012c (diff)
downloadthehouseoficarus-2ae4a052fd1c15c3c6ba0f1dd324d896371aaffc.tar.gz
feat: rough technology skill added
Diffstat (limited to 'worldbuilding_guide')
-rw-r--r--worldbuilding_guide/items.md83
-rw-r--r--worldbuilding_guide/mobs.md56
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"