From 010fa439399581391fcd509d2058191ff4fa74b3 Mon Sep 17 00:00:00 2001 From: historia Date: Sat, 20 Jun 2026 21:36:32 -0400 Subject: feat: stop command added --- AGENTS.md | 4 ++-- README.md | 2 +- cmd/mud/main.go | 2 +- data/help/actions.yaml | 2 +- data/help/id.yaml | 6 ++--- data/help/scavenging.yaml | 10 ++++----- data/help/science.yaml | 2 +- data/help/stop.yaml | 12 ++++++++++ data/help/trigger.yaml | 2 +- data/items/decks/bio_identifier.yaml | 2 +- data/items/decks/blood_identifier.yaml | 2 +- data/items/decks/chaos_identifier.yaml | 2 +- data/items/decks/cosmic_identifier.yaml | 2 +- data/items/decks/death_identifier.yaml | 2 +- data/items/decks/eco_identifier.yaml | 2 +- data/items/decks/hydro_identifier.yaml | 2 +- data/items/decks/law_identifier.yaml | 2 +- data/items/decks/nature_identifier.yaml | 2 +- data/items/decks/solar_identifier.yaml | 2 +- data/items/misc/scrap.yaml | 6 +++++ data/items/misc/scrap_metal.yaml | 6 ----- data/mobs/ancient_construct.yaml | 2 +- data/mobs/enforcer_bot.yaml | 4 ++-- data/mobs/feral_cyborg.yaml | 2 +- data/mobs/ghoul.yaml | 2 +- data/mobs/greater_drone.yaml | 2 +- data/mobs/heavy_mech.yaml | 4 ++-- data/mobs/iron_sentinel.yaml | 2 +- data/mobs/lesser_drone.yaml | 2 +- data/mobs/molten_elemental.yaml | 2 +- data/mobs/mutant_rat.yaml | 2 +- data/mobs/scrap_bot.yaml | 4 ++-- data/mobs/security_turret.yaml | 4 ++-- data/mobs/titan_sentinel.yaml | 2 +- data/mobs/war_drone.yaml | 2 +- data/modules/bio_blast.yaml | 2 +- data/modules/bio_bolt.yaml | 2 +- data/modules/bio_strike.yaml | 2 +- data/modules/bio_surge.yaml | 2 +- data/modules/bio_wave.yaml | 2 +- data/modules/bones_to_nutrients.yaml | 2 +- data/modules/chip_diamond.yaml | 2 +- data/modules/chip_emerald.yaml | 2 +- data/modules/chip_ruby.yaml | 2 +- data/modules/chip_sapphire.yaml | 2 +- data/modules/eco_blast.yaml | 2 +- data/modules/eco_bolt.yaml | 2 +- data/modules/eco_strike.yaml | 2 +- data/modules/eco_surge.yaml | 2 +- data/modules/eco_wave.yaml | 2 +- data/modules/em_grab.yaml | 2 +- data/modules/enchant_1.yaml | 2 +- data/modules/enchant_2.yaml | 2 +- data/modules/enchant_3.yaml | 2 +- data/modules/enchant_4.yaml | 2 +- data/modules/high_process.yaml | 2 +- data/modules/hydro_blast.yaml | 2 +- data/modules/hydro_bolt.yaml | 2 +- data/modules/hydro_strike.yaml | 2 +- data/modules/hydro_surge.yaml | 2 +- data/modules/hydro_wave.yaml | 2 +- data/modules/low_process.yaml | 2 +- data/modules/plank_make.yaml | 2 +- data/modules/solar_blast.yaml | 2 +- data/modules/solar_bolt.yaml | 2 +- data/modules/solar_strike.yaml | 2 +- data/modules/solar_surge.yaml | 2 +- data/modules/solar_wave.yaml | 2 +- data/modules/superheat.yaml | 2 +- data/modules/transport_deep_mine.yaml | 2 +- data/modules/transport_fishing.yaml | 2 +- data/modules/transport_forest.yaml | 2 +- data/modules/transport_forge.yaml | 2 +- data/modules/transport_mine.yaml | 2 +- data/modules/transport_scavenge.yaml | 2 +- data/modules/transport_town.yaml | 2 +- data/objects/bio_altar.yaml | 2 +- data/objects/blood_altar.yaml | 2 +- data/objects/chaos_altar.yaml | 2 +- data/objects/cosmic_altar.yaml | 2 +- data/objects/death_altar.yaml | 2 +- data/objects/eco_altar.yaml | 2 +- data/objects/hydro_altar.yaml | 2 +- data/objects/law_altar.yaml | 2 +- data/objects/nature_altar.yaml | 2 +- data/objects/scrap_pile.yaml | 4 ++-- data/objects/solar_altar.yaml | 2 +- data/rooms/town/1.yaml | 39 +++++++++++++++++++++++++++++++++ data/rooms/town/9.yaml | 2 +- internal/game/action_identify.go | 8 +++---- internal/game/cmd_id.go | 4 ++-- internal/game/cmd_registry.go | 1 + internal/game/cmd_stop.go | 18 +++++++++++++++ internal/game/cmd_verbs.go | 1 + internal/game/sys_science.go | 4 ++-- internal/net/welcome.go | 12 +++++----- worldbuilding_guide/construction.md | 4 ++-- 97 files changed, 190 insertions(+), 119 deletions(-) create mode 100644 data/help/stop.yaml create mode 100644 data/items/misc/scrap.yaml delete mode 100644 data/items/misc/scrap_metal.yaml create mode 100644 internal/game/cmd_stop.go diff --git a/AGENTS.md b/AGENTS.md index f2f528e..461c235 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -239,7 +239,7 @@ The `verbSkill` map maps verb → skill name for default target resolution: | steal | `action_steal.go` | Thieving — pickpocket, stall stealing, guard watching, sneak mode | | agility | `action_agility.go` | 3-phase obstacle traversal with fail chance, course lap tracking | | farm | `action_farm.go` | Planting, growth stages (500-tick), watering, disease, harvesting | -| identify | `action_identify.go` | Scavenging — scrap_metal → junk at altars | +| identify | `action_identify.go` | Scavenging — scrap → junk at altars | | finishing blow | `action_finishing_blow.go` | Assassin special item on mob at 1 HP | ### GatherConfig Fields @@ -354,7 +354,7 @@ Battery = Technology level (float64). Each tech has a drain rate (0.05–0.25 pe ## Science System (science.go) -Mods loaded from `data/modules/` — categories: combat, utility, transport, enchant, processing. Each mod has a junk cost. Deck equipment (science weapons) provides junk and removes scrap_metal cost. +Mods loaded from `data/modules/` — categories: combat, utility, transport, enchant, processing. Each mod has a junk cost. Deck equipment (science weapons) provides junk and removes scrap cost. **Triggering mods:** diff --git a/README.md b/README.md index 8c2b383..fabf6f7 100644 --- a/README.md +++ b/README.md @@ -106,8 +106,8 @@ Colonists who don't take a side in the conflict one way or the other. Everyone f # Todo -- Implement "what/syntax" command to show un-hidden options in rooms. - Fix and test all skills +- Pharmacy is broken - Make sure "use" works with everything as expected (e.g. id stations) - Play around with Hacking. Needs interesting but semi-afk minigames. - Prettify and make menus consistent diff --git a/cmd/mud/main.go b/cmd/mud/main.go index 234e3e0..c51cc6e 100644 --- a/cmd/mud/main.go +++ b/cmd/mud/main.go @@ -67,7 +67,7 @@ func main() { g.SetHub(server.Hub()) junkItems := []string{"solarjunk", "ecojunk", "hydrojunk", "biojunk", "chaosjunk", - "cosmicjunk", "naturejunk", "bloodjunk", "deathjunk", "lawjunk", "scrap_metal"} + "cosmicjunk", "naturejunk", "bloodjunk", "deathjunk", "lawjunk", "scrap"} for _, j := range junkItems { g.World.AddGroundItem(1, j, 500) } diff --git a/data/help/actions.yaml b/data/help/actions.yaml index 7a2cbd3..7f6c7d8 100644 --- a/data/help/actions.yaml +++ b/data/help/actions.yaml @@ -6,7 +6,7 @@ description: | Instant actions — execute immediately, bypassing the tick queue entirely: say, score, inventory, equipment, look, exits, help, map, option, - alias, unalias, description, queued + alias, unalias, description, queued, stop Free actions — stackable, all execute before active actions: wear, wield, remove, unwear, unwield, style diff --git a/data/help/id.yaml b/data/help/id.yaml index 6605711..9703485 100644 --- a/data/help/id.yaml +++ b/data/help/id.yaml @@ -1,14 +1,14 @@ name: "id" category: "Commands" description: | - Identify scrap metal at an altar to produce junk. + Identify scrap at an altar to produce junk. Usage: id identify Stand at an altar with the matching identifier tool in - your inventory and scrap metal. Type 'id' to convert all - your scrap metal into junk on the next game tick. + your inventory and scrap. Type 'id' to convert all + your scrap into junk on the next game tick. Each altar type requires a specific identifier: Solar Altar → solar identifier → solarjunk (level 1) diff --git a/data/help/scavenging.yaml b/data/help/scavenging.yaml index d91c6ed..03f155f 100644 --- a/data/help/scavenging.yaml +++ b/data/help/scavenging.yaml @@ -2,13 +2,13 @@ name: "scavenging" category: "Skills" description: | Scavenging is the art of reclaiming useful circuitry from - salvaged scrap metal. + salvaged scrap. - Step 1: Mine scrap metal from scrap piles (requires a pickaxe, + Step 1: Mine scrap from scrap piles (requires a pickaxe, uses the Mining skill). - Step 2: Take scrap metal to an altar with the matching + Step 2: Take scrap to an altar with the matching identifier tool. - Step 3: Type 'id' to convert all scrap metal into junk. + Step 3: Type 'id' to convert all scrap into junk. Junk types and requirements: Solarjunk — level 1, solar identifier (5 XP/scrap) @@ -34,6 +34,6 @@ description: | Deathjunk: 2x at 99 Bloodjunk: 2x at 99 - Scrap metal is not stackable — you can carry 28 per trip + Scrap is not stackable — you can carry 28 per trip (one per inventory slot). Each trip converts all scrap in one tick. diff --git a/data/help/science.yaml b/data/help/science.yaml index 57588b3..901b2f3 100644 --- a/data/help/science.yaml +++ b/data/help/science.yaml @@ -8,7 +8,7 @@ description: | Key concepts: - 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 + - All modules also cost 1 scrap, UNLESS you have a deck equipped - Wielding a deck (science weapon) removes the scrap requirement and enables autotrigger combat diff --git a/data/help/stop.yaml b/data/help/stop.yaml new file mode 100644 index 0000000..72d163f --- /dev/null +++ b/data/help/stop.yaml @@ -0,0 +1,12 @@ +name: "stop" +category: "General" +description: | + Cancels your current action immediately. + + Usage: stop + + Stops whatever you are currently doing — gathering, crafting, talking, + fletching, combat, or any other active action. Also clears any queued + active action and background actions (cleaning, fletching). + + If you're not doing anything, it tells you so. diff --git a/data/help/trigger.yaml b/data/help/trigger.yaml index 9211c08..558342f 100644 --- a/data/help/trigger.yaml +++ b/data/help/trigger.yaml @@ -27,7 +27,7 @@ description: | trigger transport town - Teleport to Town Square trigger enchant 1 sapphire - Enchant a sapphire ring - All mods cost junk (and 1 scrap metal unless you have a deck + All mods cost junk (and 1 scrap unless you have a deck equipped). Type 'mods' to see your available mods and costs. See also: autotrigger, mods, science diff --git a/data/items/decks/bio_identifier.yaml b/data/items/decks/bio_identifier.yaml index 1b5a941..52fceb3 100644 --- a/data/items/decks/bio_identifier.yaml +++ b/data/items/decks/bio_identifier.yaml @@ -1,5 +1,5 @@ id: bio_identifier name: bio identifier color: "196" -description: "A handheld scanner calibrated to isolate bio-frequency signatures in scrap metal. Required to produce biojunk at a bio altar." +description: "A handheld scanner calibrated to isolate bio-frequency signatures in scrap. Required to produce biojunk at a bio altar." value: 5000 diff --git a/data/items/decks/blood_identifier.yaml b/data/items/decks/blood_identifier.yaml index 3540179..d2ba170 100644 --- a/data/items/decks/blood_identifier.yaml +++ b/data/items/decks/blood_identifier.yaml @@ -1,5 +1,5 @@ id: blood_identifier name: blood identifier color: "124" -description: "A handheld scanner calibrated to isolate blood-frequency signatures in scrap metal. Required to produce bloodjunk at a blood altar." +description: "A handheld scanner calibrated to isolate blood-frequency signatures in scrap. Required to produce bloodjunk at a blood altar." value: 15000 diff --git a/data/items/decks/chaos_identifier.yaml b/data/items/decks/chaos_identifier.yaml index 82a7ccf..fcb4df7 100644 --- a/data/items/decks/chaos_identifier.yaml +++ b/data/items/decks/chaos_identifier.yaml @@ -1,5 +1,5 @@ id: chaos_identifier name: chaos identifier color: "226" -description: "A handheld scanner calibrated to isolate chaos-frequency signatures in scrap metal. Required to produce chaosjunk at a chaos altar." +description: "A handheld scanner calibrated to isolate chaos-frequency signatures in scrap. Required to produce chaosjunk at a chaos altar." value: 7500 diff --git a/data/items/decks/cosmic_identifier.yaml b/data/items/decks/cosmic_identifier.yaml index 97cb89a..51e80e5 100644 --- a/data/items/decks/cosmic_identifier.yaml +++ b/data/items/decks/cosmic_identifier.yaml @@ -1,5 +1,5 @@ id: cosmic_identifier name: cosmic identifier color: "201" -description: "A handheld scanner calibrated to isolate cosmic-frequency signatures in scrap metal. Required to produce cosmicjunk at a cosmic altar." +description: "A handheld scanner calibrated to isolate cosmic-frequency signatures in scrap. Required to produce cosmicjunk at a cosmic altar." value: 5000 diff --git a/data/items/decks/death_identifier.yaml b/data/items/decks/death_identifier.yaml index 778bca5..7cc3f3b 100644 --- a/data/items/decks/death_identifier.yaml +++ b/data/items/decks/death_identifier.yaml @@ -1,5 +1,5 @@ id: death_identifier name: death identifier color: "52" -description: "A handheld scanner calibrated to isolate death-frequency signatures in scrap metal. Required to produce deathjunk at a death altar." +description: "A handheld scanner calibrated to isolate death-frequency signatures in scrap. Required to produce deathjunk at a death altar." value: 10000 diff --git a/data/items/decks/eco_identifier.yaml b/data/items/decks/eco_identifier.yaml index d0af516..90f5f28 100644 --- a/data/items/decks/eco_identifier.yaml +++ b/data/items/decks/eco_identifier.yaml @@ -1,5 +1,5 @@ id: eco_identifier name: eco identifier color: "34" -description: "A handheld scanner calibrated to isolate eco-frequency signatures in scrap metal. Required to produce ecojunk at an eco altar." +description: "A handheld scanner calibrated to isolate eco-frequency signatures in scrap. Required to produce ecojunk at an eco altar." value: 2500 diff --git a/data/items/decks/hydro_identifier.yaml b/data/items/decks/hydro_identifier.yaml index 3eb7d98..61217a3 100644 --- a/data/items/decks/hydro_identifier.yaml +++ b/data/items/decks/hydro_identifier.yaml @@ -1,5 +1,5 @@ id: hydro_identifier name: hydro identifier color: "39" -description: "A handheld scanner calibrated to isolate hydro-frequency signatures in scrap metal. Required to produce hydrojunk at a hydro altar." +description: "A handheld scanner calibrated to isolate hydro-frequency signatures in scrap. Required to produce hydrojunk at a hydro altar." value: 1000 diff --git a/data/items/decks/law_identifier.yaml b/data/items/decks/law_identifier.yaml index 25700e1..8a8e02a 100644 --- a/data/items/decks/law_identifier.yaml +++ b/data/items/decks/law_identifier.yaml @@ -1,5 +1,5 @@ id: law_identifier name: law identifier color: "27" -description: "A handheld scanner calibrated to isolate law-frequency signatures in scrap metal. Required to produce lawjunk at a law altar." +description: "A handheld scanner calibrated to isolate law-frequency signatures in scrap. Required to produce lawjunk at a law altar." value: 10000 diff --git a/data/items/decks/nature_identifier.yaml b/data/items/decks/nature_identifier.yaml index dc441cf..0eb48ad 100644 --- a/data/items/decks/nature_identifier.yaml +++ b/data/items/decks/nature_identifier.yaml @@ -1,5 +1,5 @@ id: nature_identifier name: nature identifier color: "46" -description: "A handheld scanner calibrated to isolate nature-frequency signatures in scrap metal. Required to produce naturejunk at a nature altar." +description: "A handheld scanner calibrated to isolate nature-frequency signatures in scrap. Required to produce naturejunk at a nature altar." value: 10000 diff --git a/data/items/decks/solar_identifier.yaml b/data/items/decks/solar_identifier.yaml index 663bd9f..0a0f108 100644 --- a/data/items/decks/solar_identifier.yaml +++ b/data/items/decks/solar_identifier.yaml @@ -1,5 +1,5 @@ id: solar_identifier name: solar identifier color: "220" -description: "A handheld scanner calibrated to isolate solar-frequency signatures in scrap metal. Required to produce solarjunk at a solar altar." +description: "A handheld scanner calibrated to isolate solar-frequency signatures in scrap. Required to produce solarjunk at a solar altar." value: 500 diff --git a/data/items/misc/scrap.yaml b/data/items/misc/scrap.yaml new file mode 100644 index 0000000..c53932f --- /dev/null +++ b/data/items/misc/scrap.yaml @@ -0,0 +1,6 @@ +id: scrap +name: scrap +color: "243" +description: "A chunk of salvaged scrap." +value: 2 +stackable: false diff --git a/data/items/misc/scrap_metal.yaml b/data/items/misc/scrap_metal.yaml deleted file mode 100644 index d9b805e..0000000 --- a/data/items/misc/scrap_metal.yaml +++ /dev/null @@ -1,6 +0,0 @@ -id: scrap_metal -name: scrap metal -color: "243" -description: "A chunk of salvaged scrap metal." -value: 2 -stackable: false diff --git a/data/mobs/ancient_construct.yaml b/data/mobs/ancient_construct.yaml index 0e2d04e..9e4e765 100644 --- a/data/mobs/ancient_construct.yaml +++ b/data/mobs/ancient_construct.yaml @@ -27,7 +27,7 @@ combat_descriptions: - "unleashes a cascade of ancient energy at %s" - "teleports behind %s and strikes" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 40 diff --git a/data/mobs/enforcer_bot.yaml b/data/mobs/enforcer_bot.yaml index 623e210..62a5992 100644 --- a/data/mobs/enforcer_bot.yaml +++ b/data/mobs/enforcer_bot.yaml @@ -27,12 +27,12 @@ combat_descriptions: - "slams its riot shield into %s" - "delivers a stunning blow to %s" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 60 quantity: 350 - - item_id: scrap_metal + - item_id: scrap weight: 20 quantity: 5 - item_id: credits diff --git a/data/mobs/feral_cyborg.yaml b/data/mobs/feral_cyborg.yaml index e05f01b..7b3fc19 100644 --- a/data/mobs/feral_cyborg.yaml +++ b/data/mobs/feral_cyborg.yaml @@ -31,7 +31,7 @@ drops: - item_id: credits weight: 60 quantity: 300 - - item_id: scrap_metal + - item_id: scrap weight: 25 quantity: 3 - table: herb_table_mid diff --git a/data/mobs/ghoul.yaml b/data/mobs/ghoul.yaml index 4c4bfa8..e4888d9 100644 --- a/data/mobs/ghoul.yaml +++ b/data/mobs/ghoul.yaml @@ -32,7 +32,7 @@ drops: - item_id: credits weight: 60 quantity: 80 - - item_id: scrap_metal + - item_id: scrap weight: 25 - table: herb_table_low weight: 15 diff --git a/data/mobs/greater_drone.yaml b/data/mobs/greater_drone.yaml index 9585203..7f786f1 100644 --- a/data/mobs/greater_drone.yaml +++ b/data/mobs/greater_drone.yaml @@ -25,7 +25,7 @@ idle_descriptions: - "deploys sensor probes" drops: loot: - - item_id: scrap_metal + - item_id: scrap weight: 40 quantity: 3 - item_id: credits diff --git a/data/mobs/heavy_mech.yaml b/data/mobs/heavy_mech.yaml index fa8db8c..129bc88 100644 --- a/data/mobs/heavy_mech.yaml +++ b/data/mobs/heavy_mech.yaml @@ -27,12 +27,12 @@ combat_descriptions: - "smashes %s with a hydraulic fist" - "unleashes a missile salvo at %s" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 55 quantity: 1000 - - item_id: scrap_metal + - item_id: scrap weight: 25 quantity: 8 - table: gem_table diff --git a/data/mobs/iron_sentinel.yaml b/data/mobs/iron_sentinel.yaml index dca2f7c..0256b93 100644 --- a/data/mobs/iron_sentinel.yaml +++ b/data/mobs/iron_sentinel.yaml @@ -23,7 +23,7 @@ idle_descriptions: - "scans the area with a red optical sensor" drops: loot: - - item_id: scrap_metal + - item_id: scrap weight: 30 quantity: 5 - item_id: credits diff --git a/data/mobs/lesser_drone.yaml b/data/mobs/lesser_drone.yaml index 07e73b4..b90976f 100644 --- a/data/mobs/lesser_drone.yaml +++ b/data/mobs/lesser_drone.yaml @@ -25,7 +25,7 @@ idle_descriptions: - "rotates slowly in place" drops: loot: - - item_id: scrap_metal + - item_id: scrap weight: 60 - item_id: credits weight: 40 diff --git a/data/mobs/molten_elemental.yaml b/data/mobs/molten_elemental.yaml index 315e27a..7032965 100644 --- a/data/mobs/molten_elemental.yaml +++ b/data/mobs/molten_elemental.yaml @@ -27,7 +27,7 @@ combat_descriptions: - "engulfs %s in a wave of liquid fire" - "smashes %s with a superheated limb" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 50 diff --git a/data/mobs/mutant_rat.yaml b/data/mobs/mutant_rat.yaml index 11ec0ad..7dfd751 100644 --- a/data/mobs/mutant_rat.yaml +++ b/data/mobs/mutant_rat.yaml @@ -32,7 +32,7 @@ drops: - item_id: credits weight: 60 quantity: 20 - - item_id: scrap_metal + - item_id: scrap weight: 30 - item_id: credits weight: 10 diff --git a/data/mobs/scrap_bot.yaml b/data/mobs/scrap_bot.yaml index 5b5c3e3..78b8563 100644 --- a/data/mobs/scrap_bot.yaml +++ b/data/mobs/scrap_bot.yaml @@ -26,12 +26,12 @@ combat_descriptions: - "swings a broken manipulator arm at %s" - "discharges a spark at %s" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 60 quantity: 40 - - item_id: scrap_metal + - item_id: scrap weight: 30 quantity: 2 - item_id: credits diff --git a/data/mobs/security_turret.yaml b/data/mobs/security_turret.yaml index 3d6b774..25bcbf9 100644 --- a/data/mobs/security_turret.yaml +++ b/data/mobs/security_turret.yaml @@ -28,12 +28,12 @@ combat_descriptions: - "unleashes a burst of rounds at %s" - "locks onto %s and opens fire" drops: - remains: scrap_metal + remains: scrap loot: - item_id: credits weight: 70 quantity: 100 - - item_id: scrap_metal + - item_id: scrap weight: 20 quantity: 3 - item_id: credits diff --git a/data/mobs/titan_sentinel.yaml b/data/mobs/titan_sentinel.yaml index 554ab4b..ad8b69f 100644 --- a/data/mobs/titan_sentinel.yaml +++ b/data/mobs/titan_sentinel.yaml @@ -28,7 +28,7 @@ combat_descriptions: - "drives %s into the ground with overwhelming force" drops: loot: - - item_id: scrap_metal + - item_id: scrap weight: 30 quantity: 10 - item_id: credits diff --git a/data/mobs/war_drone.yaml b/data/mobs/war_drone.yaml index c9d1bbe..d06563d 100644 --- a/data/mobs/war_drone.yaml +++ b/data/mobs/war_drone.yaml @@ -32,7 +32,7 @@ drops: - item_id: credits weight: 60 quantity: 200 - - item_id: scrap_metal + - item_id: scrap weight: 20 quantity: 4 - item_id: credits diff --git a/data/modules/bio_blast.yaml b/data/modules/bio_blast.yaml index 216b96c..e20ed53 100644 --- a/data/modules/bio_blast.yaml +++ b/data/modules/bio_blast.yaml @@ -9,4 +9,4 @@ junk_cost: biojunk: 3 chaosjunk: 1 deathjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/bio_bolt.yaml b/data/modules/bio_bolt.yaml index 848c562..02ef9f6 100644 --- a/data/modules/bio_bolt.yaml +++ b/data/modules/bio_bolt.yaml @@ -8,4 +8,4 @@ element: bio junk_cost: biojunk: 2 chaosjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/bio_strike.yaml b/data/modules/bio_strike.yaml index 25a08a6..f76ca39 100644 --- a/data/modules/bio_strike.yaml +++ b/data/modules/bio_strike.yaml @@ -7,4 +7,4 @@ category: combat element: bio junk_cost: biojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/bio_surge.yaml b/data/modules/bio_surge.yaml index 2cb813a..5bd6ec5 100644 --- a/data/modules/bio_surge.yaml +++ b/data/modules/bio_surge.yaml @@ -8,4 +8,4 @@ element: bio junk_cost: biojunk: 7 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/bio_wave.yaml b/data/modules/bio_wave.yaml index 835f27c..527b525 100644 --- a/data/modules/bio_wave.yaml +++ b/data/modules/bio_wave.yaml @@ -9,4 +9,4 @@ junk_cost: biojunk: 5 deathjunk: 1 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/bones_to_nutrients.yaml b/data/modules/bones_to_nutrients.yaml index 10f23fd..73ac469 100644 --- a/data/modules/bones_to_nutrients.yaml +++ b/data/modules/bones_to_nutrients.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: naturejunk: 2 ecojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/chip_diamond.yaml b/data/modules/chip_diamond.yaml index 6622558..3edde7c 100644 --- a/data/modules/chip_diamond.yaml +++ b/data/modules/chip_diamond.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 ecojunk: 10 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/chip_emerald.yaml b/data/modules/chip_emerald.yaml index 4db73f5..b5514d2 100644 --- a/data/modules/chip_emerald.yaml +++ b/data/modules/chip_emerald.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 biojunk: 3 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/chip_ruby.yaml b/data/modules/chip_ruby.yaml index 13e825c..4001515 100644 --- a/data/modules/chip_ruby.yaml +++ b/data/modules/chip_ruby.yaml @@ -8,4 +8,4 @@ junk_cost: cosmicjunk: 1 solarjunk: 5 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/chip_sapphire.yaml b/data/modules/chip_sapphire.yaml index ec747fd..b12b5de 100644 --- a/data/modules/chip_sapphire.yaml +++ b/data/modules/chip_sapphire.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 hydrojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/eco_blast.yaml b/data/modules/eco_blast.yaml index 4f8f8ff..aef98f5 100644 --- a/data/modules/eco_blast.yaml +++ b/data/modules/eco_blast.yaml @@ -9,4 +9,4 @@ junk_cost: ecojunk: 4 biojunk: 3 chaosjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/eco_bolt.yaml b/data/modules/eco_bolt.yaml index 33ea0f6..bccdc8f 100644 --- a/data/modules/eco_bolt.yaml +++ b/data/modules/eco_bolt.yaml @@ -8,4 +8,4 @@ element: eco junk_cost: ecojunk: 3 biojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/eco_strike.yaml b/data/modules/eco_strike.yaml index 585db00..f94ef96 100644 --- a/data/modules/eco_strike.yaml +++ b/data/modules/eco_strike.yaml @@ -8,4 +8,4 @@ element: eco junk_cost: ecojunk: 2 biojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/eco_surge.yaml b/data/modules/eco_surge.yaml index 6bca172..41b4d2c 100644 --- a/data/modules/eco_surge.yaml +++ b/data/modules/eco_surge.yaml @@ -9,4 +9,4 @@ junk_cost: ecojunk: 10 biojunk: 7 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/eco_wave.yaml b/data/modules/eco_wave.yaml index 4fa2a23..20ef041 100644 --- a/data/modules/eco_wave.yaml +++ b/data/modules/eco_wave.yaml @@ -9,4 +9,4 @@ junk_cost: ecojunk: 7 biojunk: 5 deathjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/em_grab.yaml b/data/modules/em_grab.yaml index 4ec20d3..217e5f5 100644 --- a/data/modules/em_grab.yaml +++ b/data/modules/em_grab.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: lawjunk: 1 biojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/enchant_1.yaml b/data/modules/enchant_1.yaml index 6c074e0..8f23336 100644 --- a/data/modules/enchant_1.yaml +++ b/data/modules/enchant_1.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 hydrojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/enchant_2.yaml b/data/modules/enchant_2.yaml index 22c19f9..b9fa09f 100644 --- a/data/modules/enchant_2.yaml +++ b/data/modules/enchant_2.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 biojunk: 3 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/enchant_3.yaml b/data/modules/enchant_3.yaml index 99f8745..92a898c 100644 --- a/data/modules/enchant_3.yaml +++ b/data/modules/enchant_3.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 solarjunk: 5 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/enchant_4.yaml b/data/modules/enchant_4.yaml index e296ce6..63b2096 100644 --- a/data/modules/enchant_4.yaml +++ b/data/modules/enchant_4.yaml @@ -7,4 +7,4 @@ category: enchant junk_cost: cosmicjunk: 1 ecojunk: 10 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/high_process.yaml b/data/modules/high_process.yaml index 55e4c38..447b4ce 100644 --- a/data/modules/high_process.yaml +++ b/data/modules/high_process.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: naturejunk: 5 solarjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/hydro_blast.yaml b/data/modules/hydro_blast.yaml index c55f1b4..c9981db 100644 --- a/data/modules/hydro_blast.yaml +++ b/data/modules/hydro_blast.yaml @@ -9,4 +9,4 @@ junk_cost: hydrojunk: 5 ecojunk: 3 chaosjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/hydro_bolt.yaml b/data/modules/hydro_bolt.yaml index 6487191..5907943 100644 --- a/data/modules/hydro_bolt.yaml +++ b/data/modules/hydro_bolt.yaml @@ -8,4 +8,4 @@ element: hydro junk_cost: hydrojunk: 3 ecojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/hydro_strike.yaml b/data/modules/hydro_strike.yaml index 657e8e1..41bcbbc 100644 --- a/data/modules/hydro_strike.yaml +++ b/data/modules/hydro_strike.yaml @@ -8,4 +8,4 @@ element: hydro junk_cost: hydrojunk: 3 ecojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/hydro_surge.yaml b/data/modules/hydro_surge.yaml index 61fe3d2..5d32607 100644 --- a/data/modules/hydro_surge.yaml +++ b/data/modules/hydro_surge.yaml @@ -9,4 +9,4 @@ junk_cost: hydrojunk: 10 ecojunk: 7 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/hydro_wave.yaml b/data/modules/hydro_wave.yaml index 92da933..8a37538 100644 --- a/data/modules/hydro_wave.yaml +++ b/data/modules/hydro_wave.yaml @@ -9,4 +9,4 @@ junk_cost: hydrojunk: 7 ecojunk: 5 deathjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/low_process.yaml b/data/modules/low_process.yaml index f3457d6..e0e5e9b 100644 --- a/data/modules/low_process.yaml +++ b/data/modules/low_process.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: naturejunk: 3 solarjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/plank_make.yaml b/data/modules/plank_make.yaml index 6aa2469..bdfbcad 100644 --- a/data/modules/plank_make.yaml +++ b/data/modules/plank_make.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: naturejunk: 5 solarjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/solar_blast.yaml b/data/modules/solar_blast.yaml index 1af5170..e3da213 100644 --- a/data/modules/solar_blast.yaml +++ b/data/modules/solar_blast.yaml @@ -9,4 +9,4 @@ junk_cost: solarjunk: 5 ecojunk: 4 chaosjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/solar_bolt.yaml b/data/modules/solar_bolt.yaml index ca4c1b5..a75e98e 100644 --- a/data/modules/solar_bolt.yaml +++ b/data/modules/solar_bolt.yaml @@ -8,4 +8,4 @@ element: solar junk_cost: solarjunk: 4 ecojunk: 3 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/solar_strike.yaml b/data/modules/solar_strike.yaml index b9eae32..365cc13 100644 --- a/data/modules/solar_strike.yaml +++ b/data/modules/solar_strike.yaml @@ -8,4 +8,4 @@ element: solar junk_cost: solarjunk: 3 ecojunk: 2 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/solar_surge.yaml b/data/modules/solar_surge.yaml index abfedd1..08b8f00 100644 --- a/data/modules/solar_surge.yaml +++ b/data/modules/solar_surge.yaml @@ -9,4 +9,4 @@ junk_cost: solarjunk: 10 ecojunk: 7 bloodjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/solar_wave.yaml b/data/modules/solar_wave.yaml index 9f67203..905fc38 100644 --- a/data/modules/solar_wave.yaml +++ b/data/modules/solar_wave.yaml @@ -9,4 +9,4 @@ junk_cost: solarjunk: 7 ecojunk: 5 deathjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/superheat.yaml b/data/modules/superheat.yaml index 27b5931..9579e52 100644 --- a/data/modules/superheat.yaml +++ b/data/modules/superheat.yaml @@ -7,4 +7,4 @@ category: utility junk_cost: naturejunk: 4 solarjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_deep_mine.yaml b/data/modules/transport_deep_mine.yaml index 2322253..b88988d 100644 --- a/data/modules/transport_deep_mine.yaml +++ b/data/modules/transport_deep_mine.yaml @@ -8,4 +8,4 @@ destination: 7 junk_cost: lawjunk: 2 ecojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_fishing.yaml b/data/modules/transport_fishing.yaml index 8c0ba0b..1b47bbb 100644 --- a/data/modules/transport_fishing.yaml +++ b/data/modules/transport_fishing.yaml @@ -9,4 +9,4 @@ junk_cost: lawjunk: 1 hydrojunk: 1 biojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_forest.yaml b/data/modules/transport_forest.yaml index 1f555f4..8e71b26 100644 --- a/data/modules/transport_forest.yaml +++ b/data/modules/transport_forest.yaml @@ -9,4 +9,4 @@ junk_cost: lawjunk: 1 ecojunk: 1 biojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_forge.yaml b/data/modules/transport_forge.yaml index f54b34c..18fee17 100644 --- a/data/modules/transport_forge.yaml +++ b/data/modules/transport_forge.yaml @@ -8,4 +8,4 @@ destination: 12 junk_cost: lawjunk: 1 ecojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_mine.yaml b/data/modules/transport_mine.yaml index 9c70463..331cba4 100644 --- a/data/modules/transport_mine.yaml +++ b/data/modules/transport_mine.yaml @@ -9,4 +9,4 @@ junk_cost: lawjunk: 1 ecojunk: 1 solarjunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_scavenge.yaml b/data/modules/transport_scavenge.yaml index 4774007..f178149 100644 --- a/data/modules/transport_scavenge.yaml +++ b/data/modules/transport_scavenge.yaml @@ -8,4 +8,4 @@ destination: 9 junk_cost: lawjunk: 1 naturejunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/modules/transport_town.yaml b/data/modules/transport_town.yaml index 81b6921..de3aaf9 100644 --- a/data/modules/transport_town.yaml +++ b/data/modules/transport_town.yaml @@ -9,4 +9,4 @@ junk_cost: lawjunk: 1 solarjunk: 1 biojunk: 1 - scrap_metal: 1 + scrap: 1 diff --git a/data/objects/bio_altar.yaml b/data/objects/bio_altar.yaml index d60d71f..37618bc 100644 --- a/data/objects/bio_altar.yaml +++ b/data/objects/bio_altar.yaml @@ -1,4 +1,4 @@ id: bio_altar name: bio altar color: "196" -description: "A sinister altar of red biological interfaces. Place scrap metal here with a bio identifier to produce biojunk. Type 'id' to begin." +description: "A sinister altar of red biological interfaces. Place scrap here with a bio identifier to produce biojunk. Type 'id' to begin." diff --git a/data/objects/blood_altar.yaml b/data/objects/blood_altar.yaml index 1e562fb..49b6beb 100644 --- a/data/objects/blood_altar.yaml +++ b/data/objects/blood_altar.yaml @@ -1,4 +1,4 @@ id: blood_altar name: blood altar color: "124" -description: "A pulsing altar of {124 bold}crimson crystal{/}, warm to the touch. Place scrap metal here with a blood identifier to produce bloodjunk. Type 'id' to begin." +description: "A pulsing altar of {124 bold}crimson crystal{/}, warm to the touch. Place scrap here with a blood identifier to produce bloodjunk. Type 'id' to begin." diff --git a/data/objects/chaos_altar.yaml b/data/objects/chaos_altar.yaml index afe7d6e..384105f 100644 --- a/data/objects/chaos_altar.yaml +++ b/data/objects/chaos_altar.yaml @@ -1,4 +1,4 @@ id: chaos_altar name: chaos altar color: "226" -description: "A crackling altar of {226 bold}chaotic energy{/}. Place scrap metal here with a chaos identifier to produce chaosjunk. Type 'id' to begin." +description: "A crackling altar of {226 bold}chaotic energy{/}. Place scrap here with a chaos identifier to produce chaosjunk. Type 'id' to begin." diff --git a/data/objects/cosmic_altar.yaml b/data/objects/cosmic_altar.yaml index 9ada401..11ba761 100644 --- a/data/objects/cosmic_altar.yaml +++ b/data/objects/cosmic_altar.yaml @@ -1,4 +1,4 @@ id: cosmic_altar name: cosmic altar color: "201" -description: "A floating altar of {201 bold}shimmering pink crystal{/}, surrounded by pinpricks of light like distant stars. Place scrap metal here with a cosmic identifier to produce cosmicjunk. Type 'id' to begin." +description: "A floating altar of {201 bold}shimmering pink crystal{/}, surrounded by pinpricks of light like distant stars. Place scrap here with a cosmic identifier to produce cosmicjunk. Type 'id' to begin." diff --git a/data/objects/death_altar.yaml b/data/objects/death_altar.yaml index 4323246..89bfd87 100644 --- a/data/objects/death_altar.yaml +++ b/data/objects/death_altar.yaml @@ -1,4 +1,4 @@ id: death_altar name: death altar color: "52" -description: "A silent altar of {52 bold}dark obsidian{/}, cold to the touch. Place scrap metal here with a death identifier to produce deathjunk. Type 'id' to begin." +description: "A silent altar of {52 bold}dark obsidian{/}, cold to the touch. Place scrap here with a death identifier to produce deathjunk. Type 'id' to begin." diff --git a/data/objects/eco_altar.yaml b/data/objects/eco_altar.yaml index d955df0..18c90cf 100644 --- a/data/objects/eco_altar.yaml +++ b/data/objects/eco_altar.yaml @@ -1,4 +1,4 @@ id: eco_altar name: eco altar color: "34" -description: "A thrumming altar of green organic circuits. Place scrap metal here with an eco identifier to produce ecojunk. Type 'id' to begin." +description: "A thrumming altar of green organic circuits. Place scrap here with an eco identifier to produce ecojunk. Type 'id' to begin." diff --git a/data/objects/hydro_altar.yaml b/data/objects/hydro_altar.yaml index c56a903..ced7c4d 100644 --- a/data/objects/hydro_altar.yaml +++ b/data/objects/hydro_altar.yaml @@ -1,4 +1,4 @@ id: hydro_altar name: hydro altar color: "39" -description: "A pulsing altar of blue crystalline conduits. Place scrap metal here with a hydro identifier to produce hydrojunk. Type 'id' to begin." +description: "A pulsing altar of blue crystalline conduits. Place scrap here with a hydro identifier to produce hydrojunk. Type 'id' to begin." diff --git a/data/objects/law_altar.yaml b/data/objects/law_altar.yaml index 62407c8..870f6e8 100644 --- a/data/objects/law_altar.yaml +++ b/data/objects/law_altar.yaml @@ -1,4 +1,4 @@ id: law_altar name: law altar color: "27" -description: "An imposing altar of {27 bold}pristine blue stone{/}, inscribed with orderly geometric patterns. Place scrap metal here with a law identifier to produce lawjunk. Type 'id' to begin." +description: "An imposing altar of {27 bold}pristine blue stone{/}, inscribed with orderly geometric patterns. Place scrap here with a law identifier to produce lawjunk. Type 'id' to begin." diff --git a/data/objects/nature_altar.yaml b/data/objects/nature_altar.yaml index 3104c62..2f102ed 100644 --- a/data/objects/nature_altar.yaml +++ b/data/objects/nature_altar.yaml @@ -1,4 +1,4 @@ id: nature_altar name: nature altar color: "46" -description: "A verdant altar of {46 bold}living green stone{/}, covered in moss and tiny flowers. Place scrap metal here with a nature identifier to produce naturejunk. Type 'id' to begin." +description: "A verdant altar of {46 bold}living green stone{/}, covered in moss and tiny flowers. Place scrap here with a nature identifier to produce naturejunk. Type 'id' to begin." diff --git a/data/objects/scrap_pile.yaml b/data/objects/scrap_pile.yaml index d4a6a48..27481a7 100644 --- a/data/objects/scrap_pile.yaml +++ b/data/objects/scrap_pile.yaml @@ -3,8 +3,8 @@ gather: base_wait: 10 drops: - depletes: false - item_id: scrap_metal - message: You salvage some {243}scrap metal{/}. + item_id: scrap + message: You salvage some {243}scrap{/}. weight: 100 gather_message: You swing your pickaxe at the scrap pile... level: 1 diff --git a/data/objects/solar_altar.yaml b/data/objects/solar_altar.yaml index e37b749..fd67f27 100644 --- a/data/objects/solar_altar.yaml +++ b/data/objects/solar_altar.yaml @@ -1,4 +1,4 @@ id: solar_altar name: solar altar color: "220" -description: "A humming altar of golden circuitry. Place scrap metal here with a solar identifier to produce solarjunk. Type 'id' to begin." +description: "A humming altar of golden circuitry. Place scrap here with a solar identifier to produce solarjunk. Type 'id' to begin." diff --git a/data/rooms/town/1.yaml b/data/rooms/town/1.yaml index f9d50c5..85f6a37 100644 --- a/data/rooms/town/1.yaml +++ b/data/rooms/town/1.yaml @@ -40,3 +40,42 @@ item_spawns: - id: basic_deck quantity: 1 respawn_ticks: 60 + - id: solar_identifier + quantity: 1 + respawn_ticks: 60 + - id: hydro_identifier + quantity: 1 + respawn_ticks: 60 + - id: cosmic_identifier + quantity: 1 + respawn_ticks: 60 + - id: eco_identifier + quantity: 1 + respawn_ticks: 60 + - id: chaos_identifier + quantity: 1 + respawn_ticks: 60 + - id: bio_identifier + quantity: 1 + respawn_ticks: 60 + - id: nature_identifier + quantity: 1 + respawn_ticks: 60 + - id: law_identifier + quantity: 1 + respawn_ticks: 60 + - id: death_identifier + quantity: 1 + respawn_ticks: 60 + - id: blood_identifier + quantity: 1 + respawn_ticks: 60 + - id: grimy_guam + quantity: 5 + respawn_ticks: 60 + - id: vial_of_water + quantity: 5 + respawn_ticks: 60 + - id: eye_of_newt + quantity: 5 + respawn_ticks: 60 diff --git a/data/rooms/town/9.yaml b/data/rooms/town/9.yaml index 7a24fda..2835128 100644 --- a/data/rooms/town/9.yaml +++ b/data/rooms/town/9.yaml @@ -1,6 +1,6 @@ id: 9 name: "Scavenging Post" -description: "A cluttered yard full of {243}scrap metal{/} and discarded technology. Piles of salvageable debris are scattered across the ground. The air smells of ozone and rust." +description: "A cluttered yard full of {243}scrap{/} and discarded technology. Piles of salvageable debris are scattered across the ground. The air smells of ozone and rust." exits: east: 10 west: 8 diff --git a/internal/game/action_identify.go b/internal/game/action_identify.go index b04bf97..fd7df20 100644 --- a/internal/game/action_identify.go +++ b/internal/game/action_identify.go @@ -11,9 +11,9 @@ func (g *Game) advanceIdentify(sess *net.Session, p *player.Player) { junkID := p.Action.Data["junk_id"].(string) xpPer := p.Action.Data["xp_per"].(int) - scrapCount := p.CountItem("scrap_metal") + scrapCount := p.CountItem("scrap") if scrapCount == 0 { - sess.WriteLine("You don't have any scrap metal.") + sess.WriteLine("You don't have any scrap.") g.cancelAction(p) return } @@ -38,7 +38,7 @@ func (g *Game) advanceIdentify(sess *net.Session, p *player.Player) { for i := 0; i < 28; i++ { slot := p.InvSlot(i) - if slot != nil && slot.ItemID == "scrap_metal" { + if slot != nil && slot.ItemID == "scrap" { p.SetInvSlot(i, nil) } } @@ -63,7 +63,7 @@ func (g *Game) advanceIdentify(sess *net.Session, p *player.Player) { junkName = def.Name } - msg := fmt.Sprintf("The altar hums. You identify %d scrap metal into %d %s.", scrapCount, totalJunk, junkName) + msg := fmt.Sprintf("The altar hums. You identify %d scrap into %d %s.", scrapCount, totalJunk, junkName) g.awardSkillXP(sess, p, player.Scavenging, totalXP) diff --git a/internal/game/cmd_id.go b/internal/game/cmd_id.go index cb886dc..6514463 100644 --- a/internal/game/cmd_id.go +++ b/internal/game/cmd_id.go @@ -113,9 +113,9 @@ func (g *Game) doIdentify(sess *net.Session, input string) { return } - scrapCount := p.CountItem("scrap_metal") + scrapCount := p.CountItem("scrap") if scrapCount == 0 { - sess.WriteLine("You don't have any scrap metal.") + sess.WriteLine("You don't have any scrap.") return } diff --git a/internal/game/cmd_registry.go b/internal/game/cmd_registry.go index 5073b02..ea09e94 100644 --- a/internal/game/cmd_registry.go +++ b/internal/game/cmd_registry.go @@ -122,6 +122,7 @@ var commandRegistry = map[string]commandDef{ "what": {(*Game).executeVerbs, ClassInstant}, "syntax": {(*Game).executeVerbs, ClassInstant}, "commands": {(*Game).executeVerbs, ClassInstant}, + "stop": {(*Game).executeStop, ClassInstant}, } func classifyCommand(cmd string) CommandClass { diff --git a/internal/game/cmd_stop.go b/internal/game/cmd_stop.go new file mode 100644 index 0000000..0db0ac2 --- /dev/null +++ b/internal/game/cmd_stop.go @@ -0,0 +1,18 @@ +package game + +import ( + "thehouseoficarus/internal/net" +) + +func (g *Game) executeStop(sess *net.Session, args []string, rawInput string) { + p := sess.Player + as, ok := p.ActionState.(*ActionState) + if !ok || as == nil || as.Type == "" { + sess.WriteLine("You're not doing anything.") + return + } + g.cancelAction(p) + g.cancelBgAction(p) + delete(g.activeQueue, p.Name) + sess.WriteLine("You stop what you were doing.") +} diff --git a/internal/game/cmd_verbs.go b/internal/game/cmd_verbs.go index 1ecd138..7801903 100644 --- a/internal/game/cmd_verbs.go +++ b/internal/game/cmd_verbs.go @@ -26,6 +26,7 @@ var alwaysAvailable = []string{ "help", "inspect", "queued", + "stop", "aps", "autotrigger", "auto", "trigger", diff --git a/internal/game/sys_science.go b/internal/game/sys_science.go index 376d7c7..1129fee 100644 --- a/internal/game/sys_science.go +++ b/internal/game/sys_science.go @@ -204,7 +204,7 @@ func (g *Game) effectiveJunkCost(p *player.Player, mod *ModDef) map[string]int { hasDeck := g.hasDeckEquipped(p) if hasDeck { - delete(cost, "scrap_metal") + delete(cost, "scrap") } providesJunk := g.providesJunk(p) @@ -263,7 +263,7 @@ func (g *Game) triggerModReward(sess *net.Session, p *player.Player, mod *ModDef func (g *Game) junkCostString(p *player.Player, mod *ModDef) string { cost := g.effectiveJunkCost(p, mod) - delete(cost, "scrap_metal") + delete(cost, "scrap") if len(cost) == 0 { return "free" } diff --git a/internal/net/welcome.go b/internal/net/welcome.go index e17c82e..ed606a2 100644 --- a/internal/net/welcome.go +++ b/internal/net/welcome.go @@ -55,11 +55,11 @@ func colorizeArt(art string) string { func WelcomeBanner() string { return colorizeArt(` - | * - * + -+- - . , | -. , . , - * + | * + * + -+- + . , | +. , . , + * @@@@@@@ @@@ @@@ @@@@@@@@ @@@ @@@ @@@@@@ @@@ @@@ @@@@@@ @@@@@@@@ + @@! @@! @@@ @@! + @@! @@@ @@! @@@ @@! @@@ !@@ @@! @!! @!@!@!@! @!!!:! @!@!@!@! @!@ !@! @!@ !@! !@@!! @!!!:! * @@ -71,7 +71,7 @@ func WelcomeBanner() string { @@@@@@ @@@@@@@@ @@@ @@@@@@@ @@@@@@ @@@@@@@ @@@ @@@ @@@@@@ @@! @@@ @@! , @@! !@@ @@! @@@ @@! @@@ @@! @@@ !@@ | @!@ !@! @!!!:! !!@ @!@ @!@!@!@! @!@!!@! @!@ !@! !@@!! - -+- !!: !!! !!: !!: :!! !!: !!! !!: :!! !!: !!! :!; + -+- !!: !!! !!: !!: :!! !!: !!! !!: :!! !!: !!! :! | : :. : : . : :: :: : : : : : : : :.:: : ::.: : , . + , . diff --git a/worldbuilding_guide/construction.md b/worldbuilding_guide/construction.md index 5775fbf..63249b3 100644 --- a/worldbuilding_guide/construction.md +++ b/worldbuilding_guide/construction.md @@ -154,11 +154,11 @@ Fees: regular (5cr), oak (10cr), teak (20cr), mahogany (40cr). ## Science Mod: Plank Make -Level 86 Science utility mod that converts logs to planks at 70% of sawmill cost. Uses naturejunk, solarjunk, and scrap_metal. +Level 86 Science utility mod that converts logs to planks at 70% of sawmill cost. Uses naturejunk, solarjunk, and scrap. ```go {ID: "plank_make", Name: "Plank Make", Level: 86, BaseXP: 90.0, - JunkCost: map[string]int{"naturejunk": 5, "solarjunk": 1, "scrap_metal": 1}, + JunkCost: map[string]int{"naturejunk": 5, "solarjunk": 1, "scrap": 1}, Category: ModUtility, TargetType: "inventory"}, ``` -- cgit v1.2.3