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