Commit Graph

51 Commits

Author SHA1 Message Date
Rob Pearce edd16853c8 - [+] CRASH in killflag()
- [+] symptoms
        - [+] often happens right after creating a new map (ie. trigger
              it through a gate spell)
            - [+] bug in createriver(). fixed.
            - [+] somehow casting GATE is causing object flagpiles on
                  the PLAYER's map to become corrupted.
        - [+] "the young hawk wakes up" CRASH, flagpile corrupt on
              stone.
        - [+] object itself seems okay.
        - [+] o->flags is becoming corrupt!!!
            - [+] so all its flags are becoming corrupt (id = massive
                  number, next = fffff)
        - [+] traceback:
            - [+] #0  0x0000000100081188 in killflag (f=0x103321090) at
                  flag.c:815
                  #1  0x0000000100081b3a in timeeffectsflag
                  (f=0x103321090, howlong=1) at flag.c:1075
                  #2  0x00000001000825f8 in timeeffectsflags
                  (fp=0x1038e0600) at flag.c:1302
                  #3  0x0000000100129b01 in timeeffectsob
                  (o=0x1036e2460) at objects.c:11877
                  #4  0x0000000100005114 in timeeffectsworld
                  (map=0x102aa1a00, updategametime=-1) at nexus.c:1685
                  #5  0x0000000100003a28 in donextturn
                  (map=0x102aa1a00) at nexus.c:952
                  #6  0x00000001000029b1 in main (argc=1,
                  argv=0x7fff5fbff848) at nexus.c:525
        - [+] try this: in timeeffectsflags on objects, check PREVIOUS
              object's flagpile.
        - [+] try this: add checkflagS() after updatefpindex
        - [+] NOT happening during timeeffectsob().
        - [+] compile with optimisation.................
        - [+] hapepning in createmap. but objects on the PLAYER's map
              are being corrupted, not the new one.
        - [+] happening in addrandomthing()
        - [+] happening in addmonster().
            - [+]                 lf = addmonster(c, R_RANDOM, NULL,
                  B_TRUE, 1, B_TRUE, nadded);
            - [+] (glowbug was created)
        - [+] happening in addlf()
            - [+] glowbug again!! to do with light recalc ??
        - [+] happening in setrace()
            - [+] happening while inheriting F_AWARENESS.  have double
                  checked to confirm this!
        - [+] in HASLOS????!!
        - [+] addflag->flagcausesloscalc, so haslos for all on the map.
               problem happens when we call haslos() for the lf getting
              F_AWARENESS added.
        - [+] is the problem that doing a los recalc breaks when we are
              still missing half our racial flags ?
        - [+] QUICK FIX:
            - [+] dont recalc los for any lf where born = 0. just set
                  nlos to 0
            - [+] and manually recalc los just before returning from
                  addlf
        - [+] put sawgrsaas back to being common, not frequent
        - [+] is this finally fixed now? i think so!!
        - [+] if so, remove calls to "checkallflags" and most calls to
              checkflags()
    - [+] remove agility bonuses for weapon acc. now comes just from
          skill and from agi scaling on weapons.
    - [+] maybe difference in hit dice is a bad way to determine
          shieldblock difficulty.
        - [+] ...because the player rapidly gets higher than all other
              monsters on their dungeonlev.
        - [+] maybe just use monster's hitdice, ignore players.
    - [+] bug: abilities costing no stamina?
- [+] in addmap, i am not initialising enough nextmap[]s 
- [+] flag.c bug: don't need to set player->losdirty when recalcing
      light on a different map
- [+] lfs with F_DOESNTMOVE weren't attacking
- [+] manuals are starting off known. why??
    - [+] they don't appear in knowledge, so don't appear to have a
          hiddenname at all.
- [+] make magical barriers block view.
- [+] when describing armour / shield penalty, say
    - [+] "will lower your accuracy by 1"
    - [+] instead of
    - [+] "will lower your accuracy by 5%"
- [+] make firstaid skill incrase your hp per level
- [+] high agility seems to be giving a MASSIVE accuracy increase when
      higher than weapon's stat.
    - [+] maybe remove or reduce AGI acc bonuses.
- [+] sack started off containing a FOOD VENDOR!@#
    - [+] size check obviously isn't working.
    - [+] need "obfits" in givestartobs!!
- [+] hitting ESC when firing with F doesn't cancel.f
- [+] hunter should start with fur cloak
- [+] spellbooks are too cheap ($12)
- [+] remove'p' for lockpick- just operate the lockpickobject.
    - [+] removed,
    - [+] ...but now tha tI've removed 'p' for picklocks, can i still
          use 'o' on a dagger or similar?
    - [+] NO
    - [+] maybe turn "pick lock" into a still
    - [+] how do you gain this? level 1 lockpicking 
    - [+] then make lockpicks etc non-operable
- [+] fix crash when drunk lfs take damage
- [+] sleeping powder costs nothing
- [+] memleaks??? 700mb usage!!
    - [+] valgrind
        - [+] found a memleak problem:  definitely lost: 10,719,039
              bytes in 11,420 blocks
        - [+] not killing flags when we kill an object!!!!! fixed now.
        - [+] memory usage is now ticking up heaps more slowly.
        - [+] investigate further with valgrind again.....
- [+] when summoning, prefer cells for which the player has los.
- [+] make jammed doors harder to open.
- [+] no forcing a door open on your first go. should be:
    - [+] the door is jammed!
    - [+] you force it open.
    - [+] used f_jammed v1 = known
2011-12-16 19:54:08 +00:00
Rob Pearce 089ce94751 * [+] let credit cards be used at some shops?
* [+] bug with adding obejcts to shops
- [+] issue with objects dying and killing their flagpiles
    - [+] A medium fire dies down a little.  A medium fire is no longer
          glowing.
    - [+] shouldn't say "is no longer glowing" when we're changing the
          type... ?
    - [+] put a breakpoint on "is no longer glowing"
* [+] let you bless objects using a holy circle somehow (but it might
      make the circle disappear?).
- [+] darness bug - need to recalc light for anyone who sees a cell's
      lightlevel change.
- [+] call more() after showing vaultentertext()
- [+] remove "inspected" when you ident or makeknown an object.
- [+] BUG - no objects in inventory!!!!
    - [+] listobs failing? mylist[0] = null.
MEMLEAK
- [+] finish implementing CLEANUP()
- [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing
      STACKABLE flag from cactus fruit???
    - [+] better now?
- [+] now a crash freeing hiddennames!
- [+] forgot to free obmods
- [+] leaking approx. 1 meg per turn!
- [+] where am i leaking?! maybe try valgrind or findleak.c
- [+] findleak.c now finds nothing.
- [+] but i am sitll leaking?????
- [+] related to lifeform count.  killing all but player dramatically
      slows it.
- [+] check calclos()... looks okay.
- [+] setcellknown() ?no.
- [+] startlfturn?? no.
- [+] remove unused "lf->viscell"
- [+] when there are 2 things in a cell, say "you see x and x here."
- [+] restore original stast when polymorphing back to original form!!!
- [+] when making shops, pick new ones more often.
- [+] change to maps: don't let vaults overlap.
- [+] HARDCODE object values
    - [+] potions
    - [+] tech
    - [+] tools
    - [+] rings
- [+] increase evasion skill effects
- [+] changes to  animradial... and animradialorth
    - [+] combine into one function
    - [+] move msg into here
    - [+] refs to spellcloud()
    - [+] refs to animradial()
- [+] fire should spread onto flammable lifeforms
- [+] bug: attack flurry doesn't work for monk
- [+] let monsters climb even when not facing a wall?
    - [+] set their facing first.
- [+] CRASH when you die while climbing (or on a solid cell)
- [+] rings
    - [+] stench
    - [+] breath water
    - [+] detect life
    - [+] deceleration
    - [+] meditation
    - [+] reflection
    - [+] boost magic power
    - [+] education - gain xpskills more quickly
    - [+] crit protection
    - [+] greed - detect obs
- [+] ivy - grows!
- [+] ragefungus - bezerk spores
- [+] nutter - drops peanuts
- [+] dish which slightly increases maxhp (beginner level)
    - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 02:55:14 +00:00
Rob Pearce 6c26901e75 - [+] monster: triclops. perception. vuln to light.
- [+] flying creatures shoudl fall to the ground when unconscious
    - [+] (this might kill them)

- [+] animate statue - bring statue to life
- [+] excavate - radial, obliterate walls + obs, doesn't affect lfs
- [+] test unicode wall glyph! 0x2588
- [+] use unicode for gas
    - [+] change f_glyph so that v1 = symbol, instead of text = symbol
        - [+] change code
        - [+] change definitions (macro)
    - [+] test
    - [+] implement puff  = UNI_SHADELIGHT
    - [+] implement cloud = bolded
    - [+] if good, extend to staem etc
- [+] blue background for lfs in the water
- [+] prone in water means effective lower height
- [+] glass/ice cells not shattering properly
- [+] make magic barriers be solid too
- [+] combine lockpick code in io.c and objects.c into the lockpick()
      function.
    - [+] first ask what to use (if required)
    - [+] then ask what dir (if required)
    - [+] then ask what to unlock (if reuiqred)
    - [+] then do it
- [+] locked containers
    - [+] picklocks prompts to try them.
    - [+] in addob, use non-inheritable f_lockedchance for both doors
          and chests?
        - [+] v0 = chance v1 = mod per depth
        - [+] doors:
            - [+] base 20% chance locked
            - [+] every 5 levels, add 10% chance
    - [+] add this to chests / safeboxes
    - [+] operate doesn't let you open them
- [+] bugs in linkexits and linkexit
    - [+] linkexits: wasn't checking the correct exit cell!!!
    - [+] lnkexit: wasn't blanking the startcell
GRATINGS:
- [+] flags:
    - [+]         addflag(lastot->flags, F_OPPOSITESTAIRS,
          OT_HOLEINROOF, NA, NA, NULL);
    - [+] climbable d_down NA
- [+] BUT you can't climb it if it's locked.
- [+] usestairs() - if you climb a grating and it has no maplink:
    - [+] use createregionlink(map, cell, grating_object, NULL,
          RG_SEWER, map->region)
- [+] make stench affect enhancedsmell creatures more.
- [+] excavate should only affect SOLID matter.
- [+] going down a drain:
    - [+] "You walk down a staircase" should be "climb down a drain"
- [+] deep slime in sewers sohuldn't spread
- [+] deep slime should spread to a slime puddle if it does....
- [+] fix background glyph colour for slime
- [+] killed by drowning should really be "drowned in %s"
SEWER HABITAT
- [+] permenant stench
    - [+] if you're in a sewer cell and are not nauseated, add it.
    - [+] nauseated doesn't expire in sewers.
- [+] add RG_SEWER
- [+] new regiontype - RG_SEWER
- [+] map:
    - [+] pick size 2 - 5
    - [+] start at x=2,y=2
    - [+] add square 3x3 rooms in gridlike layout (but need space for 5)
    - [+] connect rooms to orthogonally adjacent ones with passages
        - [+] use addexits().  no exits on outer walls.
    - [+] fill all empty cells with low floor and water (but NOt the
          one with the exit!)
    - [+] any solid with orthogonally adjacent water changes to a
          walkway
    - [+] cope with different x/y room counts
    - [+] cope with differnet vert/horz corridor sizes.
        - [+] horz = 2
        - [+] vert = 1
    - [+] random room size
- [+] allow objectclasses to have f_rarity
    - [+] modify getrandomobcalss
    - [+] but DONT make objects inherit it!!!
    - [+] this is used to override selection hased on habitat - modify
          getrandomobcalss appropriately
- [+] random objects/treasure:
    - [+] add these only in non-water cells??
        - [+] move all obs from water clls to random land cells
    - [+] frequent
        - [+] vomit
        - [+] soggy paper
        - [+] rotted food (add f_tainted to it)
    - [+] common
        - [+] wep/arm
        - [+] all wep/arm are shoddy in sewers
    - [+] uncommon
        - [+] rings (higher than normal chance - they were lost down
              sinks)
        - [+] occasional tech
- [+] bug: playerstart3 vault filled with walls when made randomly!
- [+] death speech text for intelligent monsters
    - [+] 'aaargh!'
    - [+] 'this isn't over!'
- [+] BUG: linkexits() - gettings exits in the wrong place.  maybe not
      taking rotation into account???
    - [+] for example in playerstart_5 vault, found an 'exit' at the x:
    - [+] this comes from the map flag f_roomexit, x, y
    - [+] the flag may have bene added from autodoors()
    - [+] have changed code so that f_roomexti uses text field to say
          who added it
2011-11-29 02:25:04 +00:00
Rob Pearce c522cac6c0 - [+] bug: mosnters not wkaing up
- [+] why don't i see "%s dies" when my ally dies?
    - [+] cause it was behind me.  added sound to tell us about this.
- [+] bug: s - 2 four leavesed clover
- [+] random portals
    - [+] genericise code for making destination
    - [+] check gate spell
    - [+] enter a portal which doesn't go anywhere = generate a
          destination.
- [+] increase range of all light sources
- [+] ring of hunger should override vege/carni
2011-11-24 19:06:24 +00:00
Rob Pearce 25ca8f3e43 - [+] fix bug in randomtalk
- [+] fix bug with beggars
- [+] prompt before giving money in C-d
- [+] bug: allies walking into walls
- [+] make your own race / job more likely to kjoin for less gold
- [+] new rarity level: rr_frequent ?
    - [+] add it
    - [+] in swamp, aquatic things are freqentut
- [+] swamp level:
    - [+] createdungeon (but use different h_habitat. how do i do this?)
    - [+] then remove all doors
    - [+] then change all walls into deep water
    - [+] add rarity for monsterss
    - [+] add rarity for objects
- [+] add f_nolink for vaults which aren't linked to rest of map
- [+] fishbowl vault
- [+] change misisle dam calculation - add firespeed rather than
      multiply.
- [+] forced shops at certain level intervals
    - [+] implmement RT_OBJECT text=objectname
    - [+] add buildings at levles 2-4 5- 7 8 - 10 11-13 14-16 17-19
          20-22 23 -25
- [+] split sp_ally_attack into attack and attack_unseen
- [+] base throwspeed on throwin gskill, not strength
- [+] make it much harder to catch thrown missiles
- [+] try to place RT_OBJECTs in rooms
- [+] maybe get rid of sound lowering for 's'lowwalk. this should be
      based on stealth!

- [+] don't let you walk down stairs if there's an impassable object in
      the way.
2011-11-17 00:50:33 +00:00
Rob Pearce d5c24cd742 - [+] add a bunch of gemstones - worth points
- [+] 'thrust' ability isn't showing up in ABILS
- [+] give slight accuracy penalty when thrusting
- [+] fixed shieldblock difficulty in melee combat
- [+] increased maxstamina
- [+] don't require stamina to move!
- [+] "You hear a roars."
- [+] remove duplicate corpse rot code
- [+] CRASH
    - [+] malloc: *** error for object 0x1349d94f8: incorrect checksum
          for freed object - object was probably modified after being
          freed.
    - [+] #7  0x00000001000f438a in addobject (where=0x134edc060,
          name=0x0, canstack=0, wantlinkholes=-1, forceoid=OT_CLAWS) at
          objects.c:983
          #8  0x00000001000f298d in addobfast (where=0x134edc060,
          oid=OT_CLAWS) at objects.c:409
          #9  0x00000001000b621b in getbestweapon (lf=0x114439ff0) at
          lf.c:5194
          #10 0x00000001000087fa in aiturn (lf=0x114439ff0) at ai.c:1236
    - [+] fixed ?
