Rassik's TODO List
[ ] Start parsing scripted room descriptions
[X] 1. Needed infrastructure:
[X] a. Room weather check
[X] b. Room light check
[X] c. Time check
[X] d. Season check
[X] e. Sectortype check
[ ] 6. Player status checks...
[ ] a. Current position
[ ] b. Current movement direction
[ ] c. Perception and other status checks
[ ] d. etc...
[ ] 7. Identifying the player and communicating to them with Lua
[X] a. echo( ch, *fmt, ... );
[ ] Convert MUD scripting to Lua
[ ] 1. Create hooks in code to activate Lua mob/room/obj programs
[ ] a. kill/death
[ ] b. theft
[ ] c. skills/spells
[ ] d. commands
[ ] e. speech
[ ] f. entry/exit
[ ] g. ???
[ ] 2. Player status checks
[ ] 3. Functions to change player/room/object stats
[ ] a. Mobs
[ ] i. Affect short/long desc
[ ] ii. Affect hp/mana/mv
[ ] iii. Affect gold
[ ] iv. Affect stats (str, int, per, gender, etc )
[ ] v. Affect description
[ ] vi. Affect position
[ ] vii. Affect experience, level, skills
[ ] b. Objects
[ ] i. Affect condition
[ ] ii. Affect short/long description
[ ] iii. Affect item type
[ ] iv. Affect item stats (weight, value, material, wear_loc, etc )
[ ] c. Rooms
[ ] i. Affect sector type
[ ] ii. Affect exits
[ ] iii. ???
[ ] Update skill/level system
[ ] 1. Base skills which are checked by specific skills for skillchecks
[ ] a. Melee combat (Staffs, clubs, hammers, swords, daggers)
[ ] b. Archery (Bows, crossbows, slings [I know, technically not archery])
[ ] c. Subterfuge (hide, sneak, steal, peek, lockpick)
[ ] d. Outdoorsmanship (Tracking, brewing, trapping, skinning, tanning, fishing, foraging, kindling fires, navigation)
[ ] e. Speech
[ ] f. Medicine
[ ] g. Unarmed combat
[ ] h. Elemental magic (fire, wind, water, electricity)
[ ] i. Natural magic (earth, plant/animal)
[ ] j. Necromancy (blood, soul)
[ ] k. Blacksmithing
[ ] l. Crafting
[ ] 2. Practicing a base skill adds points to it (practice with a GM, not by usage)
[ ] 3. Experience points turn into practice points to use on base skills
[ ] 4. Level is subjective, high level crafter might be a low level combatant, etc.
[-] Update do_put && do_drop
[X] 1. Dropping an object onto the ground changes it's long_description to reflect it's new environment
[X] 2. Putting an object onto the ground does the same thing, but prettier
-IE: a stack of coins vs. a pile of coins; a folded tunic vs. a crumpled tunic; etc.
[X] 3. The sectortype of the room affects the long description of the object
[ ] 4. Change the dynamic part to be Lua instead of hard-coded C. Give objects a on_take, on_drop, and on_put hook to make it prettier
[X] Remove item level restrictions
[-] Update ban functionality with MySQL
[X] 1. Need to add functions to list and delete bans
[X] 2. Add in comments to the bans
[X] 3. Add who placed the ban and what their level was
[X] 4. Restrict removal of bans to persons of equal or higher level than the original placer
[ ] 5. re-write do_ban to make more streamline and less hackish
[ ] 6. remove old ban code
[-] Update get code
[X] 1. Get, remove, wear, wield, left and right hand instead of inventory
[ ] 2. Need to create an offer/accept system so people can choose to accept offered items
[X] Change peek code
[X] 1. peek sneakily looks at someone, tries to find container objects
[X] 2. peek tries to sneakily look into a container someone else is carrying
[X] 3. Failing any of the above alerts the victim to the character's actions
[ ] Change sneak code
[ ] 1. Either sneak or a sneak/walk/stop-sneaking command set.
[ ] 2. Roll against each person in a room to see if the person notices the player enter the room
[ ] 3. Based on agility/skill and observer's perception
[ ] Change hide code
[ ] 1. Hide in a room
[ ] 2. Players can search a room
[ ] 3. When a player enters a room they roll to see if they see any hidden characters
[ ] 4. Moving without sneaking stops hiding
[-] Update description code, add character appearance, generate description from their appearance and equipment worn
[ ] 1. Script with Lua instead of hard-coded C
[ ] 2. Get it to work with mobiles
[ ] 3. Account for non-humanoid mobiles
[X] Change 'pick lock' code
[X] 1. Different difficulties for locks
[X] 2. Require lockpicks to be held
[X] 3. Take time to do it
[X] 4. Multiple types of outcomes:
[X] a. Fail pick, possibly break picks, 12 seconds lag
[X] b. Fail pick, possibly damage picks, 8 seconds lag
[X] c. Succeed pick, 6 seconds lag
[X] d. Suceed pick, no seconds lag
[ ] Change steal code
[ ] 1. Steal - [container]
>steal ring guard
-Finds the first object that matches pattern "ring" in mob "guard" inventory and attempts to steal it
>steal emerald guard pocket
-finds the first object that matches pattern "emerald" in a container matching pattern "pocket" worn by mob "guard"
[ ] 2. Multiple types of outcomes:
[ ] a. Fail theft
[ ] b. Fail theft, alert victim
[ ] c. Succeed theft, alert victim
[ ] d. Succeed theft, drop item
[ ] e. Succeed theft
[-] Change help code to use MySQL
[ ] 1. update help-file editing code
[-] Change comments to support doxygen
[-] Fire burns things that you put inside it
[X] 1. Fires get bigger when you put combustable items inside of it
[X] a. Update emptyobj in handler.c, do_empty, and update.c so fire will respond to
what's being put into it.
[ ] b. Also do_put for single objects.
[X] 2. Fires get smaller/quenched when you put non-flammable liquids inside of it
[ ] 3. If you're carrying something that's on fire you will be burned
[ ] a. Possible spell-- ignite items a player is carrying?
[-] Update player save code to fully implement MySQL functionality
[X] 1. Change player saving to use JSON
[ ] Update room/area/world loading to fully implement MySQL functionality
[X] 1. Table of rooms
[X] 2. Table of mobiles
[X] 3. Table of objects
[ ] Create web-based MUD administration tools
[ ] 1. Building tools
[ ] a. Javascript Lua VM-- to test dynamic room descriptions in-browser
[ ] 2. Help file editing tools
[ ] 3. Player/account editing tools
[X] Create web-based MUD client
1. See noMUDde https://github.com/FLWFTW/noMUDde
[ ] MUD Initialization
[ ] 1. Parse arguments passed to server from command line on startup
[ ] a. Port
[ ] b. MySQL Server
[ ] c. MySQL User/Password/Etc (Can also be read from sysdata.dat, which is probably safer)
[ ] 2. If MySQL Database is not set up on server, run through setting everything up
[X] 3. area list
[X] 4. spec_fun table
[X] 5. socials table
[X] 6. commands table
[X] 7. skills table
[X] 8. liquids table
[-] 9. mixtures table