aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/behaviors/chop_tree.yaml1
-rw-r--r--data/help/burn.yaml25
-rw-r--r--data/help/firemaking.yaml59
-rw-r--r--data/help/stoke.yaml26
-rw-r--r--data/items/ashes.yaml6
-rw-r--r--data/items/firesteel.yaml8
-rw-r--r--data/items/lighter.yaml11
-rw-r--r--data/items/logs.yaml3
-rw-r--r--data/items/magic_logs.yaml3
-rw-r--r--data/items/mahogany_logs.yaml7
-rw-r--r--data/items/maple_logs.yaml5
-rw-r--r--data/items/matches.yaml9
-rw-r--r--data/items/oak_logs.yaml7
-rw-r--r--data/items/redwood_logs.yaml7
-rw-r--r--data/items/teak_logs.yaml5
-rw-r--r--data/items/willow_logs.yaml5
-rw-r--r--data/items/yew_logs.yaml3
-rw-r--r--data/objects/fire.yaml9
-rw-r--r--data/rooms/4.yaml12
19 files changed, 202 insertions, 9 deletions
diff --git a/data/behaviors/chop_tree.yaml b/data/behaviors/chop_tree.yaml
index 9072e33..494cc1d 100644
--- a/data/behaviors/chop_tree.yaml
+++ b/data/behaviors/chop_tree.yaml
@@ -18,5 +18,6 @@ drops:
depletes: true
message: "You get some logs."
deplete_delay: 80
+exhausted_message: "The tree comes crashing down!"
respawn_message: "A new tree grows in its place."
respawn_broadcast: "A {name} grows back."
diff --git a/data/help/burn.yaml b/data/help/burn.yaml
new file mode 100644
index 0000000..63b6623
--- /dev/null
+++ b/data/help/burn.yaml
@@ -0,0 +1,25 @@
+name: "burn"
+category: "Skills"
+description: |
+ Start a fire from logs.
+
+ Usage: burn [item]
+
+ Attempts to light a fire using burnable logs. Checks for logs on the
+ ground first, then in your inventory.
+
+ Requires a fire starter tool (matches, firesteel, or lighter).
+
+ From inventory:
+ You drop a log to the ground, then try to light it.
+
+ From ground:
+ You attempt to light the log already on the ground.
+
+ After a short wait, your firemaking level is checked against the
+ log's difficulty. On success, a fire object appears in the room
+ that burns for a number of ticks based on the log type. On failure,
+ you may try again.
+
+ Only one fire can burn in a room at a time.
+ See also: help firemaking, help stoke
diff --git a/data/help/firemaking.yaml b/data/help/firemaking.yaml
new file mode 100644
index 0000000..081e10e
--- /dev/null
+++ b/data/help/firemaking.yaml
@@ -0,0 +1,59 @@
+name: "firemaking"
+category: "Skills"
+description: |
+ Start fires from logs and add fuel to keep them burning.
+
+ Usage: burn [item] - Start a fire from logs
+ stoke [item] - Add logs to an existing fire
+
+ Firemaking requires a fire starter — matches, a firesteel, or a
+ lighter — either wielded or in your inventory. Matches are consumed
+ on each use, while a firesteel lasts forever. Lighters use butane
+ (quality) that depletes per use; when empty, they stop working.
+
+ BURN — Starting a Fire
+ ----------------------
+ The burn command checks for burnable logs on the ground first, then
+ in your inventory. If the logs are in your inventory, you drop one
+ to the ground and begin making a fire. After a wait (reduced by
+ tool_speed), the game checks your firemaking level against the
+ log's difficulty:
+
+ Success → You start a fire! The fire object appears in the room
+ with a burn time based on the log used. You gain XP.
+
+ Failure → You can't seem to get the fire going. You may try again
+ (the log stays on the ground).
+
+ Only one fire can burn in a room at a time. Other players are
+ notified when a fire is started.
+
+ STOKE — Adding Fuel
+ -------------------
+ Stoke adds more logs from your inventory to an existing fire. Each
+ log extends the fire's burn time by half its burn_ticks and awards
+ firemaking XP. No skill check is needed to stoke — the XP is
+ guaranteed. Stoking continues automatically until you're out of
+ the item or the fire dies out.
+
+ SMART DEFAULTS
+ --------------
+ Running "burn" or "stoke" without specifying an item auto-selects
+ the target if only one type of burnable is available. If multiple
+ log types are present, you'll be asked "Burn what?" or "Stoke what?"
+
+ LOG TYPES
+ ---------
+ Level Log XP Burn Ticks
+ 1 Normal 40 24
+ 15 Oak 60 28
+ 30 Willow 90 32
+ 35 Teak 105 36
+ 45 Maple 135 40
+ 50 Mahogany 158 44
+ 60 Yew 202 48
+ 75 Magic 303 52
+ 90 Redwood 350 60
+
+ Enable the "depletion" toggle to see how long a fire will burn.
+ Enable the "xpdrops" toggle to see XP gains with each log.
diff --git a/data/help/stoke.yaml b/data/help/stoke.yaml
new file mode 100644
index 0000000..96e53e3
--- /dev/null
+++ b/data/help/stoke.yaml
@@ -0,0 +1,26 @@
+name: "stoke"
+category: "Skills"
+description: |
+ Add logs to an existing fire.
+
+ Usage: stoke [item]
+
+ Adds burnable logs from your inventory to a fire already burning in
+ the current room. No tool is needed to stoke.
+
+ Each log extends the fire's remaining burn time and awards guaranteed
+ firemaking XP (no skill check). Stoking continues automatically until
+ you run out of the item or the fire dies out.
+
+ Fire Type Quality Gained
+ Normal +12 ticks
+ Oak +14 ticks
+ Willow +16 ticks
+ Teak +18 ticks
+ Maple +20 ticks
+ Mahogany +22 ticks
+ Yew +24 ticks
+ Magic +26 ticks
+ Redwood +30 ticks
+
+ See also: help firemaking, help burn
diff --git a/data/items/ashes.yaml b/data/items/ashes.yaml
new file mode 100644
index 0000000..9cbe67f
--- /dev/null
+++ b/data/items/ashes.yaml
@@ -0,0 +1,6 @@
+id: ashes
+name: ashes
+aliases: ["ash"]
+description: "A pile of cold ashes. What was once ablaze is now mere dust."
+value: 1
+stackable: false
diff --git a/data/items/firesteel.yaml b/data/items/firesteel.yaml
new file mode 100644
index 0000000..0cdb354
--- /dev/null
+++ b/data/items/firesteel.yaml
@@ -0,0 +1,8 @@
+id: firesteel
+name: firesteel
+aliases: ["steel", "flint"]
+description: "A rugged firesteel that never wears out."
+value: 20
+stackable: false
+tool_type: fire
+tool_speed: 4
diff --git a/data/items/lighter.yaml b/data/items/lighter.yaml
new file mode 100644
index 0000000..17158f8
--- /dev/null
+++ b/data/items/lighter.yaml
@@ -0,0 +1,11 @@
+id: lighter
+name: lighter
+aliases: ["light"]
+description: "A reliable butane lighter."
+value: 15
+stackable: false
+equip_slot: main_hand
+tool_type: fire
+tool_speed: 4
+quality: 100
+max_quality: 100
diff --git a/data/items/logs.yaml b/data/items/logs.yaml
index 9b148ae..d838348 100644
--- a/data/items/logs.yaml
+++ b/data/items/logs.yaml
@@ -4,3 +4,6 @@ aliases: ["log", "wood"]
description: "Some regular logs, good for firemaking and fletching."
value: 2
stackable: false
+fire_level: 1
+fire_xp: 40
+burn_ticks: 24
diff --git a/data/items/magic_logs.yaml b/data/items/magic_logs.yaml
index baac96b..1cb76a9 100644
--- a/data/items/magic_logs.yaml
+++ b/data/items/magic_logs.yaml
@@ -4,3 +4,6 @@ aliases: ["logs", "magic", "log"]
description: "Some mystical magic logs."
value: 80
stackable: false
+fire_level: 75
+fire_xp: 303
+burn_ticks: 52
diff --git a/data/items/mahogany_logs.yaml b/data/items/mahogany_logs.yaml
index 87ea061..7fc3a7c 100644
--- a/data/items/mahogany_logs.yaml
+++ b/data/items/mahogany_logs.yaml
@@ -1,6 +1,9 @@
id: mahogany_logs
name: mahogany logs
aliases: ["logs", "mahogany", "log"]
-description: "Some beautiful mahogany logs."
-value: 24
+description: "Some rich mahogany logs."
+value: 20
stackable: false
+fire_level: 50
+fire_xp: 158
+burn_ticks: 44
diff --git a/data/items/maple_logs.yaml b/data/items/maple_logs.yaml
index 11f7dcd..d162471 100644
--- a/data/items/maple_logs.yaml
+++ b/data/items/maple_logs.yaml
@@ -1,6 +1,9 @@
id: maple_logs
name: maple logs
aliases: ["logs", "maple", "log"]
-description: "Some sturdy maple logs."
+description: "Some smooth maple logs."
value: 16
stackable: false
+fire_level: 45
+fire_xp: 135
+burn_ticks: 40
diff --git a/data/items/matches.yaml b/data/items/matches.yaml
new file mode 100644
index 0000000..95a8da9
--- /dev/null
+++ b/data/items/matches.yaml
@@ -0,0 +1,9 @@
+id: matches
+name: matches
+aliases: ["match"]
+description: "A small box of matches for starting fires."
+value: 5
+stackable: true
+equip_slot: main_hand
+tool_type: fire
+tool_speed: 4
diff --git a/data/items/oak_logs.yaml b/data/items/oak_logs.yaml
index 24cd0d0..2ed87a8 100644
--- a/data/items/oak_logs.yaml
+++ b/data/items/oak_logs.yaml
@@ -1,6 +1,9 @@
-id: "oak_logs"
-name: "oak logs"
+id: oak_logs
+name: oak logs
aliases: ["logs", "oak", "log"]
description: "Some sturdy oak logs."
value: 4
stackable: false
+fire_level: 15
+fire_xp: 60
+burn_ticks: 28
diff --git a/data/items/redwood_logs.yaml b/data/items/redwood_logs.yaml
index 7a2c66b..8e492c7 100644
--- a/data/items/redwood_logs.yaml
+++ b/data/items/redwood_logs.yaml
@@ -1,6 +1,9 @@
id: redwood_logs
name: redwood logs
aliases: ["logs", "redwood", "log"]
-description: "Some massive redwood logs."
-value: 120
+description: "Some rare redwood logs."
+value: 100
stackable: false
+fire_level: 90
+fire_xp: 350
+burn_ticks: 60
diff --git a/data/items/teak_logs.yaml b/data/items/teak_logs.yaml
index ac9b736..49be224 100644
--- a/data/items/teak_logs.yaml
+++ b/data/items/teak_logs.yaml
@@ -1,6 +1,9 @@
id: teak_logs
name: teak logs
aliases: ["logs", "teak", "log"]
-description: "Some fine teak logs."
+description: "Some solid teak logs."
value: 12
stackable: false
+fire_level: 35
+fire_xp: 105
+burn_ticks: 36
diff --git a/data/items/willow_logs.yaml b/data/items/willow_logs.yaml
index 1669e66..f337168 100644
--- a/data/items/willow_logs.yaml
+++ b/data/items/willow_logs.yaml
@@ -1,6 +1,9 @@
id: willow_logs
name: willow logs
aliases: ["logs", "willow", "log"]
-description: "Some weeping willow logs."
+description: "Some flexible willow logs."
value: 8
stackable: false
+fire_level: 30
+fire_xp: 90
+burn_ticks: 32
diff --git a/data/items/yew_logs.yaml b/data/items/yew_logs.yaml
index 5f1ed40..6e120b1 100644
--- a/data/items/yew_logs.yaml
+++ b/data/items/yew_logs.yaml
@@ -4,3 +4,6 @@ aliases: ["logs", "yew", "log"]
description: "Some high-quality yew logs."
value: 40
stackable: false
+fire_level: 60
+fire_xp: 202
+burn_ticks: 48
diff --git a/data/objects/fire.yaml b/data/objects/fire.yaml
new file mode 100644
index 0000000..58ccc92
--- /dev/null
+++ b/data/objects/fire.yaml
@@ -0,0 +1,9 @@
+id: fire
+name: fire
+behavior: ""
+hidden: false
+inroom_description: "A fire is burning warmly."
+removal_item: ashes
+props:
+ description: "A crackling fire."
+ quality_description: "Burning for {quality} more ticks."
diff --git a/data/rooms/4.yaml b/data/rooms/4.yaml
index f1d7d08..74bee96 100644
--- a/data/rooms/4.yaml
+++ b/data/rooms/4.yaml
@@ -8,7 +8,19 @@ exits:
west: 2
objects:
- id: tree
+ - id: tree
+ - id: tree
+ - id: tree
spawns:
- item_id: bronze_axe
quantity: 1
respawn_ticks: 60
+ - item_id: matches
+ quantity: 100
+ respawn_ticks: 120
+ - item_id: firesteel
+ quantity: 1
+ respawn_ticks: 120
+ - item_id: lighter
+ quantity: 1
+ respawn_ticks: 120