- [+] instead of everything >=6 being dark, make a CHANCE to be dark
      starting at l6.
- [+] why do i ese gem of seeing so often
    - [+] because i need more types or 'rock'
- [+] have to cook food before eating it?
    - [+] need novice cooking skill for preparecorpse ability
    - [+] otherwise you only get a very small amount of nutrition (10%)
- [+] split ob piles before eating them
- [+] detect poison should detect poison traps
- [+] telling your ally to rest until healed isn't working...
    - [+] wasn't taking injuries or stamina into account.
- [+] change druid spells
    - [+] start with 3 random spells
    - [+] on levelup, select a random nature spell (up to your highest
          level)
2011-11-08 01:19:25 +00:00
Rob Pearce 06cf19e7c9 - [+] climbing
- [+] climb "into"walls
        - [+] stopclimbing(int onpurpose)
            - [+] can we move forwards?
                - [+] if not:
                    - [+] if onpurpose, fail
                    - [+] otherwise fall onto whoever is there??? or
                          they block you from falling??
            - [+] move forwards
            - [+] kill f_climbing flag
        - [+] startclimbing()
            - [+] move onto the wall
            - [+] set your facing to face away from the wall.
            - [+] add F_CLIMBING
            - [+] must pass a CLIMB check first or you fail to climb!
            - [+] can't climb if burdened
        - [+] once climbing:
            - [+] can't cast spells
            - [+] cannot change facing
            - [+] always strafe if you go sideways
            - [+] change los functions to let you see out!
            - [+] different move verb ("climb" instead of move/fly)
            - [+] different canmove() code
                - [+] you can only move sideways (along the wall) or
                      forwards (off the wall)
                    - [+] ie. cellindir(lf, lf->facing) == newcell
                          (forwards)
                    - [+] OR
                    - [+] ie. cellindir(lf, lf->facing + 2 (wrapped))
                          == newcell (right)
                    - [+] OR
                    - [+] ie. cellindir(lf, lf->facing - 2 (wrapped))
                          == newcell (left)
                - [+] AND you can only move sidways if:
                    - [+] the new cell is a wall
                    - [+] the cell in (lf->facing) of the new cell is
                          NOT a wall
            - [+] if you climb off a wall, tell the player that they
                  stopped climbing
            - [+] moving while climbing:
                - [+] must pass a sc_climb skill check to move
                - [+] costs 1 stamina to move
                    - [+] warn before climbing if your stam == 1
            - [+] attacking
                - [+] large penalty to hit the climber (higher for
                      smaller monstesr)
                - [+] if monsters miss you and you are climbing, chance
                      they'll give up.
                - [+] attacking FROM a wall gets a big penalty unless
                      you are very skilled at climbing
            - [+] startlfturn
                - [+] lose stam each turn.
                - [+] if stam drops to 0, you fall off or stop climbing
                - [+] you fall if burdened
                - [+] don't regen stam while climing
        - [+] ai:
            - [+] monsters won't start targeting lfs who are climbing
            - [+] monsters don't pay stamina to move while climb
            - [+] make monsters be able to climb when fleeing
    - [+] let you climb down holes instead of falling
2011-11-02 22:34:15 +00:00
Rob Pearce 965fcdd4c0 - [+] monsters should automatically attack locked doors if they're
chasing the plaeyr
- [+] if a monster tries to open a jammed door, make a noise
* [+] glyph of warding spell - monsters won't walk on it
- [+] ice crust not working? fixed.
- [+] seal entrance should close doors too
- [+] more kinds of wizard staff
* [+] replace 'freezing touch' with something more useful.
- [+] in askcoords, writing:xxx, use colours
- [+] replace poisongas damtype name with 'gas'
* [+] redo skill screen
- [+] make ash clouds (sleeping etc) not affect thrower's square?
- [+] There is a magical inscription here:  ""
* [+] rename some spells
* [+] poltergeist spell keeps missing.
- [+] reduce fire damage from burning objects in pack, or equipped
- [+] first spell in beginner spellbook should be the one we know. 
- [+] fix bug with item inspect ability
* [+] stamina food
* [+] locate object issues
- [+] still got a wrapprint bug when showing spell descriptions.
2011-11-01 20:35:50 +00:00
Rob Pearce a297a3c180 - [+] don't show 'the xxx look exhausted' for monsters
- [+] The giant blowfly (null).
- [+] instant disrobe spell - tleports armour to the side
- [+] why did a monk recognise a grenade? bug in conferobjectflags.
- [+] adept nature lore should identify bad mushrooms too
- [+] draining/vampiric brand - gives hp to user.  
- [+] ways to check stairs before travelling
    - [+] make getstairdestination() be the place where new maps are
          generated
    - [+] move getnoisedetails into new function
    - [+] ability to listen down stairs with adept listen skill
        - [+] atomatically trigger walknoise for all lfs within los of
              stairs, and you always pass the check.
        - [+] at expert listn you get names
        - [+] otherwise just get 'slithering' etc
        - [+] test......
    - [+] "check stairs" ability ???
        - [+] this then prompts for various methods
    - [+] smell down stairs with enhancesmell
        - [+] say "you see xxx scent" for all lfs within los of other
              end
    - [+] use perception to check stairs
        - [+] say "you see xxx footprints" for all lfs within los of
              other end
    - [+] ability to peek down stairs with adept stealth skill?
        - [+] temporarily put you there
        - [+] precaclc los with awareness in all directions from there
        - [+] show view
        - [+] wait for key
        - [+] move you back, remove temporary awareness
    - [+] add help for these skills
2011-10-16 22:45:36 +00:00
Rob Pearce 0d663e81b3 * [+] maybe a new weapon damage calculation....
- [+] eyes shouldn't adjust if you can seein the dark
- [+] make fire spread to nearby flammable objects.
- [+] issue with soldering iron
    - [+] shouldn't be able to weild it if we don't know what it is
    - [+] shouldn't be able to get stats like damage dealt ect if we
          dno't know what it is
- [+] need technology skill to weild tech weapons??
- [+] misile damage problem - Killed by a spear (thrown by an orc
      warrior).(33 damage)
- [+] ring of endurance
- [+] make evasion checks modified by speed.
- [+] bone items have higehr chance to be cursed
- [+] tweak feign death check now - int check (attacker) vs wisdom (one
      feigning death)
- [+] cursed teleportation should take you next to a monster
- [+] bug: infinite loop during getrandomroomcell(map,ANYROOM)
- [+] make dumprooms able to show room ids
- [+] bug: i'm able to cast varpower spells which cost more mp than i
      have!
2011-10-13 21:37:15 +00:00
Rob Pearce c7845ee622 - [+] fixed buf where f_restuntilbetter wasn't cleared
- [+] monk was starting with agility too high.
- [+] crash: missing room ids.  hopefully fixed.
- [+] notify player when stamina rises from 0
- [+] resting - get rid of seperate "rest until xxx", just rest until
      EVERYTHINg is good.
- [+] steam should deal heat damage, not fire (ie. don't set things
      alight)
- [+] river going through a level. how do i do this?
    - [+] outline???:  "hasriver"
    - [+] river code:
        - [+] pick random radius (0-3)
        - [+] pick random spot along top ( x >= radius and x <=
              w-radius-1) 
        - [+] pick random spot along bottom
        - [+] bresnham between spots to make centrelist
        - [+] for each centrelist
            - [+] make a second list of rivercells (rivercell->x -
                  wid/2) - (rivercell->x + wid/2)
            - [+] foreach riverercell
                - [+] move any staircases here to somewhere else
                - [+] clearcell
                - [+] convert to low rock floor
                - [+] convert  to deep water
- [+] make ctrl-y work, as well as ctrl-c
- [+] i'm noticing tripwires too often (adventurer with 0 perception
      skill)
    - [+] make the check harder!
- [+] tweak safetorest() so that monsters don't just look away form the
      plaeyr then go to sleep!
2011-10-06 20:12:13 +00:00
Rob Pearce 25db5b0da7 - [+] job abilities can now generally happen as often as you like,
since they're ilmited by stamina.
- [+] rename dexterity to agility
- [+] The leprechaun steals an uncursed ring of miracles from you!
      The leprechaun cowers away from you!
    - [+] should FLEE , not cower!
- [+] should set blessknown after reading a scroll
- [+] cursed mending scroll not working on non-damaged objects
- [+] spanner helps metal repair
- [+] needle boosts sewing ability
- [+] when resting in a tent, monstesr have very low chance of noticing
      you (5%)
- [+] move display of resistances to 'effects' section.
- [+] show what a mosnter wants in effects (if you have >= beginner
      knowledge)
- [+] prevent running into monsters with shift+dir
- [+] infinite loop when creating a map, constant getrandomroomcell()
      calls failing
- [+] monstesr will steal objects they WANT rather than always random
- [+] monster:
    - [+] leprechaun
        - [+] lucky
        - [+] covets gold
        - [+] shillelagh ? or just a club?
        - [+] blink
        - [+] steal
        - [+] dodge
- [+] at the moment attack doesn't seem to be draining stamina...
    - [+] it is, but i'm getting it right back due to attack speed.
    - [+] make stamina take longer to regen. - 1 per 3 turns rather
          than 1 per 2.
    - [+] stamina loss must be MORE than basic regen rate (0.3)
    - [+] make stamina loss for attack depend on atatck speed!
        - [+] instead of "you feel sick", say "you have contracted
              weakening poison" or "you have been infected with xxx"
    - [+] store stamina as a float, but getstamina() should return an
          int.
