aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/courses/reactor.yaml16
-rw-r--r--data/courses/rooftop.yaml14
-rw-r--r--data/courses/vent_shaft.yaml12
-rw-r--r--data/hazards/solar_radiation.yaml12
-rw-r--r--data/help/combat.yaml2
-rw-r--r--data/help/drink.yaml2
-rw-r--r--data/help/prompt.yaml2
-rw-r--r--data/help/style.yaml2
-rw-r--r--data/items/consumables/stim_potion.yaml2
-rw-r--r--data/items/consumables/super_stim.yaml2
-rw-r--r--data/items/equipment/adamant_dagger.yaml2
-rw-r--r--data/items/equipment/adamant_sword.yaml2
-rw-r--r--data/items/equipment/black_axe.yaml2
-rw-r--r--data/items/equipment/dragon_axe.yaml2
-rw-r--r--data/items/equipment/mithril_dagger.yaml2
-rw-r--r--data/items/equipment/mithril_sword.yaml2
-rw-r--r--data/items/equipment/rune_dagger.yaml2
-rw-r--r--data/items/equipment/rune_sword.yaml2
-rw-r--r--data/items/equipment/steel_dagger.yaml2
-rw-r--r--data/items/equipment/steel_sword.yaml2
-rw-r--r--data/items/tools/adamant_axe.yaml2
-rw-r--r--data/items/tools/adamant_pickaxe.yaml2
-rw-r--r--data/items/tools/black_pickaxe.yaml2
-rw-r--r--data/items/tools/dragon_pickaxe.yaml2
-rw-r--r--data/items/tools/mithril_axe.yaml2
-rw-r--r--data/items/tools/mithril_pickaxe.yaml2
-rw-r--r--data/items/tools/rune_axe.yaml2
-rw-r--r--data/items/tools/rune_pickaxe.yaml2
-rw-r--r--data/items/tools/steel_axe.yaml2
-rw-r--r--data/items/tools/steel_pickaxe.yaml2
-rw-r--r--data/mobs/solar_panel_frame.yaml34
-rw-r--r--data/objects/1002_crowd.yaml18
-rw-r--r--data/objects/1002_pilot.yaml10
-rw-r--r--data/objects/1002_shuttle.yaml9
-rw-r--r--data/rooms/example/agility/99999200.yaml (renamed from data/rooms/agility/200.yaml)10
-rw-r--r--data/rooms/example/agility/99999201.yaml (renamed from data/rooms/agility/201.yaml)4
-rw-r--r--data/rooms/example/agility/99999202.yaml (renamed from data/rooms/agility/202.yaml)4
-rw-r--r--data/rooms/example/agility/99999203.yaml (renamed from data/rooms/agility/203.yaml)4
-rw-r--r--data/rooms/example/agility/99999204.yaml (renamed from data/rooms/agility/204.yaml)4
-rw-r--r--data/rooms/example/agility/99999205.yaml (renamed from data/rooms/agility/205.yaml)4
-rw-r--r--data/rooms/example/agility/99999210.yaml (renamed from data/rooms/agility/210.yaml)4
-rw-r--r--data/rooms/example/agility/99999211.yaml (renamed from data/rooms/agility/211.yaml)4
-rw-r--r--data/rooms/example/agility/99999212.yaml (renamed from data/rooms/agility/212.yaml)4
-rw-r--r--data/rooms/example/agility/99999213.yaml (renamed from data/rooms/agility/213.yaml)4
-rw-r--r--data/rooms/example/agility/99999214.yaml (renamed from data/rooms/agility/214.yaml)4
-rw-r--r--data/rooms/example/agility/99999215.yaml (renamed from data/rooms/agility/215.yaml)4
-rw-r--r--data/rooms/example/agility/99999220.yaml (renamed from data/rooms/agility/220.yaml)4
-rw-r--r--data/rooms/example/agility/99999221.yaml (renamed from data/rooms/agility/221.yaml)4
-rw-r--r--data/rooms/example/agility/99999222.yaml (renamed from data/rooms/agility/222.yaml)4
-rw-r--r--data/rooms/example/agility/99999223.yaml (renamed from data/rooms/agility/223.yaml)4
-rw-r--r--data/rooms/example/agility/99999224.yaml (renamed from data/rooms/agility/224.yaml)4
-rw-r--r--data/rooms/example/agility/99999225.yaml (renamed from data/rooms/agility/225.yaml)4
-rw-r--r--data/rooms/example/agility/99999226.yaml (renamed from data/rooms/agility/226.yaml)4
-rw-r--r--data/rooms/example/player_housing/99999300.yaml (renamed from data/rooms/player_housing/300.yaml)6
-rw-r--r--data/rooms/example/player_housing/99999301.yaml (renamed from data/rooms/player_housing/301.yaml)4
-rw-r--r--data/rooms/example/town/999991.yaml (renamed from data/rooms/town/1.yaml)10
-rw-r--r--data/rooms/example/town/9999910.yaml (renamed from data/rooms/town/10.yaml)6
-rw-r--r--data/rooms/example/town/9999911.yaml (renamed from data/rooms/town/11.yaml)6
-rw-r--r--data/rooms/example/town/9999912.yaml (renamed from data/rooms/town/12.yaml)6
-rw-r--r--data/rooms/example/town/9999913.yaml (renamed from data/rooms/town/13.yaml)6
-rw-r--r--data/rooms/example/town/9999914.yaml (renamed from data/rooms/town/14.yaml)6
-rw-r--r--data/rooms/example/town/9999915.yaml (renamed from data/rooms/town/15.yaml)8
-rw-r--r--data/rooms/example/town/9999916.yaml (renamed from data/rooms/town/16.yaml)8
-rw-r--r--data/rooms/example/town/9999917.yaml (renamed from data/rooms/town/17.yaml)8
-rw-r--r--data/rooms/example/town/9999918.yaml (renamed from data/rooms/town/18.yaml)6
-rw-r--r--data/rooms/example/town/9999919.yaml (renamed from data/rooms/town/19.yaml)6
-rw-r--r--data/rooms/example/town/999992.yaml (renamed from data/rooms/town/2.yaml)8
-rw-r--r--data/rooms/example/town/9999920.yaml (renamed from data/rooms/town/20.yaml)6
-rw-r--r--data/rooms/example/town/9999921.yaml (renamed from data/rooms/town/21.yaml)4
-rw-r--r--data/rooms/example/town/9999922.yaml (renamed from data/rooms/town/22.yaml)6
-rw-r--r--data/rooms/example/town/9999923.yaml (renamed from data/rooms/town/23.yaml)6
-rw-r--r--data/rooms/example/town/9999924.yaml (renamed from data/rooms/town/24.yaml)6
-rw-r--r--data/rooms/example/town/9999925.yaml (renamed from data/rooms/town/25.yaml)6
-rw-r--r--data/rooms/example/town/9999926.yaml (renamed from data/rooms/town/26.yaml)6
-rw-r--r--data/rooms/example/town/9999927.yaml (renamed from data/rooms/town/27.yaml)6
-rw-r--r--data/rooms/example/town/9999928.yaml (renamed from data/rooms/town/28.yaml)4
-rw-r--r--data/rooms/example/town/999993.yaml (renamed from data/rooms/town/3.yaml)4
-rw-r--r--data/rooms/example/town/9999930.yaml (renamed from data/rooms/town/30.yaml)4
-rw-r--r--data/rooms/example/town/9999931.yaml (renamed from data/rooms/town/31.yaml)6
-rw-r--r--data/rooms/example/town/999994.yaml (renamed from data/rooms/town/4.yaml)8
-rw-r--r--data/rooms/example/town/999995.yaml (renamed from data/rooms/town/5.yaml)4
-rw-r--r--data/rooms/example/town/999996.yaml (renamed from data/rooms/town/6.yaml)8
-rw-r--r--data/rooms/example/town/999997.yaml (renamed from data/rooms/town/7.yaml)4
-rw-r--r--data/rooms/example/town/999998.yaml (renamed from data/rooms/town/8.yaml)6
-rw-r--r--data/rooms/example/town/999999.yaml (renamed from data/rooms/town/9.yaml)10
-rw-r--r--data/rooms/example/underground/9999950.yaml (renamed from data/rooms/underground/50.yaml)4
-rw-r--r--data/rooms/example/underground/9999951.yaml (renamed from data/rooms/underground/51.yaml)6
-rw-r--r--data/rooms/example/underground/9999952.yaml (renamed from data/rooms/underground/52.yaml)6
-rw-r--r--data/rooms/example/underground/9999953.yaml (renamed from data/rooms/underground/53.yaml)6
-rw-r--r--data/rooms/example/underground/9999954.yaml (renamed from data/rooms/underground/54.yaml)6
-rw-r--r--data/rooms/example/underground/9999955.yaml (renamed from data/rooms/underground/55.yaml)14
-rw-r--r--data/rooms/example/underground/9999956.yaml (renamed from data/rooms/underground/56.yaml)4
-rw-r--r--data/rooms/example/underground/9999957.yaml (renamed from data/rooms/underground/57.yaml)4
-rw-r--r--data/rooms/example/underground/9999958.yaml (renamed from data/rooms/underground/58.yaml)6
-rw-r--r--data/rooms/example/underground/9999959.yaml (renamed from data/rooms/underground/59.yaml)4
-rw-r--r--data/rooms/example/underground/9999960.yaml (renamed from data/rooms/underground/60.yaml)6
-rw-r--r--data/rooms/example/underground/9999961.yaml (renamed from data/rooms/underground/61.yaml)4
-rw-r--r--data/rooms/example/underground/9999962.yaml (renamed from data/rooms/underground/62.yaml)6
-rw-r--r--data/rooms/example/underground/9999963.yaml (renamed from data/rooms/underground/63.yaml)6
-rw-r--r--data/rooms/example/underground/9999964.yaml (renamed from data/rooms/underground/64.yaml)6
-rw-r--r--data/rooms/example/underground/9999965.yaml (renamed from data/rooms/underground/65.yaml)0
-rw-r--r--data/rooms/example/underground/9999966.yaml (renamed from data/rooms/underground/66.yaml)0
-rw-r--r--data/rooms/example/underground/9999967.yaml (renamed from data/rooms/underground/67.yaml)0
-rw-r--r--data/rooms/example/underground/9999968.yaml (renamed from data/rooms/underground/68.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999150.yaml (renamed from data/rooms/wilderness/150.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999151.yaml (renamed from data/rooms/wilderness/151.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999152.yaml (renamed from data/rooms/wilderness/152.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999160.yaml (renamed from data/rooms/wilderness/160.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999161.yaml (renamed from data/rooms/wilderness/161.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999162.yaml (renamed from data/rooms/wilderness/162.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999170.yaml (renamed from data/rooms/wilderness/170.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999171.yaml (renamed from data/rooms/wilderness/171.yaml)0
-rw-r--r--data/rooms/example/wilderness/99999180.yaml5
-rw-r--r--data/rooms/example/wilderness/99999181.yaml11
-rw-r--r--data/rooms/intro/1001.yaml5
-rw-r--r--data/rooms/intro/1002.yaml43
-rw-r--r--data/rooms/intro/1003.yaml5
117 files changed, 383 insertions, 231 deletions
diff --git a/data/courses/reactor.yaml b/data/courses/reactor.yaml
index fcf2824..22d1a2b 100644
--- a/data/courses/reactor.yaml
+++ b/data/courses/reactor.yaml
@@ -1,10 +1,10 @@
id: "reactor"
name: "Reactor Course"
required_level: 50
-start_room: 200
+start_room: 99999200
completion_xp: 350
obstacles:
- - room_id: 220
+ - room_id: 99999220
verb: climb
ticks_per_phase: 3
xp: 40
@@ -13,7 +13,7 @@ obstacles:
- "You grip the reactor scaffolding and begin your ascent..."
- "The metal groans under your weight as you climb higher, heat radiating from below..."
- "You pull yourself onto the upper platform, the reactor humming beneath you!"
- - room_id: 221
+ - room_id: 99999221
verb: swing
ticks_per_phase: 3
xp: 45
@@ -22,7 +22,7 @@ obstacles:
- "You seize the heavy coolant chain dangling above the reactor pit..."
- "You swing out over the glowing core, heat blasting your face..."
- "You release and land hard on the maintenance gantry, chain clanging behind you!"
- - room_id: 222
+ - room_id: 99999222
verb: balance
ticks_per_phase: 3
xp: 50
@@ -31,7 +31,7 @@ obstacles:
- "You step onto the massive steam pipe spanning the reactor chamber..."
- "Steam jets hiss from valves on either side as you shuffle along the pipe..."
- "You reach the junction platform and hop off the pipe with relief!"
- - room_id: 223
+ - room_id: 99999223
verb: jump
ticks_per_phase: 2
xp: 45
@@ -40,7 +40,7 @@ obstacles:
- "A section of the reactor platform is missing, leaving a gaping void..."
- "You back up, sprint, and leap with everything you've got..."
- "You slam into the far platform and roll to safety!"
- - room_id: 224
+ - room_id: 99999224
verb: crawl
ticks_per_phase: 3
xp: 40
@@ -49,7 +49,7 @@ obstacles:
- "You squeeze into the narrow service conduit, radiation warnings plastered on every surface..."
- "You drag yourself through on your elbows, sparks showering from damaged wiring above..."
- "You tumble out the far end and gulp down clean air!"
- - room_id: 225
+ - room_id: 99999225
verb: vault
ticks_per_phase: 2
xp: 50
@@ -58,7 +58,7 @@ obstacles:
- "A radiation containment barrier blocks the path, humming with energy..."
- "You time the pulse cycle, sprint at the barrier, and throw yourself over it..."
- "You clear the barrier and land on the other side, heart pounding!"
- - room_id: 226
+ - room_id: 99999226
verb: leap
ticks_per_phase: 3
xp: 55
diff --git a/data/courses/rooftop.yaml b/data/courses/rooftop.yaml
index 4cc6748..3a24f89 100644
--- a/data/courses/rooftop.yaml
+++ b/data/courses/rooftop.yaml
@@ -1,10 +1,10 @@
id: "rooftop"
name: "Rooftop Course"
required_level: 20
-start_room: 200
+start_room: 99999200
completion_xp: 120
obstacles:
- - room_id: 210
+ - room_id: 99999210
verb: climb
ticks_per_phase: 2
xp: 15
@@ -13,7 +13,7 @@ obstacles:
- "You grab the rough permacrete wall and begin to climb..."
- "Your fingers find cracks and ledges as you pull yourself higher..."
- "You heave yourself over the edge and onto the rooftop!"
- - room_id: 211
+ - room_id: 99999211
verb: jump
ticks_per_phase: 2
xp: 22
@@ -22,7 +22,7 @@ obstacles:
- "You eye the gap between this building and the next..."
- "You sprint toward the edge, boots pounding on the rooftop..."
- "You launch yourself across and roll to a stop on the other roof!"
- - room_id: 212
+ - room_id: 99999212
verb: swing
ticks_per_phase: 3
xp: 20
@@ -31,7 +31,7 @@ obstacles:
- "You grab the dangling power cable with both hands..."
- "You kick off the ledge and swing out over the street far below..."
- "You release at the peak of the arc and land on the opposite platform!"
- - room_id: 213
+ - room_id: 99999213
verb: balance
ticks_per_phase: 3
xp: 18
@@ -40,7 +40,7 @@ obstacles:
- "You step onto the narrow structural beam spanning the alley..."
- "The beam sways slightly as you inch forward, arms out for balance..."
- "You reach the far side and step gratefully onto solid rooftop!"
- - room_id: 214
+ - room_id: 99999214
verb: vault
ticks_per_phase: 2
xp: 15
@@ -49,7 +49,7 @@ obstacles:
- "You run toward the maintenance railing at full speed..."
- "You plant one hand on the rail and swing your legs over..."
- "You clear the railing and land in a crouch on the other side!"
- - room_id: 215
+ - room_id: 99999215
verb: leap
ticks_per_phase: 2
xp: 20
diff --git a/data/courses/vent_shaft.yaml b/data/courses/vent_shaft.yaml
index a59a16c..643b39f 100644
--- a/data/courses/vent_shaft.yaml
+++ b/data/courses/vent_shaft.yaml
@@ -1,10 +1,10 @@
id: "vent_shaft"
name: "Ventilation Shaft Course"
required_level: 1
-start_room: 200
+start_room: 99999200
completion_xp: 40
obstacles:
- - room_id: 201
+ - room_id: 99999201
verb: scramble
ticks_per_phase: 2
xp: 8
@@ -13,7 +13,7 @@ obstacles:
- "You approach the corroded ventilation wall..."
- "You find footholds in the rusted panels and begin to climb..."
- "You scramble up the wall and haul yourself onto the ledge!"
- - room_id: 202
+ - room_id: 99999202
verb: balance
ticks_per_phase: 2
xp: 8
@@ -22,7 +22,7 @@ obstacles:
- "You step onto the narrow coolant pipe..."
- "Arms outstretched, you carefully place one foot in front of the other..."
- "You reach the other side of the pipe and step onto solid ground!"
- - room_id: 203
+ - room_id: 99999203
verb: jump
ticks_per_phase: 2
xp: 7
@@ -31,7 +31,7 @@ obstacles:
- "You peer across the dark gap in the shaft floor..."
- "You take a few steps back, then sprint toward the edge..."
- "You leap across the gap and land safely on the other side!"
- - room_id: 204
+ - room_id: 99999204
verb: crawl
ticks_per_phase: 3
xp: 7
@@ -40,7 +40,7 @@ obstacles:
- "You drop to your hands and knees at the narrow vent opening..."
- "You squeeze through the tight passage, metal scraping against your back..."
- "You emerge from the vent and stand up, brushing dust from your clothes!"
- - room_id: 205
+ - room_id: 99999205
verb: slide
ticks_per_phase: 2
xp: 10
diff --git a/data/hazards/solar_radiation.yaml b/data/hazards/solar_radiation.yaml
new file mode 100644
index 0000000..40afee6
--- /dev/null
+++ b/data/hazards/solar_radiation.yaml
@@ -0,0 +1,12 @@
+id: solar_radiation
+name: scorching solar radiation
+description: "Unfiltered sunlight hammers down through a gap in the atmospheric dome. Without shade or shielding, the radiation burns exposed skin and overheats equipment."
+attack_type: science
+attack: 40
+attack_bonus: 0
+max_hit: 6
+speed: 5
+warn_message: "The dome shielding fails here — raw solar radiation pours in."
+hit_message: "Solar radiation sears you for %d damage."
+miss_message: "You shield your eyes and weather a wave of solar glare."
+required_item: ""
diff --git a/data/help/combat.yaml b/data/help/combat.yaml
index 210a6da..f588d81 100644
--- a/data/help/combat.yaml
+++ b/data/help/combat.yaml
@@ -11,7 +11,7 @@ description: |
but weak crush defense takes more hits from a mace than a sword.
Use the 'style' command to change your combat style:
- accurate - +3 attack level, XP to attack
+ accurate - +3 accuracy level, XP to accuracy
aggressive - +3 strength level, XP to strength
defensive - +3 defense level, XP to defense
balanced - +1 to all, XP split evenly
diff --git a/data/help/drink.yaml b/data/help/drink.yaml
index 98843b3..b9506d7 100644
--- a/data/help/drink.yaml
+++ b/data/help/drink.yaml
@@ -6,7 +6,7 @@ description: |
Usage: drink <potion>
Potions provide various effects:
- - Stim potions: boost Attack
+ - Stim potions: boost Accuracy
- Amp potions: boost Strength
- Shield potions: boost Defense
- Tech serum: boosts Technology
diff --git a/data/help/prompt.yaml b/data/help/prompt.yaml
index 2b35f41..37a98f9 100644
--- a/data/help/prompt.yaml
+++ b/data/help/prompt.yaml
@@ -23,7 +23,7 @@ description: |
%S Attack style longform (accurate, aggressive, defensive, balanced)
%i Free inventory slots
%x_<skill> XP to next level for a skill (e.g. %x_mining)
- %X_<skill> Total XP for a skill (e.g. %X_attack)
+ %X_<skill> Total XP for a skill (e.g. %X_accuracy)
Use %% for a literal % sign.
diff --git a/data/help/style.yaml b/data/help/style.yaml
index c4f4e67..663dc07 100644
--- a/data/help/style.yaml
+++ b/data/help/style.yaml
@@ -6,7 +6,7 @@ description: |
Changes your combat style. Prefix matching is supported.
Styles:
- accurate - +3 to attack level, XP goes to Attack
+ accurate - +3 to accuracy level, XP goes to Accuracy
aggressive - +3 to strength level, XP goes to Strength
defensive - +3 to defense level, XP goes to Defense
balanced - +1 to all three, XP split evenly
diff --git a/data/items/consumables/stim_potion.yaml b/data/items/consumables/stim_potion.yaml
index 34e7282..4ae10ff 100644
--- a/data/items/consumables/stim_potion.yaml
+++ b/data/items/consumables/stim_potion.yaml
@@ -17,6 +17,6 @@ id: stim_potion
name: stim potion
potion_bonus: 10
potion_duration: 200
-potion_effect: attack
+potion_effect: accuracy
stackable: false
value: 30
diff --git a/data/items/consumables/super_stim.yaml b/data/items/consumables/super_stim.yaml
index 00f3aa1..f8e4756 100644
--- a/data/items/consumables/super_stim.yaml
+++ b/data/items/consumables/super_stim.yaml
@@ -17,6 +17,6 @@ id: super_stim
name: super stim
potion_bonus: 20
potion_duration: 200
-potion_effect: attack
+potion_effect: accuracy
stackable: false
value: 120
diff --git a/data/items/equipment/adamant_dagger.yaml b/data/items/equipment/adamant_dagger.yaml
index a483667..7875c3a 100644
--- a/data/items/equipment/adamant_dagger.yaml
+++ b/data/items/equipment/adamant_dagger.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: adamant_dagger
name: adamant dagger
requirements:
- attack: 30
+ accuracy: 30
speed: 3
stackable: false
stats:
diff --git a/data/items/equipment/adamant_sword.yaml b/data/items/equipment/adamant_sword.yaml
index cce058c..b1aaccd 100644
--- a/data/items/equipment/adamant_sword.yaml
+++ b/data/items/equipment/adamant_sword.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: adamant_sword
name: adamant sword
requirements:
- attack: 30
+ accuracy: 30
speed: 4
stackable: false
stats:
diff --git a/data/items/equipment/black_axe.yaml b/data/items/equipment/black_axe.yaml
index e708645..49fc8f5 100644
--- a/data/items/equipment/black_axe.yaml
+++ b/data/items/equipment/black_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 2.5
requirements:
- attack: 10
+ accuracy: 10
diff --git a/data/items/equipment/dragon_axe.yaml b/data/items/equipment/dragon_axe.yaml
index ddc9758..caef5bb 100644
--- a/data/items/equipment/dragon_axe.yaml
+++ b/data/items/equipment/dragon_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 1
requirements:
- attack: 60
+ accuracy: 60
diff --git a/data/items/equipment/mithril_dagger.yaml b/data/items/equipment/mithril_dagger.yaml
index 0d531e1..8543198 100644
--- a/data/items/equipment/mithril_dagger.yaml
+++ b/data/items/equipment/mithril_dagger.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: mithril_dagger
name: mithril dagger
requirements:
- attack: 20
+ accuracy: 20
speed: 3
stackable: false
stats:
diff --git a/data/items/equipment/mithril_sword.yaml b/data/items/equipment/mithril_sword.yaml
index 53dcd25..397d044 100644
--- a/data/items/equipment/mithril_sword.yaml
+++ b/data/items/equipment/mithril_sword.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: mithril_sword
name: mithril sword
requirements:
- attack: 20
+ accuracy: 20
speed: 4
stackable: false
stats:
diff --git a/data/items/equipment/rune_dagger.yaml b/data/items/equipment/rune_dagger.yaml
index f1f53f6..2068380 100644
--- a/data/items/equipment/rune_dagger.yaml
+++ b/data/items/equipment/rune_dagger.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: rune_dagger
name: rune dagger
requirements:
- attack: 40
+ accuracy: 40
speed: 3
stackable: false
stats:
diff --git a/data/items/equipment/rune_sword.yaml b/data/items/equipment/rune_sword.yaml
index 3451450..12daf4d 100644
--- a/data/items/equipment/rune_sword.yaml
+++ b/data/items/equipment/rune_sword.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: rune_sword
name: rune sword
requirements:
- attack: 40
+ accuracy: 40
speed: 4
stackable: false
stats:
diff --git a/data/items/equipment/steel_dagger.yaml b/data/items/equipment/steel_dagger.yaml
index 9df7d14..fc9f81f 100644
--- a/data/items/equipment/steel_dagger.yaml
+++ b/data/items/equipment/steel_dagger.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: steel_dagger
name: steel dagger
requirements:
- attack: 5
+ accuracy: 5
speed: 3
stackable: false
stats:
diff --git a/data/items/equipment/steel_sword.yaml b/data/items/equipment/steel_sword.yaml
index b0ca858..66023f4 100644
--- a/data/items/equipment/steel_sword.yaml
+++ b/data/items/equipment/steel_sword.yaml
@@ -17,7 +17,7 @@ equip_slot: main_hand
id: steel_sword
name: steel sword
requirements:
- attack: 5
+ accuracy: 5
speed: 4
stackable: false
stats:
diff --git a/data/items/tools/adamant_axe.yaml b/data/items/tools/adamant_axe.yaml
index 81232fe..0172019 100644
--- a/data/items/tools/adamant_axe.yaml
+++ b/data/items/tools/adamant_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 2
requirements:
- attack: 30
+ accuracy: 30
diff --git a/data/items/tools/adamant_pickaxe.yaml b/data/items/tools/adamant_pickaxe.yaml
index 4296b0d..862f6e6 100644
--- a/data/items/tools/adamant_pickaxe.yaml
+++ b/data/items/tools/adamant_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 0.75
requirements:
- attack: 30
+ accuracy: 30
diff --git a/data/items/tools/black_pickaxe.yaml b/data/items/tools/black_pickaxe.yaml
index c3df955..083ad3a 100644
--- a/data/items/tools/black_pickaxe.yaml
+++ b/data/items/tools/black_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 1
requirements:
- attack: 10
+ accuracy: 10
diff --git a/data/items/tools/dragon_pickaxe.yaml b/data/items/tools/dragon_pickaxe.yaml
index 6f187b8..20b43b1 100644
--- a/data/items/tools/dragon_pickaxe.yaml
+++ b/data/items/tools/dragon_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 0.25
requirements:
- attack: 60
+ accuracy: 60
diff --git a/data/items/tools/mithril_axe.yaml b/data/items/tools/mithril_axe.yaml
index ca18195..f153f12 100644
--- a/data/items/tools/mithril_axe.yaml
+++ b/data/items/tools/mithril_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 2.5
requirements:
- attack: 20
+ accuracy: 20
diff --git a/data/items/tools/mithril_pickaxe.yaml b/data/items/tools/mithril_pickaxe.yaml
index 5da6937..81da209 100644
--- a/data/items/tools/mithril_pickaxe.yaml
+++ b/data/items/tools/mithril_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 1
requirements:
- attack: 20
+ accuracy: 20
diff --git a/data/items/tools/rune_axe.yaml b/data/items/tools/rune_axe.yaml
index a694bdf..bc99732 100644
--- a/data/items/tools/rune_axe.yaml
+++ b/data/items/tools/rune_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 1.5
requirements:
- attack: 40
+ accuracy: 40
diff --git a/data/items/tools/rune_pickaxe.yaml b/data/items/tools/rune_pickaxe.yaml
index 265231d..7691513 100644
--- a/data/items/tools/rune_pickaxe.yaml
+++ b/data/items/tools/rune_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 0.5
requirements:
- attack: 40
+ accuracy: 40
diff --git a/data/items/tools/steel_axe.yaml b/data/items/tools/steel_axe.yaml
index 6f2ac99..1f62e33 100644
--- a/data/items/tools/steel_axe.yaml
+++ b/data/items/tools/steel_axe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: axe
tool_speed: 3
requirements:
- attack: 5
+ accuracy: 5
diff --git a/data/items/tools/steel_pickaxe.yaml b/data/items/tools/steel_pickaxe.yaml
index cc048a1..560da07 100644
--- a/data/items/tools/steel_pickaxe.yaml
+++ b/data/items/tools/steel_pickaxe.yaml
@@ -16,4 +16,4 @@ speed: 5
tool_type: pickaxe
tool_speed: 1.25
requirements:
- attack: 5
+ accuracy: 5
diff --git a/data/mobs/solar_panel_frame.yaml b/data/mobs/solar_panel_frame.yaml
new file mode 100644
index 0000000..4270bda
--- /dev/null
+++ b/data/mobs/solar_panel_frame.yaml
@@ -0,0 +1,34 @@
+id: solar_panel_frame
+name: solar panel frame
+description: "A half-assembled photovoltaic array on a steel frame. Panels, brackets and cabling are laid out, waiting to be fitted. This is work, not a fight — fix the panels into place to complete the array."
+kind: task
+verb: assemble
+progress_noun: assembly
+complete_message: "You bolt the final panel into place and the solar array hums to life!"
+hp: 40
+defense: 10
+speed: 5
+aggressive: false
+respawn_ticks: 40
+attack_type: crush
+crush_defense: 0
+stab_defense: 40
+slash_defense: 40
+ranged_defense: 10
+science_defense: 10
+idle_descriptions:
+ - "stands half-assembled, panels waiting to be fitted"
+ - "has loose cabling dangling from an open junction box"
+ - "catches the light on its few mounted panels"
+size: medium
+drops:
+ loot:
+ - item_id: credits
+ weight: 70
+ quantity: 40
+ - item_id: credits
+ weight: 25
+ quantity: 90
+ - item_id: coal
+ weight: 5
+ quantity: 1
diff --git a/data/objects/1002_crowd.yaml b/data/objects/1002_crowd.yaml
new file mode 100644
index 0000000..8f8f099
--- /dev/null
+++ b/data/objects/1002_crowd.yaml
@@ -0,0 +1,18 @@
+id: 1002_crowd
+name: crowd of people
+aliases: [people, crowd, group, passengers]
+hidden: true
+descriptions:
+ - condition:
+ all_of:
+ - player_flag: denali_intro_done
+ not: true
+ - player_flag: denali_lined_up
+ text: "The passengers have sorted themselves into a single-file line, tickets clutched in hand, shuffling toward the craft."
+ - condition:
+ all_of:
+ - player_flag: denali_intro_done
+ not: true
+ - player_flag: denali_lined_up
+ not: true
+ text: "A couple dozen anxious passengers mill about the pad, glancing between you and the small building to the north."
diff --git a/data/objects/1002_pilot.yaml b/data/objects/1002_pilot.yaml
new file mode 100644
index 0000000..61264b2
--- /dev/null
+++ b/data/objects/1002_pilot.yaml
@@ -0,0 +1,10 @@
+id: 1002_pilot
+name: pilot
+hidden: true
+descriptions:
+ - condition:
+ all_of:
+ - player_flag: denali_intro_done
+ not: true
+ - player_flag: denali_lined_up
+ text: "The shuttle pilot stands by the hatch in a faded flight suit, waving passengers into line and checking tickets with a practiced eye."
diff --git a/data/objects/1002_shuttle.yaml b/data/objects/1002_shuttle.yaml
new file mode 100644
index 0000000..6ac3a90
--- /dev/null
+++ b/data/objects/1002_shuttle.yaml
@@ -0,0 +1,9 @@
+id: 1002_shuttle
+name: landing craft
+aliases: [shuttle, ship]
+hidden: true
+descriptions:
+ - condition:
+ player_flag: denali_intro_done
+ not: true
+ text: "The battered landing craft that carried you down still ticks and steams as it cools on the pad."
diff --git a/data/rooms/agility/200.yaml b/data/rooms/example/agility/99999200.yaml
index 469e214..c44cb6a 100644
--- a/data/rooms/agility/200.yaml
+++ b/data/rooms/example/agility/99999200.yaml
@@ -1,8 +1,8 @@
-id: 200
+id: 99999200
name: "Agility Training Grounds"
description: "A cavernous space beneath the asteroid's surface, repurposed as a training facility. Scaffolding, pipes, and platforms fill the chamber. Signs point to three courses of increasing difficulty: {33}Ventilation Shaft{/} (beginner), {214}Rooftop{/} (intermediate), and {196}Reactor{/} (advanced)."
exits:
- south: 17
- north: 201
- east: 210
- west: 220
+ south: 9999917
+ north: 99999201
+ east: 99999210
+ west: 99999220
diff --git a/data/rooms/agility/201.yaml b/data/rooms/example/agility/99999201.yaml
index 2beb2ec..f551fe1 100644
--- a/data/rooms/agility/201.yaml
+++ b/data/rooms/example/agility/99999201.yaml
@@ -1,9 +1,9 @@
-id: 201
+id: 99999201
name: "Ventilation Shaft - Corroded Wall"
description: "A towering wall of corroded ventilation panels rises before you. Rust-eaten handholds and buckled seams offer a treacherous path upward. The air smells of old metal and recycled atmosphere."
on_enter:
- message: "Type 'scramble' to climb the wall."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/202.yaml b/data/rooms/example/agility/99999202.yaml
index b9c0292..1d33043 100644
--- a/data/rooms/agility/202.yaml
+++ b/data/rooms/example/agility/99999202.yaml
@@ -1,9 +1,9 @@
-id: 202
+id: 99999202
name: "Ventilation Shaft - Coolant Pipe Walkway"
description: "A narrow coolant pipe stretches across a dark chasm. Condensation drips from its surface, making it slick. Far below, you can hear the distant hum of machinery."
on_enter:
- message: "Type 'balance' to cross the pipe."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/203.yaml b/data/rooms/example/agility/99999203.yaml
index 4f5d883..529bad6 100644
--- a/data/rooms/agility/203.yaml
+++ b/data/rooms/example/agility/99999203.yaml
@@ -1,9 +1,9 @@
-id: 203
+id: 99999203
name: "Ventilation Shaft - Shaft Gap"
description: "The ventilation shaft floor is missing here -- a jagged gap drops into darkness. The far side is just barely within jumping distance. Exposed wiring sparks intermittently below."
on_enter:
- message: "Type 'jump' to leap across the gap."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/204.yaml b/data/rooms/example/agility/99999204.yaml
index 2d82040..7ddf6a1 100644
--- a/data/rooms/agility/204.yaml
+++ b/data/rooms/example/agility/99999204.yaml
@@ -1,9 +1,9 @@
-id: 204
+id: 99999204
name: "Ventilation Shaft - Narrow Vent"
description: "The passage narrows dramatically here, becoming a tight rectangular vent barely wide enough to fit through. Scratches on the metal walls suggest others have squeezed through before you."
on_enter:
- message: "Type 'crawl' to squeeze through the vent."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/205.yaml b/data/rooms/example/agility/99999205.yaml
index d814f7d..3810925 100644
--- a/data/rooms/agility/205.yaml
+++ b/data/rooms/example/agility/99999205.yaml
@@ -1,9 +1,9 @@
-id: 205
+id: 99999205
name: "Ventilation Shaft - Emergency Chute"
description: "A smooth metal chute angles steeply downward, polished by countless slides. An old emergency evacuation sign hangs crookedly on the wall. This is the final obstacle -- the chute leads back to the training grounds."
on_enter:
- message: "Type 'slide' to descend the chute."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/210.yaml b/data/rooms/example/agility/99999210.yaml
index 2b86500..0ecfb1a 100644
--- a/data/rooms/agility/210.yaml
+++ b/data/rooms/example/agility/99999210.yaml
@@ -1,9 +1,9 @@
-id: 210
+id: 99999210
name: "Rooftop Course - Hab Block Wall"
description: "The exterior wall of Hab Block 7 rises three stories above the street. Rough permacrete and maintenance handholds provide a challenging climb. The city spreads out below, neon signs flickering in the perpetual twilight."
on_enter:
- message: "Type 'climb' to scale the wall."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/211.yaml b/data/rooms/example/agility/99999211.yaml
index 8b1f069..99497e5 100644
--- a/data/rooms/agility/211.yaml
+++ b/data/rooms/example/agility/99999211.yaml
@@ -1,9 +1,9 @@
-id: 211
+id: 99999211
name: "Rooftop Course - Building Gap"
description: "You stand on the edge of Hab Block 7's roof. Across a three-meter gap, the roof of Hab Block 8 awaits. The street below is a dizzying drop. A few old bootprints mark the takeoff point."
on_enter:
- message: "Type 'jump' to leap to the next building."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/212.yaml b/data/rooms/example/agility/99999212.yaml
index 0393a7e..c4bc14d 100644
--- a/data/rooms/agility/212.yaml
+++ b/data/rooms/example/agility/99999212.yaml
@@ -1,9 +1,9 @@
-id: 212
+id: 99999212
name: "Rooftop Course - Cable Array"
description: "A tangle of power cables and data lines stretches between two antenna towers. One thick cable hangs low enough to grab. The gap below drops to a dark alleyway between hab blocks."
on_enter:
- message: "Type 'swing' to cross on the cable."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/213.yaml b/data/rooms/example/agility/99999213.yaml
index be3b736..79da0d2 100644
--- a/data/rooms/agility/213.yaml
+++ b/data/rooms/example/agility/99999213.yaml
@@ -1,9 +1,9 @@
-id: 213
+id: 99999213
name: "Rooftop Course - Narrow Beam"
description: "A structural I-beam extends across the gap between two buildings, no wider than your foot. It sways slightly in the recycled air currents. Someone has scratched tally marks into the near end."
on_enter:
- message: "Type 'balance' to cross the beam."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/214.yaml b/data/rooms/example/agility/99999214.yaml
index 9f9e081..8a040cd 100644
--- a/data/rooms/agility/214.yaml
+++ b/data/rooms/example/agility/99999214.yaml
@@ -1,9 +1,9 @@
-id: 214
+id: 99999214
name: "Rooftop Course - Maintenance Railing"
description: "A high maintenance railing blocks the path forward, topped with sensor equipment and warning labels. It's too high to step over but the right technique could clear it. Beyond the railing, the course continues."
on_enter:
- message: "Type 'vault' to clear the railing."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/215.yaml b/data/rooms/example/agility/99999215.yaml
index 7ea39f9..4a740f7 100644
--- a/data/rooms/agility/215.yaml
+++ b/data/rooms/example/agility/99999215.yaml
@@ -1,9 +1,9 @@
-id: 215
+id: 99999215
name: "Rooftop Course - Rooftop Edge"
description: "The final jump. The gap here is wider than any before -- a full four meters of empty air between you and the landing platform. Far below, the streets of the asteroid colony pulse with dim light. This is the last obstacle."
on_enter:
- message: "Type 'leap' to make the final jump."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/220.yaml b/data/rooms/example/agility/99999220.yaml
index d6826a3..f063231 100644
--- a/data/rooms/agility/220.yaml
+++ b/data/rooms/example/agility/99999220.yaml
@@ -1,9 +1,9 @@
-id: 220
+id: 99999220
name: "Reactor Course - Scaffolding"
description: "Massive metal scaffolding surrounds the outer reactor housing. The structure vibrates with the reactor's pulse. Heat radiates from every surface, and warning klaxons sound periodically in the distance."
on_enter:
- message: "Type 'climb' to ascend the scaffolding."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/221.yaml b/data/rooms/example/agility/99999221.yaml
index 936ee65..bebfcf1 100644
--- a/data/rooms/agility/221.yaml
+++ b/data/rooms/example/agility/99999221.yaml
@@ -1,9 +1,9 @@
-id: 221
+id: 99999221
name: "Reactor Course - Coolant Chain"
description: "A heavy chain hangs from an overhead crane, suspended above the reactor cooling pit. The pit glows with an eerie blue-green light. The chain is your only way across -- the gantry ahead is the landing zone."
on_enter:
- message: "Type 'swing' to cross on the chain."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/222.yaml b/data/rooms/example/agility/99999222.yaml
index 119db01..17d6395 100644
--- a/data/rooms/agility/222.yaml
+++ b/data/rooms/example/agility/99999222.yaml
@@ -1,9 +1,9 @@
-id: 222
+id: 99999222
name: "Reactor Course - Steam Pipe"
description: "An enormous steam pipe, two meters in diameter, stretches across the reactor chamber. Steam vents periodically blast from pressure valves along its length. The pipe's surface is warm but not scalding -- yet."
on_enter:
- message: "Type 'balance' to traverse the pipe."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/223.yaml b/data/rooms/example/agility/99999223.yaml
index 0e557f6..b945e7e 100644
--- a/data/rooms/agility/223.yaml
+++ b/data/rooms/example/agility/99999223.yaml
@@ -1,9 +1,9 @@
-id: 223
+id: 99999223
name: "Reactor Course - Platform Gap"
description: "A section of the reactor maintenance platform has collapsed into the void below. Emergency barriers block the edges, but someone has moved them aside here. The gap is intimidating but clearable."
on_enter:
- message: "Type 'jump' to clear the gap."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/224.yaml b/data/rooms/example/agility/99999224.yaml
index 4e70f7a..0c9f2e0 100644
--- a/data/rooms/agility/224.yaml
+++ b/data/rooms/example/agility/99999224.yaml
@@ -1,9 +1,9 @@
-id: 224
+id: 99999224
name: "Reactor Course - Service Conduit"
description: "A narrow service conduit leads through the reactor shielding. Radiation warning symbols are painted on every surface. Damaged wiring hangs from the ceiling, sparking occasionally. It's the only way forward."
on_enter:
- message: "Type 'crawl' to enter the conduit."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/225.yaml b/data/rooms/example/agility/99999225.yaml
index 3413792..feb32e9 100644
--- a/data/rooms/agility/225.yaml
+++ b/data/rooms/example/agility/99999225.yaml
@@ -1,9 +1,9 @@
-id: 225
+id: 99999225
name: "Reactor Course - Radiation Barrier"
description: "A containment barrier hums with energy, its surface shimmering with a faint purple glow. It pulses on and off in a regular cycle. Beyond it, the final stretch of the course is visible."
on_enter:
- message: "Type 'vault' to clear the barrier."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/agility/226.yaml b/data/rooms/example/agility/99999226.yaml
index 6faa2c1..cd1c979 100644
--- a/data/rooms/agility/226.yaml
+++ b/data/rooms/example/agility/99999226.yaml
@@ -1,9 +1,9 @@
-id: 226
+id: 99999226
name: "Reactor Course - Reactor Chasm"
description: "The final obstacle. A massive chasm separates you from the exit platform, the reactor's coolant pool churning far below in shades of luminous green. A narrow runway of grating leads to the edge. This is the longest leap on the course."
on_enter:
- message: "Type 'leap' to make the final jump."
exits:
down:
- room: 200
+ room: 99999200
blocked_message: ""
diff --git a/data/rooms/player_housing/300.yaml b/data/rooms/example/player_housing/99999300.yaml
index 06f1a07..124b278 100644
--- a/data/rooms/player_housing/300.yaml
+++ b/data/rooms/example/player_housing/99999300.yaml
@@ -1,8 +1,8 @@
-id: 300
+id: 99999300
name: "Player House: Entrance Hall"
description: "A cozy entrance hall with polished floors and warm lighting. A welcome mat greets visitors at the door."
exits:
- south: 170
- north: 301
+ south: 99999170
+ north: 99999301
objects:
- id: charging_station
diff --git a/data/rooms/player_housing/301.yaml b/data/rooms/example/player_housing/99999301.yaml
index c2f3e65..ebaba3d 100644
--- a/data/rooms/player_housing/301.yaml
+++ b/data/rooms/example/player_housing/99999301.yaml
@@ -1,8 +1,8 @@
-id: 301
+id: 99999301
name: "Player House: Workshop"
description: "A well-lit workshop with a sturdy workbench covered in tools and blueprints. Wood shavings litter the floor around the bench."
exits:
- south: 300
+ south: 99999300
objects:
- id: workbench
- id: bank_booth
diff --git a/data/rooms/town/1.yaml b/data/rooms/example/town/999991.yaml
index 81e9351..0231940 100644
--- a/data/rooms/town/1.yaml
+++ b/data/rooms/example/town/999991.yaml
@@ -1,11 +1,11 @@
-id: 1
+id: 999991
name: "Town Square"
description: "The central square of Lumbridge. A fountain gurgles peacefully in the center. Paths lead west toward the gathering grounds and east toward the production district."
exits:
- east: 2
- west: 22
- up: 30
- down: 31
+ east: 999992
+ west: 9999922
+ up: 9999930
+ down: 9999931
objects:
- id: lumby_fountain
- id: charging_station
diff --git a/data/rooms/town/10.yaml b/data/rooms/example/town/9999910.yaml
index edeac4d..7dcbc2e 100644
--- a/data/rooms/town/10.yaml
+++ b/data/rooms/example/town/9999910.yaml
@@ -1,9 +1,9 @@
-id: 10
+id: 9999910
name: "Farming Plot"
description: "A small patch of tilled soil behind a weathered fence. This area is not yet accessible."
exits:
- west: 9
- east: 11
+ west: 999999
+ east: 9999911
mobs:
- id: skeleton
- id: skeleton
diff --git a/data/rooms/town/11.yaml b/data/rooms/example/town/9999911.yaml
index 9bc45a7..72b5337 100644
--- a/data/rooms/town/11.yaml
+++ b/data/rooms/example/town/9999911.yaml
@@ -1,9 +1,9 @@
-id: 11
+id: 9999911
name: "Kitchen"
description: "A warm kitchen with a stone hearth and wooden counters. A large iron cooking range dominates one wall, and shelves are stocked with ingredients."
exits:
- east: 12
- west: 10
+ east: 9999912
+ west: 9999910
objects:
- id: cooking_range
mobs:
diff --git a/data/rooms/town/12.yaml b/data/rooms/example/town/9999912.yaml
index e44ae3a..eee3aeb 100644
--- a/data/rooms/town/12.yaml
+++ b/data/rooms/example/town/9999912.yaml
@@ -1,9 +1,9 @@
-id: 12
+id: 9999912
name: "Forge"
description: "A blazing forge and anvil dominate this smoky workshop. The heat from the furnace is intense."
exits:
- east: 13
- west: 11
+ east: 9999913
+ west: 9999911
mobs:
- "weapons_smith"
objects:
diff --git a/data/rooms/town/13.yaml b/data/rooms/example/town/9999913.yaml
index dc07dc1..369fb66 100644
--- a/data/rooms/town/13.yaml
+++ b/data/rooms/example/town/9999913.yaml
@@ -1,9 +1,9 @@
-id: 13
+id: 9999913
name: "Crafting Workshop"
description: "A bustling workshop filled with crafting stations. A {130}spinning wheel{/} sits in one corner, a {173}pottery wheel{/} and {196}pottery oven{/} in another. Racks of tools and raw materials line the walls. The forge is just to the west."
exits:
- east: 14
- west: 12
+ east: 9999914
+ west: 9999912
objects:
- id: spinning_wheel
- id: pottery_wheel
diff --git a/data/rooms/town/14.yaml b/data/rooms/example/town/9999914.yaml
index ad515de..c003cf7 100644
--- a/data/rooms/town/14.yaml
+++ b/data/rooms/example/town/9999914.yaml
@@ -1,9 +1,9 @@
-id: 14
+id: 9999914
name: "Fletching Bench"
description: "A workbench covered in wood shavings, feathers, and arrowheads. Racks of unfinished bows line the walls, and a pile of bowstrings sits in the corner."
exits:
- east: 15
- west: 13
+ east: 9999915
+ west: 9999913
mobs:
- id: moss_giant
item_spawns:
diff --git a/data/rooms/town/15.yaml b/data/rooms/example/town/9999915.yaml
index a67624d..f632f3e 100644
--- a/data/rooms/town/15.yaml
+++ b/data/rooms/example/town/9999915.yaml
@@ -1,10 +1,10 @@
-id: 15
+id: 9999915
name: "Pharmacy Lab"
description: "Shelves lined with glass vials, dried herbs, and bubbling cauldrons. This area is not yet accessible."
exits:
- east: 16
- west: 14
- south: 150
+ east: 9999916
+ west: 9999914
+ south: 99999150
mobs:
- id: lesser_drone
- id: lesser_drone
diff --git a/data/rooms/town/16.yaml b/data/rooms/example/town/9999916.yaml
index 3776f4f..0a8fb95 100644
--- a/data/rooms/town/16.yaml
+++ b/data/rooms/example/town/9999916.yaml
@@ -1,10 +1,10 @@
-id: 16
+id: 9999916
name: "Construction Site"
description: "A half-built structure surrounded by planks, nails, and blueprints. A workbench stands ready for crafting. Signs point north toward the Local Neighborhood and east toward the lumberyard."
exits:
- east: 171
- west: 15
- north: 170
+ east: 99999171
+ west: 9999915
+ north: 99999170
objects:
- id: workbench
mobs:
diff --git a/data/rooms/town/17.yaml b/data/rooms/example/town/9999917.yaml
index 512ec9e..82ff07d 100644
--- a/data/rooms/town/17.yaml
+++ b/data/rooms/example/town/9999917.yaml
@@ -1,10 +1,10 @@
-id: 17
+id: 9999917
name: "Bonfire"
description: "A ring of stones surrounds a bed of ash. A few unlit logs wait nearby. A narrow passage leads north toward what sounds like echoing footsteps and clanging metal."
exits:
- east: 18
- west: 16
- north: 200
+ east: 9999918
+ west: 9999916
+ north: 99999200
mobs:
- id: scrap_bot
- id: scrap_bot
diff --git a/data/rooms/town/18.yaml b/data/rooms/example/town/9999918.yaml
index 9dfc446..baa21f4 100644
--- a/data/rooms/town/18.yaml
+++ b/data/rooms/example/town/9999918.yaml
@@ -1,6 +1,6 @@
-id: 18
+id: 9999918
name: "Thieves' Den"
description: "A shadowy hideout with lockpicks, dark cloaks, and wanted posters on the walls. This area is not yet accessible."
exits:
- east: 19
- west: 17
+ east: 9999919
+ west: 9999917
diff --git a/data/rooms/town/19.yaml b/data/rooms/example/town/9999919.yaml
index 35800a0..2fd5c5d 100644
--- a/data/rooms/town/19.yaml
+++ b/data/rooms/example/town/9999919.yaml
@@ -1,6 +1,6 @@
-id: 19
+id: 9999919
name: "Agility Course"
description: "A training ground with balance beams, monkey bars, and climbing nets. This area is not yet accessible."
exits:
- east: 20
- west: 18
+ east: 9999920
+ west: 9999918
diff --git a/data/rooms/town/2.yaml b/data/rooms/example/town/999992.yaml
index 8d3fe2d..90bacac 100644
--- a/data/rooms/town/2.yaml
+++ b/data/rooms/example/town/999992.yaml
@@ -1,10 +1,10 @@
-id: 2
+id: 999992
name: "Fishing Spot"
description: "A quiet spot along the riverbank. The water is clear and fish can be seen swimming beneath the surface. You can cast a line here with a fishing rod and bait."
exits:
- east: 4
- north: 3
- west: 1
+ east: 999994
+ north: 999993
+ west: 999991
objects:
- id: bait_fishing_spot
item_spawns:
diff --git a/data/rooms/town/20.yaml b/data/rooms/example/town/9999920.yaml
index 379322b..88a2e3c 100644
--- a/data/rooms/town/20.yaml
+++ b/data/rooms/example/town/9999920.yaml
@@ -1,6 +1,6 @@
-id: 20
+id: 9999920
name: "Assassin's Bureau"
description: "A discreet office with job postings pinned to a corkboard. This area is not yet accessible."
exits:
- east: 21
- west: 19
+ east: 9999921
+ west: 9999919
diff --git a/data/rooms/town/21.yaml b/data/rooms/example/town/9999921.yaml
index ac6dfad..8c399fe 100644
--- a/data/rooms/town/21.yaml
+++ b/data/rooms/example/town/9999921.yaml
@@ -1,8 +1,8 @@
-id: 21
+id: 9999921
name: "Combat Arena"
description: "A sandy training ground with practice dummies and sparring rings. Several men wander here looking for a fight."
exits:
- west: 20
+ west: 9999920
mobs:
- id: man
wander_interval: 10
diff --git a/data/rooms/town/22.yaml b/data/rooms/example/town/9999922.yaml
index 2199783..fb2fe9f 100644
--- a/data/rooms/town/22.yaml
+++ b/data/rooms/example/town/9999922.yaml
@@ -1,6 +1,6 @@
-id: 22
+id: 9999922
name: "West of Town Square"
description: ""
exits:
- east: 1
- west: 23
+ east: 999991
+ west: 9999923
diff --git a/data/rooms/town/23.yaml b/data/rooms/example/town/9999923.yaml
index 45a9d18..6160f00 100644
--- a/data/rooms/town/23.yaml
+++ b/data/rooms/example/town/9999923.yaml
@@ -1,6 +1,6 @@
-id: 23
+id: 9999923
name: "West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- east: 22
- south: 24
+ east: 9999922
+ south: 9999924
diff --git a/data/rooms/town/24.yaml b/data/rooms/example/town/9999924.yaml
index e1c9068..4c4592f 100644
--- a/data/rooms/town/24.yaml
+++ b/data/rooms/example/town/9999924.yaml
@@ -1,6 +1,6 @@
-id: 24
+id: 9999924
name: "South of West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- north: 23
- east: 25
+ north: 9999923
+ east: 9999925
diff --git a/data/rooms/town/25.yaml b/data/rooms/example/town/9999925.yaml
index 78bc181..b9ad750 100644
--- a/data/rooms/town/25.yaml
+++ b/data/rooms/example/town/9999925.yaml
@@ -1,6 +1,6 @@
-id: 25
+id: 9999925
name: "East of South of West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- west: 24
- east: 26
+ west: 9999924
+ east: 9999926
diff --git a/data/rooms/town/26.yaml b/data/rooms/example/town/9999926.yaml
index 0db976e..f776337 100644
--- a/data/rooms/town/26.yaml
+++ b/data/rooms/example/town/9999926.yaml
@@ -1,6 +1,6 @@
-id: 26
+id: 9999926
name: "East of South of West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- west: 25
- south: 27
+ west: 9999925
+ south: 9999927
diff --git a/data/rooms/town/27.yaml b/data/rooms/example/town/9999927.yaml
index d820374..1c108e6 100644
--- a/data/rooms/town/27.yaml
+++ b/data/rooms/example/town/9999927.yaml
@@ -1,6 +1,6 @@
-id: 27
+id: 9999927
name: "East of South of West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- west: 28
- north: 26
+ west: 9999928
+ north: 9999926
diff --git a/data/rooms/town/28.yaml b/data/rooms/example/town/9999928.yaml
index b34ada0..79917f1 100644
--- a/data/rooms/town/28.yaml
+++ b/data/rooms/example/town/9999928.yaml
@@ -1,5 +1,5 @@
-id: 28
+id: 9999928
name: "East of South of West of West of Town Square"
description: "Here is a description of where we are!"
exits:
- east: 27
+ east: 9999927
diff --git a/data/rooms/town/3.yaml b/data/rooms/example/town/999993.yaml
index 8a1cade..078da89 100644
--- a/data/rooms/town/3.yaml
+++ b/data/rooms/example/town/999993.yaml
@@ -1,8 +1,8 @@
-id: 3
+id: 999993
name: "Fly Fishing Pool"
description: "A calm pool where insects hover over the water. Perfect for fly fishing."
exits:
- south: 2
+ south: 999992
objects:
- id: fly_fishing_spot
item_spawns:
diff --git a/data/rooms/town/30.yaml b/data/rooms/example/town/9999930.yaml
index ddce834..6e8a4c2 100644
--- a/data/rooms/town/30.yaml
+++ b/data/rooms/example/town/9999930.yaml
@@ -1,5 +1,5 @@
-id: 30
+id: 9999930
name: "Above Town Square"
description: "The central square of Lumbridge. A fountain gurgles peacefully in the center. Paths lead west toward the gathering grounds and east toward the production district."
exits:
- down: 1
+ down: 999991
diff --git a/data/rooms/town/31.yaml b/data/rooms/example/town/9999931.yaml
index 5b5f4d5..9a93023 100644
--- a/data/rooms/town/31.yaml
+++ b/data/rooms/example/town/9999931.yaml
@@ -1,6 +1,6 @@
-id: 31
+id: 9999931
name: "Below Town Square"
description: "The central square of Lumbridge. A fountain gurgles peacefully in the center. Paths lead west toward the gathering grounds and east toward the production district."
exits:
- up: 1
- down: 50
+ up: 999991
+ down: 9999950
diff --git a/data/rooms/town/4.yaml b/data/rooms/example/town/999994.yaml
index 9453651..e8c3453 100644
--- a/data/rooms/town/4.yaml
+++ b/data/rooms/example/town/999994.yaml
@@ -1,10 +1,10 @@
-id: 4
+id: 999994
name: "Woodcutting Glade"
description: "A sunny glade at the edge of the forest. A sturdy tree stands here, perfect for practicing woodcutting. A solid rock formation near the edge of the glade looks like it could provide cover."
exits:
- east: 6
- north: 5
- west: 2
+ east: 999996
+ north: 999995
+ west: 999992
objects:
- id: tree
- id: tree
diff --git a/data/rooms/town/5.yaml b/data/rooms/example/town/999995.yaml
index cdf84d8..767fe73 100644
--- a/data/rooms/town/5.yaml
+++ b/data/rooms/example/town/999995.yaml
@@ -1,8 +1,8 @@
-id: 5
+id: 999995
name: "Oak Grove"
description: "A stand of young oak trees. The wood here is tougher but more valuable."
exits:
- south: 4
+ south: 999994
objects:
- id: oak_tree
item_spawns:
diff --git a/data/rooms/town/6.yaml b/data/rooms/example/town/999996.yaml
index 34b5bd0..86b1b26 100644
--- a/data/rooms/town/6.yaml
+++ b/data/rooms/example/town/999996.yaml
@@ -1,10 +1,10 @@
-id: 6
+id: 999996
name: "Mining Pit"
description: "A small mining pit. The rocky walls glint with veins of copper ore."
exits:
- east: 8
- north: 7
- west: 4
+ east: 999998
+ north: 999997
+ west: 999994
objects:
- id: copper_rock
- id: copper_rock
diff --git a/data/rooms/town/7.yaml b/data/rooms/example/town/999997.yaml
index 37dfed9..847da5c 100644
--- a/data/rooms/town/7.yaml
+++ b/data/rooms/example/town/999997.yaml
@@ -1,8 +1,8 @@
-id: 7
+id: 999997
name: "Deep Mine"
description: "A deeper mine shaft. Higher quality ores can be found here. This area is not yet accessible."
exits:
- south: 6
+ south: 999996
mobs:
- id: goblin
- id: goblin
diff --git a/data/rooms/town/8.yaml b/data/rooms/example/town/999998.yaml
index b82c1bb..6700e9a 100644
--- a/data/rooms/town/8.yaml
+++ b/data/rooms/example/town/999998.yaml
@@ -1,9 +1,9 @@
-id: 8
+id: 999998
name: "Hacking Lab"
description: "A dimly lit room filled with old terminals and flickering screens. Cables dangle from the ceiling, some still sparking. The air smells of ozone and burnt circuitry. A {40}basic terminal{/} against the far wall still has power."
exits:
- east: 9
- west: 6
+ east: 999999
+ west: 999996
objects:
- id: terminal_basic
- id: terminal_advanced
diff --git a/data/rooms/town/9.yaml b/data/rooms/example/town/999999.yaml
index 2835128..71b7f5f 100644
--- a/data/rooms/town/9.yaml
+++ b/data/rooms/example/town/999999.yaml
@@ -1,11 +1,11 @@
-id: 9
+id: 999999
name: "Scavenging Post"
description: "A cluttered yard full of {243}scrap{/} and discarded technology. Piles of salvageable debris are scattered across the ground. The air smells of ozone and rust."
exits:
- east: 10
- west: 8
- north: 150
- south: 151
+ east: 9999910
+ west: 999998
+ north: 99999150
+ south: 99999151
objects:
- id: scrap_pile
- id: scrap_pile
diff --git a/data/rooms/underground/50.yaml b/data/rooms/example/underground/9999950.yaml
index 0c9ebf2..adbad79 100644
--- a/data/rooms/underground/50.yaml
+++ b/data/rooms/example/underground/9999950.yaml
@@ -1,7 +1,7 @@
-id: 50
+id: 9999950
name: "The Assassin's Den"
description: "A dimly lit basement accessible through a trapdoor. Tactical maps and bounty posters line the walls. The air smells of gun oil and burnt ozone. {141}The Client{/} sits behind a reinforced desk."
exits:
- up: 31
+ up: 9999931
mobs:
- "client"
diff --git a/data/rooms/underground/51.yaml b/data/rooms/example/underground/9999951.yaml
index 74a97ef..4dbd966 100644
--- a/data/rooms/underground/51.yaml
+++ b/data/rooms/example/underground/9999951.yaml
@@ -1,9 +1,9 @@
-id: 51
+id: 9999951
name: "Sewer Tunnels"
description: "Dark, damp tunnels beneath the settlement. The floor is slick with moisture and something {82}slimy{/}. The smell is indescribable."
exits:
- north: 50
- south: 52
+ north: 9999950
+ south: 9999952
mobs:
- "slug"
- "slug"
diff --git a/data/rooms/underground/52.yaml b/data/rooms/example/underground/9999952.yaml
index 2f90abd..7c8d871 100644
--- a/data/rooms/underground/52.yaml
+++ b/data/rooms/example/underground/9999952.yaml
@@ -1,9 +1,9 @@
-id: 52
+id: 9999952
name: "Abandoned Sector"
description: "A decommissioned sector of the asteroid's infrastructure. Broken monitors flicker and exposed wiring {214}sparks{/} dangerously."
exits:
- north: 51
- south: 53
+ north: 9999951
+ south: 9999953
mobs:
- "drone"
- "drone"
diff --git a/data/rooms/underground/53.yaml b/data/rooms/example/underground/9999953.yaml
index 126719b..bad2d27 100644
--- a/data/rooms/underground/53.yaml
+++ b/data/rooms/example/underground/9999953.yaml
@@ -1,9 +1,9 @@
-id: 53
+id: 9999953
name: "Deep Tunnels"
description: "The tunnels descend deeper into the asteroid's core. Strange chitinous scraping echoes from the darkness. The walls are scarred with {130}claw marks{/}."
exits:
- north: 52
- south: 54
+ north: 9999952
+ south: 9999954
mobs:
- "crawler"
- "crawler"
diff --git a/data/rooms/underground/54.yaml b/data/rooms/example/underground/9999954.yaml
index e86e5b7..315a831 100644
--- a/data/rooms/underground/54.yaml
+++ b/data/rooms/example/underground/9999954.yaml
@@ -1,9 +1,9 @@
-id: 54
+id: 9999954
name: "The Void Chamber"
description: "A vast cavern where reality seems to thin. The air shimmers with {141}spectral energy{/} and strange whispers fill your mind."
exits:
- north: 53
- down: 55
+ north: 9999953
+ down: 9999955
mobs:
- "phantom"
- "phantom"
diff --git a/data/rooms/underground/55.yaml b/data/rooms/example/underground/9999955.yaml
index 8000170..63f9dbd 100644
--- a/data/rooms/underground/55.yaml
+++ b/data/rooms/example/underground/9999955.yaml
@@ -1,12 +1,12 @@
-id: 55
+id: 9999955
name: "The Deeper Tunnels"
description: "A junction deep beneath the void chamber. The walls here are reinforced with pre-regression alloys. Several passages branch off into the darkness, and you can hear the sounds of machinery echoing from all directions. A steep shaft descends further into the depths."
exits:
- up: 54
- north: 56
- east: 57
- south: 58
- west: 60
- down: 62
+ up: 9999954
+ north: 9999956
+ east: 9999957
+ south: 9999958
+ west: 9999960
+ down: 9999962
mobs:
- id: security_turret
diff --git a/data/rooms/underground/56.yaml b/data/rooms/example/underground/9999956.yaml
index 375696d..74b75a9 100644
--- a/data/rooms/underground/56.yaml
+++ b/data/rooms/example/underground/9999956.yaml
@@ -1,8 +1,8 @@
-id: 56
+id: 9999956
name: "Irradiated Sector"
description: "Warning symbols cover every surface, their paint long since faded. A faint green glow emanates from cracks in the walls. The air is thick with the taste of old radiation."
exits:
- south: 55
+ south: 9999955
mobs:
- id: ghoul
- id: ghoul
diff --git a/data/rooms/underground/57.yaml b/data/rooms/example/underground/9999957.yaml
index 714197d..b32c7aa 100644
--- a/data/rooms/underground/57.yaml
+++ b/data/rooms/example/underground/9999957.yaml
@@ -1,8 +1,8 @@
-id: 57
+id: 9999957
name: "Drone Assembly"
description: "A long-abandoned drone manufacturing bay. Conveyor belts lie still, and half-assembled drone chassis hang from the ceiling. A few of them still twitch with residual power."
exits:
- west: 55
+ west: 9999955
mobs:
- id: war_drone
- id: war_drone
diff --git a/data/rooms/underground/58.yaml b/data/rooms/example/underground/9999958.yaml
index f4d1829..1834260 100644
--- a/data/rooms/underground/58.yaml
+++ b/data/rooms/example/underground/9999958.yaml
@@ -1,8 +1,8 @@
-id: 58
+id: 9999958
name: "Security Checkpoint"
description: "A fortified security station with blast shields and a decommissioned weapons locker. Scorch marks on the walls tell the story of a last stand."
exits:
- north: 55
- south: 59
+ north: 9999955
+ south: 9999959
mobs:
- id: enforcer_bot
diff --git a/data/rooms/underground/59.yaml b/data/rooms/example/underground/9999959.yaml
index a1cc594..21f526b 100644
--- a/data/rooms/underground/59.yaml
+++ b/data/rooms/example/underground/9999959.yaml
@@ -1,8 +1,8 @@
-id: 59
+id: 9999959
name: "Plasma Core"
description: "A massive plasma containment chamber with cracked magnetic coils lining the walls. Streams of superheated gas leak from the containment vessel, forming shimmering wraith-like shapes in the air."
exits:
- north: 58
+ north: 9999958
mobs:
- id: plasma_wraith
- id: plasma_wraith
diff --git a/data/rooms/underground/60.yaml b/data/rooms/example/underground/9999960.yaml
index e9b7114..9a45e32 100644
--- a/data/rooms/underground/60.yaml
+++ b/data/rooms/example/underground/9999960.yaml
@@ -1,8 +1,8 @@
-id: 60
+id: 9999960
name: "Heavy Mech Bay"
description: "An enormous maintenance bay built to house assault mechs. A gantry crane hangs overhead, and hydraulic lifts dot the floor. The bay's occupant is still active — and it has noticed you."
exits:
- east: 55
- west: 61
+ east: 9999955
+ west: 9999961
mobs:
- id: heavy_mech
diff --git a/data/rooms/underground/61.yaml b/data/rooms/example/underground/9999961.yaml
index a85c7ba..caf4eab 100644
--- a/data/rooms/underground/61.yaml
+++ b/data/rooms/example/underground/9999961.yaml
@@ -1,7 +1,7 @@
-id: 61
+id: 9999961
name: "Synth Lab"
description: "A sterile laboratory where combat androids were designed and assembled. White panels line the walls, some splattered with old coolant stains. Diagnostic screens flicker with corrupted data."
exits:
- east: 60
+ east: 9999960
mobs:
- id: elite_synth
diff --git a/data/rooms/underground/62.yaml b/data/rooms/example/underground/9999962.yaml
index 9ed1fad..531ead1 100644
--- a/data/rooms/underground/62.yaml
+++ b/data/rooms/example/underground/9999962.yaml
@@ -1,8 +1,8 @@
-id: 62
+id: 9999962
name: "Abandoned Bunker"
description: "A fortified bunker from some forgotten conflict. Sandbags are piled in the corners and spent shell casings litter the floor. A solitary figure stands watch over the remains."
exits:
- up: 55
- down: 63
+ up: 9999955
+ down: 9999963
mobs:
- id: veteran_merc
diff --git a/data/rooms/underground/63.yaml b/data/rooms/example/underground/9999963.yaml
index b6bf53e..99b8f90 100644
--- a/data/rooms/underground/63.yaml
+++ b/data/rooms/example/underground/9999963.yaml
@@ -1,8 +1,8 @@
-id: 63
+id: 9999963
name: "Magma Conduit"
description: "A geothermal vent has been tapped and routed through industrial conduits. The heat is oppressive, and molten rivulets course through channels in the floor. Something moves within the glowing flow."
exits:
- up: 62
- down: 64
+ up: 9999962
+ down: 9999964
mobs:
- id: molten_elemental
diff --git a/data/rooms/underground/64.yaml b/data/rooms/example/underground/9999964.yaml
index b412992..6bac466 100644
--- a/data/rooms/underground/64.yaml
+++ b/data/rooms/example/underground/9999964.yaml
@@ -1,8 +1,8 @@
-id: 64
+id: 9999964
name: "The Foundry"
description: "A vast smelting facility where sentinels were once forged. Massive crucibles hang from chains, and rivers of cooled slag form a maze-like floor. A single iron sentinel stands guard over the dormant machinery."
exits:
- up: 63
- down: 65
+ up: 9999963
+ down: 9999965
mobs:
- id: iron_sentinel
diff --git a/data/rooms/underground/65.yaml b/data/rooms/example/underground/9999965.yaml
index 47aed6b..47aed6b 100644
--- a/data/rooms/underground/65.yaml
+++ b/data/rooms/example/underground/9999965.yaml
diff --git a/data/rooms/underground/66.yaml b/data/rooms/example/underground/9999966.yaml
index 755d5e2..755d5e2 100644
--- a/data/rooms/underground/66.yaml
+++ b/data/rooms/example/underground/9999966.yaml
diff --git a/data/rooms/underground/67.yaml b/data/rooms/example/underground/9999967.yaml
index 6b8d663..6b8d663 100644
--- a/data/rooms/underground/67.yaml
+++ b/data/rooms/example/underground/9999967.yaml
diff --git a/data/rooms/underground/68.yaml b/data/rooms/example/underground/9999968.yaml
index f631981..f631981 100644
--- a/data/rooms/underground/68.yaml
+++ b/data/rooms/example/underground/9999968.yaml
diff --git a/data/rooms/wilderness/150.yaml b/data/rooms/example/wilderness/99999150.yaml
index 3e74da2..3e74da2 100644
--- a/data/rooms/wilderness/150.yaml
+++ b/data/rooms/example/wilderness/99999150.yaml
diff --git a/data/rooms/wilderness/151.yaml b/data/rooms/example/wilderness/99999151.yaml
index 4242270..4242270 100644
--- a/data/rooms/wilderness/151.yaml
+++ b/data/rooms/example/wilderness/99999151.yaml
diff --git a/data/rooms/wilderness/152.yaml b/data/rooms/example/wilderness/99999152.yaml
index 787bbbd..787bbbd 100644
--- a/data/rooms/wilderness/152.yaml
+++ b/data/rooms/example/wilderness/99999152.yaml
diff --git a/data/rooms/wilderness/160.yaml b/data/rooms/example/wilderness/99999160.yaml
index 7f30c34..7f30c34 100644
--- a/data/rooms/wilderness/160.yaml
+++ b/data/rooms/example/wilderness/99999160.yaml
diff --git a/data/rooms/wilderness/161.yaml b/data/rooms/example/wilderness/99999161.yaml
index 7c2c140..7c2c140 100644
--- a/data/rooms/wilderness/161.yaml
+++ b/data/rooms/example/wilderness/99999161.yaml
diff --git a/data/rooms/wilderness/162.yaml b/data/rooms/example/wilderness/99999162.yaml
index 6aab585..6aab585 100644
--- a/data/rooms/wilderness/162.yaml
+++ b/data/rooms/example/wilderness/99999162.yaml
diff --git a/data/rooms/wilderness/170.yaml b/data/rooms/example/wilderness/99999170.yaml
index 35d539f..35d539f 100644
--- a/data/rooms/wilderness/170.yaml
+++ b/data/rooms/example/wilderness/99999170.yaml
diff --git a/data/rooms/wilderness/171.yaml b/data/rooms/example/wilderness/99999171.yaml
index 552ccd4..552ccd4 100644
--- a/data/rooms/wilderness/171.yaml
+++ b/data/rooms/example/wilderness/99999171.yaml
diff --git a/data/rooms/example/wilderness/99999180.yaml b/data/rooms/example/wilderness/99999180.yaml
new file mode 100644
index 0000000..866d658
--- /dev/null
+++ b/data/rooms/example/wilderness/99999180.yaml
@@ -0,0 +1,5 @@
+id: 99999180
+name: "Construction Yard Entrance"
+description: "A fenced staging area at the edge of the terraforming works. Crates of brackets and coils of cable are stacked under a sturdy section of atmospheric dome. To the {220}north{/} the dome shielding gives out and the open solar array field begins."
+exits:
+ north: 99999181
diff --git a/data/rooms/example/wilderness/99999181.yaml b/data/rooms/example/wilderness/99999181.yaml
new file mode 100644
index 0000000..aae861b
--- /dev/null
+++ b/data/rooms/example/wilderness/99999181.yaml
@@ -0,0 +1,11 @@
+id: 99999181
+name: "Exposed Solar Array"
+description: "A wide field of steel frames stretches under a torn section of the atmospheric dome. Raw sunlight blazes down with nothing to filter it. Half-built {220}solar panel frames{/} wait to be finished. A jagged {248}rock outcrop{/} on the south edge throws a patch of shade. The yard entrance lies back to the {34}south{/}."
+hazard: solar_radiation
+exits:
+ south: 99999180
+objects:
+ - id: rock_outcrop
+mobs:
+ - solar_panel_frame
+ - solar_panel_frame
diff --git a/data/rooms/intro/1001.yaml b/data/rooms/intro/1001.yaml
new file mode 100644
index 0000000..7ad95fa
--- /dev/null
+++ b/data/rooms/intro/1001.yaml
@@ -0,0 +1,5 @@
+id: 1001
+name: "Inside the Landing Craft"
+description: "Rows of sturdy metal seats fill the cramped cabin of the landing craft, harnesses still swinging from the descent. A thin haze of recycled air hangs in the light spilling through the open hatch. The only way out is north, onto the landing pad."
+exits:
+ north: 1002
diff --git a/data/rooms/intro/1002.yaml b/data/rooms/intro/1002.yaml
new file mode 100644
index 0000000..2c9bb4f
--- /dev/null
+++ b/data/rooms/intro/1002.yaml
@@ -0,0 +1,43 @@
+id: 1002
+name: "Landing Pad"
+description: "A large, empty concrete pad in the middle of the ocean. The horizon stretches out in all directions."
+descriptions:
+ - condition:
+ player_flag: denali_intro_done
+ not: true
+ text: "A large concrete pad sits in the middle of an endless ocean. A mass of a couple dozen people spill from a small building to the north, their faces a churn of anxiety, impatience, and relief."
+objects:
+ - id: 1002_crowd
+ - id: 1002_shuttle
+ - id: 1002_pilot
+exits:
+ south:
+ room: 1001
+ condition:
+ player_flag: has_ticket
+ blocked_message: "You don't have a ticket!"
+ north:
+ room: 1003
+ condition:
+ player_flag: denali_lined_up
+ blocked_message: "A mass of people blocks the way."
+ set_player_flags:
+ denali_intro_done: true
+on_enter:
+ - condition:
+ player_flag: denali_lined_up
+ not: true
+ delay: 5
+ message: "Some of the group look you up and down."
+ - condition:
+ player_flag: denali_lined_up
+ not: true
+ delay: 5
+ message: "The pilot pops out of the hatch of the craft and calls out, \"Shuttle to Passenger Liner Denali. Tickets out, please! Nice and orderly!\""
+ set_player_flags:
+ denali_lined_up: true
+ - condition:
+ player_flag: denali_lined_up
+ not: true
+ delay: 0
+ message: "The people line up single file."
diff --git a/data/rooms/intro/1003.yaml b/data/rooms/intro/1003.yaml
new file mode 100644
index 0000000..a3fd89f
--- /dev/null
+++ b/data/rooms/intro/1003.yaml
@@ -0,0 +1,5 @@
+id: 1003
+name: "Customs Building"
+description: "A cramped customs checkpoint lit by flickering panels. Officials in grey uniforms wave the new arrivals through, one at a time. (This area is still under construction.)"
+exits:
+ south: 1002