aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md33
1 files changed, 3 insertions, 30 deletions
diff --git a/TODO.md b/TODO.md
index 67c77f1..61d2738 100644
--- a/TODO.md
+++ b/TODO.md
@@ -16,39 +16,12 @@ Detailed implementation plans for each skill/system are in `skill_plans/`.
- [x] Step 3: Combat Feel — Aggressive mobs (auto-attack on room enter, OSRS combat level rule), equipment skill requirements on all tiered gear
- [x] Step 4: Technology — 25 techs (attack/str/def/ranged/science boosts, 3 protection techs, utility techs), Battery drain, 1-tick flicking, tech command, TechTick, charging station, score/prompt integration
- [x] Step 5: Scavenging — mine_scrap behavior verified. Created 10 junk items (solar, hydro, cosmic, eco, chaos, bio, nature, law, death, blood — all stackable) with matching identifier tools and altar objects. `id`/`identify` command (Active): scans room for altar, checks for matching identifier in inventory, converts all scrap to junk on next tick with level-based multipliers, awards Scavenging XP. 10 altar rooms (150-159) branching from Scavenging Post (room 9). Help files created.
-- [x] Step 6: Science — 40 mods (20 combat, 2 processing, 3 utility, 7 transport, 4 enchant, 4 chip), ModDef/AllMods in science.go. `trigger`/`cast` command (Active). `autocast`/`auto` (Instant). `mods`/`modlist` (Instant). Autocast in startCombat with 5-tick science speed and melee fallback. `scienceAttack()` with elemental weakness +30%. Junk cost system with deck exemptions. `ProvidesJunk` on ItemDef, `AutocastMod` on Player, `FindByInput` on RecipeStore, `science_mod` color target. 9 deck items, 24 jewelry items, 8 bolt items, nutrient_bar. Help files created.
-
----
-
-## Step 5: Scavenging
-
-See `skill_plans/scavenging.md`. The simplest new skill — mine scrap (already exists), identify it at altars to produce junk. Must be implemented before Science since Science consumes junk.
-
-- [x] Step 5: Scavenging — mine_scrap behavior verified. Created 10 junk items (solar, hydro, cosmic, eco, chaos, bio, nature, law, death, blood — all stackable) with matching identifier tools and altar objects. `id`/`identify` command (Active): scans room for altar, checks for matching identifier in inventory, converts all scrap to junk on next tick with level-based multipliers, awards Scavenging XP. 10 altar rooms (150-159) branching from Scavenging Post (room 9). Help files created.
-
----
-
-## Step 6: Science (Magic System)
-
-See `skill_plans/science.md`. Players "trigger mods" (cast spells) powered by junk (runes). Decks (staves) provide unlimited supply of one junk type and remove scrap requirement. Depends on combat overhaul + scavenging.
-
- [x] Step 6: Science — 40 mods (20 combat, 2 processing, 3 utility, 7 transport, 4 enchant, 4 chip), ModDef/AllMods in science.go. `trigger`/`cast` command (Active) routes to combat/transport/processing/utility/enchant handlers. `autocast`/`auto` command (Instant) sets science combat autocast. `mods`/`modlist` command (Instant) shows available mods with effective junk costs. Integrated autocast into `startCombat()` in cmd_attack.go with 5-tick science speed and melee fallback on junk depletion. `scienceAttack()` with Science level + science_attack roll, elemental weakness +30% accuracy, mod MaxHit damage. Junk cost system: deck-equipped removes scrap_metal, elemental deck provides unlimited junk type. Added `ProvidesJunk` to ItemDef, `AutocastMod` to Player, `FindByInput` to RecipeStore, `science_mod` color target. 9 deck items, 24 jewelry items, 8 bolt items, nutrient_bar item. Help files created.
+- [x] Step 7: Shop System — Added `shop` talk node action that opens a buy/sell interface. `ShopConfig` with items + buy/sell prices defined in behavior YAML. `StateShop` session state with `buy`, `sell`, `browse`/`list`, `leave` commands. Items bought with credits, sold back at reduced prices. Created General Store clerk (Town Square) and Weapons Smith (Forge) NPCs. Created help files and worldbuilding guide docs.
---
-## Step 7: Shop System
-
-Originally Phase 2, but needed before Assassin and generally useful. Add a buy/sell interface via talk node actions.
-
-- [ ] **Shop System** — Add a `shop` talk node action that opens a buy/sell interface. The shop inventory is defined in the behavior YAML as a list of items with buy/sell prices. Player enters `StateShop`. Commands: `buy <item>`, `sell <item>`, `browse`/`list`, `leave`. Items are bought with credits, sold back at a percentage. Add a General Store NPC and a Weapons Shop NPC. Place in appropriate rooms.
-
----
-
-## Step 8: Thieving
-
-See `skill_plans/thieving.md`. Steal from mobs and objects. Sneak mode, guard mechanics.
-
-- [ ] **Thieving** — Add `steal`/`thieve` command (Active) and `sneak` command (Instant toggle). Stealing from mobs: roll success based on Thieving level vs mob's thieving level requirement. On fail, mob turns hostile (starts combat). Stealing from objects: market stall gives random low-value food. Guard watching mechanic: mobs can guard objects, `sneak` mode shows guard attention cycle, lower success when watched, guard called on watched failure. Create credit_stick item (non-stackable, searchable for credits). Create Farmer and Bioengineer mobs (steal seeds from them). Add guard confrontation dialog (bribe/jail/fight). Create jail room. Update Man mob to be stealable.
+- [x] Step 8: Thieving — `steal`/`thieve` command (Active) with continuous steal action. `sneak` command (Instant toggle) with guard-watching notifications. Success formula: 0.5 base + 0.03 per level, halved when guard watches. Mob stealing with aggro on failure. Object stealing with guard mechanic (SneakTick, watch/away cycles). Guard confrontation dialog (bribe 500cr, jail, fight). Created Market Stall object, Farmer + Bioengineer mobs, credit_stick item (searchable), 11 seed items, 5 new drop tables, 3 new rooms (160-162), 3 help files. Updated Man mob for stealability.
---
@@ -56,7 +29,7 @@ See `skill_plans/thieving.md`. Steal from mobs and objects. Sneak mode, guard me
See `skill_plans/assassin.md`. Task system, reputation, slayer-only mobs. Depends on combat being solid and having enough mobs to assign as tasks.
-- [ ] **Assassin System** — Add `task` command (Instant) to check current assignment. Create Client NPC with talk behavior: assigns random mob kill tasks, skip/extend via reputation, reputation shop. Store task state in player flags (task_mob, task_count, task_remaining, tasks_completed, streak, reputation). In `endCombat()`, check if killed mob is on-task and award Assassin XP + reputation. Streak bonuses at 10th/50th/100th/250th/1000th task. Create 4+ slayer-only mobs with assassin_level requirements, finishing blow items (slug+salt, crawler+acid_vial), and damage-without equipment (drone needs insulated_gloves, phantom needs spectral_visor). Add assassin equipment items (cheap, sold by Client). Place slayer mobs in appropriate rooms.
+- [x] **Assassin System** — Added `task` command (Instant) to check current assignment. Created Client NPC with talk behavior: assigns random mob kill tasks, skip/extend via reputation, reputation shop. Task state stored in player flags (task_mob, task_count, task_remaining, tasks_completed, streak, reputation). In `endCombat()`, on-task kills award Assassin XP (mob.MaxHP * 2) + reputation. Streak bonuses at 10th/50th/100th/250th/1000th task. Created 4 slayer-only mobs (slug/drone/crawler/phantom) with assassin_level requirements, finishing blow items (slug+salt, crawler+acid_vial), and damage-without equipment (drone needs insulated_gloves, phantom needs spectral_visor). Added assassin equipment items (salt, acid_vial, insulated_gloves, spectral_visor) sold by Client. Added 5 new rooms (50-54: Assassin Den + Sewer Tunnels chain). Created help files (task, assassin).
---