- [+] sprinting - use 1.5 stamina per cell instead of 1?
- [+] modify accuracy text
- [+] fork
- [+] showing f_entertext should set didmsg
- [+] instead of printing 100% accuracy, show "Acc:0"  (ie 100),
      "Acc:-1" (ie -10) etc
    - [+] do this in @@
    - [+] do this in describeob
- [+] nocturnal monsters
    - [+] base monsters initially being asleep  on time and whether
          mosnter is nocturnal
    - [+] also during aiturn(), if they have nothing to do and it's
          their sleeping time, goto sleep
    - [+] add flags
- [+] flies should always move towards corpses if possible
    - [+] maybe F_WANTSOB corpse, covet?
    - [+] but thye can't pick it up so they'll just hover nearby?
    - [+] now they can be hostile too
- [+] when we're picking a random corpse, try again if we get something
      with nocorpse like a ghost
    - [+] getrandomcorpserace()
- [+] lower stamina max - currently at lv1+ft:11 i have 7 stam. should
      be more like 5
- [+] severed finger shoudn't count as making you bleed when you attack
- [+] in askcoords, always show cell name
- [+] monsters with no melee attacks can always cast spells while
      adjacent
- [+] resting issues
    - [+] having a temporary injury means oyu need to rest, so don't
          say "you don't need to rest"!
    - [+] also don't stop resting until all temporary injuries are
          healed 
- [+] show comparative weights / armour ratings
- [+] make price for npcs to join be lower
- [+] assertion failure with who->timespent == 0 when a mosnter falls
      through a hole
    - [+] (after I follow by falling down the pit)
    - [+] make taketime() not work when not on the player's map
- [+] bug - monsters never waking up
- [+] "tailwind" spell (fast movement speed but forwards only)
- [+] now that i have Hardness, _all_ reduced damage should go towards
      armour. 
- [+] earthquake - pits open up around you (but not under you)
- [+] force sphere - radial blast outwards, knocks back lfs + obs +
      doors etc
2011-10-04 03:24:53 +00:00
Rob Pearce 5cb8b05817 - [+] BUG: arrows shouldn't be able to trigger arrow traps!!!
- [+] king piranhas shouldn't leap out of the water!
- [+] don't catch thrown missiles if it will burden us
- [+] in @@, show "accuracy" as a seperate line, not with your weapon.
- [+] higher chance of learning psionics on level up.
- [+] fix up monster hp - too easy to kill most things in one hit with
      dam = 4-12, 2 attacks (ie. l6 monk)
    - [+] dump out all mosnters sorted by hit dice (show avg hp)
    - [+] fix them up
- [+] vault->entertext - ie "you enter a dining room"
- [+] make random monster generation go by hitdice AND rarity rr_. 
      IGNORE rarity value.
    - [+] start with hd = level.  sometimes incrase
    - [+] remove all rarity values from monsters
- [+] disorient might need to be higher level than stun
- [+] make psionic spell mp cost be level, rather than level^2?
- [+] ai bug:
    - [+] .oO { looking for a target . }
          .oO { found an enemy target - lfid 256 (human) ! }
          .oO { default - moving randomly }
- [+] reduce cost for higher levle spells agian.
- [+] prevent player from eating an ice sheid!
- [+] bug when eating from the floor with multiple food items there
- [+] assassin's blink spell - teleport behind and facing someone.
      medium level translocation.
- [+] make "chunk of roast meat" be "chunk of roast goblin meat"
    - [+] and base nutrition on corpse type
- [+] highlevel sixth sense should let you turn to face it
* [+] add prompt text to msg hist:
- [+] sixth sense should only pick up hostile monsters
- [+] need a good reason that wizards can't wear armour.
    - [+] if isplayer(), failure chance depends on any arm/shield
          penalties
- [+] show f_impassable in describeob()
- [+] no walking backwards/sideways if you're stuck in a web/vine. can
      only turn.
- [+] objects for protection:
    - [+] eyeglasses (+vision)
    - [+] safety goggles
- [+] ERROR - stairs link to existing map 0('the surface(0,0) (id #0)',
      depth 1), but it has no free stairs.
    - [+] when we restart map regeneration, must first REMOVE
          referenecs to this map!!!
    - [+] implemented.
- [+] fixed bug with sleep interruption
- [+] You attack the helpless the dwarf monk!  You flatten the dwarf
      monk!
      The dwarf monk loses consciousness.   damage's robe protects it.
- [+] add stamina cost to other abilities
- [+] add descriptions to lore skills
- [+] make athletics skill give you more stamina?
* [+] monstesr stopping fleeing when they can't see player
2011-09-27 18:56:58 +00:00
Rob Pearce 2db53bca61 - [+] when throwin gn aobject, warn if you have no LOF (just like
spells)
- [+] allow dodge/catch of thrown object when there is no thrower (ie.
      arrow traps)
- [+] simplify monster spellcasting
    - [+] don't use any mp
    - [+] select power based on monster hit dice only
    - [+] monsters should cast spells less often  - use f_castchance,
          default of 15% chance
    - [+] TEST
    - [+] you keep your own mpdice when polymorphing into a mosnter
- [+] fxied: throw a tranq dart, then:
    - [+] The cockatrice loses consciousness.  The cockatrice falls
          asleep.
- [+] bug: can't operate a fridge on the ground cause it's too heavy to
      lift
- [+] monsters generated on dark levels should always have seeindark 3-4
- [+] vending machines not working... fixed.

- [+] in getchoicestr:
    - [+]  if !showall, and if it shows a longdesc, then you hit
          backspace, longdesc should be cleared.
    - [+] show completion in a different colour
- [+] bug: sometimes we seem to have map->room[x], but no cells with
      cell->room->id == thatid!!
    - [+] stop vaults from overlapping.
- [+] taking too long to walk down levels - enforce max number of
      monster free turns
- [+] inept weapon penalty should be slightly higher
- [+] bad feeling check is too easy.
- [+] skeletons should have f_noinjuries
- [+] shouldn't check for slipping on things while swimming
- [+] tweak how traps + perception skill impact search checks 
- [+] bug: sometimes we have no player start position.
    - [+] if the vault creation fails, restart map generation.
- [+] only give study scroll ability at high spellcasting skill
- [+] typo:  ring (1 charges left)
* [+] god effects when you die:
- [+] pea soup should work in the cell in FRONT of you.
- [+] bug: ring of control seems to work when you _weild_ it!!
- [+] non-lethal weapons
    - [+] sword of mercy (at <1hp, ko)
    - [+] tranq dart
- [+] add sleeptypes
    - [+] change all refernces to f_asleep->val[1] (now an enum)
    - [+] change "stirs in its slumber" if unconscious
    - [+] change all 'fallasleep' calls
    - [+] attacking a ko'd enemy with merciful weapon should do nothing.
    - [+] ai shouldn't target ko'd enemies
- [+] ai should stop targetting people once they're dead/ko'd
- [+] bashing damage should sometimes just knock unconscious instead of
      killing?
    - [+] if their hp would be >= -3, and onein(2)
- [+] different body part names? "metal frame" instead of "body"
    - [+]  implement F_BPNAME, v0=enum bodypart, text = name
    - [+] getbodypartname() needs a lf argument.
    - [+] once i add this, also make animals have "front legs" instead
          of "arms", "paws" rather than "hands" etc.
    - [+] fix calls to getbodypartname to pass in lf or null
- [+] cyborg mods:
    - [+] can't wear most armour?
        - [+] need f_noarmouron - we HAVE this bp, but can't put armour
              on it.
    - [+] large rust damage from water
- [+] if you have a bad feeling about an object, mark it as "[bad]"
    - [+] f_knownbad
- [+] killing should anger the god of mercy
2011-09-22 02:00:16 +00:00
Rob Pearce 5bd96d7e5a - [+] bug in skillpoint % display in @@
- [+] make detect life last longer
- [+] stirge should have enhacnesmell
- [+] plants should never "turn to face you". 
    - [+]  they should be able to see in all dirs.
    - [+] don't announce "turns to face" if the lf has f_awareness
- [+] AGAIN: walk on to a dark place and i can still see my own cell! 
      needed >= instead of > in celllitfor
- [+] don't show sacrifice text if you can't see
- [+] butterflies shouldn't produce light.
- [+] peaceful things shouldn't turn to face you all the time (only low
      % chance)
- [+] CRASHES when killing flags
    - [+] killflag() was dereferencing f-> after freeing it.
- [+] skill which aren't ready not showing up in 'm' list
    - [+] i think a previous fix for spells broke this...
    - [+] whatever it was, it shoudl only apply to spells, not
          abilities.
- [+] don't show @G if you're looking at someone else.
- [+] sunrise code didn't work - i immediately went to full fov!
    - [+] was a bug in isnighttime().
- [+] jimbo needs more hp
- [+] diningroom should have a fridge, instead of all food being on
      ground.
- [+] bug: "it is pitch black" as soon as you use stairs....... need to
      recalc light 
- [+] show temp lit areas as bold
    - [+] do it.
    - [+] test.......
- [+] notification of being followed to other maps/stairs:
    - [+] "you walk up the stairs. xxx follows you."
    - [+] implement.
- [+] move sacrifice code to god.c
- [+] change twoewapon->master to make your second weapon act like a
      shield
    - [+] ie. getshield() returns it.
    - [+] act like low level shield skill. special case in
          SC_SHIELDBLOCK
- [+] make twoweaponers only be able to use secondary weapons in which
      they are skilled.
2011-09-15 01:40:26 +00:00
Rob Pearce da656dfa52 - [+] add autopop to playerstart vaults
- [+] rename magic skills:  Magic:Cold
- [+] bug: infinite loop in poison arrow trap - make sure the arrow
      always dies.
- [+] bug: c4 didn't kill iron door
- [+] implement stamina (float). max is Fit/2
    * [+] in startlfturn:
    - [+] sprinting drains this.
    - [+] ...then stop using f_sprinting for exhausted
    - [+] ...and remove f_tired
    - [+] if exhausted, stop sprinting. (in modstamina)
    - [+] change crushed windpipe
    - [+] f_stamcost for abilities.
        - [+] modify cancast.
    - [+] tumbling
    - [+] jumping
    - [+] rage
    - [+] swimming
        - [+] drains stamina like sprinting
        - [+] if stamina drops to 0, you start drowning.
    - [+] new spell:  lethargy (sets stamina to 0)
    - [+] if a sleep spell fails, use lethergy instead.
    - [+] no attacking while stam = 0 ???
- [+] need to update statbar right away when casting ongoing spells.
- [+] bug: reading an awareness scroll counting as an active spell!
- [+] genericise magic resistance check into a function
- [+] "disorient" - l1 mental spell which randomly turns lf, someitmes
      makes them dizzy
- [+] change stun - just means you can't attack, cast spell, use abils
* [+] AI shouldn't look for targets if stunned or no stamina
* [+] why do mosnters end up facing -1 (d_none) ??
- [+] turn undead problem.
    - [+] The skeleton turns to flee from you!  The skeleton bites you.
- [+] crit which spins you around (bash to body)
- [+] say "you attack xxx from behind" when you ar ebehidn them and
      they can't see you
    - [+] or "you attack the helpless xxx" when thye just can't see you 
- [+] genericise sacrifice text
- [+] fix up weight of heads (8% of body mass)
- [+] make attribss do more:
    - [+] iq:  determine how soon you learn new skills (ie. modify
          SKILLXPPERPOINT)
    - [+] fit: determines stamina points.
    - [+] wisdom >= AT_HIGH
        - [+] warn before wearing/eating/drinking/weilding unknown
              bad/cursed objects (low chance)
        - [+] use isbadobject()
        - [+] chance:
            - [+] high = 10%
            - [+] vhigh = 30%
            - [+] exhigh =  50%
- [-] idea:  sacrifice to gods to make them happier
    - [+] mercy: weapons
    - [+] death: any corpses
    - [+] thieves: gold
2011-09-14 22:42:54 +00:00
Rob Pearce 7370b60375 - [+] flak jacket too powerful
- [+] make it only protect against missiles?  no AR as such
- [+] facing N, walk NW.  turn instead of walk! bug in
      getrelativedir(). fixed.
- [+] ctrl+dir = turn.
- [+] make novice level listen more useful.
- [+] l2 tech: "styptic" -
    - [+]  heals certain bleeding injuries
    - [+] then if still bleeding() due to low hp, heal back up.
* [+] tool: bandage -fix blood loss
- [+] change enhancedsmell to happen in same place as 'detectlife'
- [+] spells:
    - [+] sixth sense - l1 - warns if someone is within 2 cells behind
          you.  lasts for a single use.
    - [+] canine tracking - l2 divination spell, gives temporary
          enhanced smell for short range (3).
    - [+] heightened awareness - l3 ongoing divination spell to enhance
          FOV to 360 degrees
    - [+] scrolls for the second two
    - [+] apportation
