From 0ea4eec5dd2122c6704216971eb1249276297867 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Fri, 19 Jun 2026 18:20:26 -0400 Subject: shop fixes, 'toggle' completely removed, movement speed increased --- data/behaviors/chop_magic.yaml | 22 --- data/behaviors/chop_mahogany.yaml | 22 --- data/behaviors/chop_maple.yaml | 22 --- data/behaviors/chop_oak.yaml | 22 --- data/behaviors/chop_redwood.yaml | 22 --- data/behaviors/chop_teak.yaml | 22 --- data/behaviors/chop_tree.yaml | 22 --- data/behaviors/chop_willow.yaml | 22 --- data/behaviors/chop_yew.yaml | 22 --- data/behaviors/client_talk.yaml | 217 ---------------------------- data/behaviors/estate_broker_talk.yaml | 49 ------- data/behaviors/fish_angler.yaml | 19 --- data/behaviors/fish_bait.yaml | 29 ---- data/behaviors/fish_cage.yaml | 18 --- data/behaviors/fish_fly.yaml | 29 ---- data/behaviors/fish_harpoon.yaml | 28 ---- data/behaviors/fish_net.yaml | 39 ----- data/behaviors/fish_sacred_eel.yaml | 19 --- data/behaviors/fish_swamp.yaml | 24 ---- data/behaviors/general_store.yaml | 49 ------- data/behaviors/guard_talk.yaml | 52 ------- data/behaviors/iron_gate_toggle.yaml | 9 -- data/behaviors/mine_adamantite.yaml | 20 --- data/behaviors/mine_clay.yaml | 20 --- data/behaviors/mine_coal.yaml | 20 --- data/behaviors/mine_copper.yaml | 25 ---- data/behaviors/mine_gold.yaml | 20 --- data/behaviors/mine_iron.yaml | 20 --- data/behaviors/mine_mithril.yaml | 20 --- data/behaviors/mine_runite.yaml | 20 --- data/behaviors/mine_scrap.yaml | 20 --- data/behaviors/mine_silver.yaml | 20 --- data/behaviors/mine_tin.yaml | 20 --- data/behaviors/netrunner_talk.yaml | 63 -------- data/behaviors/sawmill_operator_talk.yaml | 37 ----- data/behaviors/shear_sheep.yaml | 20 --- data/behaviors/stall_guard_talk.yaml | 36 ----- data/behaviors/tanner_talk.yaml | 46 ------ data/behaviors/tool_shed_talk.yaml | 86 ----------- data/behaviors/weapons_shop.yaml | 43 ------ data/help/autocast.yaml | 21 --- data/help/autotrigger.yaml | 21 +++ data/help/mods.yaml | 17 ++- data/help/movement.yaml | 12 +- data/help/science.yaml | 16 +-- data/help/shop.yaml | 19 ++- data/help/trigger.yaml | 3 +- data/help/use.yaml | 25 ++-- data/mobs/client.yaml | 231 +++++++++++++++++++++++++++--- data/mobs/estate_broker.yaml | 55 ++++++- data/mobs/general_store_clerk.yaml | 85 ++++++++--- data/mobs/guard.yaml | 92 +++++++++--- data/mobs/sawmill_operator.yaml | 50 ++++++- data/mobs/tanner.yaml | 82 ++++++++--- data/mobs/weapons_smith.yaml | 79 +++++++--- data/modules/bio_blast.yaml | 12 ++ data/modules/bio_bolt.yaml | 11 ++ data/modules/bio_strike.yaml | 10 ++ data/modules/bio_surge.yaml | 11 ++ data/modules/bio_wave.yaml | 12 ++ data/modules/bones_to_nutrients.yaml | 10 ++ data/modules/chip_diamond.yaml | 10 ++ data/modules/chip_emerald.yaml | 10 ++ data/modules/chip_ruby.yaml | 11 ++ data/modules/chip_sapphire.yaml | 10 ++ data/modules/eco_blast.yaml | 12 ++ data/modules/eco_bolt.yaml | 11 ++ data/modules/eco_strike.yaml | 11 ++ data/modules/eco_surge.yaml | 12 ++ data/modules/eco_wave.yaml | 12 ++ data/modules/em_grab.yaml | 10 ++ data/modules/enchant_1.yaml | 10 ++ data/modules/enchant_2.yaml | 10 ++ data/modules/enchant_3.yaml | 10 ++ data/modules/enchant_4.yaml | 10 ++ data/modules/high_process.yaml | 10 ++ data/modules/hydro_blast.yaml | 12 ++ data/modules/hydro_bolt.yaml | 11 ++ data/modules/hydro_strike.yaml | 11 ++ data/modules/hydro_surge.yaml | 12 ++ data/modules/hydro_wave.yaml | 12 ++ data/modules/low_process.yaml | 10 ++ data/modules/plank_make.yaml | 10 ++ data/modules/solar_blast.yaml | 12 ++ data/modules/solar_bolt.yaml | 11 ++ data/modules/solar_strike.yaml | 11 ++ data/modules/solar_surge.yaml | 12 ++ data/modules/solar_wave.yaml | 12 ++ data/modules/superheat.yaml | 10 ++ data/modules/transport_deep_mine.yaml | 11 ++ data/modules/transport_fishing.yaml | 12 ++ data/modules/transport_forest.yaml | 12 ++ data/modules/transport_forge.yaml | 11 ++ data/modules/transport_mine.yaml | 12 ++ data/modules/transport_scavenge.yaml | 11 ++ data/modules/transport_town.yaml | 12 ++ data/objects/adamantite_rock.yaml | 23 ++- data/objects/allotment_patch.yaml | 1 - data/objects/anglerfish_spot.yaml | 24 +++- data/objects/bait_fishing_spot.yaml | 34 ++++- data/objects/cage_fishing_spot.yaml | 23 ++- data/objects/clay_rock.yaml | 25 +++- data/objects/coal_rock.yaml | 23 ++- data/objects/copper_rock.yaml | 28 +++- data/objects/fire.yaml | 1 - data/objects/flower_patch.yaml | 1 - data/objects/fly_fishing_spot.yaml | 34 ++++- data/objects/gold_rock.yaml | 23 ++- data/objects/harpoon_fishing_spot.yaml | 33 ++++- data/objects/herb_patch.yaml | 1 - data/objects/iron_gate.yaml | 16 ++- data/objects/iron_rock.yaml | 23 ++- data/objects/magic_tree.yaml | 25 +++- data/objects/mahogany_tree.yaml | 25 +++- data/objects/maple_tree.yaml | 25 +++- data/objects/mithril_rock.yaml | 23 ++- data/objects/net_fishing_spot.yaml | 45 +++++- data/objects/netrunner.yaml | 69 ++++++++- data/objects/oak_tree.yaml | 25 +++- data/objects/redwood_tree.yaml | 25 +++- data/objects/runite_rock.yaml | 23 ++- data/objects/sacred_eel_spot.yaml | 24 +++- data/objects/scrap_pile.yaml | 19 ++- data/objects/sheep.yaml | 27 +++- data/objects/silver_rock.yaml | 23 ++- data/objects/swamp_fishing_spot.yaml | 29 +++- data/objects/teak_tree.yaml | 25 +++- data/objects/tin_rock.yaml | 23 ++- data/objects/tool_shed.yaml | 94 +++++++++++- data/objects/tree.yaml | 25 +++- data/objects/willow_tree.yaml | 25 +++- data/objects/yew_tree.yaml | 25 +++- data/rooms/9.yaml | 1 + 133 files changed, 1953 insertions(+), 1580 deletions(-) delete mode 100644 data/behaviors/chop_magic.yaml delete mode 100644 data/behaviors/chop_mahogany.yaml delete mode 100644 data/behaviors/chop_maple.yaml delete mode 100644 data/behaviors/chop_oak.yaml delete mode 100644 data/behaviors/chop_redwood.yaml delete mode 100644 data/behaviors/chop_teak.yaml delete mode 100644 data/behaviors/chop_tree.yaml delete mode 100644 data/behaviors/chop_willow.yaml delete mode 100644 data/behaviors/chop_yew.yaml delete mode 100644 data/behaviors/client_talk.yaml delete mode 100644 data/behaviors/estate_broker_talk.yaml delete mode 100644 data/behaviors/fish_angler.yaml delete mode 100644 data/behaviors/fish_bait.yaml delete mode 100644 data/behaviors/fish_cage.yaml delete mode 100644 data/behaviors/fish_fly.yaml delete mode 100644 data/behaviors/fish_harpoon.yaml delete mode 100644 data/behaviors/fish_net.yaml delete mode 100644 data/behaviors/fish_sacred_eel.yaml delete mode 100644 data/behaviors/fish_swamp.yaml delete mode 100644 data/behaviors/general_store.yaml delete mode 100644 data/behaviors/guard_talk.yaml delete mode 100644 data/behaviors/iron_gate_toggle.yaml delete mode 100644 data/behaviors/mine_adamantite.yaml delete mode 100644 data/behaviors/mine_clay.yaml delete mode 100644 data/behaviors/mine_coal.yaml delete mode 100644 data/behaviors/mine_copper.yaml delete mode 100644 data/behaviors/mine_gold.yaml delete mode 100644 data/behaviors/mine_iron.yaml delete mode 100644 data/behaviors/mine_mithril.yaml delete mode 100644 data/behaviors/mine_runite.yaml delete mode 100644 data/behaviors/mine_scrap.yaml delete mode 100644 data/behaviors/mine_silver.yaml delete mode 100644 data/behaviors/mine_tin.yaml delete mode 100644 data/behaviors/netrunner_talk.yaml delete mode 100644 data/behaviors/sawmill_operator_talk.yaml delete mode 100644 data/behaviors/shear_sheep.yaml delete mode 100644 data/behaviors/stall_guard_talk.yaml delete mode 100644 data/behaviors/tanner_talk.yaml delete mode 100644 data/behaviors/tool_shed_talk.yaml delete mode 100644 data/behaviors/weapons_shop.yaml delete mode 100644 data/help/autocast.yaml create mode 100644 data/help/autotrigger.yaml create mode 100644 data/modules/bio_blast.yaml create mode 100644 data/modules/bio_bolt.yaml create mode 100644 data/modules/bio_strike.yaml create mode 100644 data/modules/bio_surge.yaml create mode 100644 data/modules/bio_wave.yaml create mode 100644 data/modules/bones_to_nutrients.yaml create mode 100644 data/modules/chip_diamond.yaml create mode 100644 data/modules/chip_emerald.yaml create mode 100644 data/modules/chip_ruby.yaml create mode 100644 data/modules/chip_sapphire.yaml create mode 100644 data/modules/eco_blast.yaml create mode 100644 data/modules/eco_bolt.yaml create mode 100644 data/modules/eco_strike.yaml create mode 100644 data/modules/eco_surge.yaml create mode 100644 data/modules/eco_wave.yaml create mode 100644 data/modules/em_grab.yaml create mode 100644 data/modules/enchant_1.yaml create mode 100644 data/modules/enchant_2.yaml create mode 100644 data/modules/enchant_3.yaml create mode 100644 data/modules/enchant_4.yaml create mode 100644 data/modules/high_process.yaml create mode 100644 data/modules/hydro_blast.yaml create mode 100644 data/modules/hydro_bolt.yaml create mode 100644 data/modules/hydro_strike.yaml create mode 100644 data/modules/hydro_surge.yaml create mode 100644 data/modules/hydro_wave.yaml create mode 100644 data/modules/low_process.yaml create mode 100644 data/modules/plank_make.yaml create mode 100644 data/modules/solar_blast.yaml create mode 100644 data/modules/solar_bolt.yaml create mode 100644 data/modules/solar_strike.yaml create mode 100644 data/modules/solar_surge.yaml create mode 100644 data/modules/solar_wave.yaml create mode 100644 data/modules/superheat.yaml create mode 100644 data/modules/transport_deep_mine.yaml create mode 100644 data/modules/transport_fishing.yaml create mode 100644 data/modules/transport_forest.yaml create mode 100644 data/modules/transport_forge.yaml create mode 100644 data/modules/transport_mine.yaml create mode 100644 data/modules/transport_scavenge.yaml create mode 100644 data/modules/transport_town.yaml (limited to 'data') diff --git a/data/behaviors/chop_magic.yaml b/data/behaviors/chop_magic.yaml deleted file mode 100644 index 3d55658..0000000 --- a/data/behaviors/chop_magic.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_magic -type: gather -skill: woodcutting -level: 75 -xp: 250 -base_wait: 12 -tools: [axe] -success: - base: 0.15 - per_level: 0.01 - cap: 0.65 -gather_message: "You swing your axe at the magic tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: magic_logs - weight: 100 - depletes: false - message: "You get some {135}magic logs{/}." -respawn_timer: 199 -deplete_timer: 390 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_mahogany.yaml b/data/behaviors/chop_mahogany.yaml deleted file mode 100644 index dd6c4c5..0000000 --- a/data/behaviors/chop_mahogany.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_mahogany -type: gather -skill: woodcutting -level: 50 -xp: 125 -base_wait: 8 -tools: [axe] -success: - base: 0.25 - per_level: 0.01 - cap: 0.75 -gather_message: "You swing your axe at the mahogany tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: mahogany_logs - weight: 100 - depletes: false - message: "You get some {131}mahogany logs{/}." -respawn_timer: 14 -deplete_timer: 100 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_maple.yaml b/data/behaviors/chop_maple.yaml deleted file mode 100644 index 8505217..0000000 --- a/data/behaviors/chop_maple.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_maple -type: gather -skill: woodcutting -level: 45 -xp: 100 -base_wait: 8 -tools: [axe] -success: - base: 0.28 - per_level: 0.01 - cap: 0.78 -gather_message: "You swing your axe at the maple tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: maple_logs - weight: 100 - depletes: false - message: "You get some {173}maple logs{/}." -respawn_timer: 59 -deplete_timer: 100 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_oak.yaml b/data/behaviors/chop_oak.yaml deleted file mode 100644 index c9cfb48..0000000 --- a/data/behaviors/chop_oak.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_oak -type: gather -skill: woodcutting -level: 15 -xp: 37 -base_wait: 6 -tools: [axe] -success: - base: 0.40 - per_level: 0.01 - cap: 0.90 -gather_message: "You swing your axe at the oak tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: oak_logs - weight: 100 - depletes: false - message: "You get some {113}oak logs{/}." -respawn_timer: 14 -deplete_timer: 45 -nest_chance: 256 -respawn_broadcast: "An {name} grows back." diff --git a/data/behaviors/chop_redwood.yaml b/data/behaviors/chop_redwood.yaml deleted file mode 100644 index 9652f7a..0000000 --- a/data/behaviors/chop_redwood.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_redwood -type: gather -skill: woodcutting -level: 90 -xp: 380 -base_wait: 14 -tools: [axe] -success: - base: 0.10 - per_level: 0.01 - cap: 0.60 -gather_message: "You swing your axe at the redwood tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: redwood_logs - weight: 100 - depletes: false - message: "You get some {131}redwood logs{/}." -respawn_timer: 199 -deplete_timer: 440 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_teak.yaml b/data/behaviors/chop_teak.yaml deleted file mode 100644 index f1ed770..0000000 --- a/data/behaviors/chop_teak.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_teak -type: gather -skill: woodcutting -level: 35 -xp: 85 -base_wait: 6 -tools: [axe] -success: - base: 0.32 - per_level: 0.01 - cap: 0.82 -gather_message: "You swing your axe at the teak tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: teak_logs - weight: 100 - depletes: false - message: "You get some {179}teak logs{/}." -respawn_timer: 15 -deplete_timer: 50 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_tree.yaml b/data/behaviors/chop_tree.yaml deleted file mode 100644 index 4a12509..0000000 --- a/data/behaviors/chop_tree.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_tree -type: gather -skill: woodcutting -level: 1 -xp: 25 -base_wait: 4 -tools: [axe] -success: - base: 0.50 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your axe at the tree..." -depleted_message: "You don't see any usable wood in this tree." -fail_message: "You swing but get no logs." -drops: - - item_id: logs - weight: 100 - depletes: true - message: "You get some {107}logs{/}." -respawn_timer: 80 -exhausted_message: "The tree comes crashing down!" -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_willow.yaml b/data/behaviors/chop_willow.yaml deleted file mode 100644 index 597072e..0000000 --- a/data/behaviors/chop_willow.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_willow -type: gather -skill: woodcutting -level: 30 -xp: 67 -base_wait: 6 -tools: [axe] -success: - base: 0.35 - per_level: 0.01 - cap: 0.85 -gather_message: "You swing your axe at the willow tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: willow_logs - weight: 100 - depletes: false - message: "You get some {114}willow logs{/}." -respawn_timer: 14 -deplete_timer: 50 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/chop_yew.yaml b/data/behaviors/chop_yew.yaml deleted file mode 100644 index 1586b4b..0000000 --- a/data/behaviors/chop_yew.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: chop_yew -type: gather -skill: woodcutting -level: 60 -xp: 175 -base_wait: 10 -tools: [axe] -success: - base: 0.20 - per_level: 0.01 - cap: 0.70 -gather_message: "You swing your axe at the yew tree..." -fail_message: "You swing but get no logs." -drops: - - item_id: yew_logs - weight: 100 - depletes: false - message: "You get some {108}yew logs{/}." -respawn_timer: 99 -deplete_timer: 190 -nest_chance: 256 -respawn_broadcast: "A {name} grows back." diff --git a/data/behaviors/client_talk.yaml b/data/behaviors/client_talk.yaml deleted file mode 100644 index 84e4f6a..0000000 --- a/data/behaviors/client_talk.yaml +++ /dev/null @@ -1,217 +0,0 @@ -id: client_talk -type: talk -nodes: - start: - message: "The Client looks up from their data pad. \"What do you need?\"" - options: - - text: "\"I need a job.\"" - goto: assign_task - condition: - player_flag: assassin_task_mob - not: true - - text: "\"What's my current task?\"" - goto: current_task - condition: - player_flag: assassin_task_mob - not: false - - text: "\"I want to skip my task.\"" - goto: skip_confirm - condition: - player_flag: assassin_task_mob - not: false - - text: "\"I want to extend my task.\"" - goto: extend_confirm - condition: - all_of: - - player_flag: assassin_task_mob - not: false - - player_flag: assassin_unlocked_extend - value: true - - text: "\"I'd like to browse the Reputation Shop.\"" - goto: rep_shop - - text: "\"I need supplies.\"" - goto: supplies - - text: "\"Goodbye.\"" - end: true - - assign_task: - message: "\"Let me check what's available...\" The Client scrolls through their data pad." - action: - assign_task: true - options: - - text: "\"Understood.\"" - end: true - - text: "\"What else do you have?\"" - goto: start - - current_task: - message: "\"Let me check your file.\" The Client pulls up your record." - options: - - text: "\"Okay.\"" - end: true - - skip_confirm: - message: "\"Skipping a task costs 30 Reputation and resets your streak. Are you sure?\"" - options: - - text: "\"Yes, skip it.\"" - goto: skip_done - - text: "\"Never mind.\"" - goto: start - - skip_done: - message: "\"Task cancelled. Your streak has been reset.\"" - action: - skip_task: true - options: - - text: "\"Give me a new one.\"" - goto: assign_task - - text: "\"Goodbye.\"" - end: true - - extend_confirm: - message: "\"Extending your task costs 30 Reputation and adds more kills. Want to proceed?\"" - options: - - text: "\"Yes, extend it.\"" - goto: extend_done - - text: "\"Never mind.\"" - goto: start - - extend_done: - message: "\"Done. I've added more targets to your contract.\"" - action: - extend_task: true - options: - - text: "\"Thanks.\"" - end: true - - rep_shop: - message: "\"Here's what I've got. All purchases are permanent.\"" - options: - - text: "\"Auto-finish: Salt (200 Rep) - Never consume salt on finishing blows.\"" - goto: buy_auto_salt - condition: - player_flag: assassin_unlocked_auto_salt - not: true - - text: "\"Auto-finish: Acid Vial (200 Rep) - Never consume acid vials on finishing blows.\"" - goto: buy_auto_acid - condition: - player_flag: assassin_unlocked_auto_acid_vial - not: true - - text: "\"Unlock Superior Mobs (300 Rep) - Rare superior variants may spawn.\"" - goto: buy_superiors - condition: - player_flag: assassin_unlocked_superiors - not: true - - text: "\"Unlock Extended Tasks (100 Rep) - Allows extending tasks.\"" - goto: buy_extend_unlock - condition: - player_flag: assassin_unlocked_extend - not: true - - text: "\"Back.\"" - goto: start - - buy_auto_salt: - message: "\"Auto-salt purchased. You'll no longer consume salt on finishing blows.\"" - action: - reputation_cost: 200 - set_player_flags: - assassin_unlocked_auto_salt: true - options: - - text: "\"Thanks.\"" - goto: rep_shop - - buy_auto_acid: - message: "\"Auto-acid purchased. Acid vials will no longer be consumed.\"" - action: - reputation_cost: 200 - set_player_flags: - assassin_unlocked_auto_acid_vial: true - options: - - text: "\"Thanks.\"" - goto: rep_shop - - buy_superiors: - message: "\"Superior encounters unlocked. Watch yourself out there.\"" - action: - reputation_cost: 300 - set_player_flags: - assassin_unlocked_superiors: true - options: - - text: "\"Thanks.\"" - goto: rep_shop - - buy_extend_unlock: - message: "\"You can now extend tasks via our conversation.\"" - action: - reputation_cost: 100 - set_player_flags: - assassin_unlocked_extend: true - options: - - text: "\"Thanks.\"" - goto: rep_shop - - supplies: - message: "\"I stock everything you need for the job. Cheap, too.\"" - options: - - text: "\"Buy salt (5 credits each).\"" - goto: buy_salt - condition: - min_credits: 5 - - text: "\"Buy acid vial (10 credits each).\"" - goto: buy_acid - condition: - min_credits: 10 - - text: "\"Buy insulated gloves (50 credits).\"" - goto: buy_gloves - condition: - min_credits: 50 - - text: "\"Buy spectral visor (75 credits).\"" - goto: buy_visor - condition: - min_credits: 75 - - text: "\"Back.\"" - goto: start - - buy_salt: - message: "\"Here you go.\" The Client slides a packet of salt across the table." - action: - give_item: salt - cost: 5 - options: - - text: "\"Buy more.\"" - goto: buy_salt - condition: - min_credits: 5 - - text: "\"Thanks.\"" - goto: supplies - - buy_acid: - message: "\"Handle with care.\" The Client passes you a vial of corrosive acid." - action: - give_item: acid_vial - cost: 10 - options: - - text: "\"Buy more.\"" - goto: buy_acid - condition: - min_credits: 10 - - text: "\"Thanks.\"" - goto: supplies - - buy_gloves: - message: "\"These'll keep the current from frying your hands.\" The Client tosses you a pair of thick rubber gloves." - action: - give_item: insulated_gloves - cost: 50 - options: - - text: "\"Thanks.\"" - goto: supplies - - buy_visor: - message: "\"Spectral frequency filter. Makes the invisible visible — and keeps their attacks from scrambling your brain.\"" - action: - give_item: spectral_visor - cost: 75 - options: - - text: "\"Thanks.\"" - goto: supplies diff --git a/data/behaviors/estate_broker_talk.yaml b/data/behaviors/estate_broker_talk.yaml deleted file mode 100644 index b14323d..0000000 --- a/data/behaviors/estate_broker_talk.yaml +++ /dev/null @@ -1,49 +0,0 @@ -id: estate_broker_talk -type: talk -nodes: - start: - message: "Welcome to the Local Neighborhood development! I'm selling premium housing plots for only 10 credits. Interested in buying a house?" - options: - - text: "Yes, I'd like to buy a house." - condition: - not: - player_flag: owns_house_local_neighborhood - action: - cost: 10 - set_player_flags: - owns_house_local_neighborhood: "local_neighborhood" - next: purchased - - text: "I already own a house here." - condition: - player_flag: owns_house_local_neighborhood - next: already_own - - text: "No thanks." - next: goodbye - - text: "What do I get with a house?" - next: info - purchased: - message: "Excellent! The plot is yours. You'll find your new home in the Local Neighborhood just north of here. Use the Estate Directory terminal to enter your house. The home comes with a workshop — perfect for construction projects." - options: - - text: "Thanks!" - next: start - already_own: - message: "Yes, you're already a proud homeowner here! Your house is waiting for you. Use the Estate Directory to enter it, or expand your workshop." - options: - - text: "Good to know." - next: start - info: - message: "Each house comes with an entrance hall and a workshop equipped with a workbench. You can use the workbench with a saw to turn logs into planks, or assemble planks into furniture. Furniture can be sold for a profit or displayed in your home. Future developments will allow adding more rooms to your house." - options: - - text: "Sounds great! I'll buy one." - condition: - not: - player_flag: owns_house_local_neighborhood - action: - cost: 10 - set_player_flags: - owns_house_local_neighborhood: "local_neighborhood" - next: purchased - - text: "Maybe later." - next: goodbye - goodbye: - message: "Come back when you're ready to invest in your future!" diff --git a/data/behaviors/fish_angler.yaml b/data/behaviors/fish_angler.yaml deleted file mode 100644 index 95e5873..0000000 --- a/data/behaviors/fish_angler.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: fish_angler -type: gather -skill: fishing -level: 1 -base_wait: 6 -tools: [fishing_rod] -bait: fishing_bait -success: - base: 0.30 - per_level: 0.005 - cap: 0.80 -gather_message: "You cast your line into the deep water..." -fail_message: "Nothing seems to bite." -drops: - - item_id: raw_anglerfish - level: 82 - xp: 120 - weight: 100 - message: "You catch a {80}raw anglerfish{/}." diff --git a/data/behaviors/fish_bait.yaml b/data/behaviors/fish_bait.yaml deleted file mode 100644 index 0d6bc4e..0000000 --- a/data/behaviors/fish_bait.yaml +++ /dev/null @@ -1,29 +0,0 @@ -id: fish_bait -type: gather -skill: fishing -level: 1 -base_wait: 5 -tools: [fishing_rod] -bait: fishing_bait -success: - base: 0.50 - per_level: 0.005 - cap: 0.90 -gather_message: "You cast your line into the water..." -fail_message: "Nothing seems to bite." -drops: - - item_id: raw_sardine - level: 5 - xp: 20 - weight: 60 - message: "You catch a {75}raw sardine{/}." - - item_id: raw_herring - level: 10 - xp: 30 - weight: 40 - message: "You catch a {75}raw herring{/}." - - item_id: raw_pike - level: 25 - xp: 60 - weight: 30 - message: "You catch a {69}raw pike{/}." diff --git a/data/behaviors/fish_cage.yaml b/data/behaviors/fish_cage.yaml deleted file mode 100644 index a5d0241..0000000 --- a/data/behaviors/fish_cage.yaml +++ /dev/null @@ -1,18 +0,0 @@ -id: fish_cage -type: gather -skill: fishing -level: 1 -base_wait: 6 -tools: [lobster_pot] -success: - base: 0.45 - per_level: 0.005 - cap: 0.85 -gather_message: "You lower your lobster pot into the water..." -fail_message: "The pot comes up empty." -drops: - - item_id: raw_lobster - level: 40 - xp: 90 - weight: 100 - message: "You catch a {33}raw lobster{/}." diff --git a/data/behaviors/fish_fly.yaml b/data/behaviors/fish_fly.yaml deleted file mode 100644 index 1a86b64..0000000 --- a/data/behaviors/fish_fly.yaml +++ /dev/null @@ -1,29 +0,0 @@ -id: fish_fly -type: gather -skill: fishing -level: 1 -base_wait: 5 -tools: [fly_rod] -bait: feather -success: - base: 0.50 - per_level: 0.005 - cap: 0.90 -gather_message: "You cast your fly into the water..." -fail_message: "Nothing seems to bite." -drops: - - item_id: raw_trout - level: 20 - xp: 50 - weight: 50 - message: "You catch a {69}raw trout{/}." - - item_id: raw_salmon - level: 30 - xp: 70 - weight: 50 - message: "You catch a {69}raw salmon{/}." - - item_id: raw_rainbow_fish - level: 38 - xp: 80 - weight: 30 - message: "You catch a {177}raw rainbow fish{/}." diff --git a/data/behaviors/fish_harpoon.yaml b/data/behaviors/fish_harpoon.yaml deleted file mode 100644 index 3775573..0000000 --- a/data/behaviors/fish_harpoon.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: fish_harpoon -type: gather -skill: fishing -level: 1 -base_wait: 6 -tools: [harpoon] -success: - base: 0.40 - per_level: 0.005 - cap: 0.80 -gather_message: "You ready your harpoon..." -fail_message: "You fail to spear anything." -drops: - - item_id: raw_tuna - level: 35 - xp: 80 - weight: 60 - message: "You harpoon a {33}raw tuna{/}." - - item_id: raw_swordfish - level: 50 - xp: 100 - weight: 50 - message: "You harpoon a {33}raw swordfish{/}." - - item_id: raw_shark - level: 76 - xp: 110 - weight: 30 - message: "You harpoon a {27}raw shark{/}." diff --git a/data/behaviors/fish_net.yaml b/data/behaviors/fish_net.yaml deleted file mode 100644 index 46c0008..0000000 --- a/data/behaviors/fish_net.yaml +++ /dev/null @@ -1,39 +0,0 @@ -id: fish_net -type: gather -skill: fishing -level: 1 -base_wait: 5 -tools: [small_net, big_net] -success: - base: 0.50 - per_level: 0.005 - cap: 0.90 -gather_message: "You cast your net into the water..." -depleted_message: "You don't see any fish swimming here." -fail_message: "You catch nothing." -drops: - - item_id: raw_shrimps - level: 1 - xp: 10 - weight: 50 - message: "You catch some {75}raw shrimps{/}." - - item_id: raw_anchovies - level: 1 - xp: 10 - weight: 50 - message: "You catch some {75}raw anchovies{/}." - - item_id: raw_mackerel - level: 16 - xp: 20 - weight: 50 - message: "You catch a {69}raw mackerel{/}." - - item_id: raw_cod - level: 23 - xp: 30 - weight: 50 - message: "You catch a {69}raw cod{/}." - - item_id: raw_bass - level: 46 - xp: 50 - weight: 50 - message: "You catch a {69}raw bass{/}." diff --git a/data/behaviors/fish_sacred_eel.yaml b/data/behaviors/fish_sacred_eel.yaml deleted file mode 100644 index f9712d1..0000000 --- a/data/behaviors/fish_sacred_eel.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: fish_sacred_eel -type: gather -skill: fishing -level: 1 -base_wait: 6 -tools: [fishing_rod] -bait: fishing_bait -success: - base: 0.25 - per_level: 0.005 - cap: 0.75 -gather_message: "You cast your line near the sacred waters..." -fail_message: "Nothing seems to bite." -drops: - - item_id: sacred_eel - level: 87 - xp: 125 - weight: 100 - message: "You catch a {177}sacred eel{/}." diff --git a/data/behaviors/fish_swamp.yaml b/data/behaviors/fish_swamp.yaml deleted file mode 100644 index 019e979..0000000 --- a/data/behaviors/fish_swamp.yaml +++ /dev/null @@ -1,24 +0,0 @@ -id: fish_swamp -type: gather -skill: fishing -level: 1 -base_wait: 5 -tools: [fishing_rod] -bait: fishing_bait -success: - base: 0.45 - per_level: 0.005 - cap: 0.85 -gather_message: "You cast your line into the murky swamp..." -fail_message: "Nothing seems to bite." -drops: - - item_id: raw_slimy_eel - level: 28 - xp: 80 - weight: 60 - message: "You catch a {108}raw slimy eel{/}." - - item_id: raw_cave_eel - level: 38 - xp: 80 - weight: 40 - message: "You catch a {80}raw cave eel{/}." diff --git a/data/behaviors/general_store.yaml b/data/behaviors/general_store.yaml deleted file mode 100644 index 657e842..0000000 --- a/data/behaviors/general_store.yaml +++ /dev/null @@ -1,49 +0,0 @@ -id: general_store -type: talk -nodes: - start: - message: "\"Welcome to the General Store! Need any supplies?\"" - options: - - text: "\"I'd like to browse.\"" - goto: shop - - text: "\"Goodbye.\"" - end: true - shop: - message: "\"Take your time. What can I get you?\"" - action: - shop: - message: "What would you like to buy or sell?" - items: - - item_id: fishing_rod - buy_price: 10 - sell_price: 2 - - item_id: fishing_bait - buy_price: 2 - sell_price: 0 - - item_id: matches - buy_price: 10 - sell_price: 2 - - item_id: firesteel - buy_price: 40 - sell_price: 10 - - item_id: lighter - buy_price: 30 - sell_price: 7 - - item_id: hammer - buy_price: 20 - sell_price: 5 - - item_id: knife - buy_price: 10 - sell_price: 2 - - item_id: chisel - buy_price: 10 - sell_price: 2 - - item_id: bread - buy_price: 10 - sell_price: 2 - - item_id: bowstring - buy_price: 20 - sell_price: 5 - options: - - text: "\"I'm done.\"" - goto: start diff --git a/data/behaviors/guard_talk.yaml b/data/behaviors/guard_talk.yaml deleted file mode 100644 index 4adde0b..0000000 --- a/data/behaviors/guard_talk.yaml +++ /dev/null @@ -1,52 +0,0 @@ -id: guard_talk -type: talk -nodes: - start: - message: "\"Halt! This area is restricted.\" The guard eyes you suspiciously." - options: - - text: "\"What's behind that gate?\"" - goto: about_gate - - text: "\"I have copper ore.\"" - goto: trade_ore - condition: - has_item: copper_ore - - text: "\"I have a pass.\"" - goto: has_pass - condition: - player_flag: got_pass - value: true - - text: "\"Goodbye.\"" - end: true - about_gate: - message: "\"Supplies. Weapons. Things you don't need to worry about.\" He shifts his weight. \"Tell you what — bring me some copper ore and I'll stamp you a pass.\"" - action: - set_player_flags: - talked_to_guard: true - options: - - text: "\"I'll be back.\"" - end: true - - text: "\"I have some right here.\"" - goto: trade_ore - condition: - has_item: copper_ore - - text: "\"Goodbye.\"" - end: true - trade_ore: - message: "\"Good quality ore. This'll do.\" He stamps a slip of paper and hands it to you. \"That's your pass. Don't lose it.\"" - action: - take_item: copper_ore - give_item: pass_stub - set_player_flags: - got_pass: true - talked_to_guard: true - options: - - text: "\"Thanks.\"" - end: true - has_pass: - message: "\"Let me see that...\" He examines your pass and nods. \"Alright, I'll open the gate for you.\"" - action: - set_flags: - gate_open: true - options: - - text: "\"Thanks.\"" - end: true diff --git a/data/behaviors/iron_gate_toggle.yaml b/data/behaviors/iron_gate_toggle.yaml deleted file mode 100644 index e009ca7..0000000 --- a/data/behaviors/iron_gate_toggle.yaml +++ /dev/null @@ -1,9 +0,0 @@ -id: iron_gate_toggle -type: toggle -message: "You push the heavy iron gate." -set_flags: - gate_open: true -check: - flag: gate_open - value: true - not: true diff --git a/data/behaviors/mine_adamantite.yaml b/data/behaviors/mine_adamantite.yaml deleted file mode 100644 index 0ba62db..0000000 --- a/data/behaviors/mine_adamantite.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_adamantite -type: gather -skill: mining -level: 70 -xp: 95 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.15 - per_level: 0.01 - cap: 0.85 -gather_message: "You swing your pickaxe at the adamantite rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: adamantite_ore - weight: 100 - depletes: true - message: "You manage to mine some {120}adamantite ore{/}." -respawn_timer: 140 -respawn_broadcast: "A green glint of adamantite catches your eye from some {name}." diff --git a/data/behaviors/mine_clay.yaml b/data/behaviors/mine_clay.yaml deleted file mode 100644 index 69e1ccf..0000000 --- a/data/behaviors/mine_clay.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_clay -type: gather -skill: mining -level: 1 -xp: 5 -base_wait: 4 -tools: [pickaxe] -success: - base: 0.60 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the clay rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: clay - weight: 100 - depletes: true - message: "You manage to mine some clay." -respawn_timer: 10 -respawn_broadcast: "Some clay fills in a nearby rock." diff --git a/data/behaviors/mine_coal.yaml b/data/behaviors/mine_coal.yaml deleted file mode 100644 index f2fb01d..0000000 --- a/data/behaviors/mine_coal.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_coal -type: gather -skill: mining -level: 30 -xp: 50 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.30 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the coal rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: coal - weight: 100 - depletes: true - message: "You manage to mine some {240}coal{/}." -respawn_timer: 80 -respawn_broadcast: "A dark vein of coal is visible in some {name}." diff --git a/data/behaviors/mine_copper.yaml b/data/behaviors/mine_copper.yaml deleted file mode 100644 index e805f29..0000000 --- a/data/behaviors/mine_copper.yaml +++ /dev/null @@ -1,25 +0,0 @@ -id: mine_copper -type: gather -skill: mining -level: 1 -xp: 17 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.50 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the rock..." -depleted_message: "You don't see any ore in this rock." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: copper_ore - weight: 90 - depletes: true - message: "You manage to mine some {178}copper ore{/}." - - table: gem_table - weight: 10 - depletes: false - message: "You spot a glint of something valuable!" -respawn_timer: 50 -respawn_broadcast: "A glint of copper catches your eye from some {name}." diff --git a/data/behaviors/mine_gold.yaml b/data/behaviors/mine_gold.yaml deleted file mode 100644 index 0257ee6..0000000 --- a/data/behaviors/mine_gold.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_gold -type: gather -skill: mining -level: 40 -xp: 65 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.25 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the gold rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: gold_ore - weight: 100 - depletes: true - message: "You manage to mine some {220}gold ore{/}." -respawn_timer: 90 -respawn_broadcast: "A golden glint catches your eye from some {name}." diff --git a/data/behaviors/mine_iron.yaml b/data/behaviors/mine_iron.yaml deleted file mode 100644 index 290d99a..0000000 --- a/data/behaviors/mine_iron.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_iron -type: gather -skill: mining -level: 15 -xp: 35 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.40 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the iron rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: iron_ore - weight: 100 - depletes: true - message: "You manage to mine some {250}iron ore{/}." -respawn_timer: 60 -respawn_broadcast: "A glint of iron catches your eye from some {name}." diff --git a/data/behaviors/mine_mithril.yaml b/data/behaviors/mine_mithril.yaml deleted file mode 100644 index f1d0b43..0000000 --- a/data/behaviors/mine_mithril.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_mithril -type: gather -skill: mining -level: 55 -xp: 80 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.20 - per_level: 0.01 - cap: 0.90 -gather_message: "You swing your pickaxe at the mithril rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: mithril_ore - weight: 100 - depletes: true - message: "You manage to mine some {75}mithril ore{/}." -respawn_timer: 110 -respawn_broadcast: "A blue glint of mithril catches your eye from some {name}." diff --git a/data/behaviors/mine_runite.yaml b/data/behaviors/mine_runite.yaml deleted file mode 100644 index 534a78a..0000000 --- a/data/behaviors/mine_runite.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_runite -type: gather -skill: mining -level: 85 -xp: 125 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.08 - per_level: 0.01 - cap: 0.80 -gather_message: "You swing your pickaxe at the runite rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: runite_ore - weight: 100 - depletes: true - message: "You manage to mine some {87}runite ore{/}." -respawn_timer: 180 -respawn_broadcast: "A pale blue glint of runite catches your eye from some {name}." diff --git a/data/behaviors/mine_scrap.yaml b/data/behaviors/mine_scrap.yaml deleted file mode 100644 index c381b1c..0000000 --- a/data/behaviors/mine_scrap.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_scrap -type: gather -skill: mining -level: 1 -xp: 5 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.55 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the scrap pile..." -fail_message: "You find nothing useful." -drops: - - item_id: scrap_metal - weight: 100 - depletes: true - message: "You salvage some {243}scrap metal{/}." -respawn_timer: 50 -respawn_broadcast: "The scrap pile looks worth mining again." diff --git a/data/behaviors/mine_silver.yaml b/data/behaviors/mine_silver.yaml deleted file mode 100644 index 259ab72..0000000 --- a/data/behaviors/mine_silver.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_silver -type: gather -skill: mining -level: 20 -xp: 40 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.35 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the silver rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: silver_ore - weight: 100 - depletes: true - message: "You manage to mine some {253}silver ore{/}." -respawn_timer: 70 -respawn_broadcast: "A silvery glint catches your eye from some {name}." diff --git a/data/behaviors/mine_tin.yaml b/data/behaviors/mine_tin.yaml deleted file mode 100644 index ebc130a..0000000 --- a/data/behaviors/mine_tin.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: mine_tin -type: gather -skill: mining -level: 1 -xp: 17 -base_wait: 10 -tools: [pickaxe] -success: - base: 0.50 - per_level: 0.01 - cap: 0.95 -gather_message: "You swing your pickaxe at the rock..." -fail_message: "You chip away but get nothing useful." -drops: - - item_id: tin_ore - weight: 100 - depletes: true - message: "You manage to mine some {253}tin ore{/}." -respawn_timer: 50 -respawn_broadcast: "A glint of tin catches your eye from some {name}." diff --git a/data/behaviors/netrunner_talk.yaml b/data/behaviors/netrunner_talk.yaml deleted file mode 100644 index e20f12f..0000000 --- a/data/behaviors/netrunner_talk.yaml +++ /dev/null @@ -1,63 +0,0 @@ -id: netrunner_talk -type: talk -nodes: - start: - message: "The Netrunner looks up. \"You want in on the network? I can give you some pointers.\"" - options: - - text: "\"What is hacking?\"" - goto: what_is - - text: "\"Where can I find terminals?\"" - goto: terminals - - text: "\"Any tips for the basic terminal?\"" - goto: tips_basic - - text: "\"What about the advanced terminal?\"" - goto: tips_advanced - condition: - player_flag: hacking_asked_basic - value: true - - text: "\"Tell me about the secure terminal.\"" - goto: tips_secure - condition: - player_flag: hacking_asked_advanced - value: true - - text: "\"Goodbye.\"" - end: true - what_is: - message: "\"Hacking's about jacking into terminals and running their gauntlets. Each terminal runs a different challenge -- puzzles, hunts, pattern games. Crack 'em and you get better at it. Simple as that.\"" - options: - - text: "\"Where can I find terminals?\"" - goto: terminals - - text: "\"Goodbye.\"" - end: true - terminals: - message: "\"There's a basic terminal right here in this lab -- good for beginners. The station down east has an advanced one if you've got the chops. And if you're really good, there's a secure terminal deep in the compound. You'll need the skills to match though.\"" - options: - - text: "\"Any tips?\"" - goto: tips_basic - - text: "\"Thanks.\"" - end: true - tips_basic: - message: "\"The basic terminal runs an old rogue AI hunt. Twenty nodes in a network. You've got probes to flush it out. Listen for the warnings -- corrupted data means it's close, voids mean a trap, static means ICE. Shoot into adjacent nodes, don't walk into danger.\"" - action: - set_player_flags: - hacking_asked_basic: true - options: - - text: "\"What about the advanced terminal?\"" - goto: tips_advanced - - text: "\"Thanks.\"" - end: true - tips_advanced: - message: "\"Advanced terminal runs a cipher crack. Four symbols, no repeats. You get feedback after each guess -- locked means right spot, found means right symbol wrong spot. Process of elimination. Ten tries.\"" - action: - set_player_flags: - hacking_asked_advanced: true - options: - - text: "\"Tell me about the secure terminal.\"" - goto: tips_secure - - text: "\"Thanks.\"" - end: true - tips_secure: - message: "\"Secure terminal? Signal Bluff. It's a bluffing game -- you and the system each roll hidden dice and take turns making claims about the total. Ones are wild. Call the bluff or raise the stakes. Read the probabilities, play the odds, and don't let it psych you out.\"" - options: - - text: "\"Thanks.\"" - end: true diff --git a/data/behaviors/sawmill_operator_talk.yaml b/data/behaviors/sawmill_operator_talk.yaml deleted file mode 100644 index 338ee61..0000000 --- a/data/behaviors/sawmill_operator_talk.yaml +++ /dev/null @@ -1,37 +0,0 @@ -id: sawmill_operator_talk -type: talk -nodes: - start: - message: "Welcome to the lumberyard! I can turn your logs into planks — for a small fee, of course. What can I do for ya?" - options: - - text: "Turn all my logs into planks." - condition: - any_of: - - has_item: logs - - has_item: oak_logs - - has_item: teak_logs - - has_item: mahogany_logs - next: prices - - text: "What are your prices?" - next: prices - - text: "Nothing for now." - next: goodbye - prices: - message: "Here's what I charge per log:\n Regular logs: 5 credits\n Oak logs: 10 credits\n Teak logs: 20 credits\n Mahogany logs: 40 credits\n\nWant me to process your logs?" - options: - - text: "Yes, process all my logs." - condition: - any_of: - - has_item: logs - - has_item: oak_logs - - has_item: teak_logs - - has_item: mahogany_logs - next: process - - text: "No thanks." - next: goodbye - process: - message: "" - action: - sawmill: true - goodbye: - message: "Come back anytime you need more planks!" diff --git a/data/behaviors/shear_sheep.yaml b/data/behaviors/shear_sheep.yaml deleted file mode 100644 index a7061c3..0000000 --- a/data/behaviors/shear_sheep.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: shear_sheep -type: gather -skill: crafting -level: 1 -xp: 0 -base_wait: 3 -tools: [shears] -success: - base: 0.95 - per_level: 0 - cap: 0.95 -gather_message: "You hold the sheep still and begin shearing..." -fail_message: "The sheep wriggles free!" -drops: - - item_id: wool - weight: 100 - depletes: true - message: "You shear some wool from the sheep." -respawn_timer: 100 -respawn_broadcast: "A sheep grows a fresh coat of wool." diff --git a/data/behaviors/stall_guard_talk.yaml b/data/behaviors/stall_guard_talk.yaml deleted file mode 100644 index c9434af..0000000 --- a/data/behaviors/stall_guard_talk.yaml +++ /dev/null @@ -1,36 +0,0 @@ -id: stall_guard_talk -type: talk -nodes: - start: - message: "Caught you red-handed! You have three options, thief." - options: - - text: "\"I'll pay a fine. (500 credits)\"" - goto: bribe - condition: - min_credits: 500 - - text: "\"Take me to jail.\"" - goto: jail - - text: "\"You'll have to catch me first!\"" - goto: fight - bribe: - message: "Smart choice. Hand over 500 credits and we'll forget this happened." - action: - cost: 500 - options: - - text: "\"Fine, take it.\"" - end: true - jail: - message: "Off to the detention cell with you!" - action: - teleport: 162 - options: - - text: "(You are dragged away)" - end: true - fight: - message: "Then defend yourself!" - action: - set_flags: - guard_hostile: true - options: - - text: "(The guard attacks!)" - end: true \ No newline at end of file diff --git a/data/behaviors/tanner_talk.yaml b/data/behaviors/tanner_talk.yaml deleted file mode 100644 index edc0387..0000000 --- a/data/behaviors/tanner_talk.yaml +++ /dev/null @@ -1,46 +0,0 @@ -id: tanner_talk -type: talk -nodes: - start: - message: "\"Bring me some cowhides and I'll tan them for you. Leather is 10 credits, hard leather is 50.\"" - options: - - text: "\"Tan a cowhide into leather (10 credits).\"" - goto: tan_leather - condition: - all_of: - - has_item: cowhide - - min_credits: 10 - - text: "\"Tan a cowhide into hard leather (50 credits).\"" - goto: tan_hard_leather - condition: - all_of: - - has_item: cowhide - - min_credits: 50 - - text: "\"Never mind.\"" - end: true - tan_leather: - message: "The tanner takes your cowhide and works it skillfully. \"Here's your leather.\"" - action: - take_item: cowhide - give_item: leather - cost: 10 - options: - - text: "\"Tan another.\"" - goto: start - condition: - has_item: cowhide - - text: "\"Thanks.\"" - end: true - tan_hard_leather: - message: "The tanner takes your cowhide and subjects it to an intense curing process. \"Here's your hard leather.\"" - action: - take_item: cowhide - give_item: hard_leather - cost: 50 - options: - - text: "\"Tan another.\"" - goto: start - condition: - has_item: cowhide - - text: "\"Thanks.\"" - end: true diff --git a/data/behaviors/tool_shed_talk.yaml b/data/behaviors/tool_shed_talk.yaml deleted file mode 100644 index 87db9fa..0000000 --- a/data/behaviors/tool_shed_talk.yaml +++ /dev/null @@ -1,86 +0,0 @@ -id: tool_shed_talk -type: talk -nodes: - start: - message: "The tool shed is open. What would you like to do?" - options: - - text: "Store rake" - goto: store_rake - condition: - has_item: rake - - text: "Store spade" - goto: store_spade - condition: - has_item: spade - - text: "Store watering can" - goto: store_watering_can - condition: - has_item: watering_can - - text: "Retrieve rake" - goto: retrieve_rake - condition: - player_flag: tool_shed_rake - - text: "Retrieve spade" - goto: retrieve_spade - condition: - player_flag: tool_shed_spade - - text: "Retrieve watering can" - goto: retrieve_watering_can - condition: - player_flag: tool_shed_watering_can - - text: "Never mind" - end: true - store_rake: - message: "You store the rake in the tool shed." - action: - take_item: rake - set_player_flags: - tool_shed_rake: true - options: - - text: "Continue" - goto: start - store_spade: - message: "You store the spade in the tool shed." - action: - take_item: spade - set_player_flags: - tool_shed_spade: true - options: - - text: "Continue" - goto: start - store_watering_can: - message: "You store the watering can in the tool shed." - action: - take_item: watering_can - set_player_flags: - tool_shed_watering_can: true - options: - - text: "Continue" - goto: start - retrieve_rake: - message: "You retrieve the rake from the tool shed." - action: - give_item: rake - set_player_flags: - tool_shed_rake: false - options: - - text: "Continue" - goto: start - retrieve_spade: - message: "You retrieve the spade from the tool shed." - action: - give_item: spade - set_player_flags: - tool_shed_spade: false - options: - - text: "Continue" - goto: start - retrieve_watering_can: - message: "You retrieve the watering can from the tool shed." - action: - give_item: watering_can - set_player_flags: - tool_shed_watering_can: false - options: - - text: "Continue" - goto: start diff --git a/data/behaviors/weapons_shop.yaml b/data/behaviors/weapons_shop.yaml deleted file mode 100644 index d12a4e6..0000000 --- a/data/behaviors/weapons_shop.yaml +++ /dev/null @@ -1,43 +0,0 @@ -id: weapons_shop -type: talk -nodes: - start: - message: "\"Welcome to the Smithy! Finest weapons and armor on the asteroid.\"" - options: - - text: "\"Show me what you've got.\"" - goto: shop - - text: "\"Nothing right now.\"" - end: true - shop: - message: "\"Here's the current inventory. All quality guaranteed.\"" - action: - shop: - message: "The Smithy — buy or sell weapons and armor." - items: - - item_id: bronze_sword - buy_price: 25 - sell_price: 6 - - item_id: iron_sword - buy_price: 60 - sell_price: 15 - - item_id: bronze_axe - buy_price: 20 - sell_price: 5 - - item_id: iron_axe - buy_price: 50 - sell_price: 12 - - item_id: bronze_pickaxe - buy_price: 20 - sell_price: 5 - - item_id: iron_pickaxe - buy_price: 50 - sell_price: 12 - - item_id: bronze_med_helm - buy_price: 16 - sell_price: 4 - - item_id: iron_med_helm - buy_price: 40 - sell_price: 10 - options: - - text: "\"That's all for now.\"" - goto: start \ No newline at end of file diff --git a/data/help/autocast.yaml b/data/help/autocast.yaml deleted file mode 100644 index 9b4fc40..0000000 --- a/data/help/autocast.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: "autocast" -category: "Commands" -description: | - Set a mod to autocast during combat. - - Usage: autocast - autocast off - autocast - - Set a combat mod to automatically trigger each attack tick - during combat. When autocast is active, attacking a mob will - use science combat instead of melee, consuming junk each tick. - - If you run out of junk, autocast disables and you switch to - melee attacks. - - autocast - Show current autocast setting - autocast solar bolt - Set autocast to Solar Bolt - autocast off - Disable autocast - - See also: trigger, mods, science diff --git a/data/help/autotrigger.yaml b/data/help/autotrigger.yaml new file mode 100644 index 0000000..604d42d --- /dev/null +++ b/data/help/autotrigger.yaml @@ -0,0 +1,21 @@ +name: "autotrigger" +category: "Commands" +description: | + Set a mod to autotrigger during combat. + + Usage: autotrigger + autotrigger off + autotrigger + + Set a combat mod to automatically trigger each attack tick + during combat. When autotrigger is active, attacking a mob will + use science combat instead of melee, consuming junk each tick. + + If you run out of junk, autotrigger disables and you switch to + melee attacks. + + autotrigger - Show current autotrigger setting + autotrigger solar bolt - Set autotrigger to Solar Bolt + autotrigger off - Disable autotrigger + + See also: trigger, mods, science diff --git a/data/help/mods.yaml b/data/help/mods.yaml index ed9dbcb..42873da 100644 --- a/data/help/mods.yaml +++ b/data/help/mods.yaml @@ -1,16 +1,19 @@ name: "mods" category: "Commands" description: | - Display available science mods. + Display available science modules. - Usage: mods - modlist + Usage: mods [all] + modlist [all] - Display all science mods you have the level to use, organized + Display science modules you have the level to use, organized by category (Combat, Processing, Utility, Transport, Enchantment). - Shows the junk cost for each mod (adjusted for your equipped - deck). Also shows your current autocast setting. + Use 'mods all' to see all modules, including ones above your + current Science level (locked modules are dimmed). - See also: trigger, autocast, science + Shows the junk cost for each module (adjusted for your equipped + deck). Also shows your current autotrigger setting. + + See also: trigger, autotrigger, science diff --git a/data/help/movement.yaml b/data/help/movement.yaml index 19a09b9..0623510 100644 --- a/data/help/movement.yaml +++ b/data/help/movement.yaml @@ -6,16 +6,20 @@ description: | Usage: north, south, east, west, up, down Aliases: n, s, e, w, u, d - Movement takes 4 game ticks by default. Certain equipment reduces + Movement takes 2 game ticks by default. Certain equipment reduces this delay: Cape of Agility Instant movement (1 tick) - Graceful set Each piece reduces movement by 0.25 ticks. - Full set (6 pieces) gives an extra 0.5 bonus, - for 2 ticks total. Uses fractional ticks. + Graceful set Each piece reduces movement by 0.15 ticks. + Full set (6 pieces) gives an extra 0.1 bonus, + for 1 tick total. Uses fractional ticks. The Cape of Agility overrides all Graceful bonuses. + The "walk" command (BFSPathfinding or direction sequences) takes + twice as long as normal movement per step (4 ticks default, 2 ticks + with the full Graceful set). + Moving interrupts any active gathering or crafting action. During combat, movement becomes a flee attempt. The mob continues diff --git a/data/help/science.yaml b/data/help/science.yaml index 7681310..e34aa6e 100644 --- a/data/help/science.yaml +++ b/data/help/science.yaml @@ -1,14 +1,14 @@ name: "science" category: "Skills" description: | - Science is the skill that powers mods — powerful modules that + Science is the skill that powers modules — powerful programs that can be triggered for combat, teleportation, item processing, and enchanting. Key concepts: - - Mods are triggered with 'trigger ' or 'cast ' - - Every mod costs a combination of junk items - - All mods also cost 1 scrap metal, UNLESS you have a deck + - Modules are triggered with 'trigger ' + - Every module costs a combination of junk items + - All modules also cost 1 scrap metal, UNLESS you have a deck equipped - Wielding a deck (science weapon) removes the scrap requirement @@ -17,16 +17,16 @@ description: | Junk types: solarjunk, hydrojunk, ecojunk, biojunk (from scavenging) - chaosjunk, deathjunk, bloodjunk (combat mod components) + chaosjunk, deathjunk, bloodjunk (combat module components) lawjunk (transport), cosmicjunk (enchantment) naturejunk (processing) Decks: basic deck, solar deck, hydro deck, eco deck, bio deck Advanced versions of each elemental deck also exist. - Combat: Use 'trigger ' or set 'autocast ' + Combat: Use 'trigger ' or set 'autotrigger ' then 'attack ' - Type 'mods' to see all mods you can currently use. + Type 'mods' to see all modules you can currently use. - See also: trigger, autocast, mods, scavenging + See also: trigger, autotrigger, mods, scavenging diff --git a/data/help/shop.yaml b/data/help/shop.yaml index a0fd187..cc20420 100644 --- a/data/help/shop.yaml +++ b/data/help/shop.yaml @@ -6,15 +6,22 @@ description: | Find a shopkeeper NPC and talk to them to open their shop. While browsing a shop, these commands are available: - browse List all items for sale with buy/sell prices - list Same as browse - buy Purchase an item with credits (use # to buy by number) - sell Sell an item from your inventory for credits - leave Exit the shop and return to conversation + browse List all items for sale with buy/sell prices + list Same as browse + buy Buy an item by name (e.g. "buy fishing bait") + buy Buy a quantity of an item (e.g. "buy 5 bait") + buy all Buy as many as you can afford and carry + sell Sell an item by name (e.g. "sell bronze sword") + sell Sell a quantity of an item (e.g. "sell 3 logs") + sell all Sell all of that item from your inventory + leave Exit the shop and return to conversation + + Partial names work: "buy bait" matches "fishing bait". If a name + matches multiple items, a list is shown to disambiguate. Shops buy items at a lower price than they sell them. Some items cannot be sold back. Shopkeepers can be found throughout the world: - General Store: Town Square (sells tools and supplies) - - Smithy: Forge (sells weapons, armor, and tools) \ No newline at end of file + - Smithy: Forge (sells weapons, armor, and tools) diff --git a/data/help/trigger.yaml b/data/help/trigger.yaml index 0e6823d..176108e 100644 --- a/data/help/trigger.yaml +++ b/data/help/trigger.yaml @@ -4,7 +4,6 @@ description: | Trigger a science mod. Usage: trigger [target] - cast [target] Trigger a science mod. Combat mods target a mob and initiate science-based combat. Utility mods act on items in your @@ -21,4 +20,4 @@ description: | All mods cost junk (and 1 scrap metal unless you have a deck equipped). Type 'mods' to see your available mods and costs. - See also: autocast, mods, science + See also: autotrigger, mods, science diff --git a/data/help/use.yaml b/data/help/use.yaml index 92c717f..8139f8e 100644 --- a/data/help/use.yaml +++ b/data/help/use.yaml @@ -4,28 +4,35 @@ description: | Use an item on a target — the universal interaction command. Usage: - use on Use item on a specific target - use with Combine two inventory items + use Interact with a station or object + use on Use item on a specific target + use with Combine two inventory items The "use" command routes to different systems based on the target: - Station object (furnace, anvil, fire, range) - If recipes match the item and station, opens a production menu. + Station object (furnace, anvil, fire, range, workbench, etc.) + Shows a combined production menu of all recipes you can make. Object with use_interactions Shows a message or triggers an action (flags, teleport, etc.). + Some interactions need a specific item; bare interactions run + immediately. Object with behavior - Dispatches to the object's behavior (gather, talk, toggle). + Dispatches to the object's behavior (gather, talk, use). Inventory item If a MadeFrom recipe matches both items, starts a combine production action. You are prompted "How many?" before starting. Examples: - use trout on fire Cook trout on a campfire - use copper ore on furnace Smelt copper ore - use bronze bar on anvil Smith bronze items - use flour on water Combine into dough + use range Cook using a cooking range + use furnace Smelt ore or craft jewelry + use anvil Smith bars into equipment + use trout on fire Cook trout on a campfire + use copper ore on furnace Smelt copper ore + use bronze bar on anvil Smith bronze items + use flour on water Combine into dough + push gate Push a gate open (shortcut for use) See also: cook, smelt, smith, recipe diff --git a/data/mobs/client.yaml b/data/mobs/client.yaml index 9bcae4e..5e03cde 100644 --- a/data/mobs/client.yaml +++ b/data/mobs/client.yaml @@ -1,20 +1,219 @@ -id: client -name: The Client -description: "A shadowy figure in a dark coat. They speak in clipped, measured tones and seem to know everything about every creature in the sector." -unique: true -protected: true -behavior: client_talk +aggressive: false attack: 1 -strength: 1 defense: 1 +description: A shadowy figure in a dark coat. They speak in clipped, measured tones and seem to know everything about every creature in the sector. hp: 100 -speed: 5 -aggressive: false -respawn_ticks: 30 +id: client idle_descriptions: - - "reviews a holographic dossier" - - "marks a location on a worn star chart" - - "flips a credit chit between their fingers" - - "mutters coordinates under their breath" - - "glances at you appraisingly" - - "taps a data pad with a stylus" + - reviews a holographic dossier + - marks a location on a worn star chart + - flips a credit chit between their fingers + - mutters coordinates under their breath + - glances at you appraisingly + - taps a data pad with a stylus +name: The Client +protected: true +respawn_ticks: 30 +speed: 5 +strength: 1 +talk: + nodes: + assign_task: + action: + assign_task: true + message: '"Let me check what''s available..." The Client scrolls through their data pad.' + options: + - end: true + text: '"Understood."' + - goto: start + text: '"What else do you have?"' + buy_acid: + action: + cost: 10 + give_item: acid_vial + message: '"Handle with care." The Client passes you a vial of corrosive acid.' + options: + - condition: + min_credits: 10 + goto: buy_acid + text: '"Buy more."' + - goto: supplies + text: '"Thanks."' + buy_auto_acid: + action: + reputation_cost: 200 + set_player_flags: + assassin_unlocked_auto_acid_vial: true + message: '"Auto-acid purchased. Acid vials will no longer be consumed."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_auto_salt: + action: + reputation_cost: 200 + set_player_flags: + assassin_unlocked_auto_salt: true + message: '"Auto-salt purchased. You''ll no longer consume salt on finishing blows."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_extend_unlock: + action: + reputation_cost: 100 + set_player_flags: + assassin_unlocked_extend: true + message: '"You can now extend tasks via our conversation."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_gloves: + action: + cost: 50 + give_item: insulated_gloves + message: '"These''ll keep the current from frying your hands." The Client tosses you a pair of thick rubber gloves.' + options: + - goto: supplies + text: '"Thanks."' + buy_salt: + action: + cost: 5 + give_item: salt + message: '"Here you go." The Client slides a packet of salt across the table.' + options: + - condition: + min_credits: 5 + goto: buy_salt + text: '"Buy more."' + - goto: supplies + text: '"Thanks."' + buy_superiors: + action: + reputation_cost: 300 + set_player_flags: + assassin_unlocked_superiors: true + message: '"Superior encounters unlocked. Watch yourself out there."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_visor: + action: + cost: 75 + give_item: spectral_visor + message: '"Spectral frequency filter. Makes the invisible visible — and keeps their attacks from scrambling your brain."' + options: + - goto: supplies + text: '"Thanks."' + current_task: + message: '"Let me check your file." The Client pulls up your record.' + options: + - end: true + text: '"Okay."' + extend_confirm: + message: '"Extending your task costs 30 Reputation and adds more kills. Want to proceed?"' + options: + - goto: extend_done + text: '"Yes, extend it."' + - goto: start + text: '"Never mind."' + extend_done: + action: + extend_task: true + message: '"Done. I''ve added more targets to your contract."' + options: + - end: true + text: '"Thanks."' + rep_shop: + message: '"Here''s what I''ve got. All purchases are permanent."' + options: + - condition: + not: true + player_flag: assassin_unlocked_auto_salt + goto: buy_auto_salt + text: '"Auto-finish: Salt (200 Rep) - Never consume salt on finishing blows."' + - condition: + not: true + player_flag: assassin_unlocked_auto_acid_vial + goto: buy_auto_acid + text: '"Auto-finish: Acid Vial (200 Rep) - Never consume acid vials on finishing blows."' + - condition: + not: true + player_flag: assassin_unlocked_superiors + goto: buy_superiors + text: '"Unlock Superior Mobs (300 Rep) - Rare superior variants may spawn."' + - condition: + not: true + player_flag: assassin_unlocked_extend + goto: buy_extend_unlock + text: '"Unlock Extended Tasks (100 Rep) - Allows extending tasks."' + - goto: start + text: '"Back."' + skip_confirm: + message: '"Skipping a task costs 30 Reputation and resets your streak. Are you sure?"' + options: + - goto: skip_done + text: '"Yes, skip it."' + - goto: start + text: '"Never mind."' + skip_done: + action: + skip_task: true + message: '"Task cancelled. Your streak has been reset."' + options: + - goto: assign_task + text: '"Give me a new one."' + - end: true + text: '"Goodbye."' + start: + message: The Client looks up from their data pad. "What do you need?" + options: + - condition: + not: true + player_flag: assassin_task_mob + goto: assign_task + text: '"I need a job."' + - condition: + not: false + player_flag: assassin_task_mob + goto: current_task + text: '"What''s my current task?"' + - condition: + not: false + player_flag: assassin_task_mob + goto: skip_confirm + text: '"I want to skip my task."' + - condition: + all_of: + - not: false + player_flag: assassin_task_mob + - player_flag: assassin_unlocked_extend + value: true + goto: extend_confirm + text: '"I want to extend my task."' + - goto: rep_shop + text: '"I''d like to browse the Reputation Shop."' + - goto: supplies + text: '"I need supplies."' + - end: true + text: '"Goodbye."' + supplies: + message: '"I stock everything you need for the job. Cheap, too."' + options: + - condition: + min_credits: 5 + goto: buy_salt + text: '"Buy salt (5 credits each)."' + - condition: + min_credits: 10 + goto: buy_acid + text: '"Buy acid vial (10 credits each)."' + - condition: + min_credits: 50 + goto: buy_gloves + text: '"Buy insulated gloves (50 credits)."' + - condition: + min_credits: 75 + goto: buy_visor + text: '"Buy spectral visor (75 credits)."' + - goto: start + text: '"Back."' +unique: true diff --git a/data/mobs/estate_broker.yaml b/data/mobs/estate_broker.yaml index 0b56c4c..6698730 100644 --- a/data/mobs/estate_broker.yaml +++ b/data/mobs/estate_broker.yaml @@ -1,7 +1,54 @@ +color: "227" +description: A sharply-dressed real estate agent with a datapad and a practiced smile. id: estate_broker +idle: The estate broker flashes a professional smile. name: estate broker -behavior: estate_broker_talk +talk: + nodes: + already_own: + message: Yes, you're already a proud homeowner here! Your house is waiting for you. Use the Estate Directory to enter it, or expand your workshop. + options: + - next: start + text: Good to know. + goodbye: + message: Come back when you're ready to invest in your future! + info: + message: Each house comes with an entrance hall and a workshop equipped with a workbench. You can use the workbench with a saw to turn logs into planks, or assemble planks into furniture. Furniture can be sold for a profit or displayed in your home. Future developments will allow adding more rooms to your house. + options: + - action: + cost: 10 + set_player_flags: + owns_house_local_neighborhood: local_neighborhood + condition: + not: + player_flag: owns_house_local_neighborhood + next: purchased + text: Sounds great! I'll buy one. + - next: goodbye + text: Maybe later. + purchased: + message: Excellent! The plot is yours. You'll find your new home in the Local Neighborhood just north of here. Use the Estate Directory terminal to enter your house. The home comes with a workshop — perfect for construction projects. + options: + - next: start + text: Thanks! + start: + message: Welcome to the Local Neighborhood development! I'm selling premium housing plots for only 10 credits. Interested in buying a house? + options: + - action: + cost: 10 + set_player_flags: + owns_house_local_neighborhood: local_neighborhood + condition: + not: + player_flag: owns_house_local_neighborhood + next: purchased + text: Yes, I'd like to buy a house. + - condition: + player_flag: owns_house_local_neighborhood + next: already_own + text: I already own a house here. + - next: goodbye + text: No thanks. + - next: info + text: What do I get with a house? unique: true -color: "227" -description: "A sharply-dressed real estate agent with a datapad and a practiced smile." -idle: "The estate broker flashes a professional smile." diff --git a/data/mobs/general_store_clerk.yaml b/data/mobs/general_store_clerk.yaml index 842a98b..cc6d014 100644 --- a/data/mobs/general_store_clerk.yaml +++ b/data/mobs/general_store_clerk.yaml @@ -1,24 +1,71 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A friendly merchant with a tidy apron, standing behind a well-stocked counter. +hp: 50 id: general_store_clerk +idle_descriptions: + - arranges items on the shelves + - polishes the counter + - counts credits in the register + - greets a passerby with a nod name: Shopkeeper -description: "A friendly merchant with a tidy apron, standing behind a well-stocked counter." -behavior: general_store -unique: true protected: true -hp: 50 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "arranges items on the shelves" - - "polishes the counter" - - "counts credits in the register" - - "greets a passerby with a nod" \ No newline at end of file +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + shop: + action: + shop: + items: + - buy_price: 10 + item_id: fishing_rod + sell_price: 2 + - buy_price: 2 + item_id: fishing_bait + sell_price: 0 + - buy_price: 10 + item_id: matches + sell_price: 2 + - buy_price: 40 + item_id: firesteel + sell_price: 10 + - buy_price: 30 + item_id: lighter + sell_price: 7 + - buy_price: 20 + item_id: hammer + sell_price: 5 + - buy_price: 10 + item_id: knife + sell_price: 2 + - buy_price: 10 + item_id: chisel + sell_price: 2 + - buy_price: 10 + item_id: bread + sell_price: 2 + - buy_price: 20 + item_id: bowstring + sell_price: 5 + message: What would you like to buy or sell? + message: '"Take your time. What can I get you?"' + options: + - goto: start + text: '"I''m done."' + start: + message: '"Welcome to the General Store! Need any supplies?"' + options: + - goto: shop + text: '"I''d like to browse."' + - end: true + text: '"Goodbye."' +unique: true diff --git a/data/mobs/guard.yaml b/data/mobs/guard.yaml index 32617ce..04aacf5 100644 --- a/data/mobs/guard.yaml +++ b/data/mobs/guard.yaml @@ -1,26 +1,76 @@ -id: guard -name: Guard -description: "A stern-looking guard in weathered armor." -behavior: guard_talk -unique: true -protected: true +aggressive: false attack: 5 -strength: 5 +attack_bonus: 8 +attack_type: slash +crush_defense: 10 defense: 5 +description: A stern-looking guard in weathered armor. hp: 30 -speed: 5 -aggressive: false +id: guard +idle_descriptions: + - scans the area with a watchful eye + - adjusts the grip on his weapon + - nods curtly at passersby + - leans against the gate, arms folded +name: Guard +protected: true +ranged_defense: 12 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" - - "nods curtly at passersby" - - "leans against the gate, arms folded" +slash_defense: 15 +speed: 5 +stab_defense: 12 +strength: 5 +strength_bonus: 6 +talk: + nodes: + about_gate: + action: + set_player_flags: + talked_to_guard: true + message: '"Supplies. Weapons. Things you don''t need to worry about." He shifts his weight. "Tell you what — bring me some copper ore and I''ll stamp you a pass."' + options: + - end: true + text: '"I''ll be back."' + - condition: + has_item: copper_ore + goto: trade_ore + text: '"I have some right here."' + - end: true + text: '"Goodbye."' + has_pass: + action: + set_flags: + gate_open: true + message: '"Let me see that..." He examines your pass and nods. "Alright, I''ll open the gate for you."' + options: + - end: true + text: '"Thanks."' + start: + message: '"Halt! This area is restricted." The guard eyes you suspiciously.' + options: + - goto: about_gate + text: '"What''s behind that gate?"' + - condition: + has_item: copper_ore + goto: trade_ore + text: '"I have copper ore."' + - condition: + player_flag: got_pass + value: true + goto: has_pass + text: '"I have a pass."' + - end: true + text: '"Goodbye."' + trade_ore: + action: + give_item: pass_stub + set_player_flags: + got_pass: true + talked_to_guard: true + take_item: copper_ore + message: '"Good quality ore. This''ll do." He stamps a slip of paper and hands it to you. "That''s your pass. Don''t lose it."' + options: + - end: true + text: '"Thanks."' +unique: true diff --git a/data/mobs/sawmill_operator.yaml b/data/mobs/sawmill_operator.yaml index 64f6e45..99da8cf 100644 --- a/data/mobs/sawmill_operator.yaml +++ b/data/mobs/sawmill_operator.yaml @@ -1,7 +1,49 @@ +color: "186" +description: A burly worker in a thick apron, covered in sawdust. He operates the industrial sawmill. id: sawmill_operator +idle: The sawmill operator wipes sawdust from his goggles. name: sawmill operator -behavior: sawmill_operator_talk +talk: + nodes: + goodbye: + message: Come back anytime you need more planks! + prices: + message: |- + Here's what I charge per log: + Regular logs: 5 credits + Oak logs: 10 credits + Teak logs: 20 credits + Mahogany logs: 40 credits + + Want me to process your logs? + options: + - condition: + any_of: + - has_item: logs + - has_item: oak_logs + - has_item: teak_logs + - has_item: mahogany_logs + next: process + text: Yes, process all my logs. + - next: goodbye + text: No thanks. + process: + action: + sawmill: true + message: "" + start: + message: Welcome to the lumberyard! I can turn your logs into planks — for a small fee, of course. What can I do for ya? + options: + - condition: + any_of: + - has_item: logs + - has_item: oak_logs + - has_item: teak_logs + - has_item: mahogany_logs + next: prices + text: Turn all my logs into planks. + - next: prices + text: What are your prices? + - next: goodbye + text: Nothing for now. unique: true -color: "186" -description: "A burly worker in a thick apron, covered in sawdust. He operates the industrial sawmill." -idle: "The sawmill operator wipes sawdust from his goggles." diff --git a/data/mobs/tanner.yaml b/data/mobs/tanner.yaml index 0a90998..a00f497 100644 --- a/data/mobs/tanner.yaml +++ b/data/mobs/tanner.yaml @@ -1,24 +1,68 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A weathered craftsman with stained hands and a leather apron. +hp: 50 id: tanner +idle_descriptions: + - scrapes at a piece of hide + - examines a stack of leathers + - sharpens a tanning knife + - wipes sweat from his brow name: Tanner -description: "A weathered craftsman with stained hands and a leather apron." -behavior: tanner_talk -unique: true protected: true -hp: 50 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "scrapes at a piece of hide" - - "examines a stack of leathers" - - "sharpens a tanning knife" - - "wipes sweat from his brow" +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + start: + message: '"Bring me some cowhides and I''ll tan them for you. Leather is 10 credits, hard leather is 50."' + options: + - condition: + all_of: + - has_item: cowhide + - min_credits: 10 + goto: tan_leather + text: '"Tan a cowhide into leather (10 credits)."' + - condition: + all_of: + - has_item: cowhide + - min_credits: 50 + goto: tan_hard_leather + text: '"Tan a cowhide into hard leather (50 credits)."' + - end: true + text: '"Never mind."' + tan_hard_leather: + action: + cost: 50 + give_item: hard_leather + take_item: cowhide + message: The tanner takes your cowhide and subjects it to an intense curing process. "Here's your hard leather." + options: + - condition: + has_item: cowhide + goto: start + text: '"Tan another."' + - end: true + text: '"Thanks."' + tan_leather: + action: + cost: 10 + give_item: leather + take_item: cowhide + message: The tanner takes your cowhide and works it skillfully. "Here's your leather." + options: + - condition: + has_item: cowhide + goto: start + text: '"Tan another."' + - end: true + text: '"Thanks."' +unique: true diff --git a/data/mobs/weapons_smith.yaml b/data/mobs/weapons_smith.yaml index da6ef3b..4138a1b 100644 --- a/data/mobs/weapons_smith.yaml +++ b/data/mobs/weapons_smith.yaml @@ -1,24 +1,65 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A burly smith with soot-stained hands and a heavy leather apron, standing proudly by the forge. +hp: 80 id: weapons_smith +idle_descriptions: + - hammers at a glowing blade on the anvil + - wipes soot from his brow + - inspects a finished sword + - tends to the furnace fire name: Weaponsmith -description: "A burly smith with soot-stained hands and a heavy leather apron, standing proudly by the forge." -behavior: weapons_shop -unique: true protected: true -hp: 80 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "hammers at a glowing blade on the anvil" - - "wipes soot from his brow" - - "inspects a finished sword" - - "tends to the furnace fire" \ No newline at end of file +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + shop: + action: + shop: + items: + - buy_price: 25 + item_id: bronze_sword + sell_price: 6 + - buy_price: 60 + item_id: iron_sword + sell_price: 15 + - buy_price: 20 + item_id: bronze_axe + sell_price: 5 + - buy_price: 50 + item_id: iron_axe + sell_price: 12 + - buy_price: 20 + item_id: bronze_pickaxe + sell_price: 5 + - buy_price: 50 + item_id: iron_pickaxe + sell_price: 12 + - buy_price: 16 + item_id: bronze_med_helm + sell_price: 4 + - buy_price: 40 + item_id: iron_med_helm + sell_price: 10 + message: The Smithy — buy or sell weapons and armor. + message: '"Here''s the current inventory. All quality guaranteed."' + options: + - goto: start + text: '"That''s all for now."' + start: + message: '"Welcome to the Smithy! Finest weapons and armor on the asteroid."' + options: + - goto: shop + text: '"Show me what you''ve got."' + - end: true + text: '"Nothing right now."' +unique: true diff --git a/data/modules/bio_blast.yaml b/data/modules/bio_blast.yaml new file mode 100644 index 0000000..216b96c --- /dev/null +++ b/data/modules/bio_blast.yaml @@ -0,0 +1,12 @@ +id: bio_blast +name: Bio Blast +level: 41 +max_hit: 13 +base_xp: 25 +category: combat +element: bio +junk_cost: + biojunk: 3 + chaosjunk: 1 + deathjunk: 1 + scrap_metal: 1 diff --git a/data/modules/bio_bolt.yaml b/data/modules/bio_bolt.yaml new file mode 100644 index 0000000..848c562 --- /dev/null +++ b/data/modules/bio_bolt.yaml @@ -0,0 +1,11 @@ +id: bio_bolt +name: Bio Bolt +level: 17 +max_hit: 9 +base_xp: 13 +category: combat +element: bio +junk_cost: + biojunk: 2 + chaosjunk: 1 + scrap_metal: 1 diff --git a/data/modules/bio_strike.yaml b/data/modules/bio_strike.yaml new file mode 100644 index 0000000..25a08a6 --- /dev/null +++ b/data/modules/bio_strike.yaml @@ -0,0 +1,10 @@ +id: bio_strike +name: Bio Strike +level: 1 +max_hit: 4 +base_xp: 5 +category: combat +element: bio +junk_cost: + biojunk: 2 + scrap_metal: 1 diff --git a/data/modules/bio_surge.yaml b/data/modules/bio_surge.yaml new file mode 100644 index 0000000..2cb813a --- /dev/null +++ b/data/modules/bio_surge.yaml @@ -0,0 +1,11 @@ +id: bio_surge +name: Bio Surge +level: 81 +max_hit: 21 +base_xp: 44 +category: combat +element: bio +junk_cost: + biojunk: 7 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/bio_wave.yaml b/data/modules/bio_wave.yaml new file mode 100644 index 0000000..835f27c --- /dev/null +++ b/data/modules/bio_wave.yaml @@ -0,0 +1,12 @@ +id: bio_wave +name: Bio Wave +level: 62 +max_hit: 17 +base_xp: 36 +category: combat +element: bio +junk_cost: + biojunk: 5 + deathjunk: 1 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/bones_to_nutrients.yaml b/data/modules/bones_to_nutrients.yaml new file mode 100644 index 0000000..10f23fd --- /dev/null +++ b/data/modules/bones_to_nutrients.yaml @@ -0,0 +1,10 @@ +id: bones_to_nutrients +name: Bones to Nutrients +level: 15 +max_hit: 0 +base_xp: 25 +category: utility +junk_cost: + naturejunk: 2 + ecojunk: 2 + scrap_metal: 1 diff --git a/data/modules/chip_diamond.yaml b/data/modules/chip_diamond.yaml new file mode 100644 index 0000000..6622558 --- /dev/null +++ b/data/modules/chip_diamond.yaml @@ -0,0 +1,10 @@ +id: chip_diamond +name: Chip Diamond Bolts +level: 57 +max_hit: 0 +base_xp: 67 +category: enchant +junk_cost: + cosmicjunk: 1 + ecojunk: 10 + scrap_metal: 1 diff --git a/data/modules/chip_emerald.yaml b/data/modules/chip_emerald.yaml new file mode 100644 index 0000000..4db73f5 --- /dev/null +++ b/data/modules/chip_emerald.yaml @@ -0,0 +1,10 @@ +id: chip_emerald +name: Chip Emerald Bolts +level: 27 +max_hit: 0 +base_xp: 37 +category: enchant +junk_cost: + cosmicjunk: 1 + biojunk: 3 + scrap_metal: 1 diff --git a/data/modules/chip_ruby.yaml b/data/modules/chip_ruby.yaml new file mode 100644 index 0000000..13e825c --- /dev/null +++ b/data/modules/chip_ruby.yaml @@ -0,0 +1,11 @@ +id: chip_ruby +name: Chip Ruby Bolts +level: 49 +max_hit: 0 +base_xp: 59 +category: enchant +junk_cost: + cosmicjunk: 1 + solarjunk: 5 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/chip_sapphire.yaml b/data/modules/chip_sapphire.yaml new file mode 100644 index 0000000..ec747fd --- /dev/null +++ b/data/modules/chip_sapphire.yaml @@ -0,0 +1,10 @@ +id: chip_sapphire +name: Chip Sapphire Bolts +level: 4 +max_hit: 0 +base_xp: 9 +category: enchant +junk_cost: + cosmicjunk: 1 + hydrojunk: 1 + scrap_metal: 1 diff --git a/data/modules/eco_blast.yaml b/data/modules/eco_blast.yaml new file mode 100644 index 0000000..4f8f8ff --- /dev/null +++ b/data/modules/eco_blast.yaml @@ -0,0 +1,12 @@ +id: eco_blast +name: Eco Blast +level: 53 +max_hit: 15 +base_xp: 31 +category: combat +element: eco +junk_cost: + ecojunk: 4 + biojunk: 3 + chaosjunk: 1 + scrap_metal: 1 diff --git a/data/modules/eco_bolt.yaml b/data/modules/eco_bolt.yaml new file mode 100644 index 0000000..33ea0f6 --- /dev/null +++ b/data/modules/eco_bolt.yaml @@ -0,0 +1,11 @@ +id: eco_bolt +name: Eco Bolt +level: 29 +max_hit: 11 +base_xp: 19 +category: combat +element: eco +junk_cost: + ecojunk: 3 + biojunk: 2 + scrap_metal: 1 diff --git a/data/modules/eco_strike.yaml b/data/modules/eco_strike.yaml new file mode 100644 index 0000000..585db00 --- /dev/null +++ b/data/modules/eco_strike.yaml @@ -0,0 +1,11 @@ +id: eco_strike +name: Eco Strike +level: 9 +max_hit: 7 +base_xp: 9 +category: combat +element: eco +junk_cost: + ecojunk: 2 + biojunk: 2 + scrap_metal: 1 diff --git a/data/modules/eco_surge.yaml b/data/modules/eco_surge.yaml new file mode 100644 index 0000000..6bca172 --- /dev/null +++ b/data/modules/eco_surge.yaml @@ -0,0 +1,12 @@ +id: eco_surge +name: Eco Surge +level: 90 +max_hit: 23 +base_xp: 48 +category: combat +element: eco +junk_cost: + ecojunk: 10 + biojunk: 7 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/eco_wave.yaml b/data/modules/eco_wave.yaml new file mode 100644 index 0000000..4fa2a23 --- /dev/null +++ b/data/modules/eco_wave.yaml @@ -0,0 +1,12 @@ +id: eco_wave +name: Eco Wave +level: 70 +max_hit: 19 +base_xp: 40 +category: combat +element: eco +junk_cost: + ecojunk: 7 + biojunk: 5 + deathjunk: 1 + scrap_metal: 1 diff --git a/data/modules/em_grab.yaml b/data/modules/em_grab.yaml new file mode 100644 index 0000000..4ec20d3 --- /dev/null +++ b/data/modules/em_grab.yaml @@ -0,0 +1,10 @@ +id: em_grab +name: Electromagnetic Grab +level: 33 +max_hit: 0 +base_xp: 43 +category: utility +junk_cost: + lawjunk: 1 + biojunk: 1 + scrap_metal: 1 diff --git a/data/modules/enchant_1.yaml b/data/modules/enchant_1.yaml new file mode 100644 index 0000000..6c074e0 --- /dev/null +++ b/data/modules/enchant_1.yaml @@ -0,0 +1,10 @@ +id: enchant_1 +name: Enchant Level 1 +level: 7 +max_hit: 0 +base_xp: 17 +category: enchant +junk_cost: + cosmicjunk: 1 + hydrojunk: 1 + scrap_metal: 1 diff --git a/data/modules/enchant_2.yaml b/data/modules/enchant_2.yaml new file mode 100644 index 0000000..22c19f9 --- /dev/null +++ b/data/modules/enchant_2.yaml @@ -0,0 +1,10 @@ +id: enchant_2 +name: Enchant Level 2 +level: 27 +max_hit: 0 +base_xp: 37 +category: enchant +junk_cost: + cosmicjunk: 1 + biojunk: 3 + scrap_metal: 1 diff --git a/data/modules/enchant_3.yaml b/data/modules/enchant_3.yaml new file mode 100644 index 0000000..99f8745 --- /dev/null +++ b/data/modules/enchant_3.yaml @@ -0,0 +1,10 @@ +id: enchant_3 +name: Enchant Level 3 +level: 49 +max_hit: 0 +base_xp: 59 +category: enchant +junk_cost: + cosmicjunk: 1 + solarjunk: 5 + scrap_metal: 1 diff --git a/data/modules/enchant_4.yaml b/data/modules/enchant_4.yaml new file mode 100644 index 0000000..e296ce6 --- /dev/null +++ b/data/modules/enchant_4.yaml @@ -0,0 +1,10 @@ +id: enchant_4 +name: Enchant Level 4 +level: 57 +max_hit: 0 +base_xp: 67 +category: enchant +junk_cost: + cosmicjunk: 1 + ecojunk: 10 + scrap_metal: 1 diff --git a/data/modules/high_process.yaml b/data/modules/high_process.yaml new file mode 100644 index 0000000..55e4c38 --- /dev/null +++ b/data/modules/high_process.yaml @@ -0,0 +1,10 @@ +id: high_process +name: High Level Processing +level: 55 +max_hit: 0 +base_xp: 65 +category: utility +junk_cost: + naturejunk: 5 + solarjunk: 1 + scrap_metal: 1 diff --git a/data/modules/hydro_blast.yaml b/data/modules/hydro_blast.yaml new file mode 100644 index 0000000..c55f1b4 --- /dev/null +++ b/data/modules/hydro_blast.yaml @@ -0,0 +1,12 @@ +id: hydro_blast +name: Hydro Blast +level: 47 +max_hit: 14 +base_xp: 28 +category: combat +element: hydro +junk_cost: + hydrojunk: 5 + ecojunk: 3 + chaosjunk: 1 + scrap_metal: 1 diff --git a/data/modules/hydro_bolt.yaml b/data/modules/hydro_bolt.yaml new file mode 100644 index 0000000..6487191 --- /dev/null +++ b/data/modules/hydro_bolt.yaml @@ -0,0 +1,11 @@ +id: hydro_bolt +name: Hydro Bolt +level: 23 +max_hit: 10 +base_xp: 16 +category: combat +element: hydro +junk_cost: + hydrojunk: 3 + ecojunk: 2 + scrap_metal: 1 diff --git a/data/modules/hydro_strike.yaml b/data/modules/hydro_strike.yaml new file mode 100644 index 0000000..657e8e1 --- /dev/null +++ b/data/modules/hydro_strike.yaml @@ -0,0 +1,11 @@ +id: hydro_strike +name: Hydro Strike +level: 5 +max_hit: 6 +base_xp: 7 +category: combat +element: hydro +junk_cost: + hydrojunk: 3 + ecojunk: 1 + scrap_metal: 1 diff --git a/data/modules/hydro_surge.yaml b/data/modules/hydro_surge.yaml new file mode 100644 index 0000000..61fe3d2 --- /dev/null +++ b/data/modules/hydro_surge.yaml @@ -0,0 +1,12 @@ +id: hydro_surge +name: Hydro Surge +level: 85 +max_hit: 22 +base_xp: 46 +category: combat +element: hydro +junk_cost: + hydrojunk: 10 + ecojunk: 7 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/hydro_wave.yaml b/data/modules/hydro_wave.yaml new file mode 100644 index 0000000..92da933 --- /dev/null +++ b/data/modules/hydro_wave.yaml @@ -0,0 +1,12 @@ +id: hydro_wave +name: Hydro Wave +level: 65 +max_hit: 18 +base_xp: 37 +category: combat +element: hydro +junk_cost: + hydrojunk: 7 + ecojunk: 5 + deathjunk: 1 + scrap_metal: 1 diff --git a/data/modules/low_process.yaml b/data/modules/low_process.yaml new file mode 100644 index 0000000..f3457d6 --- /dev/null +++ b/data/modules/low_process.yaml @@ -0,0 +1,10 @@ +id: low_process +name: Low Level Processing +level: 21 +max_hit: 0 +base_xp: 31 +category: utility +junk_cost: + naturejunk: 3 + solarjunk: 1 + scrap_metal: 1 diff --git a/data/modules/plank_make.yaml b/data/modules/plank_make.yaml new file mode 100644 index 0000000..6aa2469 --- /dev/null +++ b/data/modules/plank_make.yaml @@ -0,0 +1,10 @@ +id: plank_make +name: Plank Make +level: 86 +max_hit: 0 +base_xp: 90 +category: utility +junk_cost: + naturejunk: 5 + solarjunk: 1 + scrap_metal: 1 diff --git a/data/modules/solar_blast.yaml b/data/modules/solar_blast.yaml new file mode 100644 index 0000000..1af5170 --- /dev/null +++ b/data/modules/solar_blast.yaml @@ -0,0 +1,12 @@ +id: solar_blast +name: Solar Blast +level: 59 +max_hit: 16 +base_xp: 34 +category: combat +element: solar +junk_cost: + solarjunk: 5 + ecojunk: 4 + chaosjunk: 1 + scrap_metal: 1 diff --git a/data/modules/solar_bolt.yaml b/data/modules/solar_bolt.yaml new file mode 100644 index 0000000..ca4c1b5 --- /dev/null +++ b/data/modules/solar_bolt.yaml @@ -0,0 +1,11 @@ +id: solar_bolt +name: Solar Bolt +level: 35 +max_hit: 12 +base_xp: 22 +category: combat +element: solar +junk_cost: + solarjunk: 4 + ecojunk: 3 + scrap_metal: 1 diff --git a/data/modules/solar_strike.yaml b/data/modules/solar_strike.yaml new file mode 100644 index 0000000..b9eae32 --- /dev/null +++ b/data/modules/solar_strike.yaml @@ -0,0 +1,11 @@ +id: solar_strike +name: Solar Strike +level: 13 +max_hit: 8 +base_xp: 11 +category: combat +element: solar +junk_cost: + solarjunk: 3 + ecojunk: 2 + scrap_metal: 1 diff --git a/data/modules/solar_surge.yaml b/data/modules/solar_surge.yaml new file mode 100644 index 0000000..abfedd1 --- /dev/null +++ b/data/modules/solar_surge.yaml @@ -0,0 +1,12 @@ +id: solar_surge +name: Solar Surge +level: 95 +max_hit: 24 +base_xp: 51 +category: combat +element: solar +junk_cost: + solarjunk: 10 + ecojunk: 7 + bloodjunk: 1 + scrap_metal: 1 diff --git a/data/modules/solar_wave.yaml b/data/modules/solar_wave.yaml new file mode 100644 index 0000000..9f67203 --- /dev/null +++ b/data/modules/solar_wave.yaml @@ -0,0 +1,12 @@ +id: solar_wave +name: Solar Wave +level: 75 +max_hit: 20 +base_xp: 42 +category: combat +element: solar +junk_cost: + solarjunk: 7 + ecojunk: 5 + deathjunk: 1 + scrap_metal: 1 diff --git a/data/modules/superheat.yaml b/data/modules/superheat.yaml new file mode 100644 index 0000000..27b5931 --- /dev/null +++ b/data/modules/superheat.yaml @@ -0,0 +1,10 @@ +id: superheat +name: Superheat Item +level: 43 +max_hit: 0 +base_xp: 53 +category: utility +junk_cost: + naturejunk: 4 + solarjunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_deep_mine.yaml b/data/modules/transport_deep_mine.yaml new file mode 100644 index 0000000..2322253 --- /dev/null +++ b/data/modules/transport_deep_mine.yaml @@ -0,0 +1,11 @@ +id: transport_deep_mine +name: "Transport: Deep Mine" +level: 61 +max_hit: 0 +base_xp: 60 +category: transport +destination: 7 +junk_cost: + lawjunk: 2 + ecojunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_fishing.yaml b/data/modules/transport_fishing.yaml new file mode 100644 index 0000000..8c0ba0b --- /dev/null +++ b/data/modules/transport_fishing.yaml @@ -0,0 +1,12 @@ +id: transport_fishing +name: "Transport: Fishing Dock" +level: 55 +max_hit: 0 +base_xp: 56 +category: transport +destination: 10 +junk_cost: + lawjunk: 1 + hydrojunk: 1 + biojunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_forest.yaml b/data/modules/transport_forest.yaml new file mode 100644 index 0000000..1f555f4 --- /dev/null +++ b/data/modules/transport_forest.yaml @@ -0,0 +1,12 @@ +id: transport_forest +name: "Transport: Forest" +level: 45 +max_hit: 0 +base_xp: 48 +category: transport +destination: 22 +junk_cost: + lawjunk: 1 + ecojunk: 1 + biojunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_forge.yaml b/data/modules/transport_forge.yaml new file mode 100644 index 0000000..f54b34c --- /dev/null +++ b/data/modules/transport_forge.yaml @@ -0,0 +1,11 @@ +id: transport_forge +name: "Transport: Forge" +level: 31 +max_hit: 0 +base_xp: 35 +category: transport +destination: 12 +junk_cost: + lawjunk: 1 + ecojunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_mine.yaml b/data/modules/transport_mine.yaml new file mode 100644 index 0000000..9c70463 --- /dev/null +++ b/data/modules/transport_mine.yaml @@ -0,0 +1,12 @@ +id: transport_mine +name: "Transport: Mining Pit" +level: 37 +max_hit: 0 +base_xp: 40 +category: transport +destination: 6 +junk_cost: + lawjunk: 1 + ecojunk: 1 + solarjunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_scavenge.yaml b/data/modules/transport_scavenge.yaml new file mode 100644 index 0000000..4774007 --- /dev/null +++ b/data/modules/transport_scavenge.yaml @@ -0,0 +1,11 @@ +id: transport_scavenge +name: "Transport: Scavenging Post" +level: 51 +max_hit: 0 +base_xp: 52 +category: transport +destination: 9 +junk_cost: + lawjunk: 1 + naturejunk: 1 + scrap_metal: 1 diff --git a/data/modules/transport_town.yaml b/data/modules/transport_town.yaml new file mode 100644 index 0000000..81b6921 --- /dev/null +++ b/data/modules/transport_town.yaml @@ -0,0 +1,12 @@ +id: transport_town +name: "Transport: Town Square" +level: 25 +max_hit: 0 +base_xp: 27 +category: transport +destination: 1 +junk_cost: + lawjunk: 1 + solarjunk: 1 + biojunk: 1 + scrap_metal: 1 diff --git a/data/objects/adamantite_rock.yaml b/data/objects/adamantite_rock.yaml index 04f2f0c..4869a77 100644 --- a/data/objects/adamantite_rock.yaml +++ b/data/objects/adamantite_rock.yaml @@ -1,4 +1,23 @@ +color: "120" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: adamantite_ore + message: You manage to mine some {120}adamantite ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the adamantite rock... + level: 70 + respawn_broadcast: A green glint of adamantite catches your eye from some {name}. + respawn_timer: 140 + skill: mining + success: + base: 0.15 + cap: 0.85 + per_level: 0.01 + tools: + - pickaxe + xp: 95 id: adamantite_rock name: adamantite rock -color: "120" -behavior: mine_adamantite diff --git a/data/objects/allotment_patch.yaml b/data/objects/allotment_patch.yaml index 9d905b0..1074abe 100644 --- a/data/objects/allotment_patch.yaml +++ b/data/objects/allotment_patch.yaml @@ -1,7 +1,6 @@ id: allotment_patch name: allotment patch color: "94" -behavior: "" hidden: false inroom_description: "An allotment patch is marked out in the ground." description: "A large patch of soil for growing vegetables. Use 'inspect' to check its status." diff --git a/data/objects/anglerfish_spot.yaml b/data/objects/anglerfish_spot.yaml index 3385ac4..4829307 100644 --- a/data/objects/anglerfish_spot.yaml +++ b/data/objects/anglerfish_spot.yaml @@ -1,5 +1,23 @@ +color: "81" +description: A faint glow emanates from the depths. Use a fishing rod with bait here. +gather: + bait: fishing_bait + base_wait: 6 + drops: + - item_id: raw_anglerfish + level: 82 + message: You catch a {80}raw anglerfish{/}. + weight: 100 + xp: 120 + fail_message: Nothing seems to bite. + gather_message: You cast your line into the deep water... + level: 1 + skill: fishing + success: + base: 0.3 + cap: 0.8 + per_level: 0.005 + tools: + - fishing_rod id: anglerfish_spot name: anglerfish spot -color: "81" -behavior: fish_angler -description: "A faint glow emanates from the depths. Use a fishing rod with bait here." diff --git a/data/objects/bait_fishing_spot.yaml b/data/objects/bait_fishing_spot.yaml index 9ca3fba..8e506a8 100644 --- a/data/objects/bait_fishing_spot.yaml +++ b/data/objects/bait_fishing_spot.yaml @@ -1,5 +1,33 @@ +color: "75" +description: Small fish ripple the surface. Use a fishing rod with bait here. +gather: + bait: fishing_bait + base_wait: 5 + drops: + - item_id: raw_sardine + level: 5 + message: You catch a {75}raw sardine{/}. + weight: 60 + xp: 20 + - item_id: raw_herring + level: 10 + message: You catch a {75}raw herring{/}. + weight: 40 + xp: 30 + - item_id: raw_pike + level: 25 + message: You catch a {69}raw pike{/}. + weight: 30 + xp: 60 + fail_message: Nothing seems to bite. + gather_message: You cast your line into the water... + level: 1 + skill: fishing + success: + base: 0.5 + cap: 0.9 + per_level: 0.005 + tools: + - fishing_rod id: bait_fishing_spot name: bait fishing spot -color: "75" -behavior: fish_bait -description: "Small fish ripple the surface. Use a fishing rod with bait here." diff --git a/data/objects/cage_fishing_spot.yaml b/data/objects/cage_fishing_spot.yaml index 05e3e0e..691bb54 100644 --- a/data/objects/cage_fishing_spot.yaml +++ b/data/objects/cage_fishing_spot.yaml @@ -1,5 +1,22 @@ +color: "75" +description: A rocky underwater shelf. Use a lobster pot here. +gather: + base_wait: 6 + drops: + - item_id: raw_lobster + level: 40 + message: You catch a {33}raw lobster{/}. + weight: 100 + xp: 90 + fail_message: The pot comes up empty. + gather_message: You lower your lobster pot into the water... + level: 1 + skill: fishing + success: + base: 0.45 + cap: 0.85 + per_level: 0.005 + tools: + - lobster_pot id: cage_fishing_spot name: cage fishing spot -color: "75" -behavior: fish_cage -description: "A rocky underwater shelf. Use a lobster pot here." diff --git a/data/objects/clay_rock.yaml b/data/objects/clay_rock.yaml index 8a69d3b..70cfc4e 100644 --- a/data/objects/clay_rock.yaml +++ b/data/objects/clay_rock.yaml @@ -1,5 +1,24 @@ +color: "173" +description: A soft rock of clay. +gather: + base_wait: 4 + drops: + - depletes: true + item_id: clay + message: You manage to mine some clay. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the clay rock... + level: 1 + respawn_broadcast: Some clay fills in a nearby rock. + respawn_timer: 10 + skill: mining + success: + base: 0.6 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 5 id: clay_rock name: clay rock -color: "173" -behavior: mine_clay -description: "A soft rock of clay." diff --git a/data/objects/coal_rock.yaml b/data/objects/coal_rock.yaml index 5bccc0e..f033965 100644 --- a/data/objects/coal_rock.yaml +++ b/data/objects/coal_rock.yaml @@ -1,4 +1,23 @@ +color: "240" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: coal + message: You manage to mine some {240}coal{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the coal rock... + level: 30 + respawn_broadcast: A dark vein of coal is visible in some {name}. + respawn_timer: 80 + skill: mining + success: + base: 0.3 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 50 id: coal_rock name: coal rock -color: "240" -behavior: mine_coal diff --git a/data/objects/copper_rock.yaml b/data/objects/copper_rock.yaml index 0162181..aa2a5cc 100644 --- a/data/objects/copper_rock.yaml +++ b/data/objects/copper_rock.yaml @@ -1,4 +1,28 @@ +color: "178" +gather: + base_wait: 10 + depleted_message: You don't see any ore in this rock. + drops: + - depletes: true + item_id: copper_ore + message: You manage to mine some {178}copper ore{/}. + weight: 90 + - depletes: false + message: You spot a glint of something valuable! + table: gem_table + weight: 10 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the rock... + level: 1 + respawn_broadcast: A glint of copper catches your eye from some {name}. + respawn_timer: 50 + skill: mining + success: + base: 0.5 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 17 id: copper_rock name: copper rock -color: "178" -behavior: mine_copper diff --git a/data/objects/fire.yaml b/data/objects/fire.yaml index a214dc7..864b7a8 100644 --- a/data/objects/fire.yaml +++ b/data/objects/fire.yaml @@ -1,7 +1,6 @@ id: fire name: fire color: "208" -behavior: "" hidden: false inroom_description: "A fire is burning warmly." removal_item: ashes diff --git a/data/objects/flower_patch.yaml b/data/objects/flower_patch.yaml index c5f6d42..6d4ee70 100644 --- a/data/objects/flower_patch.yaml +++ b/data/objects/flower_patch.yaml @@ -1,7 +1,6 @@ id: flower_patch name: flower patch color: "213" -behavior: "" hidden: false inroom_description: "A flower patch is outlined with small stones." description: "A small decorative patch for growing flowers. Use 'inspect' to check its status." diff --git a/data/objects/fly_fishing_spot.yaml b/data/objects/fly_fishing_spot.yaml index 1634ab5..88fc61b 100644 --- a/data/objects/fly_fishing_spot.yaml +++ b/data/objects/fly_fishing_spot.yaml @@ -1,5 +1,33 @@ +color: "75" +description: Insects dance above the water. Use a fly fishing rod with feathers here. +gather: + bait: feather + base_wait: 5 + drops: + - item_id: raw_trout + level: 20 + message: You catch a {69}raw trout{/}. + weight: 50 + xp: 50 + - item_id: raw_salmon + level: 30 + message: You catch a {69}raw salmon{/}. + weight: 50 + xp: 70 + - item_id: raw_rainbow_fish + level: 38 + message: You catch a {177}raw rainbow fish{/}. + weight: 30 + xp: 80 + fail_message: Nothing seems to bite. + gather_message: You cast your fly into the water... + level: 1 + skill: fishing + success: + base: 0.5 + cap: 0.9 + per_level: 0.005 + tools: + - fly_rod id: fly_fishing_spot name: fly fishing spot -color: "75" -behavior: fish_fly -description: "Insects dance above the water. Use a fly fishing rod with feathers here." diff --git a/data/objects/gold_rock.yaml b/data/objects/gold_rock.yaml index d57be8f..cc3c816 100644 --- a/data/objects/gold_rock.yaml +++ b/data/objects/gold_rock.yaml @@ -1,4 +1,23 @@ +color: "220" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: gold_ore + message: You manage to mine some {220}gold ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the gold rock... + level: 40 + respawn_broadcast: A golden glint catches your eye from some {name}. + respawn_timer: 90 + skill: mining + success: + base: 0.25 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 65 id: gold_rock name: gold rock -color: "220" -behavior: mine_gold diff --git a/data/objects/harpoon_fishing_spot.yaml b/data/objects/harpoon_fishing_spot.yaml index 4df56b9..2a059e9 100644 --- a/data/objects/harpoon_fishing_spot.yaml +++ b/data/objects/harpoon_fishing_spot.yaml @@ -1,5 +1,32 @@ +color: "75" +description: Large shadows move beneath the waves. Use a harpoon here. +gather: + base_wait: 6 + drops: + - item_id: raw_tuna + level: 35 + message: You harpoon a {33}raw tuna{/}. + weight: 60 + xp: 80 + - item_id: raw_swordfish + level: 50 + message: You harpoon a {33}raw swordfish{/}. + weight: 50 + xp: 100 + - item_id: raw_shark + level: 76 + message: You harpoon a {27}raw shark{/}. + weight: 30 + xp: 110 + fail_message: You fail to spear anything. + gather_message: You ready your harpoon... + level: 1 + skill: fishing + success: + base: 0.4 + cap: 0.8 + per_level: 0.005 + tools: + - harpoon id: harpoon_fishing_spot name: harpoon fishing spot -color: "75" -behavior: fish_harpoon -description: "Large shadows move beneath the waves. Use a harpoon here." diff --git a/data/objects/herb_patch.yaml b/data/objects/herb_patch.yaml index cca6e27..81acaf3 100644 --- a/data/objects/herb_patch.yaml +++ b/data/objects/herb_patch.yaml @@ -1,7 +1,6 @@ id: herb_patch name: herb patch color: "28" -behavior: "" hidden: false inroom_description: "A prepared herb patch sits in the soil." description: "A small patch of tilled soil suitable for growing herbs. Use 'inspect' to check its status." diff --git a/data/objects/iron_gate.yaml b/data/objects/iron_gate.yaml index 91f59c0..8193f0a 100644 --- a/data/objects/iron_gate.yaml +++ b/data/objects/iron_gate.yaml @@ -1,6 +1,14 @@ -id: iron_gate -name: iron gate color: "250" -behavior: iron_gate_toggle +description: A heavy iron gate. It looks like it can be pushed open. hidden: true -description: "A heavy iron gate. It looks like it can be pushed open." +id: iron_gate +name: iron gate +use_interactions: + - condition: + flag: gate_open + not: true + value: true + message: You push the heavy iron gate open. + action: + set_flags: + gate_open: true diff --git a/data/objects/iron_rock.yaml b/data/objects/iron_rock.yaml index 3019895..b66bd03 100644 --- a/data/objects/iron_rock.yaml +++ b/data/objects/iron_rock.yaml @@ -1,4 +1,23 @@ +color: "250" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: iron_ore + message: You manage to mine some {250}iron ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the iron rock... + level: 15 + respawn_broadcast: A glint of iron catches your eye from some {name}. + respawn_timer: 60 + skill: mining + success: + base: 0.4 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 35 id: iron_rock name: iron rock -color: "250" -behavior: mine_iron diff --git a/data/objects/magic_tree.yaml b/data/objects/magic_tree.yaml index 6caaf49..7e1a37b 100644 --- a/data/objects/magic_tree.yaml +++ b/data/objects/magic_tree.yaml @@ -1,4 +1,25 @@ +color: "135" +gather: + base_wait: 12 + deplete_timer: 390 + drops: + - depletes: false + item_id: magic_logs + message: You get some {135}magic logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the magic tree... + level: 75 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 199 + skill: woodcutting + success: + base: 0.15 + cap: 0.65 + per_level: 0.01 + tools: + - axe + xp: 250 id: magic_tree name: magic tree -color: "135" -behavior: chop_magic diff --git a/data/objects/mahogany_tree.yaml b/data/objects/mahogany_tree.yaml index 9813b5c..5e84b2b 100644 --- a/data/objects/mahogany_tree.yaml +++ b/data/objects/mahogany_tree.yaml @@ -1,4 +1,25 @@ +color: "131" +gather: + base_wait: 8 + deplete_timer: 100 + drops: + - depletes: false + item_id: mahogany_logs + message: You get some {131}mahogany logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the mahogany tree... + level: 50 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 14 + skill: woodcutting + success: + base: 0.25 + cap: 0.75 + per_level: 0.01 + tools: + - axe + xp: 125 id: mahogany_tree name: mahogany tree -color: "131" -behavior: chop_mahogany diff --git a/data/objects/maple_tree.yaml b/data/objects/maple_tree.yaml index a2ac67a..1c11e82 100644 --- a/data/objects/maple_tree.yaml +++ b/data/objects/maple_tree.yaml @@ -1,4 +1,25 @@ +color: "173" +gather: + base_wait: 8 + deplete_timer: 100 + drops: + - depletes: false + item_id: maple_logs + message: You get some {173}maple logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the maple tree... + level: 45 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 59 + skill: woodcutting + success: + base: 0.28 + cap: 0.78 + per_level: 0.01 + tools: + - axe + xp: 100 id: maple_tree name: maple tree -color: "173" -behavior: chop_maple diff --git a/data/objects/mithril_rock.yaml b/data/objects/mithril_rock.yaml index d4f4858..ffd2a74 100644 --- a/data/objects/mithril_rock.yaml +++ b/data/objects/mithril_rock.yaml @@ -1,4 +1,23 @@ +color: "75" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: mithril_ore + message: You manage to mine some {75}mithril ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the mithril rock... + level: 55 + respawn_broadcast: A blue glint of mithril catches your eye from some {name}. + respawn_timer: 110 + skill: mining + success: + base: 0.2 + cap: 0.9 + per_level: 0.01 + tools: + - pickaxe + xp: 80 id: mithril_rock name: mithril rock -color: "75" -behavior: mine_mithril diff --git a/data/objects/net_fishing_spot.yaml b/data/objects/net_fishing_spot.yaml index 10824bc..11263a9 100644 --- a/data/objects/net_fishing_spot.yaml +++ b/data/objects/net_fishing_spot.yaml @@ -1,5 +1,44 @@ +color: "75" +description: Bubbles break the surface. Use a small or big fishing net here. +gather: + base_wait: 5 + depleted_message: You don't see any fish swimming here. + drops: + - item_id: raw_shrimps + level: 1 + message: You catch some {75}raw shrimps{/}. + weight: 50 + xp: 10 + - item_id: raw_anchovies + level: 1 + message: You catch some {75}raw anchovies{/}. + weight: 50 + xp: 10 + - item_id: raw_mackerel + level: 16 + message: You catch a {69}raw mackerel{/}. + weight: 50 + xp: 20 + - item_id: raw_cod + level: 23 + message: You catch a {69}raw cod{/}. + weight: 50 + xp: 30 + - item_id: raw_bass + level: 46 + message: You catch a {69}raw bass{/}. + weight: 50 + xp: 50 + fail_message: You catch nothing. + gather_message: You cast your net into the water... + level: 1 + skill: fishing + success: + base: 0.5 + cap: 0.9 + per_level: 0.005 + tools: + - small_net + - big_net id: net_fishing_spot name: net fishing spot -color: "75" -behavior: fish_net -description: "Bubbles break the surface. Use a small or big fishing net here." diff --git a/data/objects/netrunner.yaml b/data/objects/netrunner.yaml index f81f7c5..dcb7d40 100644 --- a/data/objects/netrunner.yaml +++ b/data/objects/netrunner.yaml @@ -1,6 +1,67 @@ +color: "39" +description: A wiry figure hunched over a custom rig, fingers dancing across holographic keys. Cables snake from the back of their neck into the terminal. They glance up at you with augmented eyes. id: netrunner +inroom_description: A {39}Netrunner{/} sits cross-legged on the floor, wired into the network. name: Netrunner -color: "39" -behavior: netrunner_talk -description: "A wiry figure hunched over a custom rig, fingers dancing across holographic keys. Cables snake from the back of their neck into the terminal. They glance up at you with augmented eyes." -inroom_description: "A {39}Netrunner{/} sits cross-legged on the floor, wired into the network." +talk: + nodes: + start: + message: The Netrunner looks up. "You want in on the network? I can give you some pointers." + options: + - goto: what_is + text: '"What is hacking?"' + - goto: terminals + text: '"Where can I find terminals?"' + - goto: tips_basic + text: '"Any tips for the basic terminal?"' + - condition: + player_flag: hacking_asked_basic + value: true + goto: tips_advanced + text: '"What about the advanced terminal?"' + - condition: + player_flag: hacking_asked_advanced + value: true + goto: tips_secure + text: '"Tell me about the secure terminal."' + - end: true + text: '"Goodbye."' + terminals: + message: '"There''s a basic terminal right here in this lab -- good for beginners. The station down east has an advanced one if you''ve got the chops. And if you''re really good, there''s a secure terminal deep in the compound. You''ll need the skills to match though."' + options: + - goto: tips_basic + text: '"Any tips?"' + - end: true + text: '"Thanks."' + tips_advanced: + action: + set_player_flags: + hacking_asked_advanced: true + message: '"Advanced terminal runs a cipher crack. Four symbols, no repeats. You get feedback after each guess -- locked means right spot, found means right symbol wrong spot. Process of elimination. Ten tries."' + options: + - goto: tips_secure + text: '"Tell me about the secure terminal."' + - end: true + text: '"Thanks."' + tips_basic: + action: + set_player_flags: + hacking_asked_basic: true + message: '"The basic terminal runs an old rogue AI hunt. Twenty nodes in a network. You''ve got probes to flush it out. Listen for the warnings -- corrupted data means it''s close, voids mean a trap, static means ICE. Shoot into adjacent nodes, don''t walk into danger."' + options: + - goto: tips_advanced + text: '"What about the advanced terminal?"' + - end: true + text: '"Thanks."' + tips_secure: + message: '"Secure terminal? Signal Bluff. It''s a bluffing game -- you and the system each roll hidden dice and take turns making claims about the total. Ones are wild. Call the bluff or raise the stakes. Read the probabilities, play the odds, and don''t let it psych you out."' + options: + - end: true + text: '"Thanks."' + what_is: + message: '"Hacking''s about jacking into terminals and running their gauntlets. Each terminal runs a different challenge -- puzzles, hunts, pattern games. Crack ''em and you get better at it. Simple as that."' + options: + - goto: terminals + text: '"Where can I find terminals?"' + - end: true + text: '"Goodbye."' diff --git a/data/objects/oak_tree.yaml b/data/objects/oak_tree.yaml index 2ad1ed2..0d42dab 100644 --- a/data/objects/oak_tree.yaml +++ b/data/objects/oak_tree.yaml @@ -1,4 +1,25 @@ +color: "113" +gather: + base_wait: 6 + deplete_timer: 45 + drops: + - depletes: false + item_id: oak_logs + message: You get some {113}oak logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the oak tree... + level: 15 + nest_chance: 256 + respawn_broadcast: An {name} grows back. + respawn_timer: 14 + skill: woodcutting + success: + base: 0.4 + cap: 0.9 + per_level: 0.01 + tools: + - axe + xp: 37 id: oak_tree name: oak tree -color: "113" -behavior: chop_oak diff --git a/data/objects/redwood_tree.yaml b/data/objects/redwood_tree.yaml index 541095a..cf16e86 100644 --- a/data/objects/redwood_tree.yaml +++ b/data/objects/redwood_tree.yaml @@ -1,4 +1,25 @@ +color: "131" +gather: + base_wait: 14 + deplete_timer: 440 + drops: + - depletes: false + item_id: redwood_logs + message: You get some {131}redwood logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the redwood tree... + level: 90 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 199 + skill: woodcutting + success: + base: 0.1 + cap: 0.6 + per_level: 0.01 + tools: + - axe + xp: 380 id: redwood_tree name: redwood tree -color: "131" -behavior: chop_redwood diff --git a/data/objects/runite_rock.yaml b/data/objects/runite_rock.yaml index 2475908..abfb06c 100644 --- a/data/objects/runite_rock.yaml +++ b/data/objects/runite_rock.yaml @@ -1,4 +1,23 @@ +color: "87" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: runite_ore + message: You manage to mine some {87}runite ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the runite rock... + level: 85 + respawn_broadcast: A pale blue glint of runite catches your eye from some {name}. + respawn_timer: 180 + skill: mining + success: + base: 0.08 + cap: 0.8 + per_level: 0.01 + tools: + - pickaxe + xp: 125 id: runite_rock name: runite rock -color: "87" -behavior: mine_runite diff --git a/data/objects/sacred_eel_spot.yaml b/data/objects/sacred_eel_spot.yaml index 199ad96..07c1388 100644 --- a/data/objects/sacred_eel_spot.yaml +++ b/data/objects/sacred_eel_spot.yaml @@ -1,5 +1,23 @@ +color: "177" +description: Waters shimmer with an otherworldly light. Use a fishing rod with bait here. +gather: + bait: fishing_bait + base_wait: 6 + drops: + - item_id: sacred_eel + level: 87 + message: You catch a {177}sacred eel{/}. + weight: 100 + xp: 125 + fail_message: Nothing seems to bite. + gather_message: You cast your line near the sacred waters... + level: 1 + skill: fishing + success: + base: 0.25 + cap: 0.75 + per_level: 0.005 + tools: + - fishing_rod id: sacred_eel_spot name: sacred eel spot -color: "177" -behavior: fish_sacred_eel -description: "Waters shimmer with an otherworldly light. Use a fishing rod with bait here." diff --git a/data/objects/scrap_pile.yaml b/data/objects/scrap_pile.yaml index 2106822..d4a6a48 100644 --- a/data/objects/scrap_pile.yaml +++ b/data/objects/scrap_pile.yaml @@ -1,4 +1,19 @@ +color: "243" +gather: + base_wait: 10 + drops: + - depletes: false + item_id: scrap_metal + message: You salvage some {243}scrap metal{/}. + weight: 100 + gather_message: You swing your pickaxe at the scrap pile... + level: 1 + skill: mining + success: + base: 1.0 + cap: 1.0 + tools: + - pickaxe + xp: 5 id: scrap_pile name: scrap pile -color: "243" -behavior: mine_scrap diff --git a/data/objects/sheep.yaml b/data/objects/sheep.yaml index 2739c9c..865c20e 100644 --- a/data/objects/sheep.yaml +++ b/data/objects/sheep.yaml @@ -1,6 +1,25 @@ +color: "255" +description: A fluffy sheep, ready to be shorn. +gather: + base_wait: 3 + drops: + - depletes: true + item_id: wool + message: You shear some wool from the sheep. + weight: 100 + fail_message: The sheep wriggles free! + gather_message: You hold the sheep still and begin shearing... + level: 1 + respawn_broadcast: A sheep grows a fresh coat of wool. + respawn_timer: 100 + skill: crafting + success: + base: 0.95 + cap: 0.95 + per_level: 0 + tools: + - shears + xp: 0 id: sheep +inroom_description: A fluffy sheep is wandering around here. name: sheep -color: "255" -behavior: shear_sheep -description: "A fluffy sheep, ready to be shorn." -inroom_description: "A fluffy sheep is wandering around here." diff --git a/data/objects/silver_rock.yaml b/data/objects/silver_rock.yaml index 702df59..9cc7d22 100644 --- a/data/objects/silver_rock.yaml +++ b/data/objects/silver_rock.yaml @@ -1,4 +1,23 @@ +color: "253" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: silver_ore + message: You manage to mine some {253}silver ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the silver rock... + level: 20 + respawn_broadcast: A silvery glint catches your eye from some {name}. + respawn_timer: 70 + skill: mining + success: + base: 0.35 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 40 id: silver_rock name: silver rock -color: "253" -behavior: mine_silver diff --git a/data/objects/swamp_fishing_spot.yaml b/data/objects/swamp_fishing_spot.yaml index f5a3f13..e05b424 100644 --- a/data/objects/swamp_fishing_spot.yaml +++ b/data/objects/swamp_fishing_spot.yaml @@ -1,5 +1,28 @@ +color: "108" +description: Murky water bubbles ominously. Use a fishing rod with bait here. +gather: + bait: fishing_bait + base_wait: 5 + drops: + - item_id: raw_slimy_eel + level: 28 + message: You catch a {108}raw slimy eel{/}. + weight: 60 + xp: 80 + - item_id: raw_cave_eel + level: 38 + message: You catch a {80}raw cave eel{/}. + weight: 40 + xp: 80 + fail_message: Nothing seems to bite. + gather_message: You cast your line into the murky swamp... + level: 1 + skill: fishing + success: + base: 0.45 + cap: 0.85 + per_level: 0.005 + tools: + - fishing_rod id: swamp_fishing_spot name: swamp fishing spot -color: "108" -behavior: fish_swamp -description: "Murky water bubbles ominously. Use a fishing rod with bait here." diff --git a/data/objects/teak_tree.yaml b/data/objects/teak_tree.yaml index a680c10..f234f17 100644 --- a/data/objects/teak_tree.yaml +++ b/data/objects/teak_tree.yaml @@ -1,4 +1,25 @@ +color: "179" +gather: + base_wait: 6 + deplete_timer: 50 + drops: + - depletes: false + item_id: teak_logs + message: You get some {179}teak logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the teak tree... + level: 35 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 15 + skill: woodcutting + success: + base: 0.32 + cap: 0.82 + per_level: 0.01 + tools: + - axe + xp: 85 id: teak_tree name: teak tree -color: "179" -behavior: chop_teak diff --git a/data/objects/tin_rock.yaml b/data/objects/tin_rock.yaml index d0969fb..baa5caf 100644 --- a/data/objects/tin_rock.yaml +++ b/data/objects/tin_rock.yaml @@ -1,4 +1,23 @@ +color: "253" +gather: + base_wait: 10 + drops: + - depletes: true + item_id: tin_ore + message: You manage to mine some {253}tin ore{/}. + weight: 100 + fail_message: You chip away but get nothing useful. + gather_message: You swing your pickaxe at the rock... + level: 1 + respawn_broadcast: A glint of tin catches your eye from some {name}. + respawn_timer: 50 + skill: mining + success: + base: 0.5 + cap: 0.95 + per_level: 0.01 + tools: + - pickaxe + xp: 17 id: tin_rock name: tin rock -color: "253" -behavior: mine_tin diff --git a/data/objects/tool_shed.yaml b/data/objects/tool_shed.yaml index 752c921..9b59682 100644 --- a/data/objects/tool_shed.yaml +++ b/data/objects/tool_shed.yaml @@ -1,7 +1,91 @@ -id: tool_shed -name: tool shed color: "94" -behavior: tool_shed_talk +description: A small shed for storing farming tools. Talk to it to store or retrieve tools. hidden: false -inroom_description: "A weathered tool shed stands against the wall." -description: "A small shed for storing farming tools. Talk to it to store or retrieve tools." +id: tool_shed +inroom_description: A weathered tool shed stands against the wall. +name: tool shed +talk: + nodes: + retrieve_rake: + action: + give_item: rake + set_player_flags: + tool_shed_rake: false + message: You retrieve the rake from the tool shed. + options: + - goto: start + text: Continue + retrieve_spade: + action: + give_item: spade + set_player_flags: + tool_shed_spade: false + message: You retrieve the spade from the tool shed. + options: + - goto: start + text: Continue + retrieve_watering_can: + action: + give_item: watering_can + set_player_flags: + tool_shed_watering_can: false + message: You retrieve the watering can from the tool shed. + options: + - goto: start + text: Continue + start: + message: The tool shed is open. What would you like to do? + options: + - condition: + has_item: rake + goto: store_rake + text: Store rake + - condition: + has_item: spade + goto: store_spade + text: Store spade + - condition: + has_item: watering_can + goto: store_watering_can + text: Store watering can + - condition: + player_flag: tool_shed_rake + goto: retrieve_rake + text: Retrieve rake + - condition: + player_flag: tool_shed_spade + goto: retrieve_spade + text: Retrieve spade + - condition: + player_flag: tool_shed_watering_can + goto: retrieve_watering_can + text: Retrieve watering can + - end: true + text: Never mind + store_rake: + action: + set_player_flags: + tool_shed_rake: true + take_item: rake + message: You store the rake in the tool shed. + options: + - goto: start + text: Continue + store_spade: + action: + set_player_flags: + tool_shed_spade: true + take_item: spade + message: You store the spade in the tool shed. + options: + - goto: start + text: Continue + store_watering_can: + action: + set_player_flags: + tool_shed_watering_can: true + take_item: watering_can + message: You store the watering can in the tool shed. + options: + - goto: start + text: Continue diff --git a/data/objects/tree.yaml b/data/objects/tree.yaml index 4f799e8..1d4bdee 100644 --- a/data/objects/tree.yaml +++ b/data/objects/tree.yaml @@ -1,4 +1,25 @@ +color: "107" +gather: + base_wait: 4 + depleted_message: You don't see any usable wood in this tree. + drops: + - depletes: true + item_id: logs + message: You get some {107}logs{/}. + weight: 100 + exhausted_message: The tree comes crashing down! + fail_message: You swing but get no logs. + gather_message: You swing your axe at the tree... + level: 1 + respawn_broadcast: A {name} grows back. + respawn_timer: 80 + skill: woodcutting + success: + base: 0.5 + cap: 0.95 + per_level: 0.01 + tools: + - axe + xp: 25 id: tree name: tree -color: "107" -behavior: chop_tree diff --git a/data/objects/willow_tree.yaml b/data/objects/willow_tree.yaml index 01cc346..a4db0cf 100644 --- a/data/objects/willow_tree.yaml +++ b/data/objects/willow_tree.yaml @@ -1,4 +1,25 @@ +color: "114" +gather: + base_wait: 6 + deplete_timer: 50 + drops: + - depletes: false + item_id: willow_logs + message: You get some {114}willow logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the willow tree... + level: 30 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 14 + skill: woodcutting + success: + base: 0.35 + cap: 0.85 + per_level: 0.01 + tools: + - axe + xp: 67 id: willow_tree name: willow tree -color: "114" -behavior: chop_willow diff --git a/data/objects/yew_tree.yaml b/data/objects/yew_tree.yaml index cb81172..b521052 100644 --- a/data/objects/yew_tree.yaml +++ b/data/objects/yew_tree.yaml @@ -1,4 +1,25 @@ +color: "108" +gather: + base_wait: 10 + deplete_timer: 190 + drops: + - depletes: false + item_id: yew_logs + message: You get some {108}yew logs{/}. + weight: 100 + fail_message: You swing but get no logs. + gather_message: You swing your axe at the yew tree... + level: 60 + nest_chance: 256 + respawn_broadcast: A {name} grows back. + respawn_timer: 99 + skill: woodcutting + success: + base: 0.2 + cap: 0.7 + per_level: 0.01 + tools: + - axe + xp: 175 id: yew_tree name: yew tree -color: "108" -behavior: chop_yew diff --git a/data/rooms/9.yaml b/data/rooms/9.yaml index da72432..fe15233 100644 --- a/data/rooms/9.yaml +++ b/data/rooms/9.yaml @@ -14,3 +14,4 @@ objects: - id: scrap_pile - id: scrap_pile - id: scrap_pile + - id: solar_altar -- cgit v1.2.3