Commit Graph

220 Commits

Author SHA1 Message Date
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 7cd169637c - [+] magic map should be magical
- [+] crash when generating monster warriors
- [+] bug: calling taketime twice when attacks fail?
    - [+] (once in attackcell(), then again in attacklf() or
          attackob()) 
- [+] weapon changes:
    - [+] in general, lower accuracy for piercing weapons
    - [+] in general, raise accuracy for slashing / bashing weapons
    - [+] long piercing weapons (ie. spear) give you a 'thrust' ability
          (attack 2 cells away)
    - [+] long slashing weapons cannot be used if < 3 open cells around
          you (f_needspace)
- [+] maybe: you can't "hear" your unseen ally if they are asleep 
- [+] need to draw after flying things swoop away, in case they block
      your view.
- [+] raceslaying weapons
    - [+] dragon - dragonslaying
    - [+] animal - butchering
    - [+] plant - of blight
    - [+] undead - of divine power 
    - [+] magic - of antimagic
- [+] brand restriction
    - [+] brands:  f_onlygoeson ot_xxx
    - [+] brands:  f_onlygoesondt dt_xxx
    - [+] check this in brandappliesto

- [+] "pyromania" spell
    - [+] for all fires or burning objects in sight: (implement
          getflamingobs() )
    - [+] "the fire flares!" (fire objects regain full hp, burning
          flags gain lifetime)
    - [+] large fire obs:surround it with smaller ones. 
    - [+] small fire obs: make bigger
    - [+]  burning obs: make a small fire
    - [+] give it to red dragons
    - [+] ai casting... (if fire in sight)
- [+] blue dragon - lightning
    - [+] ancient has chain lightning
    - [+] flood ? lowlevel
    - [+] gust of wind
- [+] white dragon - cold
    - [+] pea soup
    - [+] hailstorm
    - [+] ancient: absolute zero ?
2011-11-07 19:39:43 +00:00
Rob Pearce 39af842e74 - [+] bug: when ally can't see you it goes to sleep
- [+] after waking it just goes to sleep again!!!
- [+] bug:npc warriors aren't starting with a weapon
- [+] shouldn't be able to shieldblock if youre asleep!!!
- [+] allies sohuld announce what they are doing
    - [+] "I'm attacking a goblin"
    - [+] I just killed a goblin
    - [+] I need some rest soon...
    - [+] make sure only HUMANS do this...hu
- [+] F_EXTRADESC v0 should be 'order'.
    - [+] makedesc_skill should honour this
    - [+] makedesc_spell 
    - [+] same with other makedesc() functions
    - [+] auto-inc this when adding them.
- [+] allies not properly following me downthe stairs
- [+] armour that can cover multiple body parts
    - [+] f_goesonmulti
    - [+] multiple f_equipped flags.
    - [+] handle multiple f_equipped in takeoff()
    - [+] all required bodyparts  must both be clear
    - [+] if not, prompt to remove both things.
    - [+] check all code for f_equipped copes with multiple
          occurences...
    - [+] display as:  f - a wetsuit (worn over body and on legs)
    - [+] update io.c.  "it is worn over xxx and yyy)"
- [+] heat metal spell
    - [+] weilded metal burns hands and you drop it (unless immunte to
          fire/burn)
    - [+] metal armour damages you (1-4 each)
    - [+] metal lifeforms take huge damage
- [+] all lifeforms should have at least novice level knowledge of
      their own raceclass
- [+] new raceclass - dragons
    - [+] define it
    - [+] define skill for it
    - [+] make jobs know the skill
- [+] red dragon
    - [+] high armourrating
    - [+] swoop
    - [+] fly
    - [+] breath weapon
    - [+] spells
        - [+] heat metal
        - [+] fireball
        - [+] burning wave
    - [+] want gold
    - [+] immune to fire
- [+] red dragon hatchling
    - [+] generally lwoer power, only has heat metal and spark ?