- [+] let wizards pick two secondary spell schools
    - [+] start with beginner in primary, novice in sec
2011-09-12 23:52:21 +00:00
Rob Pearce d51dfa11f9 - [+] make "fear" be used to flee, not attack
- [+] CRASH in linkexit()
- [+] make most monsters either have sk_perception at least novice.
- [+] show success rate when studying scrolls
- [+] bug: unable to drink from fountains anymore
- [+] always use multidrop - this will free up 'D'
- [+] forest tree cluster maps are not working - only a single tree in
      each cluster!
- [+] crash - ghost adding footprint to solid cell! 
- [+] amberon's wrath for attacking peaceful should happen once per
      ATTACK, not once per HIT
- [+] show cells outside LOS as blue or darkgrey
- [+] Don't place normal rooms next to the edge of the map either!!
- [+] getradiuscells(scatter) needs an option to include density
    - [+] then make absolute zero have high density
* [+] summoning spells on pentagram will summon a demon instead
- [+] "confusion" / "baffle" mental spell - l2 
- [+] add 'concussion' injury (head bash) - confusion effect.
    - [+] iswoozy checks for this.
- [+] severed limbs -"frominjury" so taht you can heal them
- [+] linkexit() needs to be able to handle making THREE turns:
    - [+] when looking for turnpos, remember each up/down celll
    - [+] if we don't find one ("annot find a way to link up") , go
          through each up/down cell and look left/right
    - [+] fix is in place.
    - [+] tested.
- [+] bug: doors being placed on top of rock walls!!! think this is
      related to fix_deadends.
    - [+] assert statement added.
* [+] bug:  no up stairs generated on first dungeon map! was being
      removed by clearcell() for overlapping rooms.
- [+] mass stun spell - l4. stuns all in los ?
* [+] make "stun" / massstun durations be 2-4 depending on power
- [+] "restricted" jobs/races?
    - [+] don't put shopkeepers in pubs
- [+] make a per-map maxvisrange. the deeper you go, the lower this
      gets (ie . it is darker, less ambientlight)
    - [+] limit getvisrange(lf) by getmapmaxvisrange()
    - [+]  map->habitat->maxvisrange. set this during createhabitat()
    - [+] reduce maxvisrange
    - [+] reduce it to 6
- [+] why can i still see 1 cell?
- [+] why can i still always see my own cell?
- [+] when in pitch black for a certain amount of time, your vision
      adjusts to maxrange=1
    - [+] ie. getnightvisrange(lf) should be modified by
          lf->eyeadjustment
    - [+] reset if you can ever see a lit cell.
    - [+] when this happens to the player:
        - [+] msgs about this
        - [+] also force light recalc
- [+] only recalc light when dirty
    - [+] if we call "haslos()" for a lf and they have losdirty,
          precalclos first.
- [+] vis range problems
    - [+] sunglasses/footballhelm visrangereduce isn't working anymore
        - [+] it's reducing maxvisrange(lf).
        - [+] BUT - my maxvisrange is 5, which is still higher than the
              ambient range.
        - [+] need to apply reductions AFTER ambient light
        - [+] NOW eyeadjustment isn't working.  because cell lit is
              l_temp, not l_notlit.
        - [+] but if this is the case, why can't i see?  anwer: because
              my visrange has been reduced to 0 due to no ambient light!
        - [+] so.... how do i make lightt sources override this?
        - [+] maybe say:  if a cell is lit, i can see it, even if it's
              outside my ambient light.
    - [+] falling over isn't reducing your visrange anymore
- [+] why doesn't eyeadjust make the screen update?
- [+] is regular "haslos" code ever used anymore????
- [+] now i can't see lit cells in the darkness again....fixed
- [+] after you calm something, give it xpval0
    - [+] show message when calm animals fails
- [+] check all spell sc_resistmag oskillcheck difficulties
    - [+] diff should be 20  + (spelllev*2) + power
    - [+] l1 spell should be diff 20
    - [+] l2 should be diff 24 
    - [+] ...
    - [+] l7 should be diff 34
- [+] bleeding injuries should make armour "bloodstained"  (5% chance
      per turn)
- [+] msgs for "the sun is starting to set" and "the sun is starting to
      rise"
    - [+] make 6am, 18pm be constants
- [+] add crushed windpipe -  lower Fitness, cannot sprint
* [+] CRASH when going down stairs! another overlapping room bug i
      think.
- [+] cockatrices and chickens should cluck
- [+] canwill param:  race:xxx;
    - [+] define it
    - [+] use this in "createmonster"
    - [+] use this in "polymorph" when on self
    - [+] then remove f_forcepoly
    - [+] TEST 
- [+] make playerstart vaults able to appear randomly (just don't place
      the the "playerstart" object)
- [+] redo texttospellopts() to make it more friendly
    - [+] give a list of what we want as args, rather than passing lots
          of nulls
    - [+] "pw:",  &localpowervar etc
- [+] make "n_lowhp" noisetext happen at END of lf turn - NOT during
      losehp.
- [+] rename turneffectslf() to startlfturn()
- [+] show hunger level as a bar in @@
- [+] warn before becoming burdened.
- [+] warn when you ARE burdened.  at the end of moveob()
- [+] l6 - absolute zero (turn everyone around you to ice, freeze all
      obs, turn ground to ice)
- [+] some monsters leave non-meat food behind?
    - [+] cactus -> cactus juice/fruit
    - [+] dreamfungus ->  sleeping powerder
- [+] silver weapons (5% chance on eligible weapons)
    - [+] hurt vampires 
    - [+] vulnerable to mat??? - then use fromob in losehp()
        - [+] f_matvuln mt_xxx multiplier
    - [+] add some silver weapons
        - [+] f_canbediffmat  mt_silver  10%
        - [+] if f_canbediffmat  is true, sometimes change material to
              this on creation
        - [+] getobname - if material is differnet, show this
        - [+] dagger
        - [+] sword
        - [+] arrow
        - [+] bolt
        - [+] dart
        - [+] addob should accept 'wantdiffmat'
2011-09-09 23:03:32 +00:00
Rob Pearce 52f6fd21c3 - [+] bug: when running, i jumped into deep water!
- [+] instead of evasion skill giving a fixed boost, make it change the
      evasion bonus due to xp level.
* [+] give monsters free moves when you go back onto a level, BEFORE
      placing the player.
- [+] fix dungeon code to eliminate nonlinked rooms
    - [+] force all vaults to be at least 3 squares away from map edges
    * [+] implement flood-fill test.
2011-08-24 23:48:29 +00:00
Rob Pearce f071b379ca - [+] fix bug with help not working
- [+] fix bug with redrawing when you open a door.
- [+] fix bug where pleasing gods during killflag() causes crash.
- [+] creatures >= 2 sizes bigger than you should block los
- [+] explosion trap should kill doors
- [+] redo getflags to take more args
- [+] genericise isprisoner code
* [+] jimbo's lair needs a portal back to dlev1
* [+] linkexits still not working properly.  fixed i think!
- [+] rename some spells
- [+] make max spell level be 6 (to match up with pr_master)
- [+] modify mp per level by sk_sorcery/2
- [+] bug: reading a blessed scroll of manding does nothing!
- [+] improved crit effects
    - [+] bash
    - [+] slash
    - [+] fire dam cauterises slash wounds
    - [+] cold dam fixes brusing
- [+] add crit chance to weapons. (default of xxx)
- [+] stirges shouldn't be able to latch on if you have no exposed body
      parts
2011-08-24 08:15:09 +00:00
Rob Pearce 00f9d4e0bf - [+] vampire gas cloud not working for player
- [+] monsters should only weild weapons if they are better than their
      inbuilt attcaks!
- [+] show dtected obkects in bold green
- [+] bug: can blink into impassable objects
- [+] infinite loop in ai turn for porcupine.
    - [+] movetowards()
* [+] vampires
- [+] vampire changes back to its original form.  CRASH.
2011-08-05 21:34:35 +00:00
Rob Pearce 81c7f37eff - [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!!
- [+] blink should go to random place within lof, not los
- [+] sunglasses shuld reduce nightvis range, not visrange
* [+] since jolt needs adjacency, make it more powerful
- [+] use colours for spell descriptions
- [+] replace 'call wind' with 'zephyr'
* [+] add vault commonality.
- [+] add more common vaults - roundabout etc
* [+] change "addmonster" to take a string arg instrad of RACEID
- [+] pouring cursed water on blessed scroll didn't work.....
- [+] append "...god of xxx" to rc_god lifeforms
- [+] try to attack with f_pain -> INFINITE LOOP.
- [+] ARMOURPIERCE shouldn't hurt armour
- [+] ghast touchparalyze attack isn't working.
* [+] bug: when praying to gods, ones not in heaven aren't listed.
- [+] when a god apepars..."Hecta appears" x2
- [+] attacking fleeing lf should count as a backstab (if you have the
      skill)
* [+] "nothing happens" during god spell effects
* [+] allow hunger to work on monsters
- [+] pressing 'a' on @Magic has weird results.
- [+] bug: got a gift form yumi during combat???? what for? healing?
initial vampire implementation
initial god implementation
- [+] they all start off in "heaven" map.
- [+] gods ahve f_piety. starts at 0
- [+] keep track of piety with each god. starts at 0 for each one.
* [+] let planeshift take you to heaven (for debugging)
* [+] everyone has 'pray' ability.
- [+] modpiety(rid, amt)
* [+] piety vals
* [+] when you pray
- [+] isangry(god) - ie is piety < 0
* [+] if you pray when god is angry, bad!
* [+] once piety gets over 200 or so, praying  might give you a gift. 
* [+] god_appears(lifeform_t *victim)
- [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per
      turn).
- [+] regain through doing actions ... in progress
- [+] lose through doing actions only if you have prayed to this god
      before (angergodmaybe)
- [+] special: gods don't need LOS to cast spells.
- [+] gods planeshift away if not doing anything else.
* [+] @g to see your piety levels for each god
- [+] ?g for help on gods
- [+] IN general:
    - [+] prey = oneoff effect
    - [+] gift = ongoing
    * [+] makeangry() vs modpiety
* [+] Yumi - fem,mercy/healing - if you die within the first few turns!
Hecta - partial
Avamon - partial
2011-08-03 18:43:05 +00:00
Rob Pearce ce878f6ae8 * [+] fire should set equipped obs on fire too
* [+] trapped doors/objcets
* [+] make careful walking have less chance of triggering some traps
      (eg tripwire)
- [+] dex penalty when drunk
- [+] require dex to put on most shoes
- [+] Diety's short sword of pyromania isn't appearing?
- [+] make sure i can tumble over traps
* [+] able to cut tripwires with slashing/chopping/piercing weapons?
- [+] maybe make cmomando have no weapon skill
- [+] make armour more common
- [+] shouldnt be able to swap place with someone who is sleeping
- [+] if you're not in the water, can't see lfs in water (unless they
      are adjacent)
- [+] You break free from the zombie!  You reintegrate inside a solid
      object!--More--
* [+] shopkeepers will charge an extra fee to identify stuff
- [+] shouldn't get an empty flask when I dirnk from a fountain!
- [+] identify and remove curse scrolls should be COMMON
* [+] provide detailed skill descriptions
- [+] dumpoutlines()
- [+] make minotaurs stay in room
- [+] make minotaurs have good smell
- [+] don't auotreveal vaults.
* [+] should be able to fill flasks from fountains
- [+] don't announce corpse decay death while training.
* [+] add the initial godstone at the bottom of firstdungeon
* [+] make fountains names same as their linked potions
- [+] bug: when filling potions from the ground, ground object was
      never dryaing up
Beggars
- [+] stealing ability sometimes. run away after using this
* [+] various lots of generic f_talktext->"have a coin to spare?"
World map
- [+] 1-2,1-2: habitat: village
- [+] multiple villages
- [+] vault: island with treasure (or acid island?)
- [+] jump into a water  - it splashes small puddles to surrounding
      cells
* [+] let dig spell go up/down.
* [+] fountains, random potion effect or water (blue _ or })
- [+] make thingchance and obchance be habitat_t parameters.
work on game goal
- [+] find a way out of the magical dungeon barriers in the first
      dungeon
- [+] slime
- [+] troll = t
- [+] lizardman
- [+] ogre
- [+] kobold
- [+] fire sprite
- [+] hobgoblin
- [+] bugbear
- [+] gnoll
- [+] giant
- [+] zombie
- [+] skeleton
* [+] ghoul
- [+] ghast
- [+] can operate spanner to
    - [+] jam/unjam a door
