Commit Graph

100 Commits

Author SHA1 Message Date
Rob Pearce 134542ed8f Adding a bunch of files which say they're modified, possibly just because I'm on a new system. 2021-11-16 11:23:38 +11:00
Rob Pearce a23bedde10 *When using a towel, make it able to dry off objects on the ground.
*When using a towel, make it wet based on how much you dry off.
*Create Water description should specify that water is created on the ground.
*when creating "a wet xxx", make its wetness time be the maximum.
*fixed bug where F_WET obmods would not show up after the v1 timer value changed (added flags->obmodignore[])
2016-06-04 10:20:34 +10:00
Robert Pearce e9a2ccb2c8 - Fixed heaps of memory leaks and bad memory usage. This should finally fix the flagpile corruption from 6 years ago!
- forgot to initialise brand->description
- door displaying as "leaf" - definition of knowledge->id was OBCLASS instead of OBTYPE.
- Repeated text:
        Minimum agility to use effectively: 50 to use.Minimum agility to use
        effectively: 50 to use. (bonus at 70).
- change wish text to be more meaningful
- fix failure when loading objects with a bonus from vaults/bones (eg. blessed '+5' sword)
- when raging, don't prompt to really attack when you won't gain xp
- disable flagpile checks
- Use 'interact' to use shops, not 'operate'
- Bad text: You are resistant to: projectiles[-7870t], explosives[-7870t].
- scorpions shouldn't follow you up stairs. (but giant scorpions can)
- make failed relinkob() calls return the original object rather than null, otherwise we get situations where an object becomes NULL and causes a crash.
- make cooking skill description show what size corpses you can cook.
- bug: potion of growth caused instadeath when reverting.
- bug: not showing monster abilites properly
- show raceclass in descriptions (/ v)
- make evasion only work if you're not exhausted
- Felix should be pleased by attacking people while hidden
- Not seeing felix angered messages when donating items
- Holes in roof - you now need to climb to inspect them.
- Fixed crash when hitting @ while producing light.
2016-05-31 00:21:12 +10:00
Rob Pearce 67d6d4b30b - [+] clouds of smoke (or anything gaseous) shouldn't be able to fall!
- [+] BUG: after giant ant digs a hole:
    - [+] ERROR - unlinked stairs! should have been linked during map
          creation.
          ERROR - can't find opposite end of stairs/portal!
    - [+] upstaircase on the new level is being linked to a hole.
    - [+] fixed?
    - [+] test again... (dig down, check log.txt for linking to wrong
          type)
- [+] giant ant should be able to dig dirt at will(to escape)
- [+] mimic ??
    - [+] pretends to be an ornate chest.
- [+] new monsters
    - [+] gluon should be an ooze.
    - [+] hag
    - [+] phase spider (wlak through walls!)
    - [+] basilisk
- [+] better description for rusted armour.
- [+] fix crash when creating up holes.
2012-12-19 10:42:22 +00:00
Rob Pearce d7f6991a40 - [+] fixed CRASH when energy blade vanishes
- [+] gods of opposing alignments should never make offers.
- [+] new armour flag:
    - [+] f_underclothing
    - [+] getequippedob() - get the outer one.
    - [+] if you have f_underclothing, can wear other armour on top of
          it.
    - [+] can't remove underclothes without removing outer first.
    - [+] TEST with cotton shirt
    - [+] make sure autoequip handles undercltohing
    - [+] fix other objects
    - [+] adjust ']' output
- [+] make armour help against some magical damage too
    - [+] move armour check and reduction into losehpeffects().
    - [+] pass damreducedbyarmour to losehpeffects
- [+] psionic spells:
    - [+] dampen missiles - lots of extra evasion vs missiles only
    * [+] soul link (l4, share damage)
    - [+] mind sheidl (l4, like the amulet)
    - [+] delay death (l5, don't die if hp <= 0 and this spell is
          active)
    - [+] remote ko (l6)
- [+] Silence spell / effect - air.
    - [+] f_silenced.
    - [+] announce in io.c
    - [+] prevents spellcasting
    - [+] prevents docomms()
    - [+] prevents reading scrolls
    - [+] prevents speech-based abilities like warcry and sonic bolt
    - [+] say() will fail
    - [+] sayphrase() wil fail
    - [+] test the spell.......
- [+] CRASH when adjusting glyph on edge of map
- [+] non-humanoids can't climb without climb skill.
- [+] player sohuld be able to swap with unconscious/asleep lfs <= same
      size
- [+] too easy to knock things unconscious??? bug. fixed.
- [+] reusable cells being set to empty! think this was a vault
      definition problem.
- [+] demon chameleon / deech
    - [+] low-level mosnter which can hide
2012-12-06 04:57:13 +00:00
Rob Pearce ae01d1bbfa - [+] add f_nostam to undead.
- [+] add nonausea rather than nosmell sometimes.
    - [+] rats should eb able to smell, but not get nauseated.
- [+] fix triumph pleasure for bjorn.  must be no monsters within
      LOF... or within radius ?
    - [+] and make it very low piety gain.
- [+] remember which level we got flags form
    - [+] flag_t -> fromlev
    - [+] announce this in getflagcourse
- [+] undead qualities
    - [+] no criticals
    - [+] don't naturally heal
    - [+] don't breath