- [+] spellcasttext for individual spells
- [+] ancient red dragon
    - [+] higher hp and armourrating
    - [+] more damage
    - [+] more spells
2011-11-07 02:12:04 +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 1222ee9550 - [+] when saying "learn a new spell/psionic power/etc", show your
maxmp in the prompt?
- [+] manriki - throw it, tripand take time if you hit (and they fail a
      trip check withbig penalties, or if they're flying)
    - [+] f_tanglemissile
- [+] throwing net (add f_sticky on hit)
- [+] tweak throing accuracy
- [+] shadowcats now only produce smoke puffs, not clouds
- [+] giant fly corpse should be poisonous
- initial work on climbing ability....
2011-11-02 01:10:50 +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 7f809977ce - [+] chage skill descriptions to use Accuray Rating numbers, not
percentages
- [+] change hardness calculation
- [+] assertion roomidx failure
    - [+] map roomids are geetting screwed up.
    - [+] especially when i do RESTART MAP GENERATION.
    - [+] possible fix is in place...
- [+] maybe make all monsters always have close to max hp
* [+] change weapons to use 'damage rating'
- [+] when reading a spellbook, notify which spells are too hard. OR
      don't even list them?
- [+] print "it is too powerful for you to cast" in red
- [+] don't show "[magic]" on identified objects
- [+] why does agility of 12 give +3 accuracy??? should be lower
- [+] why do i suddenly show about rings???
    - [+] bug in giveobflag()
    - [+] fixed ???
- [+] why could i learn a level 4 fire spell (flame pillar) when my
      fire mgic skillw as only lv3 (adept) ???
    - [+] bug in getspellpower's enforecement of max spell levels
- [+] higher level spells should cost more to cast.
    - [+] l1 = 1
    - [+] l2 = 2
    - [+] l3 = 4
    - [+] l4 = 8
    - [+] l5 = 16
    - [+] l6 = 32
- [+] lurking horror missing a weapon
- [+] in makedesc_spell, put mp cost in red if you can't cast it
2011-10-24 16:46:19 +00:00
Rob Pearce c79a0403c2 - [+] wizard staff should deal 1 extra magic damage as long as you can
pay it
    - [+] use "enchanted" weapon mod?
    - [+] test
    - [+] why aren't obmods working on start obs?
    - [+] why isn't wizard starting with staff weilded
        - [+] because gamemode was GM_LOADING
        - [+] use something different during character gen.
- [+] use different text for followup weapon hits (extradam)
    - [+] "you hit the xxx" (first one)
    - [+] "the xxx burns" (second)
    - [+] "magic blasts the xxx"
    - [+] "the xxx is chilled"
    - [+] move all of this into construct_hit_string(lf, victim, wep,
          damtype, dam, damnum)
    - [+] test
    - [+] move getkillvebr()  and getattackverb() into text.c
    - [+] make attackob() use the same code
- [+] spellbooks now contain multiple spells
    - [+] they have an associated SKILL (not spell)
    - [+] they have contents (a list of spells)
    - [+] hiddenname isn't getting assigned
    - [+] contents aren't getitng filled in
    - [+] when you read them, you learn all the spells (if you can)...
          OR prompt what to read
    - [+] DONT give wizards spells on levelup anymore?
- [+] gods should say WHY they are angry.
    - [+] angergodmaybe, angergod need to take enum GODANGERREASON
        - [+] change definitions
        - [+] change calls
    - [+] add new godsay text into angergod()
2011-10-20 17:15:24 +00:00
Rob Pearce 168a3c49ff - [+] bug: wrapprint() needs to cope with long lines which wrap!!!
- [+] in progress...
    - [+] currently hanging - fixed.
    - [+] once done, make it not add spaces
    - [+] add spaces manually in showlfstats.
    - [+] once done, change all code to use wrapprint instead of
          textwithcol
    - [+] still an issue - everything in my inventory is coming up bold!
    - [+] missing the last word again....
- [+] remove requirement that you have to be able to pick up an object
      to eat it
* [+] make ninja weapons be "exotic" or ninjitsu
- [+] ghost missing melee attacks
- [+] make oil lamps last HEAPS longer too
- [+] @ should include weapon bonuses for skill/str
- [+] "headless bones" when you kill a skeleton??
- [+] allow for change of verb instead of always using "Killed by xxx"
- [+] only call maketried() for the player
- [+] don't show 'really attack the peaceful something' if you can't
      see it!
- [+] vault: suply closet
    - [+] 1 sq room with tools
- [+] why is hecta's pain hitting the player?
- [+] make it so you can only Offer to gods you ahve prayeed to?
- [+] recalc light on:
    - [+] darkness/light spells
    - [+] eye destroyed
- [+] prevent tumble/jump while grabbed
- [+] prompt to drop when wearing new armour
- [+] canine tracking should be a potion, not a scroll
- [+] some '?' help commands not working.
- [+] add f_critprotection to armour
- [+] crash when tumbling into an lf
- [+] incrase cellknown time when no cartography skill 
- [+] change disarm and trip into abilities:
    - [+] disarm
    - [+] trip
- [+] ninja
    - [+] skills:
        - [+] athletics (enouhg to tumble)
        - [+] throwing
        - [+] unarmed
        - [+] long blades
        - [+] stealth
    - [+] objects:
        - [+] smoke bombs
        - [+] shuriken - another missle. higher dam than darts.
    - [+] how will this be different from the rogue class???
        - [+] disarm
        - [+] trip. maybe make trip polearms confer this ability?
        - [+] flip .
2011-10-18 23:08:14 +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 4eeb8cfe43 - [+] get rid of "sorcery" skill, and move 'study scrolls' ability to
cmoe from lore:arcana instead
    - [+] rename magic skillls to sorcery:fire etc?
    - [+] adjust spell power calculation to take lack of sorcery skill
          int oaccount
- [+] allow '\' during getchoice() and getchoicestr()
    - [+] so that we can see what we have identified
- [+] lower metabolism while lmeditating
- [+] poisonous mushrooms
    - [+] toadstool - poisonous
    - [+] shiitake - normal
    - [+] recognise via cooking skill
- [+] if you add a blood ob, 1 randmo piece of armour in the pile
      becomes bloodstained
- [+] accuracy boost when attacking something who has grabbedyou
- [+] lessen gravitiy should prvent falls
* [+] bug:
- [+] add job descriptions
- [+] handle ESC in askchar
- [+] You attack the helpless the xat!  You flatten the xat!
    - [+] "the helpless the xat"
    - [+] shoiuldn't use "flatten" sinec we're not killing it
- [+] You attack the helpless xat!  You kill the xat!
    - [+] ...but  it wasn't dead!
- [+] flame pillar scroll no longer works
    - [+] not asking for target.
    - [+] use castspell
- [+] cope with 'ESC' presses during normal travel
- [+] allow "maycancel" in askchar
- [+] make wizards NOT automatically know wild magic
- [+] is F_MPMOD working?  check with elf wizard.......
    - [+] now it is.
- [+] bug: create an elf, go over it, v - CRASH in makedesc_race.
- [+] removeob() should update burdened status
    - [+] ie drinking a potion
- [+] wizards start with a staff and a pointy hat
- [+] don't "stir in your slumber" if meditating
- [+] elves should have higher mp
- [+] dwarves should have lower mp
- [+] when monsters fail to open a door, abandon their targetcell
    - [+] might be able to jsut make failing a dooropen count as a move
          failure.
- [+] HiGrv didn't stop me from moving? i passed the skill check, need
      to have a msg telling me this.
- [+] race descriptions. 
    - [+] add the descriptions
    - [+] ? in @@ shows info on them.
    - [+] (add ?=help in the bottom when in @ mode regardless of
          showall)
- [+] make clouds expand as they disappate
- [+] modify gethitstokill() to take "useevasion" and "usearmour" as a
      parameter
- [+] at adept lore, you get threat comparison.  at skilled level you
      get exact hit turns.
- [+]  make threat calculation use gethitstokill
- [+] TEST new threat calc
* [+] way too easy to notice traps on chests from 4-5 cells away, with
      only novice perception
- [+] make cloudkill create puff of poison gas rather than a cloud
- [+] attacking should count as movement (ie dont regen stamina)
- [+] need more body bash criticals.
    - [+] torso bruised (acc penalty)
    - [+] torso bruised badly (higher acc penalty, low dam penalty)
    - [+] ribs broken (huge acc penalty, med dam penalty)
    - [+] lungs winded (stam=0 onetimeeffect, fit -1, only lasts a 2-3
          turns)
- [+] should stop flying when you lose ocnsciousness...
- [+] warn before moving with f_pain as well. maybe cahnge
      confirm_injiury_action ???
- [+] extra warrior skill:  aimed strike
    - [+] -50%acc
    - [+] auto crit on the part you select (if you hit)
2011-10-12 21:15:48 +00:00
Rob Pearce 4101e7c066 - [+] shift+backward shouldn't let you attack backwards!
- [+] if LFINWAY and not "infront", "you run into somehting"
- [+] change tumle to just take a direction
    - [+] change to take a dir
    - [+] different dirs should give different messages
- [+] abilities should only charge STAMINA if they were successful!
    - [+] at end of useability()
    - [+] abilityeffects miust only retur TRUE on cancellation
- [+] scroll of awareness not being used up!
- [+] lore:  at adept level, add "it could potentially kill you in xx
      hits"
    - [+] (assume no armour)
    - [+] need getweapons()
- [+] implment 'canuseweapons(lf)'
- [-] spells should only charge mp if they were successful???
    - [+] move the validatespellcell() call into castspell. 
    - [+] add f_targettedspell, tt_xx to all spell defs
    - [+] remove validatespellcall() call from dospelleffects
    - [+] test with player
    - [+] test with monsters
    - [ ] special cases:
        - [ ] blink
        - [ ] test digging...
        - [ ] invisibillity?
        - [ ] light
        - [ ] darkness
    - [ ] do i still need "frompot" in spelleffects???
- [+] new ability: flipthrow
2011-10-07 02:38:58 +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 3e7380a5b6 - [+] if you put a water object onto dirt, it should become a mud
object instead.
- [+] dynamic morale
    - [+] whenever you fail a moral check, your moral gets a bit lower
    - [+] opposite if you pass it.
    - [+] make morale checks depend more on morale
    - [+] after you flee, become timid
    - [+] in io.c, show current morale if lorelev is high enough.
          "looks scared/timid/confident"
    - [+] implement f_timid:
        - [+] (will only move into melee range if it is behind you)
    * [+] checks:
- [+] monsters can't attack while prone. always jsut stand up.
    - [+] call initiatemove even when atatcking
- [+] bug: monsters not gaining abilities frmo skills
- [+] bug when creating monsters with jobs: "xx looks foolish" etc 
- [+] tohit penalty for small monster hitting flying or levitating
      things (lower penalty for levitating)
* [+] if you are flying and get hit, you drop to the ground?
- [+] make feign death code better for mosnters
- [+] moving should cose STAMREGEN points (ie don't regenerate stamina
      if you move)
- [+] maybe: when you finish sprinting, drop stamina to -2
    - [+] until it gets back, you can't move at all
- [+] bug: stuck in moveto(), after walking up stairs to a new levle
    - [+] happened again right after "The young wolf starts sprinting! 
          The young wolf flees down the staircase."
    - [+] was getting stuck in donextturn because we weren't on the
          plaeyr's map - taketime was returning.
- [+] shield bash skill
    - [+] gain it at shieldlev beginner
    - [+] costs stamina
    - [+] pass a skill check based on shield skill and shield value to
          stun enemy
    - [+] only works if shield has hardness
    - [+] only works if you're the same size or larger than the opponent
    - [+] damages your shield (1d3 hp ?)
2011-10-05 22:08: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 ad18cf2398 - [+] player start objects shouldn't get random brands like silver!
- [+] warn before moving/attacking with bleeding injury
    - [+] leg slash = hploss form move
    - [+] hand slash = hploss from attack

- [+] warn before walking onto pentagram with blessed gear
- [+] explosion should cause dt_explosion injuries?
    - [+] massive damage to whatever armour is there
    - [+] OR if no armour:
    - [+] limbs
        - [+] lose hand
    - [+] body
        - [+] collapsed lung (fitness = 0)k
        - [+] ribcrack (like bashing one)
    - [+] head
        - [+] ringing ears (can't hear anything for a long time)
        - [+] burnt eyes (blinded)
- [+] bug: not seeing fall msg during move (fell due to leg injury)
      need 'didmsg'
- [+] getrelativedir should always return FRONT when uou have
      f_awareness
- [+] bug: shouldn't try to leave trails when inside walls
- [+] announce when armour saves you from critical hits
- [+] F_DONELISTEN isn't working now - i'm getting multiple "you hear
      buzzing to the north".
    - [+] N_FLY needs to act the same as N_WALK (ie. be NC_MOVEMENT)
- [+] make validatespellcell() work on abilities
- [+] sonic bolt
- [+] mutated bat (sonar - damage)
- [+] merloch  (sonic scream - damage)
2011-09-28 01:05:10 +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 7f33b6351c - move all definitions into data.c / data.h
- [+] monsters should start sprinting if targetlf is sprinting && we
      can sprint && we aren't sprinting
* [+] The kobold throws a potion of sleep at you.  A potion of sleep
      hits you.
      A potion of sleep shatters!  You are showered in glass shards!
* [+] in getchoicestr, when there is only one valid choice, show its
      description below!
- [+] in getchoicestr:
    - [+] remember desc_end_y
    - [+] if our typed text doesn't match, and desc_end_y is set 
        - [+] blank out those lines
- [+] in ], show letters and let you view amrour
- [+] Still occasionally have bugs where no up stairs are placed in the
      first level!!!!!
    - [+] put in debugging to show if we ever destroy a staircase
    - [+] test when it happens again.....
- [+] for "pentagram pulses black", if you can't see the estination,
      still say "your xxx flies away"
- [+] change listen code: you can only hear one _footstep_ noise per
      turn, but any number of other things.
- [+] instead of jobs replaceing hitdice, make them _modify_ maxhp by a
      certain %age. ie. f_modmaxhp 80% to get lower.
    - [+] jobs can no longer have F_HITDICE
    - [+] instead, they have F_MAXHPMOD
- [+] why am i getting wet and drowning while flying??
- [+] show f_canwill SPELLS under abilities, not spells??

- More playable races
- [+] need f_playablerace
- [+] can pick when you start the game (before you pick job)
- [+] human
- [+] implement f_jobattrmod
- [+] MOST JOBS SHOULD USE F_JOBATTRMOD instead of F_STARTATT.
- [+] ALL PLAYABLE RACES must have FULL sets of STARTATT 
* [+] elf
* [+] dwarf
- [+] aviad (birdfolk)
    - [+] can fly
    - [+] vuln to electric attacks
    - [+] vuln++ to fire
    - [+] ---str
- [+] cyborg
    - [+] +str, +int, +dex, +con
    - [+] ---cha
    - [+] -wis
    - [+] vulnerable to lightning, water,cold
    - [+] cannot use any magic, or med-high chance of spell failure
    - [+] bleeds oil rather than water
    - [+] see exact hp damage (f_extrainfo)
    - [+] tech usage.
- [+] remember race in highscores.
2011-09-19 01:47:35 +00:00