* [+] visibility
- [+] initial code for monsters opening doors while giving chase
- [+] acid does more damage to armour
* [+] implement temporary flags. 
* [+] implement unknown flags
- [+] mana spike
- [+] energy bolt
- [+] energy blast (hits all in radius)
- [+] flash (like flashbang)
- [+] telekinesis (open/close doors remotely, grab/throw objects
      remotely)
- [+] mindscan - knoweldge of hp etc
* [+] airblast (push obs, push someone very far, AND lose obs. break
      walls they hit?)
- [+] fireball - sets on fire
- [+] flamepillar
- [+] fire arrow
- [+] spark (light a flammable object)
- [+] flameburst - 2d8+3 damage in a circle
- [+] burning wave - 2d10 damage and set on firea, line towards target
    - [+] range 3
- [+] freezing touch (turns an object to ice)
- [+] knock - opens doors
- [+] gas form
- [+] polymorph
- [+] write on floor
- [+] light
- [+] weaken (lose str)
- [+] poison cloud - change cloudkill to this?
- [+] animate dead
- [+] posession
- [+] minor healing
- [+] healing
- [+] turn undead
- [+] identify
- [+] detect magic
- [+] detect aura
- [+] reveal surroundings
- [+] uncontrolled teleport
- [+] speed
- [+] slow
- [+] boost gravity
- [+] create monster
- [+] divine
    - [+] wish