- [+] drainlevel(fromlf)
    - [+] check for dtresist necrotic 
    - [+] fitness saving throw (difficulty is 100 + fromlf's level*6)
    - [+] call loselevel()
- [+] loselevel()
    - [+] announce.
    - [+] drop maxhp.
    - [+] adjust hp appropriately
    - [+] lose any flags where >fromlev is too high.
    - [+] handle monk f_hasattack specially.
        - [+] getmonkdr(level)
        - [+] getmonkattacks(level)
    - [+] keep track of what stats we gained and lose them again.
- [+] TEST level drain with cursed xp pot
- [+] TEST level drain with stats...
- [+] prevent drinking when wearing full-face masks like gas
      mask/football helmet
    - [+] implement f_COVERSFACE.
    - [+] add it to objects.
    - [+] check it when doing caneat() candrink()
    - [+] up their AC bonus too
- [+] large scorpion
- [+] hellhound
- [+] large primalities
- [+] new vault flag: usehabitat:xxx
    - [+] means "set the habitat of all vault cells to xxx"
    - [+] real_getrandomob() should be given a CELL, not MAP.
    - [+] getrandomobofclass() should be given a CELL, not MAP.
    - [+] use CELL habitat to determine random obs
    - [+] apply to caves
- [+] vault scatter: ignore locked cells (ie. reusable ones)
new vaults
- [+] dualroom
- [+] sauna - vhot!
- [+] pentagram and demons
new pionic spells
- [+] chi bolt - low dam ranged attack 1d4
- [+] chi strike (l4) - add 1d4 explosive damage to melee hits
2012-12-03 05:12:29 +00:00
Rob Pearce c6fed68ba2 - [+] fix carpetted floor colour
- [+] bug: giant ant zombie not attacking giant ant
- [+] change table symol to PI
- [+] replace footstool with chair
- [+] allow reusable cells in vaults
- [+] slippery floors should make pushing easier
- [+] when checking stairs i found "Pete footprints"
- [+] new monsters:
    - [+] polar bear
    - [+] owlbear
- [+] bug: sleeping monsters never waking up.
- [+] "random good weapon" wish broken. fixed now.
- [+] cope with med/small/large dancing weapons
    - [+] generice code to check baseid instead of raceid
    - [+] handle automatic generation - need to populate:
        - [+] select an appropriate object (rarity freq / common, 
              uncommon,  rare)
        - [+] copy from obejct to lf:
            - [+] OBHP
            - [+] SIZE
            - [+] OBATTACKDELAY
    - [+] bug: always getting 'twisted branch' for small dancing weapon
    - [+] bug: crash in attackcell. nweps = 0
- [+] replace thin walls with unicode symbols
    - [+] glass
    - [+] wood
    - [+] metal
    - [+] getcellglyph() looks at surrounding cells if required
        - [+] too slow?
- [+] attacking helpless undead shouldn't count
- [+] differentiate EXTRADAM from WOUNDING.
    - [+] wounding = add damage to ALL attacks
    - [+] EXTRADAM = add DIFFERENT type of damage
- [+] psionics on levelup
    - [+] make this a "select from iq/10", not a select from any
- [+] if poison needle trap misses, place it on the ground.
- [+] no nauseated effects while asleep.
- [+] if something runs out of view adjacent to you, say "xxx moves
      behind you"
- [+] ashkari bug:
    - [+] when getting enraged by the sight of something, f_rage runs
          out a few turns before f_aicontrolled. should be the same!!!
2012-11-29 20:18:21 +00:00
Rob Pearce 2867b4488f - [+] might need to increase effectiveness of armour again. incease
damreduced.
- [+] reduce sliperriness of blood now that we get lots more.
- [+] restrict hiscores to scores of >= 1.
    - [+] (and remove all current entries with score of 0)
- [+] modifications:
    - [+] make levels more sparse
    - [+] make "things"more common
    - [+] make objects more common (as opposed to lfs)
- [+] monsters with territorial CAN approach if you're sleeping/ko
- [+] monsters with territorial don't get angry if you're sleeping/ko
- [+] CRASH when i tried to dismantle something.
- [+] speed up map generation.
    - [+] most time is in createhabitat.
    - [+] calcposandmakeroom(). speed this up.
    - [+] linkexit()
- [+] FIX reachability algorithm
    - [+] unless we can make a dircet path, REMOVE all other code.
    - [+] instead, use modified a*
    - [+] distance to dest roomm, not dest cell
        - [+] = distance to centre of dest room
    - [+] cell is okay for pathfinding
        - [+] adjcellokforreachability(cell) = true
    - [+] cell is the finish spot if:
        - [+] it is in a different room and
              adjcellokforreachability(cell) = true
    - [+] i THINK this is working now.
- [+] f_startobwepsk ... text = "common" not working. fixed.
2012-11-19 04:57:48 +00:00
Rob Pearce ca132c87c7 - [+] before removing deadends:
- [+] find any four corridors in a square
    - [+] where one of them has 4 exits, and the rest have 3
    - [+] fill in the ones with 3
- [+] VALGRIND.
- [+] reduce ID costs at shops
- [+] necromancer mods
    - [+] start with a dagger, since you don't get early attack spells
    - [+] start with limited short blades skill
    - [+] start with animate dead (now a level 1 spell)
- [+] increase TR of ice wraith.
- [+] replace strrep function:
    - [+] strrep(&mystring, find,replacewith)
    - [+] code:
        - [+] char *strrep(char **mystring, char *x, char *y)
        - [+] char *temp
        - [+] temp = dostrrep(x,x,x)
        - [+] free(*mystring)
        - [+] *mystring = temp
- [+] flag loop in F_IGNORECELL!
    - [+] problem: i'm getting f->next == f
    - [+] added a new assertino in addflag()
    - [+] change how killflagsofid() works, maybe this is the problem.
    - [+] i think my "insertbefore" is being freed somehow...v
    - [+] fixed with valgrind?
- [+] try harder to link using tunnels rather than portals
2012-11-14 04:59:18 +00:00
Rob Pearce 98ba363e8a - [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
      to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent 
- [+] why didn't cyborg warrior start with bullwhip equiped??
    - [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
    - [+] no throwing
    - [+] no operating
    - [+] no firearms
- [+] tombstone text:   Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a  soldier ant
      corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
      it during a fight.
    - [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
          v0=material, v1=howmuch
    - [+] continuerepairing() should only fix <skill + helpsrepair> hp
          per turn.
    - [+] announce helpsrepair in obdesc
- [+] coldroom vault:
    - [+] ice floor
    - [+] ice walls
    - [+] ice pillar
    - [+] frozen corpses
- [+] new job: gladiator
    - [+] sword
    - [+] shield
    - [+] high shield skill
    - [+] high evasion skill
    - [+] limited armour skill
    - [+] net
    - [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
    - [+] fall_from_air().
    - [+] trigger then when wind-based effects hit.
    - [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
      original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
      opponent, flee.???
- [+] easy way to fix reachability:
    - [+] is there a solid cell which is: 
        - [+]  adjacent to both a filled and an unfilled area?
        - [+] not a fixed vault wall?
    - [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
    - [+] f_hashidinglf, v0=rid
    - [+] if you loot it, monster jumps out
        - [+] ...and gets a free hit!
    - [+] perception lets you see the container moving (only if it
          weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
    * [+] condset_t
    - [+] then replace all getrandomadjcell() calls...
    - [+] remove getrandomroomcells
    - [+] then remove WE_xxx
2012-11-13 05:04:30 +00:00
Rob Pearce 64412035bb - [+] fullshield block: ("raise shield") ?
- [+] gain it at beginner level shields
    - [+] make ai use it
        - [+] if i've been hit by a ranged attack.
        - [+] if intelligent: if  my target has a ranged weapon AND i'm
              not adjacent AND i'm in range.
    - [+] make ai stop using it
        - [+] if i'm adjacent to my target
        - [+] OR
        - [+] if i have no target
        - [+] OR
        - [+] if i'm not in battle
- [+] don't show 'bloodstained' if blind
- [+] dusur digs hole in floor
    - [+] CRASH. who->timespent == 0
- [+] when portalling to same levle, don't say 'you arrive back at levl
      xx'
    - [+] instead: 'you arrive elsewhere in level xx'
- [+] maybe: when exhausted:
    - [+] you can still attack, but...
    - [+] attacks deal 0.75% damage
    - [+] attack speed lowered.
    - [+] change of fumbling your attack if you miss.
    - [+] ...then monsters can have stamina again.
    - [+] the %s looks exhausted.
    - [+] if ai is exhausted, wait.
2012-11-10 04:06:45 +00:00
Rob Pearce db635b50db - [+] most monsters which covet food should have snatch - so that you
can just drop food for them.
- [+] when looking for remote obs, DO include adjacent cells with lfs,
      if we have the snatch ability.
- [+] some long thin levels (80 x 12 ?)
- [+] fix code to remove useless doors.
    - [+] 0 pairs of dirs with empty cells = change door to wall
    - [+] pick an adjacent empty cell
    - [+] floodfill the 8 cells around the door.
        - [+] start with adj cell
        - [+] can't go more than 1 cell away from door
        - [+] solid cells or doors will stop movement
    - [+] if no unfilled cells around the door, bad.
- [+] new way of fixing unconnected levels - portal!
    - [+] pick one spot in each section then place a portal there.
- [+] dying should cure poison
- [+] tweaks to attack text
- [+] floor tile effecst
    - [+] absorbancy - ie. carpet should absorb water.
    - [+] converyors
    - [+] only walkable sometime (crushers?)
- [+] in tombstone, show "eaten by Rattus", not "eaten by a rattus"
- [+] god of nature should like eating animals all the time, not just
      when hungry (makes piety gain easier)
- [+] announce when eyes are protected from a spellcloud
- [+] klikirak should like setting off fire traps.
- [+] floodfill() should follow portals to the same level.
- [+] show >1 skillpoints in green on status bar
- [+] bug: gods are apeparing behind you.
    - [+] bug in getrandomadjcell
- [+] gods' planeshift spells failing? might be fixed now. using
      getrandomroomcell instead of getrandomcell.
- [+] increaes damage dealt by smite evil/good
- [+] lightning javelins shouldn't be stackable
- [+] monsters not firing ranged weapons!
    - [+] they just walk back and forth
    - [+] bug with how i was calling haslof() for cells other than
          where the mosnter was (in getdiraway())
- [+] turn undead should only work if caster level*2 is >= monster level
fullblock basics:
- [+] penalties
    - [+] lowers visrange to 1
    - [+] huge attack penalties
    - [+] huge evasion penalties
- [+] vhigh chance of all ranged damage going to shield instead.
    - [+] buckler = 75 (small)
    - [+] shield = 80
    - [+] large shield = 85
    - [+] tower = 90
    - [+] plus shield skill*2
- [+] use check_shield_block in all spell effects
    - [+] this checks whether player is shieldblocoking (or evades??)
    - [+] then applies damage appropriatly.
- [+] new ability;
- [+] stopped by:
    - [+] losing or unequipping the shield
    - [+] being interrupted
    - [+] casting a spell or using an ability
- [+] exotic weapons should cost more.
- [+] maybe prevent prayer until gods have been pleased enough ?
    - [+] while you're not worshipping anyone, piety gain is x4.
    - [+] once first one hits 'pleased', they will appear and offer you
          a place
    - [+] advantge to this is that you get a gift
    - [+] picking up new gold should please felix......
    - [+] you shoudl only be able to sacrifice untouched gold. this
          pleases felix double as much as grabbing it.
    - [+] gods sohuld appear "in a cloud of ..."
        - [+] bjorn - blood
        - [+] klik - fire
        - [+] lumara - bright light
2012-11-09 11:50:52 +00:00
Rob Pearce 29483cd29f - [+] BUG: lfs are getting map flags!
- [+] Implement a* pathfinding for pets
    - [+] done
    - [+] TEST... seems okay so far.
- [+] druid spells not showing in starting list.
- [+] don't announce noise from unseen things which are attacking the
      player.
- [+] fix crash when no pet location found at start of game.
- [+] swap spell levels for warp wood and absorb wood.
- [+] only set godprayedto if you got a positive effect.
- [+] warp wood should affect wooden lifeforms.
- [+] pathfinding for player:
    - [+] only allow this to explored cells
    - [+] consider unexplored cells non-walkable.
    - [+] set f_pathfinding
    - [+] STOP if we see a monster
- [+] never let stamina exceed max.
- [+] you can now actually climb when you get the spiderclimb ability
      but don't have climbing skill
2012-11-06 20:32:56 +00:00
Rob Pearce 095fb8b7d4 - [+] add a glyph for 'bright light'. yellow sun
- [+] bug: i was able to repair leather armour usint the metalwork
      skill.
- [+] fix bug with vell not getting starting weapon.
- [+] monsters: don't walk on producelsight obs if you have sensitive,
      uncovered eyes.
    - [+] (if wis >= animal)
- [+] snakes shoudl have f_enhancesmell and bad eyesight. also lower
      their tremossense range
- [+] new lore: skills which auto makeknown() objects based on rarity.
    - [+] lore:chemistry - potions
    - [+] lore:relics = rings/amulets
    - [+] lore:language = scrolls / books
        - [+] also study scrolls
    - [+] lore:arcana: wands+magic creatures
- [+] finalise work to redo god piety
    - [+] amberon
        - [+] thrilled = poly immune,
    - [+] glorana
        - [+] t = auto bless weapons / arm
    - [+] ekrub
        - [+] e = autotangle (instead of d)
    - [+] yumi
        - [+] e = 90 save life chance
    - [+] felix
        - [+] p = enhance stealth ?
        - [+] t = enhance search 20
        - [+] e = enhance lockpick 50
2012-11-05 01:44:01 +00:00
Rob Pearce 49893b20e4 - [+] some rings are now rare/very rare
- [+] getting a lot of individual non-stacked blood stains.
- [+] penalty to slip checks when sprinting.
- [+] protetcion form good/evil - use saving throw for tougher monsters
- [-] redo god piety
    - [+] piety levels confer abilities/bonuses
    - [-] hecta
        - [+] pls - resist necro
        - [+] thr - stench
        - [ ] ecs - finger of death OR necrobeam every x turns.
            - [ ] fod: kill low hit die instantly.
    - [-] amberon
        - [+] pls - glow
        - [ ] thrilled = poly immune,
        - [+] t = also  undead dam boost
        - [+] ecs = prot evil
    - [-] glorana
        - [+] p = stam boost
        - [ ] t = auto bless weapons / arm
        - [+] e = regenhp
    - [-] ekrub
        - [+] p = plantsfriendly
        - [+] t = chance to autoentangle on hit (plev*10)
        - [+] t =  disease immune
        - [ ] e = ???
    - [+] klikirak
        - [+] p = res fire
        - [+] t = immune fire
        - [+] e = burning body
    - [-] yumi
        - [+] p = enhance search 10
        - [+] t = detect bless/curse..
        - [+] t =  detect life
        - [ ] e = save life
    - [+] lumara
        - [+] p = boost mag 1. spell on levelup.
        - [+] t = boost mag 2.
        - [+] e = boost mag 3. regen mp.
    - [+] bjorn
        - [+] p = resist fear
        - [+] p = stam boost too
        - [+] t = dam boost, acc boost
        - [+] e = knockback
    - [ ] felix
        - [ ] p = enhance stealth ?
        - [ ] t = enhance search 20
        - [ ] e = ???
    - [ ] move gift effects........
    - [+] remove gifts?
    - [ ] TEST!!
2012-10-31 03:58:13 +00:00
Rob Pearce 68e5435fdf - [+] walking on glowing moss sohuld damage it.
- [+] make dagger stronger than combat knife (but combat knife is
      faster)
- [+] optimise makefile.
- [+] swapplaces message not appearing.
- [+] fix exploit for dizziness with 'A'
    - [+] every time we ask for a direction, use askdirection(prompt).
          make this do dizziness check.
- [+] no shieldblocking or dodging if you have no stamina.
- [+] object rarity bugs
    - [+] i'm finding way too many books! might be fixed now... ?
    - [+] never finding wands
    - [+] added debugging to see if there is a problem with wands....
- [+] adjust footstep sound based on material
    - [+] carpet = soft
    - [+] stone = normal
    - [+] tiles = loud
- [+] in @e, "you ar etipsy" should also talk about damage resistance.
- [+] don't show starting abilities if you are a diety.
- [+] don't say 'xx walks out of view' if they didn't move on purpose
- [+] CRASH - summon weapon then drop the energy blade.
* [+] CRASH when fumbling attack using energy blade.
- [+] fighter with wisdom 31.  novice perception skill. noticied
      teleport trap right in front of me.  chances?
    - [+] maybe make it you can never detect anything further away than
          your perception skill.
- [+] fix bug in geteffecttime()
- [+] announce starting spells at beginning of game
- [+] in skill help, highlight your current level. Maybe:  "At Novice
      level>>> Unskilled weapons etc..."
- [+] inept level lore shouldn't show "Adept Stealth" as a strength
- [+] when you / then move over a cell with footprints short "Dirt
      (with human footprints)"
    - [+] or "Dirt (with xxx foorprints leading east)
- [+] typo in killer text - an vs a
- [+] get over here! should give you enough time to attack ?
- [+] felix prayer should remove impassable objects.
- [+] robots shoudl have big penalties to getting up checks. slip,
      fall, etc.
- [+] fix bug when falling off a fence.
- [+] BUG: no los when i climb on top of a wooden fence. why?
    - [+] F_BLOCKSVIEW needs new option:  v1 = true means dont block 
          if you are standing on it
* [+] engineering / construction skill - replaces 'traps'
- [+] fixed bug where you couldn't rest when you pet was visible.
- [+] bug: aigetlastknownpos populating lastx & lasty with different
      info from the the cell returned.
    - [+] this has happening when following the direction of a scent.
- [+] remove display of "xx throws xxx towards you" if you can't see
      the source and something is in the way.
- [+] druid should alway sbe able to swap with plants.
    - [+] peaceful check should do this
    - [+] try agian...
* [+] problem- create water can be used instead of soften earth ???
- [+] detect life should help with checking stairs.
- [+] pentagrams should heal the undead.
- [+] ekrub - don't et you sacrifice the flower that appears.
* [+] when doing check for piety on eating animals
- [+] don't auto give druid short blade skill due to sickle
- [+] soften earth on boulder... turn it to mud
- [+] adept psychology - receive change for gems.
- [+] BUG: announceflagloss is never happening.
- [+] new nature spell - absorb wood
- [+] clank - robot, chomp to steal health, self destruct
- [+] new tech
    - [+] l0
        - [+] chewing gum (jam doors with it) - this should be food
              though.
- [+] plants shoudl HELP druid from level 4 onwards
- [+] clean up skill ability code
- [+] automate skill descriptions based on skillwills "you gain the
      'xxx' ability"
- [+] auto-learn spells from initial spellbook, rather than having to
      read it manually
- [+] finding rings of unholiness everywhere.
    - [+] because it's the only rare ring!
    - [+] fixed by making ALL rings be uncommon
- [+] first time you slip on something, suggest using 's'
- [+] sewing / metalwork: get resize and enhance earlier.
- [+] bug with engineering seeing through one wall!s
- [+] rogue/knifedancer / blademaster - throwing, extra skill with
      small blades.  starts with extra knives.
- [+] replace all SUBJOBS  with plain regular JOBs
- [+] fix "needobforstaff" for wizards!
- [+] sewer should have mossy rock floor. slippery.
- [+] new specialist classes:
    - [+] rogue/assassin (no stealing, no traps, lockpicking,  better
          stealth+backstab, poison knives)
- [+] minor healing spell is too powerful.  should do 5-10hp max.
- [+] reveal hidden is not powerful enough for l4. move to l2.
- [+] reduce effects of stench as TR gets higher
- [+] lumara should accept sacrifice of anything magic.
- [+] oil lamp not making my viison longer! (on dlev11)
    - [+]  just describe f_produceslight in io.c
- [+] with no evasion skill, agi does way less for EV.
- [+] fungus clouds should be in 1 radius, non orthogonal
- [+] try putting monster zoo back in?
- [+] STILL bugs detecting trapped doors ages away!
    - [+] detected one 8 away, perception novice!
- [+] when a monster necromancer is made, i'm prompted for spell
      school!!!
- [+] new mushroom: greycap. looks like a miniature snowy mountain.
      grants cold resistance 
- [+] shop opening hours
    - [+] F_OPENHOURS
        - [+] v0 = start (inclusive)
        - [+] v1 = end (inclusive)
        - [+] v2 = sayphrase
        - [+] SP_CLOSEDTILMORN (come back in the morning)
        - [+] SP_CLOSEDTILNIGHT (come back tonight)
        - [+] SP_CLOSEDTILHOUR (come back after x oclock!)
    - [+] make shops only be open during the day.
    - [+] make some temples only be open at night (eg. hecta)
2012-10-15 02:15:36 +00:00
Rob Pearce db83aadaac - [+] announce when a web spell hits you
- [+] grammar:  xxx "flys" into view. need getmoveverbplural()
- [+] make yumi's "well, that seems unfair" only work when killed by a
      mosnter which didn't chase you up.
- [+] no unarmed skill descriptions!!
- [+] remove pain ability from stink beetle
- [+] cockroach -  with just high armour rating (10)
- [+] bajeetle - lower armour but bite causes pain
- [+] yumi - only allow you to gain piety from letting a monster run
      away ONCE per mosnter
- [+] new monster: petrifungus
- [+] give merciful fighting for novoice adanced combat
- [+] monsters should lose targets when eating
- [+] vault: window in wall
- [+] fix werewolf hiding code for Rattus (when medium sized)
- [+] "you hear a muffled slithering" - this shouldnt be loud enough to
      go through walls!
- [+] selected Evil Adventurer. alignment ended up as NONE
    - [+] have added debugging
    - [+] wait for it to happen again
    - [+] put in code to check at start of turn whethe r my alignment
          just changed.
    - [+] my alignment seems to have changed to NONE
    - [+] POLYMORPH is causing this.
    - [+] fixed
- [+] commando should have low level version of gunblade
    - [+] electromachete - low pierce + low electric
    - [+] gunblade - med slash + low explosive
    - [+] boomstick -  med bash + high explosive
- [+] commando should start with a few energy packs (need to add this
      object)
    - [+] l2 tech
    - [+] operate it to recharge tech which has charges.
    - [+] like a scroll of replenishment, but only for tech.
- [+] when monsters follow you up stairs, they should face you
- [+] jewelry store should buy watches
- [+] when exploding cells, remember who caused it
    - [+] new arg: lifeform_t *causedby
    - [+] use this when dealing damage, so that it counts as player
          kill (etC)
    - [+] explodeob
- [+] monks sohuld be very resistant to being scared
- [+] gauntlets (or other hard gloves) should increase unarmed damge by
      1
- [+] seems almost impossible to break locks on chests by bashing....
      check the calc.
    - [+] fixed.
- [+] ekrub should accept sacrifices of plant matter
- [+] sebastian - absorbs physical damage to increase damage.
    - [+] after first hit: +1dam, knockback
    - [+] after 2nd: +2 dam
    - [+] etc
    - [+] vuln to non-physical (fire, magic, cold, elec, etc)
- [+] cockroach, plague rat should taint anything it walks on
- [+] fix up morale checks. 30 should be 100.  therefore: multiply by 3
      and a bit.
- [+] CRASH during wish for Power
- [+] bug:
    - [+] You whack the pixie.  The pixie turns to face you.
          The pixie turns to flee from you!
          Amberon's voice booms out from the heavens:
          "You dare attack an innocent?"  Amberon's voice booms out
          from the heavens:
          "You dare attack an innocent?"  The pixie gestures at itself.
- [+] baba yaga's hut
    - [+] shoudln't be able todrink potions
    - [+] shouldn't take criticals
- [+] don't annoucne time during combat
- [+] bug after giving gold to a bandit: 
    - [+]  $ - 0 gold dollars
- [+] lore: tech... every level says' no special effects'
- [+] bug: Strength: 24 (very weak, +1 dmg)*
    - [+] bug in getstrdammod()
- [+] bug: A brown snake walks into view.
    - [+] should be 'slithers'
- [+] mud shouldnt make shoes wet
- [+] refridgerator should only have meat in it
- [+] some jobs which have whip skills
    - [+] scourge should always start with a whip.
    - [+] fighter should be able to pick it 
- [+] aligned temples sohuld be half price (or free if god is pleased?)
    - [+] SM_DETECTCURSE
    - [+] SM_PURCHASEITEMS
    - [+] SM_BLESS
    - [+] SM_MIRACLE
- [+] re-introduce monster zoos vault
- [+] bullwhip shouldn't be able to dull!
- [+] banana skin not slippery anoymore
- [+] slightly boost player's starting hp
- [+] why can vampire bat reach me to damage by boots/trousers?
    - [+] check out canreachbp() in lf.c
    - [+] maybe fixed
- [+] commando's starting gun should start with normal bullets, never
      silver
- [+] klikirak should grant fire powers
    - [+] cast pyromania when you pray
    - [+] gift: immolate every 20 turns
- [+] fix trytokillobs() - this might fix some of the infinite loops
      i'm getting during level creation.
- [+] klikirak should give slightly more xp for sacrifing objects
- [+] hawks should swoop more often
- [+] book colours are incorrect (ie. "red book" isn't red)
- [+] i saw "something burns!" while resting...
- [+] make hollow trees be green
- [+] blessed amnesia shouldn't  do anything bad
- [+] armour stores shouldn't get hot!
- [+] earthworm should only divide from slash damage - not bash
- [+] queen ant shoudl be able to summon lots of soldiers
- [+] staircases should be on top of ash piles when draring them!!
    - [+] in fact, staircases should be on top of _everything_
- [+] sanctuary potion should put out fires under you! (or anything
      with walkdam)
- [+] shouldn't be able to smell by's hut
- [+] wood wall should be diggable with pickaxe
- [+] does shovel actually work? no, but it does now.
- [+] dungeon level name - if it has a swamp vault, level is just
      called "the swamp"
- [+] fire damage to bread = toast
- [+] only say "the light here is a bit dim" etc if it's different form
      your previous level
- [+] weapon stores shouldn't appear in baba yaha's hut!
    - [+] i think i said "weapon" but it turned into weapon store.
    - [+] works in a wish...... is this only a problem in a vault?
    - [+] test agian.....
- [+] during summon mosnter, don't say 'the xxx starts to fly!' before
      "the xxx appears"
    - [+] when i read a create monster scroll, this _doesnt_ happen.
    - [+] when i cast summon small animals and a brian bat appears, it
          _doesnt_ happen
    - [+] only seems to happen whan a mosnter uses a summon spell
    - [+] maybe to do with finalisemonster() or "autogen" being set in
          addmonster?
    - [+] fixed now?
- [+] walking on water shouldn't extinguish a flaming weapon!
    - [+] losehp_real needs a 'bodypart' argument
- [+] klikirak should like killing  plants
- [+] do something to stop kilkirak worhipers from scarificeing the
      entire forest!
    - [+] if you attack a plant lf in the sylvan forest
        - [+] nearby plants attack.
        - [+] 33% chance of a treant:
    - [+] same if you destroy a plant object
        - [+] takedamage() needs a "fromlf" arg
    - [+] or sacrifice one.
    - [+] _warning_ if you attack a plant object or plant lf. (but
          don't kill it)
    - [+] WISDOM warnings:
        - [+] if you are about to attack an OC_FLORA object in the
              woods (and have felt the woods get angry once before)
        - [+] if you are about to attack a RC_PLANT lf in the woods
        - [+] if you are about to attack a CT_WALLTREE cell in the woods
- [+] remove base 'wizard' class...
2012-08-12 05:04:49 +00:00
Rob Pearce 8e3c457c01 - [+] if can WILL _and_ CAST a spell, use power level from whichever is
highest
- [+] exorcise spell - l2 summoning
    - [+] +10% chance per skill level, -5% per monster TR, +5% per
          spell power
    - [+] implement
- [+] paladins get exorcise  at l5
- [+] new purity god pray effect: 100% success exorcisms.
- [+] new perks for lore:demonology 
    - [+] nov: exorcise demons (power 1)
    - [+] skilled: summon demon
- [+]  midnight -portals open.  moongate? lunar portal? lunar gate?
      moon door?
    - [+] portals with no F_MAPLINK will create a random destinatino in
          the same map.
    - [+] makeobjecttemporary() function
    - [+] when it strikes midnight, a portal appears somewhere on the
          plaeyr's level
    - [+] the portal is temporary for 60 turns (ie. approx 1 hours)
          turns until end of midnight (calc this)
- [+] fixed crash on "w-"
- [+] during glorana's peace, striketoko is okay.
- [+] announce posion potion effects.
- [+] make dark maps just lower max vis range, isntead of not being lit
      ?
- [+] redo entire light calculation code.
    - [+] light effects:
        - [+] create "bright light" object in radius around target cell
              (it has f_produceslight)   
        - [+] at high level, light spell will increase ILLUMINATION
              level of the entire map.
    - [+] DARKNESS
        - [+] make a "magical darkness" object
        - [+] blocks view.
        - [+] at high level, light spell will increase ILLUMINATION
              level of the entire map.
    - [+] bright light objects burn/scare undead
    - [+] undead won't walk into cells with bright light power >= their
          TR
    - [+] monsters in cells with produces light which are vulnerable to
          light take damage
        - [+] cases to check for:
            - [+] vuln to light 
            - [+] migrains
        - [+] iscelllit() should return light level of cell (sum of
              f_produceslight)
    - [+] gaining/losing f_produceslight should setlosdirty
    - [+] makelit() just places light/darkness objects
    - [+] monsters in cells with produces light which have good eyes
          get blinded
        - [+] move blinding code out of spell.c and into turneffectslf
    - [+] placing light/darkness objects causes los recalc in any who
          can see them
        - [+] this shoudl happen automatically since they will have
              BLOCKSVIEW.
    - [+] islit():
        - [+] check for ot_darkness objects in the cell
        - [+] check for f_produceslight flags in the cell's lfs/objects
        - [+] return how MUCH the cell is lit
    - [+] f_produceslight flag now just lets you see further in the
          darkness
    - [+] still give light sources to monsters, but change the check to
          see whether we do this (check the map's illumnation level)
    - [+] get rid of calclight() code.
    - [+] then i can get rid of seeindark code in los checking ???
    - [+] get rid of eyesight adjustment code 
    - [+] remove enum LIGHTLEV
    - [+] CHANGE nightvisrange - it just countres the map's
          illumination level
    - [+] remove lf->eyeadjustment
    - [+] remove lf->losdark
    - [+] remove lf->nlosdark
    - [+] remove cell->lit and littime and otiglittimer and origlight
          and lastlit
        - [+] remove it
        - [+] don't save it
2012-08-02 04:08:27 +00:00
Rob Pearce af3116f6d4 - [+] press ] then \ - CRASH.
- [+] if sound is behind walls:
    - [+] you hear a muffled explosion
    - [+] int canhear() needs one more optional  argument: 
          &numwallspassed
        - [+] if supplied, fill it in.
    - [+] in noise(), check numwallspassed. if there were any, then say
          'muffled'. or maybe if more than 2? play around with this.
- [+] listen skill should also give more info about NON monster sounds
    - [+] ie. direction, distance.
- [+] set user->changinglev when CHECKING stairs in the same way as
      when we use them.
- [+] monk abil - iron fist - use all remaining stamina as damage +
      knockback
* [+] HITCONFER - this should only work if you were attacked through a
      BITE or CLAW etc.
- [+] bug... werewolves etc not attacking properly after shapehifting
- [+] some tech/tools should be usable with hands (ie. watch).
      f_operwithouthands
- [+] werewolves sohuld keep f_hitconfer after shapeshifting
    - [+] done
- [+] summoned creatures from ai should never attack their masters!!!
- [+] only the PLAYER can be infected by a werewolf?  or only HUMANS ?
- [+] when a werewolf changes to animal form, no longer hide true race
      as 'human'
- [+] lycanthropy?
    - [+] how to get it:
        - [+] drink were-xxx blood (->potion of lycanthropy, never
              appears randomly)
        - [+] bitten by a lycanthrope (chance) with hitconfer  and fail
              a con check
    - [+] change f_lycanthrope so text = racename.
    - [+] effects when you get it:
        - [+] right away, add diseased with lycanthropy. incubatino
              infinite ?
        - [+] if you are incubating lycanthropy, you always change at
              the full moon (and get rage, and lose control).
            - [+] at this point, complete the incubation and...
            - [+] add f_hatesall
            - [+] lose control for a while
        - [+] after you change back the first time,  you can change at
              will. (but there is a risk each time of losing control)
            - [+] player regains control
            - [+] remove aicontrolled, hatesall, rage
            - [+] actually add f_lycanthrope, text=xxx, v0=4
        - [+] when f_lycanthrope  v0 drops to 0 or less...
            - [+] canwill shapeshift  with race:xxx
    - [+] how to remove it
        - [+] remove curse scroll 
        - [+] drink holy water
        - [+] these will:
            - [+] cure any incubating curse
            - [+] cure any f_poisoned curse
            - [+] cure lycanthropy, and any flags FROMLYCANTHROPY
    - [+] other effect
        - [+] wont/cant walk into holy circle?
        - [+] holy circle hurts you
- [+] shouldn't be able to get critical hits on you (ie. injuries) if
      you ahve heavenly armour
- [+] bug in f_poisoned text. i think i've fixed this now.
          Died on level 2 of the dungeon.
          Killed by venom poisoning
          from 5-10
- [+] donated objects count towards xp!
    - [+] -50% of value if not known.
    - [+] -25% of value if not id'd
    - [+] donating objects will anger felix
2012-07-11 04:10:21 +00:00
Rob Pearce 042ade4ca6 - [+] change descriptive text for nullify power.
- [+] if you burn your hands on an equipped shield, drop it autoatically
* [+] sewer stairs problem
- [+] if something redhot/flaming takes water damage, it will make
      steam.
- [+] ring of unholiness(blessed things burn you - just add undead flag?
    - [+] gods of purity/life will warn you first.
- [+] fixed crash checking for blocking attacks from adhesive lfs.
- [+] glorana cure poison doesn't work
    - [+] cancast is returning FALSE but E_OK.
    - [+] glorana isn't getting canwill ot_s_curepoison
    - [+] got it - was using getspellschool() instead of
          spellisfromschool()
- [+] giant spider not casting web
    - [+] .oO { can't cast web right now (lowiq) (mpcost=4, i have 0) }
    - [+] FIXED, and also fixed validateraces() check for this kind of
          thing.
- [+] cats are now territorial with rndhostile rather than always
      hostile
- [+] do final cursed wish scroll effect - magic
    - [+] get a suicide spell?
- [+] thornspike armour.
- [+] new slashing weapons
    - [+] new weapon: vibroblade
        - [+] short blade
        - [+] slashing 8
        - [+] extra high crit chance
    - [+] new weapon: nanoblade
        - [+] short blade
        - [+] slashing 10
        - [+] unlimited armour piercing
    - [+] laser sword
        - [+] longblade
        - [+] fast!
        - [+] not dullable
        - [+] armour piercing (not as much as nanoblade)
        - [+] high critical (not as much as vibroblade)
    - [+] gunblade
        - [+] extra explosive damage while it has charges.
- [+] glorana accepts sacrifice of weapons, instead of food.
- [+] ekrub acceps sacrifice of food.
- [+] bug in pirate description:
    - [+] Its  (). It has no left hand.
- [+] god description should show prayer results. ie. "yumi will
      respond to prayer by xxx"
- [+] if glorana likes you while you're sleeping say, "you dream of a
      choir singing" instead of "you hear".
- [+] eating garlic gives stench.
- [+] cope with "armorpierce NA" - "will not reduce damage at all"
2012-07-03 03:53:41 +00:00
Rob Pearce 97eda5fa2d - [+] tweak random monster code - highest TR () shiuld appear at level
23-24!
    - [+] highest TR is about 20.
    - [+] gettrrange()
- [+] F_NUMCONVERT xx text
    - [+] if stack reaches xx in number, change to obtype "text" 
        - [+] eg. blood splash x 5 = large pool of blood
- [+] troll blood -> healing potions
2012-04-14 13:23:04 +00:00
Rob Pearce ac95dc7621 - [+] griddler didnt start with trident?
- [+] it DID, but it dropped it cuase it was hot.
    - [+] griddler should be immune to redhot! (testing shows it
          currently isn't)
- [+] once prisoners give you a reward, they shouldn't be allies
      anymore (ie shouldn't follow you up/down stairs)
- [+] portal to realm of gods hsouldn't work until you have a godstone.
- [+] why did potion of oil explode when i threw it?
- [+] for unique monsters, instead of "jimbo's armour protects it", use
      "jimbo's armour protects him"
    - [+] use f_gender
    - [+] this replaces F_GODOF.
    - [+] change gods to use this too.
- [+] change cloak of shadows - only work if max vis range is low ?
    - [+] monsters can't see you if they are >=3 away
    - [+] F_SHADOWED
- [+] more amulets
    - [+] of the traveller (go to a much deeper level or branch when
          you put it on. go back when you take it off)
        - [+] implement
        - [+] usually start cursed 
    - [+] boost piety gain
    - [+] soul feasting 
    - [+] acrobatics (tumble/jump)
    - [+] choking
        - [+] first add f_nobreath
        - [+] doesn't work if you don't need to breath
- [+] hydra blood poisonous
    - [+] handle "linkrace:xxx splash of blood"
    - [+] make bleed() use this.
    - [+] add f_venomblood to r_hydra (and others?)
    - [+] make filling potions from blood check for
          f_linkrace->f_venomousblood
    - [+] maybe handle this more elegantly.
        - [+] add f_bloodfillob to blood objects (inherit from lf)
        - [+] fine, but what about addobsinradius?  make it populate
              retobs!!!
        - [+] change f_venomblood to f_bloodfillob->ot_pot_poison
        - [+] remove "linkrace:xxx" code from objects.c and from bleed()
- [+] flashbang shouldnt affect user (you would look away)
    - [+] add F_THROWNBY to objects when you throw them.
- [+] stop initial revolvers from starting with 'a rubber bullet'
- [+] dry ice grenade - csats "snapfreeze"
    - [+] needs f_spellcloudondeath 
    - [+] implement
- [+] spiked club
- [+] The hawk critically claws your hands.  Your !
    - [+] fixed.
- [+] need another way to unlock chests
    - [+] bash them
    - [+] if it is trapped, high chance that the trap will go off
    - [+] if you attack something which is locked, it has a small
          chance of becoming unlocked
        - [+] rnd(1,your_str) must be > lockdiff!
- [+] different unarmed attack verbs for monk
- [+] javelin of lightning
    - [+] when you throw it:
        - [+] dothrow() calls spelleffects(LTBOLT)
        - [+] then uses up one charge
        - [+] if charges are left:
            - [+] reforms in your hands
        - [+] otherwise it turns into a normal javelin
- [+] shovel
- [+] jackhammer (like pickaxe but faster)
2012-04-13 22:52:35 +00:00
Rob Pearce 0a7aeec362 - [+] weakness spell should half melee damage.
- [+] quaffed a potion of polymorph self... and nothing happened!
- [+] only killing undead should please the god of life, not just
      killing anything evil
- [+] klikirak shouldn't get angry when you take cold damage!
- [+] fire sohuld convert flammable celltypes to another type:
    - [+] wood -> stone floor with pit
    - [+] carpet > stone
- [+] increase flamepillar range
- [+] warning before killing firebug on wood/carpet, if wisdom is
      at_high or above, and animal lore is high enough.
- [+] make f_twohanded only apply up to a given lf size.
    - [+] implement
    - [+] then add "istwohandedfor(wep, lf)"
    - [+] then fix up ob defs in data.c
- [+] unnatural growth/shrinkage spells should be temporary too (like
      potion)
- [+] random polymorph code
    - [+] stay at the same TR, or one higher/lower! (same for player
          random polymorph)  
- [+] elephant - friendly to mammoans
- [+] mammoth
- [+] pixie (then pixie, dryad sprite = sylvan / fae)
- [+] naiad / nixie
    - [+] blue 'n'
    - [+] low power charm to lure into water
    - [+] dagger/javelin
    - [+] throwing net
    - [+] resist magic 25%
- [+] droid - zapper
- [+] hoverscout (levitates, summons monsters)
- [+] skellion - floating flaming skull, scream attack, flame melee
- [+] fire primality should cast flame burst.
- [+] don't modify monster hp based on fitness.
- [+] storm primality / wind primality
    - [+] very fast
    - [+] 2 attacks - 1d5 each time. (pummel with debris / zapper)
    - [+] permenant windshield
    - [+] lesser:
        - [+] lightningbolt (lesser, 2d6)
        - [+] sleetstorm (lesser, 1-2 cold and slow movement)
    - [+] greater
        - [+] chain lightning (greater, 3d6)
        - [+] hailstorm (greater, 1d6 cold and 1d4-5d4 depending on
              power)
- [+] naiad (water sprite) - 'n' -blue
    - [+] good
    - [+] aquatic
    - [+] water spirit
    - [+] charm spell
- [+] ling parasite - green 'x'
    - [+] turns one corpse into a zombie (dies in the process)
- [+] add onion object.
- [+] roc
- [+] "crystal cur" - canine. only bashing works
    - [+] gems for corpses.
- [+] bug: monsters not using spells. fixed.
    - [+] test NOSPELLS bug with rapidivy
    - [+] test low IQ spells with storm primality
- [+] make hitdice be d8 rather than d4
    - [+] change F_HITDICE
    - [+] add constant HITDIESIDES
    - [+] redo all definitions in data.c
2012-03-11 01:39:33 +00:00
Rob Pearce ea5d012876 - [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!!
- [+] air spells:
    - [+] create whirlwind - make a single whirlwind
        - [+] implement
    - [+] ethereal steed - move very fast and levitate
        - [+] f_autocreateob whirlwind behind you
        - [+] whirlwind object throws any lfs/objects around randomly
    - [+] tornado - creates a single tornado at a given location (more
          powerful). it moves around randomly, kills adjacent walls.
        - [+] F_OBMOVESRANDOMLY
        - [+] find an adjacent cell (walls ok)
        - [+] kill any walls there
        - [+] move there
    - [+] hurricane -  creates a cross cloud of whirlwinds (very
          powerful!). these move around randomly and kills adjacent
          walls.
        - [+] implement
        - [+] make them all move TOGETHER.
- [+] djinni / genie
    - [+] invisibility
    - [+] gaseous form
    - [+] illusion? mirror image ?
    - [+] permenant ethereal steed effects
    - [+] airblast
    - [+] gust of wind
- [+] efreeti
    - [+] wall of fire (new spell)
    - [+] gas form
    - [+] enlarge
    - [+] flame pillar
- [+] when summoning a monster with a lifeob, place it under them?
- [+] druid should learn canwill plantwalk at some point... level 7
- [+] allow f_cancast to have a timer too, like canwill. (so that
      monsters only cast certain spells sometimes)
- [+] is ai plantwalk working?
    - [+] seems to...
    - [+] but then i get "something casts a spell at you!"
    - [+] aigetspelltarget is setting targlf to player. FIXED.
    - [+] ai keeps on casting plantwalk after doing it once.
    - [+] ai needs to sto fleeing after casting plantwalk successfully!
        - [+] this is because after stealing, we are fleeing for a time
              limit, rather than PERMENANT
    - [+] once this is fixed, add spellcasttext plantwalk = null for
          dryad.
- [+] NEw code:  if you teleport, and you were fleeing, and you can no
      longer have LOF to the one uou're fleeing from, STOP.
- [+] The dryad vanishes!  A dryad moves out of view.--More--
    - [+] don't say both!
- [+] change CHARMEDBY code for player:
    - [+] walk towards charmer, then give them your stuff!
- [+] dryad brown 'T' (tree creature)
    - [+] knife
    - [+] must stay near oak tree
    - [+] can "plantwalk" between oak trees (or other plants).
        - [+] cast spell at cell with plant, warps you to a random one
            - [+] for player:  reveal all cells with trees, then ask
                  you which one.
        - [+] range 1
        - [+] maxpower 1
        - [+] ai casting:  must be a plant in range.
    - [+] emergency code: if not within lifeob range, move back!
    - [+] can cast sleep
    - [+] wants gold/gems/weapons
    - [+] home oak tree contains gems
    - [+] steal
    - [+] stayinroom
    - [+] charm 
    - [+] AI shouldn't ever walk away from life ob!
    - [+] ai homeob gems aren't appearing
2012-03-07 11:46:55 +00:00
Rob Pearce 95e470238e - [+] fire skeleton shouldn't be immune to cold
- [+] if monster dodges your first atatack, cancel the second!
- [+] make god anger/happiness fade over time, unless they are enraged
      (1 per turn ?)
    - [+] chance of fading is 1 in (abs(piety)/100)
- [+] don't include " [tried] when dumping bones!
- [+] "repair all"!
    - [+] implement repairall
    - [+] make repairall like eating (auto action)
- [+] time taken when you fall down should be longer
- [+] F_STAYINROOM monsters will go back to their lair if they ahve no
      target.
- [+] more object decay in bones files:
    - [+] blood splashes/pools become blood stines
    - [+] all objects have a 1/4 chance of vanishing (someone picked
          them up)
- [+] resting should only please glorana if your'e actually worshipping
      her!
- [+] exploit: stand outside jimbo's room and pelt him! fixed.
- [+] random "behaviours" for more/less hp
- [+] around dlev 8-9, monsters are too easy.  at this point i'm
      dealing 10-20 damage per hit.
    - [+] give monsters a "Challenge Rating" seperate to their hitdice.
    - [+] instead of gethitdice(), use getcr()
    - [+] change dumpmonsters
    - [+] use cr() to determine what monsters will appear, not hit dice.
    - [+] that way i can have certain mosnters have more hp, but still
          appear higher in the dungeon
    - [+] initially, assign CRs based on hit dice
    - [+] when rolling hitdice for monsters, always give maximum, then
          go up/down by 15%
- [+] monsters shoiuld always know spells from their spellbooks.
2012-03-06 10:47:26 +00:00
Rob Pearce 69cd41a714 - [+] make zombies eat flesh.
- [+] warn before eating your own kind if it will anger your god, and
      you wisdom is high.
- [+] make disease way worse if you eat your own race's corpse!
- [+] CRASH when i try to cook firebug corpse
* [+] bones files:
- [+] when your leg is bleeding, don't lose hp for ATTACKING, only for
      MOVING.
- [+] bug: issue with skill display if you learn higher than your max
      level by reading a book!
    - [+] in this case, reading the book should fail.
- [+] when you start worshipping felix, allow you to learn lockpicking
      & thievery to full level!
- [+] infinite loop when an ashkari enters rage while already eating.
- [+] felix prayer should always unlock all nearby doors
- [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1.
    - [+] that way we can confer it!
- [+] say "this is xxx!" after wearing a new amulet.
- [+] fork / knife should make you eat faster.
- [+] double the hp of most armour again
AMULETS
- [+] add new bodypart = neck
- [+] object hiddennames
    * [+] nouns
    * [+] adjectives
- [+] flight  (canwill fly)
- [+] enhance spell power
- [+] victimization (makes everything hostile) (no auto id)
- [+] blinking
- [+] anger (canwill rage)
- [+] vs poison (poison immune)
- [+] vs magic (magic resistance)
- [+] common
    - [+] feather fall (dt_fall dmg = 0)
        - [+] don't "slam into the ground", just "float gently to the
              ground"
    - [+] of amplification (boost listening skillchecks, allow you to
          listen at stairs)
    - [+] peaceful sleep (don't get woken up by sound, cursed)
    - [+] chef's amulet(lower metabolism) 
    - [+] thief's amulet (lockpicking)
2012-03-05 10:31:21 +00:00
Rob Pearce 1fb5e12386 - [+] need a better message when sickness wakes you up.
- [+] at the moment i just get "your rest is interrupted!"
- [+] incorrectly calling getlorelevel() with raceid ratehr than
      raceclassid.
- [+] CRASH in spellresisted() when caster is null
- [+] fix rest being interrupted by all flags!
    - [+] flagcausesinterrupt()
    - [+] test - get poisoned then sleep/train
    - [+] test - potion of elemental immunity
- [+] metal armour now isn't being damaged _enough_!
    - [+] fixed - wasn't applying the full original damage to armour.
2012-02-28 12:02:38 +00:00
Rob Pearce 067cd92f37 - [+] delvers should always want money for info, unless you are a
delver too.
- [+] mirror image (mental)
    - [+] varpower
    - [+] makes power 'clone' lfs who look the same as caster
        - [+] ie. same race.
        - [+] also same job/armour/weps?
        - [+] add f_noxp
        - [+] add f_nocorpse
        - [+] add f_summonedby so they vanish when the caster dies
        - [+] add f_phantasm
            - [+] vanish after _power_ hits,
            - [+] attacks do 0 damage
            - [+] don't announce innefectual attacks
            - [+] dont cast spells or use abilities
        - [+] petify() them if made by the player
            - [+] force them to stay close.
        - [+] in io.c or getlfname, show "[clone]" if it has f_phantasm
              and was created by player
    - [+]  mosnters try to attack them.
    - [+] once one gets hit enough times, it disappears
    - [+] if the caster dies or changes level, they disappear.
    - [+] can't talk to them
    - [+] their obejcts vanish when they die
    - [+] don't talk
- [+] make Yumi more about forgiving silly mistakes and avoiding
      instakills
    - [+] remove liking of healing
    - [+] remove like of healing spells
    - [+] takes a long time to anger.
    - [+] aviod traps (bamf you away before they trigger)
    - [+] prayers:
        - [+] resist stoning (pray while appropriate creatures around)
        - [+] resist paralysis (pray while appropriate creatures around)
        - [+] sleep on enemies
    - [+] passive powers:
        - [+] always warn as if wisdom is high (passive) 
        - [+] always save when killed right after using stairs
              (passive) "well, that seemed unfair."
    - [+] gift:
        - [+] auto sixth sense
        - [+] potions of restoration
        - [+] ring of miracles
- [+] shouldn't be able to Offer while enraged.
- [+] don't lose stamina while caffeinated
- [+] new vault: pit with walkway around it
- [+] bug: when worshipping yumi you get "you kill xxx" but they're
      still alive
    - [+] ... but they're still alive!
    - [+] ... for yumi, move KO chance from losehp() to attacklf().
    - [+] do the check BEFORE setting 'fatal'
    - [+] pass forceko to losehp_real
- [+] bug: adjustdamhardness should only trigger when ismeleedam() is
      true, not isphysicaldam()
- [+] greatly reduce motel cost
- [+] change order in attack.c: apply damage THEN announce, to deal
      with KO
    - [+] do it.
    - [+] test KO code.
    - [+] then check that feign death still works
- [+] demonskin vest should be flammable or vulnerable to fire.
- [+] time to get up should depend on size.
    - [+] less than human: shortnone
    - [+] human: normal
    - [+] larger than human: longer
- [+] expert unarmed now gives you 'flip'
- [+] reduce damage done by low-level monsters
- [+] change resoration into a spell
    - [+] implement
    - [+] test
- [+] new spell: ressurection
    - [+] corpses need to remember their lf's level
    - [+] test
- [+] godstone of life - revives/restores all
- [+] rename "confiscate" to "yoink", and make it take a random object
      at power 1, selected at power 2
- [+] gods should attack player if they are Enraged or Furious
- [+] is STR calc to see if you can push a boulder still working?
- [+] change to wizards:
    - [+] start at novice in all magic skills (but don't gain initial
          spells)
- [+] killing undead should please glorana LOTS. because it's hard to
      gain piety with her otherwise.
- [+] restoration spells/potion should hurt undead
- [+] healing spells/potions should hurt undead
- [+] immolate shouldnt work if there is aleady a fire tehre.
CODE FOR WINNING THE GAME:
- [+] get at least one godstone
- [+] exit the dungeon
- [+] find the portal to the realm of gods
- [+] opposing god should appear once you pick up a godstone, and tell
      you what to do next.
    - [+] "come to the realm of gods and use it to destroy (related
          god)"
    - [+] "or if you lack the courage, give it to me!"
    - [+] "you will find a portal on the surface"
- [+] use the portal to teleport to realm of gods
- [+] implement text for all gods...
- [+] god text in wt_god - should say 'but you werent meant to replace
      them!'
- [+] EITHER:
    - [+] challenge and defeat the god related to this godstone (more
          points. "Crowned the god of xxx.")
        - [+] TEST
    - [+] offer the godstone to the godstone's opposing god  (less
          points, "Ascended to demigod-hood.")
        - [+] implement
        - [+] TEST
GODSTONES:
- [+] klikirak: rage
    - [+] done
    - [+]  (make this one have fire effects too)
- [+] glorana: life
- [+] Felix shouldn't be able to yoink the godstone off you!
- [+] Write up the rest of the Godstone finding text.....
    - [+] magic
    - [+] battle
    - [+] life
    - [+] mercy
- [+] you can't hurt gods unless you
    - [+] a) have their godstone
    - [+] b) are in the realm of gods
2012-02-17 05:16:45 +00:00
Rob Pearce 30006c4cac - [+] for intelligent and wise monsters in groups, make at lesat one
stay awake (on guard)
- [+] shouldn't get salmonella from roast meat! implement israwmeat()
- [+] Curse removal -      $-2147483648 each
      Blessings     -      $-2147483648 each

      (there is a $644245120 surcharge for uncursing an equipped item)
      Pay for a blessing (you have $118) [yn]?
    - [+] fixed.
- [+] f_rage should make f_hiding disapepar.
- [+] after stealing from shop, call more() to allow for god messages
- [+] problem - vampires shouldn't ALWAYS be flying.
    - [+] any race with 'f_flying' should have f_canwill fly as well. 
          Use naturalflight on race instead.
- [+] call touch() on your weapon every turn? (ie. for red-hot ,
      undead, etc)
- [+] CRASH right after a cockatrice stoned my wolf.
    - [+] lf->flags = NULL
    - [+] lf->race = corrupt.
    - [+] because i'm calling die() from withing stone() from within
          timeeffectsflags()
2012-02-14 19:11:33 +00:00
Rob Pearce 0ce77ec00b - [+] firebug should deal 1 fire damage to anything on the ground
- [+] f_damagegroundobs v0=dam, v1=damtype
    - [+] add a similar thing ice wraith (they cause cold damage)
- [+] psionic spells:  baffle and disorient too similar?  make one a
      lower level ?
    - [+] make disorient face them away from you!
- [+] ekrub shouldn't get angry for crushing glass underfoot
    - [+] OR... warn before you do this if you worship ekrub
- [+] don't drip water while inside a wall (ie. ethereal)
- [+] don't show "[tried on xxx]" for objects in store inventories!
- [+] make "i bestow a gift" msg change depending on god
- [+] potion of etherealness spell disappating twice?
    - [+] ie. stopspell being called twice.
    - [+] spell effect now chacks for existing noncorporealness
- [+] different god msg if they are angered but still pleased
    - [+] "don't do that again!"
    - [+] "ahem!"
    - [+] "i won't tolerate further transgressions"
    - [+] etc
- [+] io.c not showing that druid is vegetarian.
    - [+] show this only if ilfetime !=  FROMRACE
    - [+] don't show it otherwise, since it's a racial trait.
    - [+] change hasflag_real to have "int lifetimeexception"
    - [+] same with:
        - [+] VEGERATIRNA
        - [+] CARNIVORE
        - [+] PARTVEGETARIAN
        - [+] F_SIZE??
        - [+] VISRANGEMOD
- [+] stickstosnakes - make this not affect the CASTER's equiped
      weapon, but it doesnt affect weapons of others.
    - [+] implemment
    - [+] make spell description describe this.
- [+] make safebox not be stealable
2012-02-04 23:26:16 +00:00
Rob Pearce a4ac951f15 - [+] remove "inscribe" spell for now.
- [+] beginner perception should let you see next to you.
- [+] fix trail directions when checking stairs
- [+] make labyrinth vault be a proper labyrinth shape
- [+] 'spark' should affect floor obs even if there is a lf there.
- [+] cursed scroll of awareness should blind you for 10-20 turns.
- [+] bug: monsters trying to flee through locked drainage grate.s
- [+] new god: Bjorn the battlelord
    - [+] Pray effects:
        - [+] bless weapon
        - [+] bezerk 
        - [+] true strike
        - [+] haste
    - [+] Likes: battles (ie. kill last enemy in lof)
    - [+] Dislike:
        - [+] calming
        - [+] poison
        - [+] magic (wands, spells etc)
        - [+] retreat (moving away with back turned) "Coward!"
    - [+] gifts:
        - [+] weapons, armour
    - [+] sacrifice:
        - [+] untouched battle spoils
        - [+] after dropping objects, add f_battlespoils if YOU killed
              the ownert.
        - [+] remove this if/when the object gets moved again
        - [+] splatter blood
    - [+] minor anger:
        - [+] rust your armour / weapon
    - [+] major anger:
        - [+] destroy your armour
        - [+] destroy your weapon
        - [+] summon lots of enemies
- [+] new god: Lumara - fem, magic
    - [+] likes:
        - [+] most things which train magic skills
            - [+] ie. casting spells
        - [+] using wands
        - [+] reading scrolls
    - [+] dislikes:
        - [+] missile weapons
    - [+] pray:
        - [+] restore mp if low
        - [+] identify books/scrolls
        - [+] remove curses
    - [+] gift:
        - [+] spellbooks
        - [+] manuals of spell schools
        - [+] extra mp
    - [+] angry minor:
        - [+] lose mp
        - [+] forget a spell
    - [+] angry:
        - [+] spells stop working (100% failure chance)
        - [+] forget all spells
        - [+] polymorph you into something bad
    - [+] sacrifice
        - [+] weapons / armour
2012-01-25 09:20:15 +00:00
Rob Pearce 4a32308310 - [+] dual wield, then weild -, say "y" to "weild nothing in your left
hand", CRASH.
- [+] rogue should start with novice speed and throwing
- [+] better method of sneaking - just hiding in one spot isn't
      effective.
    - [+] get "hide" at novice level
    - [+] at beginner level, you can move while hiding. ( but if
          someone hears you, they spot you)
- [+] if you can't see an object (ie in inventory it just comes up as
      "a potion"), make the description be generic.
- [+] stealth shouldn't affect movement noise uless you are hiding
- [+] move slower when hiding.
- [+] trying to hide while already hiding will cancel it.
- [+] rename f_sneak to f_movecarefully
- [+] move "you attack the helpless xxx" into construct_hit_string.
- [+] light level should affect stealth checks.
- [+] flying should only impact stealth checks to make noise, not to
      hide.
- [+] sprint should stop hiding!
- [+] weapon brand: of protection.  gives AR. 
    - [+] make sure i show this in showlfarmour ]
- [+] shouldn't be able to backstab plants
- [+] no hiding while producing light.
- [+] changing armour should stop you from hiding.
- [+] let you hide when you can see monsters, but they instantly get
      F_SPOTTED.
- [+] different verbs for god voices
- [+] remove "enhanced smell" from xat and dire rat.
- [+] make guns usually start with ammo
- [+] gain attrib point on _every_ levelup, but 2 each time not 5.
    - [+] this means that we now gain 6 stat points every 3 levels
          rather than 5, but they can be spread out.
- [+] rogue modifications
    - [+] change starting backstab level from beginner -> novice
- [+] generated monsters: "It is sleeping. It is flying."
    - [+] should be sleeping AND flying!
- [+] remove duplicate tanglemissile code.
- [+] change F_ATTREQ - split up penalty cutoff and bonus cutoff
    - [+] needs a "boostafter" param.
    - [+] ie.
        - [+] needs at least ATTREQ agility to USE it.
            - [+] if you are less than this, start applying penalty.
        - [+] v2 = BOOSTAFTER level. (CHANGE)
            - [+] if you are above this amount, start applying bonus.
        - [+] text = scalepercent. (CHANGE)
    - [+] adjust code
    - [+] adjust defs
    - [+] explain in io.c
    - [+] test
- [+] new felix pray effect: invisibiltity
2012-01-23 07:16:18 +00:00
Rob Pearce bbaca368e7 - [+] make ring of invisibility also drain your hp!
- [+] monster with tremorsense can 'hear'
- [+] allow attacking of wall cells with normal melee attacks
    - [+] glass should shatter
- [+] option: stop running on hearing a sound
- [+] make describerace use downline().
- [+] make certain strengths and weaknesses not show up in player
      selection
- [+] An uncursed manriki wraps around the hawk.  The hawk falls to the
      ground.
      A black bear comes into view.
      You critically scratch #.  The black bear roars.
    - [+] check construct_hit_string.
    - [+] i was hitting a hawk.
- [+] still some entrances overlapping glyphs.
    - [+] genericise checking code in fix_Reachabilty
    - [+] Also: in fix_reachability, disallow linking to cells which:
        - [+] are adjacent to a door
        - [+] are part of a vault with maintain_edge, and are 't marked
              as exits.
    - [+] looking a bit better now...
- [+] incorrect glyph colour for animated zombies
- [+] grow/shrink potions? to change lf size to fit armour.
    - [+] resizelf()
    - [+] modification spell (l2)
        - [+] grow
        - [+] shrink
    - [+] potions
        - [+] cursed growth does shrink
- [+] make rare monsters / objects only sometimes be known.
2012-01-12 01:28:07 +00:00
Rob Pearce 5c4fb99162 - [+] player should know about all cells in lof/los at start of game.
- [+] stop sprinting when you rest.
- [+] show Injured on botl 
- [+] i got hit by a fire bolt spell while asleep, but never got told
      that it hit me!
2012-01-09 06:53:52 +00:00
Rob Pearce e1b569f306 - [+] BUG: trying to go down stairs from L7 (6?)
- [+] You walk down the staircase...
          ERROR - can't find opposite end of stairs/portal!
    - [+] You walk down the staircase...  ERROR - unlinked stairs!
    - [+] This is related to the fact that all the staircases came from
          Jimbo's vault
    - [+] For some reason we're not linking them when they come for ma
          vault!!!
    - [+] "joining unliked stairs" section not working???
        - [+] it calls getstairdestination, but this DOESNT call
              linkstairs!
        - [+] maby: call autolink everytime i add stairs ?  or only do
              this during createvault ?
- [+] automatically remove useless doors (ie. ones where all adjacent
      walkable cells are in the same room)
- [+] in fix_reachability i'm drawing a corridor through vault/room
      walls. <- probably this one.
    - [+] don't allow auto reachability to enter rooms through the
          wrong side wall.
    - [+] TEST during regular playtests, see if maps look better.
- [+] quality on doors.
    - [+] sturdy / plain / shoddy doors. this impacts the hp
    - [+] stone doors (solid / plain /crumbling)
    - [+] metal ( reinforced / plain / rusty)
    - [+] only show this if perception >= beginner
- [+] dungeon shapes
    - [+] new cell attribute - locked.
    - [+] calcroompos can't make rooms on locked cells.
    - [+] normal
    - [+] cross
    - [+] circle
    - [+] turret
    - [+] - premask out blocked cells before generation!
- [+] minion code - if leader dies,
    - [+] minions drop morale
    - [+] and might either immediately flee 
    - [+] need lastdamlf
- [+] if wisdom >= gtaverage, automatically turn off lamps when you go
      to sleep 
- [+] "scratch"/"gnaw" etc should be based on actual damage hp amount,
      not percentage.
    - [+] change getattackverb()
    - [+] 1-2
    - [+] 3-6
    - [+] 8-12
    - [+] 12-18
    - [+] 18+
- [+] shop objects should start with all flags known.
- [+] allow usage of godstones without id'ing them first.  this will id
      them.
- [+] weapon/armour shop should resize armour for you for a cost.
- [+] chanelling bonus
    - [+] novice
        - [+] tell you when wand is low on charges (0-3)
    - [+] beginner
        - [+] let you determine exact remaining charges in wands once
              it is == 1!
    - [+] adept
        - [+] let you determine exact remaining charges in wands once
              it is <= 3!
    - [+] skilled:
        - [+] let you determine exact remaining charges in wands once
              it is <= 6!
    - [+] master
        - [+] lets you always see full amount of want charges.
        - [+] lets you convert your mp into wand charges? "imbue item"
2012-01-09 04:02:26 +00:00
Rob Pearce 585876caee - [+] high metalwork/sewing lets you make things into masterwork
(combine two).
- [+] get dizzy if you turn too much.
- [+] stomach
    - [+] obejcts - gems etc (check phone)
    - [+] if you kill it form inside, you get expelled.
- [+] don't say "you hear fighting" when things are attacking you!
- [+] fix crash in polymorph code
- [+] All bandits should demand gold
    - [+] when you give it to them, thel ALL get satisfied.
- [+] more flagpile corruption still happening.
    - [+] wasn't allcoating enough space for losdark in precalclos.
- [+] still missing death announcement for plauyer pets
- [+] reduce #attacks for young hawk to 1
- [+] mercy
    - [+] say this to intelligent mosnters then pass a speech check
    - [+] if you pass:
        - [+] they say something
        - [+] they ko you
- [+] monstesr shouldn'ts randomly move into unconscious/dead lfs
- [+] monsters should take wanted obs from adjacent unconscious lfs
    - [+] when you wake up: "some/all of your items are missing..."
- [+] at beginner weapon skill level: exposed strike - takes longer but
      higher accuracy?
- [+] impaler frog
- [+] sinkmite
    - [+] drills for hands
    - [+] canwill Ot_s_dig
    - [+] targetting:
        - [+] fleeing: downwards
    - [+] can drill downwards to flee
    - [+] can dig through walls
- [+] necrons:
	- [+] trapper - blue
	- [+] reaper - red
	    - [+] scythe
	    - [+] hurricane strike
- [+] bug: necron reaper is not preffering its weapon for attacks....
      why?
    - [+] check attackcell()
- [+] fix colour in retaliation text
- [+] need to announce hurricane strike ability
- [+] amnesia scroll  - lose all skill points!
- Hecta effects
- [+] flay flesh (bleed depending on hitdice)
- [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent
      lfs, drags underground)
2011-12-20 08:03:15 +00:00
Rob Pearce 27f08ed7ab - [+] stomach code
- [+] create 1 vault
    - [+] must have:
        - [+] ot_playerstart
        - [+] ot_stomachexit
    - [+] swallow ability moves to there
    - [+] when the lf dies, destroy the map
    - [+] TEST
    - [+] mover object
        - [+] moves you if you didn't move
        - [+] f_pushdir, v0 = dir
        - [+] invisible obejct
    - [+] may flip them horizontally
    - [+] chance to dodge the swallow
- [+] rename green ooze to "sizzling slime"
- [+] don't put traps on top of stairs!!
- [+] remove unneeded extra redraw when changing levels.
- [+] make ']' show object AR bonusss
- [+] don't even call precalclos during endgame.
- [+] don't say "you see footprints and footprints here"
- [+] break grabs when you fall unconscious
- [+] bug - ring of wounding not working.
- [+] crash in free(npcnames) !!!!! pointer being freed was not
      allcoated
- [+] grave sprite
- [+] glutworm
    - [+] swallows you
    - [+] eats all objects
- [+] canines/felines should die from chocolate
- [+] weapons with multiple damtypes
    - [+] at adept skilllevel, you can change type (but only with
          weapons you're pr_skilled or higher in)
    - [+] f_altdamtype xx.  must have altdam for normal dam too.
- [+] fire primality
Hecta effect: - [+] necrotic beam
2011-12-19 08:04:49 +00:00
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 58f23588e8 - [+] weapon skill of sk_skilled or high gives you a chance to block
some damtypes
    - [+] BUT each weapon can only block certain damtypes (whereas
          shields can block all melee damtypes)
    - [+] add f_canblock to some weapons
    - [+] add f_canblock to shields
    - [+] check_for_block() should be a function
    - [+] getallshields()
    - [+] move othermod in SC_SHIELDBLOCK out of skillcheck(). 
          calculate the bonus beforehand instead?? 
    - [+] update descriptions for weapon skills
    - [+] can only block if you have full attrib requirements for this
          weapon
    - [+] update io.c to show what weapons/shields can block. "it can
          block xx, xx and xx damage"
    - [+] weapons can't ever block projectiles
- [+] make pickup/drop actions heaps faster
- [+] better description of agi/str affecting weapon accuracy/dam
- [+] stinkbeetle should be hostile, and should have bite attack ,not
      zapper
- [+] don't recover stamina while training
- [+] add seetext for "a blaring siren"
- [+] draw up a matrix for weapon types
    - [+] draw it up for:
        - [+] accuracy
        - [+] damage
        - [+] attack speed
        - [+] crit chance
    - [+] then adjust weapon stats
- [+] in shops, "?" now lets you examine an object
- [+] add canwill option for abilities:  "stamcost:" (to override
      stamina cost)
    - [+] add it.
- [+] bug: pickaxe not working
    - [+] "you start digging".  but nothign more.
- [+] salt kills:
    - [+] frog
- [+] impaler frog
    - [+] canwill jump
    - [+] ranged tongue attack
    - [+] killed by salt
- [+] BUG; getting manuals with no contents
- [+] odd-sized armour should cost more.
- [+] need to set statdirty when we change armour.
- [+] when we say "you see x and y here", don't include obs we can't see
2011-12-12 16:40:17 +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 9da88f06e3 - [+] ob1() macros
- [+] healing  potions should heal even "permenant" injuries
- [+] potions/spells
    - [+] summon decoy (chicken horde) spell  - "friends!"
    - [+] potion of spider climb (arachnid adhesion)
    - [+] gloves of the spider
- [+] F_startobwepskill sk_shortblades etc
- [+] change mosnter starting weapons to be based on wepsk, not
      specific named weapons
- [+] make wrapprint cope properly with 0 length strings
- [+] fix io.c showlfstats layout
- [+] fountains of xp should always dry up after one use!
- [+] plants shouldn't leave footprints!
- [+] fix overcomplicated code in updateknowncells
- [+] you always "see" allies following you down/up stairs, even if
      they are behind you.
- [+] remove dtresist slash from skeletons - their bone skin reduces
      this already.
    - [+] leave dtresist pierce because it's hard to hit them.
- [+] confirm gold amount when donating to shops
- [+] increase piety by half of any gold donated to temples
- [+] move hp, mp, sp to same line as target, and make them into bars
    - [+] HP:[    11 / 11   ]
    - [+] makebar(window,min,max, loss,barcol, losscol)
        - [+] print the prefix:  "HP:["
        - [+] construct the bar string to fit into 10 chars: "     11 /
              11    "
        - [+] print it one char at a time, setting bg as follows:
        - [+] background:
            - [+] 0 - min is barcol
            - [+] min+1 - min+loss is losscol
            - [+] rest is black
        - [+] print the suffix:  "]  "
    - [+] remember last dam amount for hp.
    - [+] show mp and stamina like this too.
- [+] update viewpoint sooner when moving vertically
- [+] if you can't comprehend the contents of a spellbook, don't ID it!
- [+] hpbar: pass textcol and texcolwithbg
- [+] show f_stability in @e
- [+] don't identify tech inside shops if it's beyond your skill level
- [+] bug:  "a cursed +-1 ring of dexterity"
- [+] enraged or deaf lfs shouldn't respond to chats
- [+] drawbar:  show mp/sp text in orange if it's at 0.
- [+] allow vegetarians to eat frozen corpses.
- [+] anything flying + stunned loses flying.
- [+] chance for monsters to throw missiles is reduced when acc <  C
    - [+] use same code as firearms
- [+] undead shouldn't lose consciousness - they should jsut die.
2011-12-05 17:03:47 +00:00
Rob Pearce d5b1e40f98 - [+] add more vrare vaults to reduce likelihood of cockatrice lair!
- [+] bazaar
    - [+] money vault hsould be vrare
    - [+] so should traproom
- [+] rename giant rat to "dire rat"
- [+] don't show anything other than object description and throwing
      for unknown tech
- [+] shouldn't be able to rest in a tent if it's not known!
- [+] eyebat corpse increase maxmp?
- [+] blessed missiles should nearly always hit undead
* [+] too easy to dodge thrown missiles?
- [+] spell and wand of culinary abundance
- [+] if a carnivorous animal kills you:  "Eaten by a xxx"
* [+] bug: stairsperlev is only ever used in making DUNGEONS. 
      generecise this ??
- [+] safetorest - should ignore monsters feigning death
- [+] broken nose should reduce smell range
- [+] fresh and stale bread should be interchangable in cooking
- [+] make scroll of permenance act on you, not your objects
- [+] tweak object rarity yet agian...
- [+] bug: hole in roof above player start pos is immediately destroyed.
- [+] change pickaxe to be like resting
    - [+] wait first, then if not interrupted, do the dig.
    - [+] add cell->hp, celltype->hp. around 100.
    - [+] f_digging, x, y, digperturn
    - [+] interrupt() will stop this.
    - [+] each turn, lower hp of cell by 1.
- [+] make wlaking bakwards take less time based on athletics skill!!!
    - [+] at adept, takes no extra time?
- [+] better racial display
    - [+] ? for extra info.
        - [+] hitdice
        - [+] general attribs (str etc)
        - [+] don't show description until you press '?'
        - [+] addbonustext(flagpile, f_BONDESC, "asdffas") - to avoid
              index issues
        - [+] remove VULNS from "effects" unless temporary
            - [+] isresistantto() etc need to have "int onlytemp"
        - [+] remove VULNS from manual BONTEXT flags
        - [+] CRASH IN DTVULN CODE!!
- [+] limit '?r' display ??
    - [+] what to show
        - [+] show races you have encountered
        - [+] show races you know about through Lore (adept level)
        - [+] show playable races?????
    - [+] structs
        - [+] race->encountered
        - [+] need to save this.
- [+] make EFFECTS only show TEMPORARY effects or ones which don't come
      from race?
- [+] automate bondesc/pendesc based on flags!
    - [+] vulnarabilities / resist / immun
    - [+] vision range!! (visrangemod)
    - [+] size? restricted armour.
    - [+] stayinroom
    - [+] f_humanoid (can use weapons)
    - [+] tamable
    - [+] seeindark
    - [+] caneatraw
    - [+] enhancesmell
    - [+] caneatraw
    - [+] vegeatrian
    - [+] cernivore
    - [+] fastmetab
    - [+] startskill
    - [+] tremorsense
    - [+] silentmove
    - [+] deaf
    - [+] flying / levitating
    - [+] awareness
    - [+] nocturnal / diurnal
    - [+] heavyblow
    - [+] packattack
    - [+] dodges
    - [+] autocreateob
    - [+] MPMOD
    - [+] HPMOD
    - [+] MEDITATES
    - [+] PHOOTMEM
    - [+] canwill "Spells: xx, x, x, x"
- [+] spells:
    - [+] animate stone - "power" walls turn into stone golems
        - [+] implement spell
        - [+] golem
            - [+] r_golemstone
            - [+] knockback attack
            - [+] high str
            - [+] fists 
            - [+] corpsetype and iunsummonob = boulder
- [+] spell power modification - subtract spell level.
- [+] when i go down a drain, make sure the new map links to THE DRAIN
      I WENT DOWN. not some otehr one.
- [+] some monsters shouldn't sleep! add new flag: f_nosleep
- [+] make spanner help disarm traps!
2011-12-03 22:33:37 +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 e9edb81ec6 - [+] when something grabs you, show an 'X' in its location so you know
SOMETHING is there.
    - [+] do this in getscannedthing .  glyph = 'X'
    - [+] make grabbing force a redraw if the target is the player!!
- [+] fix crash for fountain of ambrosia (because potion name starts
      with 'vial' not 'potion')
- [+] show X for latched on monsters too
- [+] and make latching onto the player force a redraw too
- [+] chnage f_rage flag redraw to be done in flagcausesredraw()
- [+] shop bugs
    - [+] bug: food vendor only had 3 pieces of food
    - [+] bg: jewellery store had no items!!
- [+] getrandomobject bug
    - [+] bug - wantrr too low!!!
    - [+] if wantrr gets to 0 and still nothing, start ticking up from
          original value.
- [+] bug: rings cost $0
- [+] need a warning before invisibility runs out
- [+] make most recipe food heal you a bit
- [+] if interrupted halfway through training, remember where we were
      up to
    - [+] instead of using F_TRAINING->val[2], use F_TRAINING->val[0]
          (v1 is the goal)
    - [+] when you start resting, if you don't already have it, add it:
        - [+]                 v1 = 50;
                              v1 = modifybystat(traincounter, player,
              A_IQ);
        - [+]                v0 = 0
        - [+] if you DO have it, drop v0 by 25 modified by IQ.  minimum
              of 0.
    - [+] when you train, INC the counter, don't dec it.
    - [+] when v0 = v1, your'e done.
    - [+] when you finish training, kill the flag.
- [+] shadowcat meat - produce and see through smoke
- [+] split aimove up into sections
    - [+] emergencies
    - [+] healing
    - [+] housekeeping
    - [+] inventory mgt urgent
    - [+] attacks
    - [+] pre-movement
    - [+] movement along existing paths
    - [+] boredom
        - [+] go back to my shop
        - [+] look for something to attack
        - [+] gods go home
        - [+] training
        - [+] inventory_mgt_nonurgent
            - [+] repairing armour - move this to inventory mgt??
- [+] snakes "slither into a wall", not walk. use F_WALKVERB
- [+] animate stone spell - turn statues to pets.
- [+] can't be both a vegetarian and carnivore!  race overrides job.
2011-11-23 22:10:08 +00:00
Rob Pearce c596623603 - [+] monk fist damage not increasing.
- [+] RANDOM MONSTER BUGS
    - [+] levle 1: always getting goblins/kobolds
    - [+] levle 2: always getting poltergeists
    - [+] debug getrandomrace()....
    - [+] enforce f_rarity val[2] != NA!!
- [+] empty levels
    - [+] whenever we pick rr=frquent, we're getting no monsters
    - [+] start MONSTER randomness at COMMON
- [+] bug: i lost f_size when i died when polymorphed!
- [+] yumi should only hate killing helpless things, not ANYTHNIG!
- [+] make armour more common than weapons, since this tends to get
      damaged
- [+] bookshelf (contains scrolls/books)
- [+] wardrobe (contains armour)
- [+] coffin sometimes contains corpses
- [+] not getting enough objects now ??
2011-11-22 00:38:01 +00:00
Rob Pearce 3c7fa61324 - [+] rage:
- [+] no spells/abils
    - [+] no throw
    - [+] no operating wands
    - [+] will not flee
    - [+] no weilding/unweilding
    - [+] no wearing/takingoff
    - [+] don't warn or swap with friendly lfs
    - [+] always attack doors rather than open them.
    - [+] can't close doors.
    - [+] become exhausted when rage runs out
    - [+] infiniite stamina when you're enraged
    - [+] can't quaff/read
- More kill verbs
2011-11-18 03:25:09 +00:00
Rob Pearce 10e4713940 - [+] shops on a level should make loud sounds every few turns. (onein3)
- [+] inifniite loop in ?k
- [+] add to balaclava:  equipconfer -> f_anonymous
    - [+] can't get banned from shops with this!
- [+] when randomly increasing skills, don't select maxed ones.
- [+] remove warning for movement while bleeding
- [+] injuries heal too fast.
- [+] bug: The sound of sounds of fighting awakens you!
- [+] shouldnt be able to rest while airborne!
- [+] make drunkenness give more damage resistance!
- [+] "unseen" etc not working on tombstone
- [+] bug: merloch getting infinite attacks!!
- [+] add "a xxx moves out of view"
- [+] why are wizards starting with 2 cold spells? fixed. was getting
      an extra one for gaining a "new" spell skill.
- [+] slowwalking shoudl reduce move volume, not eliminate it.
- [+] i noticed a secret iron door forom 6 cells away!
    - [+] make SC_SEARCH not autopassable on natural 20.
- [+] armour can have a SIZE
    - [+] remove some occurences of "f_noarmouron"  for sz_large,
          sz_small creatures
    - [+] in "canwear", implement size check.  if lf's body size isn't
          sz_human then armour must have "f_armoursize -> sz_xxx"
        - [+] exception for ears / eyes
    - [+] f_multisize
    - [+] f_armoursize sz_xxx
    - [+] can only wear armour whih is your size
    - [+] in io.c, show armour size
    - [+] assign f_multisize to objects
    - [+] when adding objects
        - [+] cope with asking for "large armour" etc
        - [+] adding to a lf's pack? make sure armour is the correct fit
        - [+] somewhere else?  25% chance of different size.  if so,
              50/50 as to which way.
    - [+] in getobname, show "huge armour" etc
        - [+] medium ("halfling size pair of gauntlets"),  human
              ("gauntlets"), or large ("huge gauntlets")
    - [+] high sewing/metalwork skills will let you modify armour for
          custom fit.
        - [+] half the hit points of the object
- [+] implement a multi-level menu system for shops
- [+] text on shop exit ("thank you for your business!")
- [+] shops:
    - [+] only let you donate if you can takeoff / unweild it first.
- [+] replace "vending machine" with shop
- [+] make shops/buildings their own category
    - [+] this will let us say 'random shop'
- [+] enable stealing from shops
- [+] armour
- [+] book
- [+] weapon
- [+] general
- [+] potion
- [+] hardware
- [+] food 
- [+] jeweller
- [+] always show full name for shop items
- [+] temple of xxx -
    - [+] actions
        - [+] donate
        - [+] detect curse
        - [+] bless(costs more if equipped)
        - [+] absolve sins
        - [+] special depending on who the temple is to?
    - [+] temple of'xxx' - assign in addobject()
- [+] extend CHA/SPEECH mods to all shops
- [+] disable stacking for shop objects
- [+] hotel/inn 
    - [+] actions
        - [+] pay to rest (for 100 turns)
            - [+] if you do this, call startresting() before exitting
                  shop
            - [+] and set some kind of flag so monsters will never
                  approach
            - [+] maybe:  f_resting_in_hotel
            - [+] and so that they will never wake up you up through
                  sound
            - [+] remove these when you stop resting.
            - [+] force you to stop resting once your time expires
        - [+] buy food/drink
- [+] weapon shop:
    - [+] donate weapons
- [+] armour shop:
- [+] buy armour
- [+] donate armour (so that monsters don't pick it up!)
* [+] firearm reload messages
- [+] don't take f_throwmissile into account when using telekinesis
- [+] ranged weapons: auto reload after firing.
    - [+] done.
2011-11-16 00:57:21 +00:00
Rob Pearce dd03042c70 - [+] prevent 'A' (forceattack) behind you
- [+] replace:
    - [+] Something critically savages your body.  
          Your uncursed suit of ring mail protects you.
          Your suit of ring mail is damaged!
    - [+] with:
        - [+] Something critically savages your suit of ring mail.
        - [+] Your suit of ring mail is damaged!
- [+] tremorsense shouldn't see flying creatures
- [+] rename blink to "bamf"
- [+] add F_containsmeat for non-vegetarian foods
    - [+] use this in vegetarian checks instead of mt_Flesh
- [+] "what goes up" spell
- [+] "equal and opposite" spell
- [+] why didn't cyborg ninja start with weapon weilded?
    - [+] getbestwepon - accuracy was counting for too much. have
          changed calculation.
- [+] why is wizard's staff not enchanted???
- [+] elephant race - Pachyon or Mammoan
    - [+] bonus
        - [+] Leather skin
        - [+] str++
        - [+] photo mem
        - [+] high listen skill
        - [+] good smell
    - [+] penalty
        - [+] slow movement
        - [+] no armour on ears
        - [+] agi-
        - [+] low eyesight
        - [+] vuln to sonic
        - [+] vegetarian
    - [+] other
        - [+] large
- [+] throw salt to blind targets
- [+] if you learn a new spell school skill while game is in progress,
      gain a 1st level spell too.
- [+] for random roast meat, always use base race 
    - [+] ie. orc, not "elite orc"
    - [+]  (ie. human, not 'town guard')
- [+] remove "prepare food" skill.
    - [+] use "cook" instead
- [+] startskill should be a modifier, not absolute.
    - [+] ie. elf can have sk_ranged, so can hunter.  these will now
          stack.
- [+] chance for ai to use a firearm is lowered based on firearm
      accuracy
- [+] bug: massively high amount of skillxp needed for a point
- [+] firearms should do more damage at pointblank range.
- [+] icicle bugs - getrandomadjcell for knockback failing
- [+] still a bug with firearm accuracy updating
    - [+] 2 squares away, move towards enemy - it doesn't update!
- [+] display all valid hits in brown
- [+] wear melted wax in ears to reduce sonic damage
- [+] ranged skillls
    - [+] adp
        - [+] fast reloading
    - [+] exp
        - [+] fire through lifeforms!  lof_wallstop instead of lof_need
    - [+] mas
        - [+] extra dam.
- [+] object HP issue:
    - [+]          head: b - an uncursed helmet [AR:3] [110%]
    - [+]          body: c - an uncursed suit of ring mail [AR:6] [173%]
    - [+]        hands: d - an uncursed battered pair of gauntlets
          [AR:2] [86%]
    - [+] are objects taking negative damage??
    - [+] have put an assertion in to check
    - [+] wait for it to happen again...
- [+] add hitchance to askcoords when throwing/shooting
    - [+] code it
    - [+] test for throw
    - [+] add for telekeniis too
    - [+] add for guns:
        - [+] "targetted:  something [x%]"
        - [+] "bow->Target->xxx [x%]"
    - [+] show gun target on botl
- [+] redo throw accuracy:
    - [+] 100 to hit yourself
    - [+] apply per-cell penalty based on:
        - [+] throwing / ranged skill (more)
        - [+] AGI (lesser)
- [+] wetsuit description not showing dtresist cold!!
- [+] hunter job
- [+] wetsuit (covers multiple body parts), prot from cold
- [+] announce bleeding damage from injuries
- [+] only mark _weapons_ as 'tried' when weilding them
- [+] change random items:
    - [+] fix wantrr bug
    - [+] test...
    - [+] new function: enum RARITY  pickrarity()
    - [+] check for all wantrr = xxx and use pickrarity instead.
    - [+] give classes a RR_RARITY
        - [+] common
            - [+] weapon / armour / money / missile
            - [+] furniture
            - [+] misc
            - [+] rock
        - [+] uncommon
            - [+] potion / scroll / food
        - [+] rare
            - [+] trap
            - [+] tech/tool
            - [+] dfeature (pentagram, vending machine, etc)
        - [+] vrare
            - [+] wand
            - [+] ring
            - [+] book
    * [+] rewrite wrappers
    * [+] marge getrandomobofclass and getrandomob
- [+] bug: telling allies to attack something they can't see. need a
      msg for this.
    - [+] Norman->Attack->A young hawk [flying, facing NE]
    - [+] Cancelled.
- [+] bug: allies not regaining hp when asleep! fixed.
- [+]  you can now always 'see' your allies if you have LOH
    - [+] ie. scannedcell
    - [+] ie. cansee
- [+] player luck should cause better random item creation, and easier
      monsters
    - [+] pickrr() needs arg to say what it is for (vault , ob, lf)
- [+] meals have special effects. eg:
    - [+] easy:
        - [+] mushroom + water = mushroom soup = restore a little
              stamina
        - [+] tomato + water = tomato soup = restore a little stamina
        - [+] apple + stone = fruit juice (don't kill the stone) 
        - [+] cheese + bread = cheese sandwich = restore all food and
              stamina
        - [+] rum + chocolate  = rum ball = cure pain, restore some hp
    - [+] med:
        - [+] corpse + water + salt = jerky
        - [+] mushroom + water + beef = beef strogonoff = filling,
              temporary Fitness boost
        - [+] garlic + bread + clover = garlic bread = produce stench
              like a trogolodyte
        - [+] bread + meat + tomato = hot dog = temporary strength
        - [+] water + sugar + 2 berries = potion of red cordial = speed
              boost
    - [+] hard
        - [+] peanut + stone + salt + bread = peanut butter sandwich =
              super filling, restore all stamina, temp fitness boost
        - [+] rum + chocolate + sugar + berry = fruit cake = restores
              all stamina and hp and mp
- [+] implement recipe_t
    - [+] int ningerdients
    - [+] enum OBTYPE ingredient[MAXINGREDS]
    - [+] int count[MAXINGREDS]
    - [+] int cosumeingredient[MAXINGREDS] (boolean)
- [+] makedesc_ob should show the recipe for it, if cooking skill is
      high enough
- [+] cooking skill determines how many ingredients you can use
    - [+] ie. beginner = you can make recipes which need 2 ingredients
- [+] redo "cook" ability.
- [+] can combine ingredients using recipes to make meals
- [+] ingredients must be known!
- [+] chef job
    - [+] attr
        - [+] gtaverage agility
        - [+] low fitnesss
    - [+] objects:
        - [+] meat cleaver (slashing, low acc, high crit)
        - [+] apron (rubber, low protection)
        - [+] chef hat (cloth, low protection)
        - [+] butane torch (flambe on adjacent lifeform)
    - [+] abilities
        - [+] rage at lv3
    * [+] skills
- [+] chef job
    - [+] attr
        - [+] gtaverage agility
        - [+] low fitnesss
    - [+] objects:
        - [+] meat cleaver (slashing, low acc, high crit)
        - [+] apron (rubber, low protection)
        - [+] chef hat (cloth, low protection)
        - [+] butane torch (flambe on adjacent lifeform)
    - [+] abilities
        - [+] rage at lv3
    * [+] skills
2011-11-14 18:21:40 +00:00
Rob Pearce 497b4e0ead - [+] shouldn't be able to dodge if you can't move! ie sawgrass
- [+] chef steak knives aren't stacking. - because they weren't
      f_stackable!
- [+] chicken soup - cures poison
- [+] finish ob donate code
    - [+] chance of becoming pet
    - [+] only certain races
    - [+] only  f_tamable (but harder than pets)
- [+] implement lfflammable
    - [+] io.c announcements ( move from shatter()) 
    - [+] fire effect
- [+] sugar water
- [+] gaining skills too quickly at higher levles
    - [+] maybe make it get slightly harder each time.
    - [+] keep a count of total skillpoints ever gained
- [+] fixes to rollhitdice
- [+] missile weapons doing no damage!!
- [+] no sprinting while levitating / flyign 
- [+] icicle spell should deal piercing damage if lf can't be pushed
      out of the way
2011-11-09 01:18:07 +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