2011-07-21 01:43:45 +00:00
Rob Pearce 7c86e87f4a * [+] make vending machines use this container code instead.
- [+] don't say "you see a few things" if one of them is footsteps
* [+] IFMONSTER code failing....because flags are now SORTED!!!
- [+] tumble - askcoords is letting us pick a cell we don't have lof to.
* [+] assign a name to lfs once you hire them
* [+] coloured msgtext
- [+] make min dam reduction from AR be AR/5.
- [+] safebox
- [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with
      no getsweaker (val1)
* [+] make fire / ice damage mor elike netheck
- [+] towns should have gates on EVERY side
- [+] forest cells outside town gates need to be CLEARED. (maybe turn
      to dirt)
- [+] fix up knock targetting to include magical barriers
- [+] say "open a bag?" not "operate a bag?"
* [+] implement immunetodisease
- [+] sort known skills in @s.
- [+] better damage bonus when attacking someone who is asleep
- [+] practive firearms/throwing
* [+] need objecttype->size
* [+] containers
* [+] change guns so you have to reload them. ("operate")
- [+] crash when loading map with water
- [+] SAVE OBJECT CONTENTSk
- [+] monsters with jobs aren't getting start items
- [+] shopkeeper has shotgun
- [+] bug: monster keeps swapping between shotgun and flail
- [+] when hiring, remember failure.
* [+] Inn
- [+] bug: pets fighting!!! then they all turn on you. never make
      allies get angry unless the attacker is the player
* [+] hiring npcs
- [+] chat to pet: "stay close" or "keep your distance"
- [+] new 'furniture' obclass
- [+] allow for 'randomshop' regiontype
* [+] add enchantment school
- [+] cast a scroll of mending on itself. CRASH.
* [+] lessengravity should make you jump better and get knocked back
      further
- [+] boostgrav/lessengrav cancel out each other.
* [+] CRASH when you fall down a hole and die.
- [+] problem: master gravitation doesn't let us cast levitat.
      getspellschoolknown() should return the HIGHEST known skill, not
      the first.
* [+] bug: dregion is null?!??!
* [+] dig a pit, if you cleared out land below, you just stay down
      there.
- [+] potion of leveitation
- [+] warning msg when levitate is about to expire
* [+] if you fall upwards to the surface...
* [+] if you are ever on the surface while levitating....
- [+] BUG: cna't go up stairs to surface anymore!!!!!
- [+] get hungry LOTS more quickly when you start sprinting
* [+] monk slow metabolism psionic pell.
- [+] fix buf with lore giving LESS accuracy instead of more.
- [+] food shop
- [+] wand of digging not identified if you dig upwards
* [+] when you make ah ole in the roof, objects above should fall
      through right away
* [+] all towns should have:
- [+] give monks more  psionics spells.
- [+] sk_throwing skill
- [+] make calm animals use spellpower
* [+] add wisdom
* [+] need to save region data along with maps
* [+] COMBINE armour evasion and accuracy penalty!!!
* [+] make armour reduce accuracy as well (unless you have 'armour'
      skill)
- [+] landmine trap
* [+] make friendly monsters of same raceclass swap ammo
- [+] rename 'pull' to 'suck' to avoid confusion with pull metal
* [+] food to fix blindness
- [+] potion of coffee
* [+] genericise statbrackets
* [+] tumble ability
* [+] simplify spell power
* [+] shopkeeprs should be allowed to pursue targets outside of the
      shop.
- [+] give shopkeepers a shotgun
* [+] make F_RNDHOSTILE be able to ahve a random chance. 
* [+] if you randomly generate food in a shop, still give it a price.
- [+] if peaceful humanoid walks into you, "sorry!"
- [+] sayphrase(lf, SP_SORRY, vol)
- [+] only let you recruit jobs with j_recruitable
- [+] CRASH - summon "monk"
- [+] dogs,
- [+] chickens,
- [+] drunks,
* [+] village objects
- [+] change armourrating AGAIN. instead of a percentage, make it a
      number.
- [+] rename inn to "pub", since you can't sleep there.
* [+] random speech code
* [+] genericise sayphrase text based on lf's job
* [+] monks - add rest of abliities
- [+] add fiengdeath ability to some monsters
2011-07-13 21:40:28 +00:00
Rob Pearce 95c6ab8396 - [+] tweak armour damage -make natural armour hittable.
- [+] getdirtowards/away bug
- [+] metalwork or armour skills let you see armour hp!
* [+] allow players to select their weapon specialties at the start
- [+] make statbar easier to read
* [+] druids
- [+] spark on rum will blow it up!
* [+] evasion skill
- [+] add charisma
* [+] add speech skill 
- [+] bug: gate to level 1 took me to the outside!
* [+] bug: not hearing shopkeepers final yell - out of range??
- [+] special corpses:  i - a Jimbo corpse should be "Jimbo's corpse"
- [+] when autogenerating monsters, make sure they have ammo for ranged
      weapons.
* [+] map to town
- [+] randomly place the town now.
* [+] shopkeeper still doesn't talk to us if we can't see him when we
      pick up an object
- [+] i am STILL not hearing when the shopkeeper yells you "stop
      thief"!!
* [+] bug:  LOTS of dungeon rooms with no exit
- [+] town guards want money
- [+] announce "a xxx falls through a pit" 
* [+] make running go around corners
* [+] colourise known skills
- [+] rename constitution to fitness
* [+] scroll of mending - should this fix dulled weapons (by hitting
      doors etc)?
- [+] colourise @@ (boldwhite for titles)
* [+] colourise @s
* [+] colourise @m and @e
2011-07-01 03:34:41 +00:00
Rob Pearce 7dfeb42e5a - [+] thrown objects taking no damage due to hardness
* [+] DIETY is slow.
- [+] map bug - from 0,0, walk NE (off top edge).  i end up at 0,0
      again!!!
* [+] ALLOW ROTATING OF VAULTS
- [+] BUG: dig X only goes 1 cell.
- [+] add a U shaped turn vault.
- [+] change wehre i apply HADRNESS for lfs! - don't use
      adjustdammaterial cause we inherit there
- [+] make obchance/thingchance part of habitat_t
- [+] make sense surroundings take cartography skill into account
* [+] BUG: rotated at() etc not working.
- [+] if you fail stealing, the target should get angry!!!
- [+] make sure to redraw stat bar when mind scan finishes.
- [+] villages
    - [+] initial code
    * [+] town gaurds. stand next to the gate
    - [+] potion shop vault
        - [+] implement
        - [+] potion shop isn't getting potions!!
        - [+] and getting wrong floor type.
        * [+] stop shop from always being at the top left.
        - [+] make sure its x/y arent too close to edge of map (at
              least 5 away)
            - [+] vault param.  f_mapmargin, 5
            - [+] make calcroompos take x/y margin
    - [+] don't put auto obs inside vaults
    - [+] town walls
    - [+] more kinds of shops
    * [+] signs outside shops
    - [+] bug with ai swapping between firearms and twohanded weapons.
          fixed.
    * [+] make _CELLS_ have habitats!
    - [+] move vaultchance to a habitat param instead of
          getvaultchance()
* [+] shopkeepers  (special race)
village things:
- [+] barrels,
- [+] guards,
- [+] statue

- [+] thrown objects should still take damage if blocked via a shield
* [+] hardness (must do dam >= xx to hurt)
* [+] WATER spread mods
* [+] very powerful spells have casttime
- [+] allow linkstairs() to take a parameter rather than always jsut
      searching for the other end
- [+] when digging holes, only use getrandomadjcell if there is an lf
      in the way. and then use WE_NOLF. clear out solid cells
- [+] show armour EVASION penalty in describeob
- [+] teleportation trap.  You reintegrate inside a solid object!  You
      die.--More--.
- [+] riverroom vault
* [+] water:  swap { and ~ again??
- [+] make "large puddle of water" evaporate more quickly
* [+] special glyph case: for deep water
2011-06-29 08:48:48 +00:00
Rob Pearce cf328f849f * [+] check darkmantle code now that i can se ab it in dark
- [+] don't drip blood from melting damge
* [+] climbing
- [+] LOTS of bugs with holes
- [+] cope with walking diagonally off world map
- [+] can no longer walk off the world map!!!
* [+] BUG: worldmap 0,-1 had a link to dungeon!
- [+] Dig down into a pit - CRASH. fixing previous one might fix this?
* [+] CRASH:
* [+] walking onto water:
- [+] boots of stealth / elven boots - make footstep volume = 1
* [+] f_freezingtouch
2011-06-23 05:57:55 +00:00
Rob Pearce 6cd743b9f9 - [+] askchar - default isnt working.
* [+] implement regions
- [+] new vaultflag:  norandom (doesn't rnadomly appear)
* [+] jimbo's lair
* [+] implememnt skill training
* [+] still a bug with flooded rooms having no doors!
* [+] change f_impassable to be a size _range_ which can't pass it.
- [+] metal armour should add to walking volume!
- [+] sewing/metalwork skill to repair cloth/metal armour, instead of
      "armour" skill?
- [+] moveob() onto a pit - they fall through!
vault options:
- [+] dlevmin/max:xx appears at this depth/difficulty
- [+] goesin appears in habitat xx (if none of these, can be anywhere)
    - [+] habitat has to be a struct first, with a name.
- [+] norandom (don't randomly generate - only from outline)
- [+] pits
    - [+] only one can exist in a cell
- [+] replace getemptycelltype() with entries in habitat_t
- [+] make map->habitat a link.
* [+] update linkstairs to do pits
SPELLS:
- [+] shatter (grav/air, break glass, break potions. damage to anyone
      nearby)
2011-06-22 06:01:48 +00:00
Rob Pearce 27d22df11d - [+] implement getradiuscells()
- [+] evaporate spell - turn water into steam
- [+] monster generation bug? even on dlev10 i'm stil getting mostly
      kobolds
- [+] ai infinint eloop again - frost hawk trying to open door
- [+] another infinite loop - not falling through after spell failure.
* [+] reduce attack delay for most weapons.
- [+] letplayer see a tiny bit in the dark (1 cell ?)
- [+] beginner tracking not working - fixed.
- [+] only show "...but do no damage" if you have good knowledge about
      their race.
- [+] make gold lighter
* [+] footprints glyph shouldn't override pudles of water!
- [+] only show eviscerate etc if you have good knowledge?
- [+] don't start monsters on the stairs/magical barriers!!!
- [+] stone should be immune to more damage types
* [+] addexits adding way too many exits.
- [+] blessed identify should ID everything
- [+] blessed mending mends all
- [+] don't make noise when slowmoving.
- [+] eyebat dispersal big: The eyebat's strong scent leading north
      disappears!
- [+] go over footprint+scent+corpse and pickup:"You can't pick up
      footprints!"
* [+] doors can't do on top of each other!!!
* [+] low ground
- [+] make sure you can't have more than one "water" object in a cell.
* [+] make val2 of rarity be "common/uncommon/rare" etc
- [+] more monster types should appear in the forest.
- [+] when i go down stairs into a dark area, "it is pitch black!" is
      being cleared.
* [+] helm of the poltergeist
- [+] flying creatures get penalties in webs etc 
- [+] blind things shoudln't follow up/donw stairs
- [+] You shout a blood-curdling war cry!  The sawgrass turns to flee
      from you!
- [+] potions still worth too much.  minor healing was 420!!
- [+] AI should only go towards covetted object if it's closer or the
      same distanec as target.
- [+] branded objects should be worth LOTS - at the moment they're
      worth 1!!
* [+] maybe just adjust value of rarity?
- [+] don't roll spot checks while training!
* [+] replace f_nofeel with:
- [+] revenge did too much damage (50)
* [+] change how AR works
- [+] need to add: "really walk into a falling rock trap" ?
- [+] put only ONE staircase going up on dlev 0
- [+] why am i stopping sprinting after 1 move?
* [+] somehow make sure mosnters can't see footprints in a cell with
      mist
- [+] bones shouldn't be able to catch on fire.
- [+] when you levle up, gainskill BEFORE getting new spells
- [+] put out flaming objects after pickup
* [+] don't say "really target yourself?" when using a potion of sleep!!
- [+] enhance a random skill when levelling up? every 2 levels?
- [+] weaken koboldsa little - less change of javelin
- [+] don't drown instantly - take a few turns, depending on CON
* [+] create vault spell for debugging ???
- [+] doors in the middle of rooms.
- [+] highlight selected choice in askstr
- [+] flooded_room being created without walls!!!!!!
- [+] describe spell from levleup not working
* [+] GETROOMEDGE RETURNING NO CELLS for circularroom!!!!!
- [+] fire wizard not prompted to get firedart at l2..
Vaults
* [+] X corridor - 
- [+] crosshatch
- [+] should water be ~ instead ?? and change whatever is currently a
      tilde to something else...
Initial work on goal:
- [+] surround all stairs with barriers
- [+] start player NEAR stairs (randomadjcell from stairs, allowexpand)
+ methods of escape
- [+] knock scroll
- [+] digging (but it stops the dig from going any further)
2011-06-09 08:58:35 +00:00
Rob Pearce 3442dc293d - [+] display cell wall types in askcoords()
- [+] sort OC_ in defs.h
- [+] when a monster UNHIDES, need to redraw!!!
* [+] chain lightning
- [+] teleportation trap
- [+] wish bug with invalid strings: The xxx's strong scent leading
      east appears on the ground!
- [+] bug: animals ggetting extra attacks due to unarmed skill.
- [+] change melee attack with 2nd hand to happen at SKILLED level, not
      adept.
* [+] infinite loops during creation
- [+] make javelins weigh more
- [+] potions still cost too much.. should be at least 1/3 the cost
- [+] "you feel footprints here".  need F_nofeel
2011-06-05 09:21:21 +00:00
Rob Pearce 11c03d71cf VAULTS
* [+] vaiultlegend_t
* [+] vaultdef_t
- [+] implement addlegend()
- [+] implement addvault()
- [+] function to read in a vault from a data file
    - [+] vs_noid
    - [+] vs_loadingmap
    - [+] vs_loadinglegend
    - [+] vs_loadingflags
    - [+] vs_loading
- [+] load all vaultdefs in at start
- [+] change createroom to calculate the posistion
- [+] for each room, give a %chance of haivng a vault. (based on
      habitat?)
* [+] createvault(map_t, roomid?, char *vaultid)
- [+] mapdata with letters
* [+] MSG up vault errors on load.
- [+] Select job _before_ generating first map.
* [+] make addob() handle door flags:
* [+] addob() improvements
* [+] wish bug: first object goes in pack, rest on ground.
- [+] genericise getroomedge()
- [+] finish 'autodoors' (at the end, add doors if none already done)
- [+] at(x,y):type:what:pct -> f_vaultob / vaultlf / vaultcell, v0=x,
      v1=y, v2=pct text=what
* [+] "what" can be:
* [+] scatter:y1:x2:y2:what:chance%:howmany
* [+] some way to make the @map bit just say 'random room at least 2x4'
- [+] make "scatter" able to take range instead of count.
- [+] make "scatter"able to take x% instead of count.
- [+] upsidedown chars no longer working with winch()
- [+] ensure no DUPE ids
- [+] make legend take percentages (optional)
- [+] make "at" take negative values...
OPTIONS
- [+] autodoors - put doors on edges like with normal dungeon rooms.
* [+] autopop - fill with obs/monsters like normal rooms
VAULT FILES
- [+] flooded room
- [+] labyrinth
- [+] vault (lots of money, locked secret doors)
- [+] monster zoos (money and monsters)
- [+] diningroom - lots of tables and chairs
- [+] circleroom
- [+] pillared room
- [+] glass pillared room
- [+] cockatrice lair (statues)
- [+] traproom - need "random trap".  need OC_TRAP.
- [+] BUG: piranhas walking out of water sometimes.......
- [+] add startatt x-y rather than just a bracket. use text field.
- [+] make teleport auto move away form lfs
- [+] add minotaur
2011-06-02 08:34:44 +00:00
Rob Pearce f4cdcae146 * [+] shallow water / deep water
- [+] copy getmovespeed() water code into getactspeed too.
- [+] CAN throw missiles or fire guns while swimming, but you have an
      accuracy penalty, and they go slower. 
* [+] can't cast spells while in the water
* [+] sk_swimming
- [+] new obclass - terrain - goes baove everythign
- [+] remember tarrain like dfeatures
- [+] replace cone of cold with cold ray which hits all objects in the
      path, but stops at the first lf.
- [+] towel - dries things off.
- [+] f_needswater - suffocate if you aren't in water.
- [+] l6 nature - FLOOD.
- [+] make water jet leave a water trail
* [+] water monsters ( non-grey ;)
- [+] add aquatic mosnters to flooded rooms. addmonsters needs to check
      for water.
* [+] SPEED UP the game. running very slowly now. switched ncusrses
      draw func.
- [+] fix crash when moving off forest map with DC_xx instead of D_xx
2011-05-27 00:41:34 +00:00
Rob Pearce 69982623ed Monster AI improvements:
- [+] replace f_target with f_targetlf
- [+] wantrange.  for melee fighters (default), it's 0. for
      spells/archers, it's higiher.
    - [+] if we are further away than bestrange, move towards.
    - [+] if we are closer than bestrange, move away
    - [+] AND: move to wantrange before doing spells etc
    - [+] if we have a ranged attack and wantrange is default, increase
          it.
- [+] in movetowards/away, cells in the wrong dir should NEVER be
      acceptable!
* [+] mflag_push for monsters
          http://roguelikedeveloper.blogspot.com/2007/10/unangband-monst
          er-ai-part-three.html
- [+] randomly use ranged attacks when adjacent

* [+] show trail in askcoords
- [+] when throwing, pass range to askcoords
- [+] max monsters per room is depth + 1
* [+] why do humans take ages to appear?
- [+] fireball spell is slow
- [+] why can i throw objects through magic barriers?
- [+] add a bonus for mastery of cartography - magic mapping every 50
      turns.
- [+] crash with monsters moving off edge of world map
- [+] make magic barriers be ON stairs, not around them.
- [+] handle DIAGONAL entry to maps
    - [+] OR make this impossible.
- [+] druid should get auto nature knoeldge as they levle up (levs 5 10
      15).
- [+] CRASH flagpile corrupt
    - [+] happening during AI movement.
- [+] make lightning storm only hit enemies
- [+] store last known movement dir in TARGETLF and PETOF.
- [+] limit monsters per room not working?!?!
- [+] make askcoords let you show object piles with .
- [+] make askcoords say "A magical barrier (+xx other objects)"
- [+] combine getlastknownmovedir into getlastknowncell
* [+] BUG: secret doors are showing up as . again!
* [+] implement trails (footprints & scent)
* [+] aimovetowardslf(lf, wantattack)
* [+] make pets use wantdist code?
- [+] what does expert/master tracking give you?
    - [+] ex: your tracks don't last as long
    - [+] ms: you don't leave tracks.
- [+] change f_reducemovement from multiplier to addition
- [+] comma still showing up scents and footprints incorrectly!!!!!!!!
Initial shallow/deep water:
- [+] restrict movement
- [+] check for drowning in turneffectslf AND movelf
- [+] warn before walking onto dangerous objects.
- [+] change how walkdam works for deepwater.
    - [+] don't use walkdam flags.
- [+] don't make splashes of water on top of deepwater.
* [+] deep water will drown you if
- [+] don't leave footprints in either
- [+] create steam on fire damage, but don't CONVERT to it.
- [+] f_waterbreathing
    - [+] can't drown in water
- [+] extra damage from cold/elec if in deep/shallow water
Initial swimming implementation
* [+] sacred/cursed ground
- [+] vending machine
- [+] don't transfer f_rarity flag when making objects / lifeforms.
Initial work on adding a goal to the game!
2011-05-25 02:12:00 +00:00
Rob Pearce a763c3c4b1 - [+] issues with drawing off edge of map.
- [+] should ALWAYS be blank (' ')
- [+] The fire giant forgecaller incinerates you with a flaming
      morningstar.--More-- HP:-115193/139
- [+] barbarian should start with a heavy weapon (to do heavy blow with)
- [+] chang epegasus symbol to Q
- [+] stop sprinting when you open a door, attack, etc
- [+] "the darkmantle vanishes" "the darkmantle appearS" "the
      darkmantle steps though the shadows"
- [+] when generating humanoid monsters on dark levels without
      seeindark, high chance of them having a torch/candle
- [+] all undead should seeindark
- [+] major healing pot doesn't work
- [+] crossbow should do more damage
* [+] aiming skill - determines accuracy of firearms
* [+] change spellbooks to be a single object ("spellbook")
- [+] call wind spell
- [+] make plants boost power of druid spells
- [+] secret iron door showing up as '.'
- [+] table shoudl be misc, not dfeature
* [+] implement sound volume.  1 - xx
* [+] some monsers have f_varlevel. v0 = max.
- [+] implement 'say'
* [+] bandits should demand a bribe (based on their hit dice)
* [+] replace graph paper with cartography skill
- [+] lightning bolt (air, goes THROUGH all lfs until the target one.
      less damage than fireball though.)
- [+] no casting spells while prone
Initial world map implemention.
- [+] maps need flags.
* [+] when in world map, calculate rarity differently based on distance
      from 0,0
* [+] allow walking off edge of forest to new map areas
2011-05-19 20:30:58 +00:00
Rob Pearce 300f1637b3 - [+] can't go up to forest now!!!!
* [+] implement points:
* [+] listobs() printing nothign when i die...
- [+] use nextmap again.
- [+] make 'grass' cells burn to dirt
- [+] bug in checking screen chars.
- [+] NOW why isn't screen clearing after exiting inventory?
* [+] in drawlevelfor()
- [+] CRASH going down stairs to dlev 2.
- [+] outside light - 6pm -> 6am = DARK
- [+] outside 6pm-7pm = getting dark
- [+] outside 6am-7am = getting light.
- Initial forest implementation
	- [+] all grass
	- [+] lots of random trees
	- [+] add monsters / objects
	* [+] more forest objects
2011-05-16 02:03:25 +00:00
Rob Pearce 858a264b07 * [+] need to set "needredraw" every time we exit:
- [+] make eating take longer - depends on lf size and food sizes
* [+] stop eating if something attacks you!
- [+] change spell code to cope with caster = NULL!!
- [+] why are rooms never more than 2 high
* [+] traps
* [+] eating bug again
* [+] disarm trap skill?
- [+] lots of needredraw bugs
- [+] bug with cursor jumping around lots
- [+] draw darkened visible cells in blue
* [+] shadow cloak
- [+] tree shouldn't prevent resting!
- [+] make plants not attack druids
* [+] cooking
- [+] stop eating if your eating object is no longer with you
* [+] FLAG CORRUPTION BUG
- [+] pet walking back and forth on rotted objects
- [+] purified food shouldn't decay anymore.
- [+] plants shouldn't sleep
- [+] RESTING on statbar not being cleared. the add of f_interrupted
      was clearing statdirty before f_asleep got removed in killflag().
- [+] AI:  don't eat if in battle
- [+] reduce projectile damage
- [+] show raceclass in statbars
- [+] smoke should make you cough.
- [+] when going up levle, only prompt for spells you can cast?? (don't
      show "NOTCASTABLE")
- [+] Your young hawk dies.  The stirge releases something!
- [+] sleeping thigns shoudn't follow you up/down stairs.
- [+] when throw'ng an object, don't let it stack (otherwise we might
      destroy too much)
- [+] don't draw "c  - " for nopickup objects.
- [+] saving throw for traps if you know about it.
- [+] druid - get xp for calming animals
- [+] rogue- get xp for picking locks, disarming traps.  
- [+] metal should be immune to most damage types
* [+] make heavy blow need HEAVY weapon, not bashing.
- [+] can't rest/train while levitating!
- [+] gas traps only go off once.
- [+] bug: The goblin throws a boulder at you.  A boulder misses you.
- [+] don't give short sword skill to wizard.
- [+] hearing range based on listen skill
* [+] coldness disease:
- [+] CRASH when swapping places
- [+] bug: i can teleport into an impassable object!
- [+] add: "really target (your ally)?"
- [+] give wizards school-based skill instead of manaspike + wildmagic
- [+] LevUp still not being cleared!!!
* [+] why is air wizard being prompted for call lightning at level 2???
* [+] summon weapon (summoning)
- [+] hold portal (mod)
- [+] reveal hidden
- [+] stench (death)
- [+] frostbite (minor but direct cold damage. 1dpower. maxpower 3)
- [+] grease (modific) creates oil in a circle
- [+] fear (death)
- [+] seeinvis (div)
- [+] locate obejct (div) tells you where a seen objcet is.
- [+] swap places (transl) "twiddle"
- [+] fire brand (fire, melee attaks deal fire damage)
- [+] iceedge
- [+] lore (div, temporary knowledge from a particular school?)
- [+] icicle (cold, deals cold dam and knocks enemies away)
* [+] chill (ice, 1d3 damage per exposed body part)
- [+] hail storm (ice, big damage in area)
- [+] wall of ice (creates icy wall, hp based on power)
2011-05-12 01:49:35 +00:00
Rob Pearce 810ab99662 * [+] always add webs if there are randomly generated spiders on a level
- [+] non-wood doors
    - [+] iron
- [+] only interrupt rest for hunger if it's 'starving' or 'vhungry'
- [+] limit the amount of jumping we can do from athletics skill.
- [+] no message when i lockpick with a -6 combat knife.
- [+] make small corpses give much less nutrition!
- [+] high unarmed skill should give you unarmed attacks with a
      1-handed weapon.
- [+] dual weild
    - [+] if you have twoweapon skill, when you weild a weapon, say
          "weild as secondary weapon? y/n"
    - [+] in attackcell(), check if we have a weapon in our second hand
          AND are skilled in twoweaponing
    - [+] if so, get an attack with both, but with an accuracy penalty
          (until adept level)
    - [+] make sure shiedl code doesn't accept weapons!
- [+] knockback() can now knock back other lfs that you hit on the way
* [+] faster resting obs (only via R)
- [+] replace F_RESTING with F_ASLEEP. v0 = onpurpose. if v0, you wake
      up when at full hp/mp/etc
- [+] implement F_TRAINING with traincounter
- [+] don't say 'rest until nearby allies ar eheald' if they aren't
      damaged
- [+] make listen dififculty check dependant on distance to noise
- [+] doesn't make sense for druid to be a vegetarian. use "can only
      eat meat when hungry"
- [+] @@ - combine acc+dmg.  ie.  "weapon: mace (63%,2-9dmg)
- [+] @@ - show both weapons if dualweilding.
- [+] porcupine shoudl have F_SHARP corpse.  implement F_CORPSEFLAGS
- [+] create monster - "giant ant" making "giant antlion"!
- [+] giant porcupine
    - [+] implement
    - [+] should attack ants on sight - f_hatesrace
        - [+] if race=hatesrace or baserace = hatesrace, will attack it.
- [+] gust of wind - blow obs away!
- [+] thorns (grow spikes, attackers take dmg)
    - [+] f_retaliate, v0=ndice,v1=dsides, v2=damype, text=obname
- [+] major healing (new spell)
2011-05-05 03:12:52 +00:00
Rob Pearce b18dea83a3 * [+] bug: secret doors revealed when we walk away from them.
- [+] make lamps last heaps longer
* [+] web spell
* [+] spider monstrer
* [+] funnelweb:
* [+] redback:
- [+] if you are wracked with pain, don't clear msg
- [+] check rarity for spiders
* [+] attack/defense mod if there is stickiness in your square
- [+] replace "sticky" with "restrictive"
* [+] make some mosnters start hidden
- [+] adjust spot checks basd on distance
- [+] ensure that attacking stops you hiding
- [+] casting spells stops you from being hidden
- [+] hidden mosnters shouldn't move unless their victim is ADJACENT.
- [+] hidden mosnters shouldn't cast spells, throw missiles, etc unless
      their victim is ADJACENT.
- [-] XP CALC
    - [+] funnelweb and redback are the same.
    - [+] check this is right...... i want funnel web to be worse.
    - [+] make hitconfer check in calcxpval take lifetime into account
        - [+] ALSO assign an xp rating to each hitconferred flag.
        - [+] hardcode this.
* [+] entangle spell
- [+] reveal secret doors if you see them get damaged.
* [+] make askcoords list restrivitce objects
- [+] ACTUALLY make vines not damaged by struggling
* [+] object descriptions, a/an needs to change if showing condition: 
      "a battered entangling vine"
- [+] wizard levelled up and was prompted for "WISH, GIFT"! shouldn't
      happen!
- [+] The human diety reads a blessed scroll of create monster! -- but
      nothing happens??
* [+] throw code
- [+] wizard:  ask for school specialty at start, from:  fire, ice, xxx
      ?  You get this + WILD.
- [+] describe varpower spells
- [+] fix mp cost for varpower spells
- [+] we're not stopping running at staircases anymore  for some reason.
- [+] CHARGE ability (like swoop but don't return to original positino)
- [+] need to honor f_canlearn when displaying new skills to learn!
- [+] ai:  if we are going to player's last known loc (via targetcell),
      abandon if we can SEE the player!
- [+] make shatter() into a function
- [+] oil potion makes oil puddle whan smashed
- [+] make flammable objects be able to convert to others
- [+] replace 'magic item usage' with 'channeling'
- [+] a cloud of darkness descends.  this is a *cursed* wand of light.
- [+] spiders shouldn't be able to be stuck in a web!
* [+] spells should be able to have MULTIPLE schools.
- [+] don't bleed into walls
- [+] in @M, use colours to show which spells are too hard so far (ie
      cost > maxmp)
* [+] in @M, use schools that you know
* [+] after loading game, barbarian is getting an extra attack?
          You miss the eyebat.  You punch the eyebat.
- [+] show objects on top of stairs
- [+] stuck mosnters must pass a saving throw to follow you up/down
      stairs
    - [+] genericise:  trytomove(lf)
* [+] add more snakes
- [+] undead can't eat or drink? or MOST undead can't.
* [+] why can MONSTERS shoot webs through things? (but I can't)
- [+] barkskin - doesn't reduce max mp enough?
- [+] The skeleton touches a fuming aqua potion [tried] then recoils in
      pain!
      The skeleton drops a blessed fuming aqua potion [tried].
      The skeleton drinks a fuming aqua potion!
- [+] why can't i use abilites anymore?
- [+] infinite loop bug due to ai only having one ignorecell.
- [+] make sleet storms rust all armour
- [+] make a kind of walkdam that hits armour
    - [+] add this as well as walkdam for: acid, fire, water
- [+] Takeoff isn't prompting properly. only showing weapons!
* [+] waterproof obs (ie cloak)
* [+] walkdambp doesn't hurt body if you have a cloak
NATURE SPELLS:
- [+] mending, heals 1d6 damage
- [+] spark
- [+] purify food
- [+] sticks to snakes
- [+] calm animals (power_d4 hd)
* [+] charm animal (works on one animal up to power hit dice, temporary)
- [+] airblast
- [+] barkskin (power +2 AR, firevuln, ongoing)
- [+] soften earth (makes ground into mud)
- [+] warp wood (damages wooden objects)
- [+] repel insects
- [+] reduce poison
- [+] web
- [+] windshield
- [+] call lightning, air
- [+] resist elements, ongoing
- [+] passwall
- [+] poisonbolt
- [+] quench (puts out a fire)
- [+] sleet storm (lowers movement, vision)
- [+] healing
- [+] cure poison
* [+] calming scent
- [+] dig
- [+] entangle
- [+] levitate
- [+] flamepillar
- [+] hailstorm.  like sleetstorm but hurts more. power d 6.
- [+] burning wave
- [+] gaseous form
* [+] knowledge skills:
* [+] force makespellchoicelist() to show spells in level order.
* [+] druid
- [+] check OBJECT rarity list (dumplev)
- [+] fix bug where heaps of books suddently appear from dlev 3 onwards
- [+] gain skills on level up for some jobs
    - [+] f_levspellschool, v0=lev, v1 = school or ANY - select one
          from that school
2011-04-23 04:27:42 +00:00
Rob Pearce 4f54fc0ef9 - [+] young hawk moving very slowly? was healing.
- [+] make monsters heal faster when resting
- [+] make pet rest when you do
- [+] allow 'R' to heal allies
    - [+] F_RESTUNTILALLIES
- [+] mindless/animal mosnters won't throw things
- [+] announceflag for attrset not working
* [+] feeblemind spell - reduces intelligence to ANIMAL.
- [+] ai: if we are carrying too much, drop something
      (non-weapons/armour first)
- [+] teleport spell should teleport any adjacent allies too.
* [+] new 'C'hat commands:
* [+] change 'resist elements' potion to 'rum'
* [+] notify when pet is low on hp
- [+] why could a pirate use a biuckler?
* [+] genericise usage of canhaveobmod!
- [+] armour mod: blooodstained.  adds scary.
- [+] CRASH when you have two weapons and catch a glowbug in your flask.
* [+] potion of restoration onto frozen axe:
- [+] slow spell repeated message: The brown snake looks sluggish.  The
      brown snake is now moving slower.
- [+] make you only hear one thing each turn ?
- [+] always draw impassable objects on top
- [+] special ash
    - [+] exploding powder - explode in radius 1 around player
          (including player)
    - [+] concealing powder - create smoke cloud radius 3 around player
- [+] redo levelup logic.
    - [+] trigger LevUp when you have 'newskillready'
        - [+] announce when you gain level.
    - [+] can't gain more experience when LevUp!
    - [+] only update maxhp/mp from new level after you train
- [+] diety can't use abilities. fixed.
* [+] when i exit from@S output, statbar isn't redrawn
* [+] make SKILLS page show which skills you can learn.
- [+] In @s, downline isn't showing the title on the second page of
      SKILLS...
- [+] show POWER in @M spells page
    - [+] ###---
- [+] show cost RANGE in @M for varpower ones
    - [+] need getspellcosttext(spellid, power, buf) function
    - [+] 25-62MP
- [+] leftover rubbish chars at end of ---- in doheading()
- [+] mosnters should follow you up/down stairs
* [+] different poison types
- [+] implement tremorsense (like darkvision butrun can't be blinded
      etc)
* [+] implement HIDE ability
* [+] Thief job
- [+] if you walk into a room and every cell is lit, reveal it all.
- [+] auto-learn jump ability with high athletics skill
* [+] secret doors
- [+] items to spot secret doors
    - [+] gem of seeing
        - [+] ENHANCESEARCH
        - [+] F_SEEINVIS
    - [+] spell:  "reveal hidden" 
        - [+] shows secret doors
        - [+] removes invisibility
    - [+] wand of detect hidden
        - [+] ... casts the spell
2011-04-13 23:44:29 +00:00
Rob Pearce c32f93294c * [+] calcxp
- [+] more low power rings
- [+] don't think book names are being randomized - always 'azure'
- [+] charm moidifications
- [+] possession modifications
- [+] troglodyte being made with 180180108180180 mp!!
* [+] gain skills on level up for some jobs
- [+] only magic/blessed weapons can hit noncorporeal things.
- [+] monsters shouldn't walk into walls to attack things there.
- [+] The skeleton slams you with a boulder.--More--Innate Attack:
      boulder . was a bug in HASATTACK
- [+] no polymorphing into undead.
- [+] missiles shoudl always miss noncorporeal things!
- [+] need OFFMAP as well as WALLINWAY
- [+] can't possess undead
- [+] less charges in wands
- [+] when a thrown potion misses, "xx is destroyed" rather than "xx
      shatters!"
- [+] instead of "act:slow mv: slow", just "slow"
- [+] sprinting:  "you are exhausted" isn't triggering statdirty
- [+] On status, use 'v.fast' 'ex.fast' usbtead if "Very" etc
- [+] allies shouldn't attack peaceful things.
- [+] make fleeing lfs use stairs
- [+] undead can't start with blessed objects.
- [+] undead can't touch blessed objects
* [+] GHOST
* [+] PET code
- [+] can't trade items if your ally has NOPACK
- [+] make sure shared xp is working
* [+] firstaid skill shows extra mosnter hp info
* [+] more low power wands - at the moment it's always light or pwoer
- [+] pets: say 'your xxx' instead of 'the xxx'
* [+] pets: dancing weapons should be pets
- [+] need f_allyof as well so that allies will stay close.
    - [+] difference is that allies aren't called "your"
    - [+] AND no alignment penalty for attacking allies?
- [+] in lfstats, move physical stuff BACK to first page!!!
- [+] remove ally/pet flag when you die
* [+] pirate job
* [+] let firearms go into primary hand. test with PIRATE.
- [+] when fighting with a non-weapon: "you whack the xxx with xxx"
- [+] add specific attack verbs to weapons
    - [+] F_ATTACKVERB, dampct between v0 and v1, "stabs"
- [+] make showlfarmour() use colours
2011-04-11 05:05:45 +00:00
Rob Pearce 975d3c6e4f - [+] replace usage of controller == ...
- [+] change f_dam to use text field and combine with f_damtype
- [+] reduce unskilled weapon penalty
* [+] war cry - all make morale check vs user  or flee
* [+] change 'scare' fail results:
- [+] once you something flees form you, it is immune to fear from you
      for a while.
* [+] hurricanestrike ablity
- [+] check whether thrown poisoned dart works. didn't, but does now.
* [+] multiple staircases
- [+] CRASH - infinite death, then vomitted, then crash.
- [+] more wand of wonder effects 
- [+] armour skill
- [+] f_deaf
- [+] add size to lfstats
- [+] now runnign checkobdeath for lf's pack before checklfdeath.
* [+] add "{tried}" when you've traied an object but it's not ID'd
- [+] listening - at high levels this should let you detect life around
      you?
* [+] add more rings
* [+] 4leaf clover
* [+] possession spell
- [+] crash when getting job skills. You have learned the ability
      'warcry'.  Your training is interrupted!
* [+] nothing is doing much damage.
- [+] move physical details to 'effects' tab
- [+] make hexer appear with other goblins
- [+] brown snake shouldnt slip
- [+] make kobolds more common
- [+] make poison gas green
- [+] wand of invisibility should get known if we have seeinvis
- [+] when learning new skills, use askchoicestr
- [+] sunglasses should have f_noqual
- [+] make haste/slow more powerful
- [+] F_MAXATTACKS
* [+] hiddenname colour issues.
2011-04-08 03:18:54 +00:00
Rob Pearce 7e8aecf958 - [+] bug: "10 flaming arrows ##########\n are no longer on fire"
- [+] bug:  when wearing no boots: "A small puddle of water hits you!"
- [+] animated zombie keeps changing colour
* [+] wizard special case:
* [+] bug - walked down stiars on top of a monster
- [+] change "haslof" to come from a cell
- [+] replace WE_NOTSOLID with WE_WALKABLE
- [+] show hp/mp in colour
- [+] invis potion should always traget user
- [+] generic functions to curse/uncurse an object
- [+] not prompting for statgain after training properly. fixed.
* [+] pressing a key should interrupt resting
* [+] implement doublebuffering for screen
- [+] don't show attack dmg for mosnters
- [+] reduce sprint time
- [+] if a monster is chasing someone (ie has F_TARGET), then don't
      consider cursed ob ells as valid
- [+] don't hear noises when in battle
- [+] colourise attribs on status bar
* [+] askob/askobmulti
- [+] "lockpick with what" showing too much
* [+] inventoy colours
- [+] "masterwork stick" ?!
- [+] poison:  save to get rid of poison should be HARDER than save to
      prevent getting it
* [+] why are xats starting off carrying objects ?
* [+] small chance of catching a thrown missile if you have very high
      dex
* [+] if you polymorphed on purpose, have a "revert to original form"
      ability
- [+] nausea should only affect humanoids
- [+] BUG displaying knowledge when it goes longer than 1 screen.
- [+] monsters are attacking each other again! fixed?
* [+] BUG: when i load a game, i gain all knowledge!
- [+] more pole weapons
* [+] disarming weapons
* [+] tripping weapons
* [+] MORE ISSUES with askobject
* [+] validatelf
- [+] fix bug with poison triggering too often
- [+] chance of retching when nauseated. no hp loss, but takes time.
- [+] monsters shouldn't throw stuff if they don't have lof.
- [+] fix crash in knockbackob->fireat, caused by thrower == null
- [+] let high powered KNOCK knockback creatures again ?
- [+] test function to dump out:  dungeonlev   
      which_monsters_can_appear
- [+] firstaid tells you how long poison will last and whether it's
      lifethreatenting?
* [+] high level listen gives more info
- [+] wind shield spell
    - [+] repels all missiles of speed <= power 
- [+] variable level spells
    - [+] F_VARLEVEL
    - [+] when you cast, say "cast at how much power" with choices
          "Power II (5 MP)"
    - [+] show in spell list:  "5-10 MP"
- [+] replace ARBOOST with MAGICARMOUR
- [+] needan()
* [+] move psychic shield check into losehp
- [+] high level detectlife should show actual lf glyphs
- [+] control which jobs can learn which new skills.
    - [+] F_CANLEARN xxx
- [+] remember last target from spells
    - [+] askcoords = does lf for lastlftarg exist? if not, set it to
          null
    - [+] if so, start with it
    - [+] when you pick one, set it.
- [+] F_SHIELDPENALTY - modifies accuracy.
* [+] stop wizards from using shields
2011-04-06 07:27:55 +00:00
Rob Pearce 69d14c05fe * [+] goblins aren't opening doors...
- [+] xat shouldn't be able to open doors!
- [+] semicontrolled createmonster
* [+] implement semicontrolled teleport (can pick the general direction)
* [+] change how semicontrolled teleport works
- [+] make identify/remove curse more common
- [+] make minorheal/heal more common
* [+] NOTDONE. maybe reduce the amount of damage which AR blocks a bit?
      i got to 30ar very fast! (ie -45% dam)
* [+] make a special case for F_FLAKJACKET
- [+] BUG: glowbug is causing PERMENANT light, not temp!
- [+] diety ability - levelup
- [+] new damtype:  necrotic
- [+] drain life spell
- [+] make water evaporate
- [+] BUG in validating target cell. was asking a monster for input 
* [+] boots get wet if you walk in water
- [+] why does oil lamp and pil lantern make the same range of light?
- [+] fixed another vending maching crash
- [+] crash due to sprinting?
- [+] 2 blessed flask of battery acids
- [+] "This is a wand!" - don't use code for hiding names in the dark!
* [+] animals shouldn't eat their own race!
- [+] gem of seeing costs nothing!
- [+] frozen weapons do +1d4 cold damage
- [+] allomancy/psionics don't need spellcasting
- [+] poison isn't being announced on mosnters?
- [+] "you are full" only interrupt if we went < normal (ie peckish
      starving etc)
- [+] only F_HUMANOID creatures can wear armour / use weapons
* [+] what does a masterwork bow do?
- [+] implement strength requirements on weapons
- [+] UNDEAD cannot be poisoned by eating corpses!
- [+] ai lfs shoudlnt' eat tainted food
- [+] change how gravboost works wrt movement
- [+] smart ai lfs shouldnt move when in pain
- [+] don't stop walking if the only things there are non-pickupable
- [+] make mosnters swap places with each other if they are the same
      baseid
* [+] scroll of permenance
- [+] make more monsters have gold
* [+] can learn novice level weapon skills by using one a lot
* [+] finish hawks
* [+] add colour
* [+] job attribs aren't working
- [+] pile of ash has weird glyph!
* [+] when you learn the first rank of some magic skills, you get a
      spell with it
- [+] add colours to statbar
- [+] can only "stop on xxx" if you have feet
- [+] monsters shouldn't attack other to get to wanted objects.
* [+] "xat throws a knife"
- [+] manaspike doing no damage to giant newt
- [+] assign colours to rings
2011-03-31 23:54:44 +00:00
Rob Pearce 290d91677e * [+] backstab
- [+] monsters start asleep and make spot checks ?
    - [+] make them start asleep 
    - [+] then make this random
    - [+] sound will wake them (ie. "makenoise")
    - [+] when you move, make SC_STEALTH check. if you fail, you make
          noise!
- [+] must pass LISTEN check  OR have los to hear something.
- [+] "the blowfly falls asleep" "the blowfly appears" when summoned.
    - [+] don't show 'falls asleep' while being created!
* [+] don't start summoned mosnters asleep!
* [+] clean up bresnham functions
- [+] hearing - instead of just using distance, use distance modiied by
      # of walls!
    - [+] getcelldistsound() - each wall counts as an extra cell!
- [+] add WALK/FLY noises to all monsters!
- [+] don't show 'you hear xxx' when resting.
- [+] extra damage for weapon skill (up to 50% extra)
- [+] make broken glass crushable
- [+] only interrupt rest for non-peaceful, non-friendly monsters
- [+] save to fight off poison
* [+] beholder is never using its BITE attack
* [+] need a price for manuals!!
* [+] change"dobresnham" to populate an array of cells
- [+] make ai cast animate metal (if they ahve a second weapon)
- [+] implement getallegiance() to clean up isfriendly / ispeaceful etc
- [+] bug - f_else f_ifpct etc not working in startobs
* [+] OT_S_CHARM
- [+] update askcoords to show "weilding x AND Y"
- [+] stop enemies from throwing firearm ammo somehow
* [+] implement 
- [+] pacify spell
- [+] make spellbooks less common
- [+] detectmetal not wokring. fixed.
- [+] detectobjects spell
- [+] cleanup using flagcausesredraw()
- [+] increase odds of weapons in rooms, and max ob count in rooms
2011-03-24 05:09:31 +00:00
Rob Pearce cc969bb800 * [+] mark more spells as AI_CASTTOFLEE
- [+] simplify AI spell code
- [+] sense surroundings - use power for radius!
- [+] OT_A_LEARN for dietys
* [+] getspellname(spellid, power)
* [+] max powers
- [+] Created monsters need f_xpval = 0
- [+] createmonster - let player choose the type at high power (ie. 8)
- [+] peaceful monsters are still attacking other ones!
- [+] explosions knock you back from centre of it!
- [+] manuals - teach you a skill, or enhance it.
- [+] wand of weakness not being identified.
* [+] more wizard mp reegn fixes
- [+] if you walk into a wall which you can't see, you DO lose hp.
- [+] maybe make it you CANT always see your cell?
- [+] "you feel" instead of "you see" if you have no light source ?
- [+] make it so you dont need LOS to cast spells
* [+] if you arrive in a dark cell after movement show msg
- [+] cannot INSPECT when blind.
* [+] reduce mp heal skill check difficulty since it takes longer
      begore triggering.
- [+] replace gamestarted/loading with gamemode.
- [+] fix spellpower calculation during validation of races
- [+] let "produceslight" go non orthogonal for radius=1
* [+] more frequently appearing light objects
* [+] allow use of oil potion to unjam doors too.
- [+] don't behead tiny/small things
- [+] rats / batsshould be hostile!
2011-03-18 01:25:18 +00:00
Rob Pearce 4ddc70a314 a 2011-03-10 05:47:18 +00:00
Rob Pearce 020f47b808 a 2011-03-04 01:22:36 +00:00
Rob Pearce 4f89ab33f8 - [+] monster which is horrific - penalties if you can see it! (or you
just can't attack?)
- [+] glow bug corpse in empty flask
* [+] auto hit if paralyzed/frozen
- [+] allomancer has permenant detect metal
- [+] remove detect metal spell
- [+] make detect magic last way longer (at least triple)
* [+] change scrolls to wands:
* [+] on "behead", leave head?
- [+] allomancer way to heal using metal? like absorb metal but costs
      more.
* [+] way to see spell descriptions
* [+] replace most occurensces of getmovespeed() with getactionspeed()
* [+] "sprint" ability
- [+] remove curse scroll!
- [+] need average IQ to know if something is rotting!
- [+] make mosnters rest.
- [+] create monster needs to cope with 'xxx wizard'
    - [+] ie. if no match on name, look for job suffixes
    - [+] if found, strip it, make the monsters (force no job!), then
          apply the job
- [+] rotting corpses turn into bones
* [+] Monster wizards start with a _random_ book, not flamedart.
- [+] 'R'esting bug.
    - [+] waited forever. NEver gained any hp!
    - [+] need to somehow check when resting that we _ARE_ actually
          gaining hp... ?
2011-02-15 18:21:33 +00:00
Rob Pearce 86ee482ce3 Updates 2011-01-31 19:16:13 +00:00
Rob Pearce 014d591109 update 2010-12-07 07:34:26 +00:00