Commit Graph

227 Commits

Author SHA1 Message Date
Rob Pearce cb31db8fff When selecting job, show recommendations based on race. 2016-05-31 14:37:08 +10:00
Rob Pearce 8ed4b9aca0 - new l2 death spell: "field of decay" - damage objects / lfs made from organic material
- If not in battle, praying to Hecta will restore stamina / mana, and sometimes cast field of decay
2016-05-31 12:23:39 +10:00
Rob Pearce 99fc225519 - in addob(), prevent placing innate attack objects into non-lf obpiles.
- when parsing object names, require an exact match for innate attack objects.
2016-05-31 10:41:00 +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 d89e93f64e - [+] tech is now uncommon, not rare.
- [+] bug: crash when linking to map entry objects
- [+] removed some material-based damage immunities
- [+] at night you shouldn't hear "a cash register chiming".
- [+] increase hp of chests
- [+] filling empty flask from potion of fshy lungs resulted in potion
      of water!
- [+] don't take migraine damage from light if your'e blind.
2012-12-31 05:10:13 +00:00
Rob Pearce a42ca5bb37 - [+] operate will turn electromachete on/off
- [+] Interact should also be able to open/close doors
- [+] closing doors should take time.
- [+] remove armourrating from many standard monsters.
- [+] should be able to get nauseated while asleep
- [+] shouldn't be able to generate corpses of unique monsters!
- [+] mental feedback should do more damage.
2012-12-26 06:12:09 +00:00
Rob Pearce 60914f4842 - [+] change cooking skill - make it determien the size of the corpse
you are able to cook.
- [+] then greatly increase chances of getting sick from raw meat.
- [+] and decrease nutrition for raw meat again
- [+] wizard classes should get random spells on level up
- [+] Interact (with adjacent things)
    - [+] add new command
    - [+] bookshelf
    - [+] wardrobes (contain clothes)
    - [+] open barrels
    - [+] computers
- [+] only show "it currently contains..." for containers which you
      have opened.
    - [+] F_BEENOPENED.
- [+] some barrels are randomly jammed
- [+] change jam to be strength check.
- [+] change skillcheck roll - now only 1-50
- [+] monsters shouldn't cast lethargy if you're already exhasted
- [+] lethargy should cancel rage.
- [+] change spellbooks - always id them but you might not be able to
      read them.
new vaults:
- [+] goblin nest
- [+] orc fort
2012-12-23 22:02:52 +00: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 c1cb8ea62e - [+] new monsters
- [+] creeping coins
        - [+] pretends to be gold
        - [+] poison breath
    - [+] rat swarm
    - [+] locust swarm
    - [+] baby mind leech
        - [+] mind whip
    - [+] adult mind leech
        - [+] mental feedback
        - [+] l5 psionic - drain intellect spell.  3d6 IQ drain.
- [+] summon swarm spell
- [+] ai: only pathfind if we are >= animal intelligence.
- [+] shadow - drain strength
- [+] show: "you swap places with the _sleeping_ lf"
- [+] problem:
    - [+] i have metalwork = beginner, sewing = novice
    - [+] ...but i could resize cloth objects!
- [+] SAVE broken again. fixed? 
- [+] in fixreachability, glass walls count as nonsolid
- [+] aligned temples:
    - [+] detect auras: free
    - [+] curse removal: free
    - [+] blessings: half price
- [+] change surface map.
    - [+] map difficulty should be very high.
2012-12-12 01:00:17 +00:00
Rob Pearce fe41614a1c - [+] better help text for temperature effects in @e
- [+] why wasn't eyebat levitating? fixed. anything with nostam should
      always have 100% stamina.
- [+] pain shouldn't work on undead.
- [+] screamer
    - [+] walking
    - [+] plant. purple brocolli
    - [+] spellcloud scream
        - [+] deafens adjacent creatures for 40-50 turns (doesn't stack)
        - [+] attracts other monsters
    - [+] leaves "screamer slice"
- [+] how do you open a barrel without hurting contents?
    - [+] answer: don't use DT_BASH.
- [+] giant bee
    - [+] sting then die. (cause pain)
- [+] don't get dizzy while running
2012-12-07 04:42:14 +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 38a788ca5f - [+] pour poison potion on weapon should poison it.
- [+] coldness shoudl reduce object heat and heat should add f_hot
- [+] novice engineering should let you make arrows.
- [+] hunter shouhld have novice engineering.
- [+] BUG: during the game: i nvalid racename 'piranha' in vault
      pool_room
    - [+] this happened because more than 1 appeared.
    - [+] disallow minions/numapepar in vaults.
2012-12-05 05:00:54 +00:00
Rob Pearce 234d70b099 - [+] chat->all allies command.
- [+] replace 'step carefully' key to free up 's' - OT_A_TIPTOE
    - [+] 's' = 'shut door' (replace 'c')
    - [+] 'c' = 'chat to single'
    - [+] rewrite docomms() to use other funcs
    - [+] 'C' = 'command all allies'
        - [+] only possible for single person:
            - [+] 'o' donate
            - [+] 'i' tell me about this area
            - [+] 'j' join me
            - [+] 'k' trade knowledge
            - [+] 'm' mercy
            - [+] 't' trade
            - [+] 'x' dangers nearby?
        - [+] make a list of all commands which are valid for EVERYONE
        - [+] send command to everyone.
        - [+] docommslf()
    - [+] test with single target
    - [+] test with multiple targets
- [+] hitconfer lifetime for wight/contagion zombie should only happen
      on fatal hits
- [+] makezombie() should be able to call petify()
- [+] bug: mosnters never using HIDE ability.
- [+] monsters which pretend to be objects (ie. gargoyle)
    - [+] F_ISMONSTER v0=raceid v1=objectid, v2 = spot check difficulty
    - [+] when generating, add contents->first as objectid v1
    - [+] getobname -> if you have f_mosnters, use contents->first
    - [+] getobdesc -> if you have f_mosnters, use contents->first
    - [+] mosnters won't walk onto it
    - [+] if you are next to them and can't see them... reveal then
          attack!
    - [+] F_ISMONSTER - must always be impassable to everyone!!!
    - [+] if you try to walk onto it:
        - [+] "the xxx starts to move!"
        - [+] kill ob
        - [+] add lf
        - [+] they get a free attack
    - [+] if it takes damage
        - [+] ... convert.
    - [+] spot checks to see them.
        - [+] ...convert.
    - [+] F_PRETENDSTOBE - mosnters will revert if unseen.
    - [+] reveal hidden should show them.
- [+] gargoyle
    - [+] stone statues
    - [+] winged
    - [+] large
    - [+] ~37hp
    - [+] start off as an obejct
- [+] wight
    - [+] rare.
    - [+] ~26 hp ...TR5
    - [+] silent move
    - [+] dr4 attack (low damage) but....
    - [+] any humans killed rise as a wight .
        - [+]  (hitconfer revive).  how can i limit hitconfer to a
              race? maybe f_hitconferrace
        - [+] bones file
        - [+] tested ok.
    - [+] 1 leveldrain per hit
        - [+] skillcheck to avoid
        - [+] wight gains +5 hp
2012-12-04 05:15:27 +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 c839387b84 - [+] dog should ahve covet for ot_stick
- [+] fix crash in wouldgivepenalty();
- [+] shouldn't be able to inflict poison on a plant!
- [+] fix monster casting of airblast
- [+] you now CAN knock out robots.
- [+] don't lower god piety while training.
- [+] mesmerat (mental rat)
    - [+] random psionic spells
- [+] tempest moth
    - [+] no base attack but...
    - [+] airblast 
    - [+] sleet storm
- [+] homonculus
    - [+] 'n'
    - [+] miniature human. 2 hd?
    - [+] bite.  low damage, but inflicts sleep.
    - [+] dodge like goblin
- [+] scorpion. sting. inflict strong poison.
- [+] spider swarm
    - [+] F_SWARM
    - [+] has lots of attacks.
    - [+] as it loses hp, it loses attacks too.
    - [+] no corpse.
    - [+] dietext: "the swarm disperses"
2012-12-02 21:15:40 +00:00
Rob Pearce 8d2e98be50 - [+] when you give monsters gold, they should give something back ??
- [+] bogle: barkskin.
- [+] hamstring shouldn't make you fall if you're flying
- [+] flying creatures shouldn't be harmed by F_SHARP 
- [+] even when blind, you should be able to "see" lfs you can smell or
      tremorsense.
- [+] resting while cold without blanket = not possible.
    - [+] "the extreme cold prevents you from sleeping."
- [+] when hot, takes a lot longer to heal ?
    - [+] "it is difficult to sleep in this heat."
- [+] require lorelev skilled to fill potions from blood.
    - [+] done.
    - [+] ALSO allow skileld chemistry to work for all races ?
- [+] bones vaults shouldn't have maintainedge!!
- [+] contagion zombie - anyone it bites turns into a new zombie on
      death.
    - [+] very raer
2012-12-02 05:40:58 +00:00
Rob Pearce bfab1b10ed - [+] sauna should generate non-damaging steam.
- [+] generic object: "generator"
    - [+] specal text: generator:steam for vault defs
- [+] show flag sources in io.c
    - [+] TEST
    - [+] remove from MONSTER view.
- [+] paladin shoudl start with first aid skill
- [+] disrupt undead should do heaps more damage - because right now
      you'd just use smite evil
    - [+] increase disrupt undead from  "2-6" to more.
    - [+] reduce smite evil's maxpower 
- [+] problem: blessed buckler is essentiall the same as tower shield
      cause it doesnt get hurt!
    - [+] make bigger shields provide more protection
- [+] change F_SEEINDARK so that v1 specifies whether a bright light
      blinds you
- [+] getting WAY too many piles of ash from burnign corpses
    - [+] combine into "huge pile of ash"
- [+] change food decay
    - [+] instead of food losing hp, increase its  F_DECAY level 
    - [+] if F_DECAY too high, it's tainted. >= 50
    - [+] ie. update isrotting()
    - [+] dramatically lower food hp.
        - [+] where does corpse F_OBHP get added? from obclass.
        - [+] when we make a corpse override its obhp with the original
              mosnter's maxhp.
- [+] when i fix unreachable areas, change all the walls/floors in one
      of the unreachable areas!
    - [+] ie. change every solid non-vault cell which is adjacent to an
          unreachable one.
    - [+] test,,,
- [+] make inspection check more difficult
- [+] ohther sound types which monstesr shouldn't turn to watch:
    - [+] NC_ENVIRONMENTAL (building, stairs, etc)
- [+] create food should neve create poisonous food.
2012-12-01 05:26:23 +00:00
Rob Pearce a144e9c4a6 - [+] IMPLEMENT proper object conditions
- [+] first:
        - [+] create reimplmemnt AO_xxx
        - [+] get rid of obmatchescondition (use new obMEETScondition
              instead)
            - [+] doaskobject
            - [+] askobjectmulti
            - [+] askobject
            - [+] askobjectwithflag
        - [+] ----- TEST ------
        - [+] new cc_ types for obejcts and obtypes
            - [+] CC_MINDR
            - [+] CC_MAXDR
            - [+] CC_MINAR
        - [+] then fix up getrandomobofclass. use CC_HASOBCLASS instead
        - [+] replace all calls to getrandomobofclass to use condsets
        - [+] then fix up other getrandomob routines
            - [+] real_getrandomob
                - [+] maxsize
                - [+] wepsk
                - [+] obclass (OR)
                - [+] damtype (OR)
                - [+] wantflag
                - [+] fix function.
                - [+] fix calls...
            - [+] getrandomob
            - [+] getrandomobofsize
            - [+] getrandomobwithdt
            - [+] getrandomofwithflag
            - [+] getrandomobwithclass
- [+] auto code to stop low TR monsters starting with super rare
      weapons.
    - [+] apply_wep_tr_limit(lifeform_t *lf, condset_t *cs)
        - [+] implement max weapon DR based on TR:
- [+] baby battery lizard
- [+] battery lizard
2012-11-30 12:05: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 e8cc823d72 - [+] Go to 256 colour mode!
- [+] enable it
    - [+] adjust colour enum definitions
    - [+] adjust usage of colour enums in *.c
    - [+] redo celltype colours
    - [+] redo all lf colours in data.c
    - [+] redo all object colours in data.c
    - [+] fix potioncolours etc
    - [+] get background colours working again.....
- [+] You walk down the staircase...  Invalid racename 'random' in
      vault monsterzoo
- [+] gaining/losing god bonus - only announce first one you lose/gain!
- [+] knockout bugs:
    - [+] "you knock out the pixie"... then there' s pixie corpse.
    - [+] shouldn't be able to KO robots!
- [+] don't say "you kill baba yaga's hut", say "you defeat xxx"
- [+] alignment change
    - [+] should become evil if you worship hecta
    - [+] ...and good if you worship glorana
    - [+]  -15% xp forever.
- [+] shoudl become prone when hit by falling door trap.
- [+] TEMPERATURE
    - [+] habitat->basetemperature 
        - [+] VCOLD = <=0
        - [+] COLD=1-11
        - [+] COOL=12-18
        - [+] AVERAGE = 19-22
        - [+] WARM=23-29
        - [+] HOT=30-35
        - [+] VHOT=36+
    - [+] getcelltemperature()
        - [+] start with habitat temperature
        - [+] adding/removing/moving nearby fire makes cells hotter
        - [+] adding/removing/moving nearby blizzards, hailstorms, ice
              etc make cells cooler
    - [+] getlftemp()
        - [+] start with getcelltemp
        - [+] adjust for warm/cold blood, resistances, etc
    - [+] hot  effects
        - [+] stamina is used more quickly
        - [+] ice melts very fast (turns to water)
        - [+] food goes bad very quickly
        - [+] things made of ice take damage every turn. in
              startlfturn() ?
    - [+] cold effects
        - [+] exposed body parts give  penalties to accuracy
            - [+] -2 to -4 per exposed body part (ie. max -14, -21, -28)
        - [+] no effect on furred things like bears. make them
              cold-resistant or immune.
        * [+] medium chance to shiver... chance to drop weapons
        * [+] low chance to catch cold (check cold damage code)
        - [+] nothing ever melts
        - [+] food never goes bad
        - [+] water freezes( turns to ice)
        - [+] things made of fire take _extra_ damage (in attack.c) 
    - [+] Show YOUR temperature in @@
    - [+] Show other's temp in @@ if our lore is high enough
    - [+] notify when temperature changes.
    - [+] just like igniting other fires, fires should deal fire damage
          to surrounding cells
    - [+] heat/cold should affect SURRONDING cells too.
    - [+] maybe: instead of checking cell temp every time, recalc cell
          temp whenever:
        - [+] create cells with habitat base temperature
        - [+] we add a new object
        - [+] we move an object
        - [+] we remove an object
        - [+] SAVE cell temperature now.
    - [+] show cold/hot in statusbar.
    - [+] cold announcement not working.
    - [+] change glaciate:
        - [+] create "unnatural coldness" object
    - [+] cold snap: (l2)
        - [+] create "unnatural coldness" in a radius
    - [+] heatwave (l2) or "oppressive heat"
        - [+] create "unnatural heat" in a radius
    - [+] add fur coats to creatures (ie. resistcold)
- [+] ice cave level
    - [+] walls = ice.
    - [+] floor = metal
    - [+] creation similar to swamp:
        - [+] make dungeon
        - [+] change solid walls to ice
    - [+] limit room size to small.
    - [+] floor = snow
    - [+] temperature
        - [+] base temperature is cold
    - [+] ice-themed monsters
    - [+] ice-themed objects
2012-11-27 10:27:54 +00:00
Rob Pearce d39e7ea7c1 - [+] gunpoweder should be unstable - explode on ANY dam.
- [+] mosnter facing being set to -. debug with forced break. fixed.
- [+] fix territorial monster crash.
- [+] CRASH in celldangerous when undead avoiding holy circles.
- [+] alternate text for 'ineffectually'
- [+] need an announce for bjorn's ecstatic ability (ehavy blow)
- [+] whenever you gain a new godbonus, give you a grace period
- [+] change selectweapon so i can specify valid choices
    - [+] have multiple F_SELECTWEAPON flags, v0 = object. (or text?)
    - [+] getflags() then pick from these.
- [+] hwen gunpowder inside a barrel explodes:
    - [+] say "the barrel explodes", since that's what you can see
    - [+] explosion should actually work!!!
- [+] lethargy should drain lots more stamina now that exhaustion
      doesn't prevent attacks
- [+] thrown knifes not doing enough damage.
    - [+] fireat(): dam = throwdam(2) + speed(2)
          dealing 3 damage
    - [+] maybe increase throwdam to 4.
    - [+] check otehr throwmissiles too
2012-11-25 19:57:49 +00:00
Rob Pearce 5b28b3571e - [+] when seeing footprints, give size. ("you see small footprints")
- [+] barrels sometimes have things other than food/potions
    - [+] when you generate a container objects, lookup its contents
          class and add F_STARTOB flags before calling givestartobs
    - [+] examples:
        - [+] a single dead corpse.
        - [+] food & drink
        - [+] lots of one particular dry things (salt, sugar)
        - [+] water
        - [+] gunpowder
        - [+] ammo
- [+] engineering mods
    - [+] adept: dismantle doors
    - [+] adept: dismantle WALLS- ie. do dig without using a tool.
        - [+] only some walls.  ones which have been constructed.
            - [+] ie. brick.  wood.
            - [+] NOT stone or metal.
    - [+] skilled: double wall dam
New psionic spells:
- [+] precognition (l2, +5 ev)
- [+] psionic blast (stun all around)
- [+] know weakness
- [+] mental feedback (deal damage based on iq, replaces previous
      'psionic blast')
- [+] mindwhip
- [+] awareness
- [+] replace mass stun with mass sleep.
- [+] statis - startlfturn stuff doesn't happen (l4)
- [+] Clank should now actually appear.
2012-11-23 04:54:27 +00:00
Rob Pearce e30d5f334f - [+] djin and efreeti should hate each other
- [+] 'G' isn't remembering direction anymore
- [+] beginner athletics:  give skill where misisng in a melee attack
      doesn't cost stamina
- [+] klikirak shoudl like ALL obejct desctruction, but PREFER via fire.
- [+] insects shoudl ahve infinite stamina
- [+] replace DIECONVERT planks of wood type code
    - [+] instead, materials have dieconvert values based on damage.
        - [+] getsmallbreakob(material,damtype)
        - [+] getlargebreakob(material, damtype)
    - [+] when an object dies, lookup its material  and obejct size
        - [+] ie. large wooden objects turn into "x planks of wood"
        - [+] small ones turn into "x shards of wood"
        - [+] then remove TODO: code from changemat() in objects.c
    - [+] allow for hardcoded getsmallbrekaob, getbigbreakob
        - [+] F_BREAKOB, v0=damtype, v1=howmany, text = what
    - [+] remove specific code, like fire damage = pile of ash.
          ice+bash = shards, etc.
- [+] can use shards/planks of wood as (poor) weapons.
- [+] jackhammer shoudl be tech, not tool./
- [+] digging tools should make noise
- [+] remove freezing touch spell/scroll
- [+] better listen check when asleep - slithering should very rarely
      wake you up
    - [+] use adjusted volume value based on sleeping etc.
- [+] breaking locks by bashing should now work.
- [+] I'm often getting "The hollow tree seems to be blocked." when
      going to the sylvan woods.
    - [+] there is a tree in the way!
    - [+] fixed.
- [+] bug: evil players not getting xp for killing helpless. fixed.
- [+] bug: pullobto() not doing correct impassable check.
- [+] another bug: insylvan woods, stairs were on top of water!!!
- [+] ERROR - couldnt find pos for down stairs while making habitat
      forest.--More--
- [+] repairing should make noise too
    - [+] new flag - USENOISE
- [+] EATCONFER on clove of garlic isn't working
    - [+] it's because i'm only checking this if we have MUTABLE.
    - [+] use EATMUTATE instead for mutations.  then eatconfer works
          with everything.
- [+] more crush bugs
    - [+] You crush some pieces of broken glass underfoot.
          You see 28 pieces of broken glass here.
    - [+] You crush some pieces of broken glass underfoot.
          You see 28 pieces of broken glass here.
- [+] anything with natural flight sohuld still make noise when flying.
       otherwise it's too powerful.
    - [+] "wing flapping" . NV FLY
    - [+] NOISETEXT NV_FLY
    - [+] magical flight can still be silent.
- [+] make how high you can fly depend on the "Flight" or "Natural
      Flight" skill.
    - [+] F_FLYING v0 = height.
    - [+] without this skill, flight is dependant on spell power. 
    - [+] assign sk_flying to races.
    - [+] remove F_FLIGHTEVASION from races. skill now does this
          instead.
    - [+] validaterace:
        - [+] canwill ot_a_flight = need flight skill
    - [+] each rank = +1 size level of height.
    - [+] if you get the skill while already flying, adjust the flag
    - [+] fall from flying if burduned.
    - [+] skill also affacts how much your evasion while flying is
          boosted.
        - [+] this extra EV bonus from flight sohuld only work against
              NON flying creatures!
        - [+] 5 EV per rank
    - [+] have a differnet fly ability
        - [+] ability = flight or fly (use flying skill for height)
            - [+] implement
            - [+] replace monster flight with ability.
        - [+] spell = enchanted flight (use spell power for ehgiht)
        - [+] check all occurences of FROMSPELL, cope with FROMABIL too.
- [+] don't regenerate stamina when doing natural flight.
- [+] ai: if flying and no stamina left, stop flying.
- [+] ai: only start flying if we have >= 80% stamina.
- [+] how did a nutter miss a mammoan from point blank range?
    - [+] the nutter is throwing a peanut - acc = 64, speed = 2
    - [+] maybe fixed now.
- [+] felix should like using poison.
- [+] when asking whether you accept a god's offer, give a '?' option,
      to give help on that god.
    - [+] also have F_GODDECLINE text.
- [+] pipes of peace - calms everyone around you.  charges.
2012-11-22 03:13:27 +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 893540af19 - [+] chemistry skill lets to mix venom sacs into potions
- [+] need a potion and venom sac
    - [+] make more things drop venom sacs - snakes etc
    - [+] F_EXTRACORPSE
    - [+] operate the venom sac ?
    - [+] can do this with first levle chemistry
- [+] different kind of venom - blindness
    - [+] "blue venom sac" vs "purple venom sac"
    - [+] combiesn to potion of blindness
- [+] more amulets
    - [+] common
        - [+] of bravery
        - [+] of light (common)
        - [+] of minor protection (common) (=5 AR
        - [+] energy absorbtion (absorb explosions, then pump them out)
    - [+] uncommon
        - [+] injury prvention (instead of ring)
    - [+] rare
        - [+] or major protection (not common) +10 AR
- [+] had a missing eye. drunk a healing potino.
    - [+] Your head grows back!  Your injured head has healed.
- [+] objects with positive F_BONUS should never start cursed
    - [+] (in addobject)
- [+] territorial monsters talk when you are approaching their
      threshold  (but not within it)
    - [+] put this in ai_talk()
        - [+] if someone almost at territorial range:
            - [+] make f_noisetext v2 be SP_xxx. if it's set, just say
                  this instead.
            - [+] it not, N_TERRITORY_APPROACH
            - [+] if we can talk, SP_TERRITORY_APPROACH
    - [+] possibilities:
        - [+] stay away!
        - [+] keep back!
        - [+] get away froma me!
        - [+] don't come any closer!
        - [+] that's close enough.
        - [+] keep your distance, stranger!
        - [+] out of my way!
    - [+] test with giant and
    - [+] test with insane humanoid
    - [+] make territorial creatures not walk too close to things,
          unless they are attacking or fleeing
        - [+] in willmove(), fail if it is too close to something
        - [+] ...unless we have a target lf
        - [+] ...or we are fleeing
- [+] jumping when woozy will go to a random cell
- [+] fix autoshortcuts to include starting spells
- [+] still bugs with canreachbp - "The giant rat critically scratches
      your wizard hat."
- [+] zombies shoudln't be able to talk.
- [+] allow pets to "cheat" to find player's lcoation.
- [+] need some kind of limit on zombie army creation
    - [+] no stairs 
- [+] areallies() on two pets returning false
- [+] psychic shove
    - [+] push off something, or push them away
    - [+] l2 mental
    - [+] pushback power+1 cells (max power 3)
- [+] different god message for first prayer.
- [+] fix crash during swapplaces()
- [+] sacrifice of masterwork weapons should work better.  shoddy
      should be worse.
- [+] bug: shops don't work anymore
- [+] change lessen poison - power always goes to 1
- [+] replace description "spell's power is boosted when cast outside"
      with "boosted when cast in a forested area"
- [+] minor healing problem. "at lest 2hp per power" but mxpower 10.
      should be maxpwer 5
- [+] wish for 'protection' should give something you can wear without
      penalties.
- [+] locate object should give a message when none are found.
2012-11-15 11:39:46 +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 3bb1edae8b - [+] "peek" down stairs now works
- [+] should get a massive accuracy boost if you are holding someone
- [+] absorb wood is too powerful, (for 0 mp you can kill someone's
      weapon)
    - [+] change it somehow. fixed description - doesn't affect
          equipped items.
- [+] more loops in levels
- [+] training should create noise
    - [+] ...and monsters sohuld go to investigate noises if not in
          battle.
- [+] god gift changes...
    - [+] still give gifts based on piety
    - [+] BUT don't lower piety. instead start a 'gift timer'
    - [+] F_GIFTTIMER.  v0 = decerementing time until you can get a
          gift.  v1 = what v0 will be reset to (gets bigger)
- [+] revivetimer on ling parasite: A ling parasite corpse (null)!
- [+] monsters no longer inherit alignment from job.
- [+] ekrub's entangling vine vanishes straight away
- [+] fix crash when slipping on the ground.
- [+] mosnters shoudl only attack doors if pursuing a lifeform and if
      the lifeform is nearby.
- [+] only award partial points for held objects unless you won the
      game.
- [+] fix crash when gust of wind is cast on an empty cell
- [+] make spell power affect properl missile speed
- [+] bug: monsters getting too many f_ignorecell flags! (more than
      MAXFLAGS)
- [+] poison needs to last longer.
2012-11-07 20:21:35 +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 48a3533aef - [+] shoulder armour:pauldron 2012-10-26 04:09:57 +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 970ab5300f - [+] l3 shape metal - fully repair any one metal armour
- [+] maxlevel 1
    - [+] make sure this is better than 'mending' since it only affects
          metal
- [+] l4 hone metal - give a weapon "of penetration" (F_ARMOURPIERCE)
      temporarily (permenantly at l3)
Unique monster code.
- [+] place these durign map generation:
    - [+] x% chance of having each unique monster appearing
    - [+] F_UNIQUE vals:
        - [+] v0 = pct chance of appearing
        - [+] v1 = branch id to appear in
        - [+] text "%d-%d" = min/max depth
Unique monsters:
- [+] king of rats - lots of rat pets - 33%, 2-4
- [+] pete - spiderman, shoot webs, jump, climb - 33% chance between 5-7
2012-08-02 13:16:24 +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 c06ebff882 - [+] better alignment picking
- [+] only show valid alignment choices (ie. race &  job & subjob
          alignments don't conflict)
    - [+] don't show subjobs which aren't valid (ie. vell
          warrior/paladin)
    - [+] don't shows jobs which aren't valid (ie. vell druid)
- [+] monsters with low wisdom should be able to flee into dangerous
      cells
    - [+] ie. wisdom < average
- [+] allow selecting your subjob directly, instead of haveing to pick
      your base job first
- [+] restrict low level monsters to only "common" weapons
- [+] make consumesouls only work in a given distance
- [+] bug: player start room not being linked to rest of map
- [+] hawks etc can't swoop away if they somehow get killed/fall asleep
      during their attack
- [+] use adverbs when describing misses ("narrowly miss" "wildly miss"
      )
- [+] make map light level (well lit etc) determine:
    - [+] visibility range (remove this from habitat!)
    - [+] stealth check modifier
- [+] show material vulnerabilities in EFFECTS
- [+] poison checks are too easy.  i had fitness 33 and passed in 1
      turn!
    - [+] i know this is baed on timeleft, so maybe make timeleft count
          for more ?
- [+] bug: infinite loop when player fleeing
- [+] imp
    - [+] TR2
    - [+] damage low (sting)
    - [+] invisibility
    - [+] immune to cold, fire, electric
    - [+] magic resist (demon)
    - [+] regnerate 1hp per turn
- [+] remove "modification" school with "wild"
- [+] prevent constant 6th sense warnings when something is chasing you
- [+] speak with dead should be a divination spell, not death.
- [+] hecta worshippers get bonusses for bone weapons - +1 damage.
    - [+] same with Ekrub and wood weapons
2012-07-31 21:19:04 +00:00
Rob Pearce e805e9dc01 - [+] don't trigger ANY god effects while raging.
- [+] when wishing for "power", don't give tech that you can't use.
- [+] INFINITE LOOP in timeeffectslf().
    - [+] happens when an lf is prone and falls down a hole.
- [+] pass search check on natural 20!
- [+] undead weapons are normally cursed
- [+] walking into a wall now takes time, but can detect secret doors
- [+] tiled floors also multiply the effects of slippery objects
- [+] wand of dispersal - getting "no lof"
- [+] make time debugging for all lfs be an option.
    - [+] when set, dump the following for each lf: 
        - [+] time (millisecnds) taken for their turn
        - [+] whether player can see them or not
        - [+] # screen redraws during their turn
- [+] skillchecks
    - [+] shield check.... 
        - [+] Human checkmod (type Shieldblock):
              19(attr)+1(lvm)+0(othmod),totroll=71--More--
        - [+] Human: Shieldblock check, rolled 71, need >= 95. (fail) 
              [you takes 1 dam]--More
- [+] wondering monsters - they turn up on levels when you go  back to
      them. (but never near the stairs)
    - [+] only if you haven't been there for a while (50 turns or so?)
    - [+] (depth*5)% chance for each room without stairs 
- [+] dark elf - Vell
    - [+] consumesouls
    - [+] +int
    - [+] novice necromancy 
    - [+] metal vuln
- [+] don't start player with obects which they are vulnerable to!!
- [+] matvuln should hurt you if you touch something made of it!
- [+] wands should be made of dragonwood, not metal
- [+] diferent kinds of matvuln -
    - [+] you get hurt more by it
    - [+] you can't even touch it
    - [+] use v2 to determine.
2012-07-30 02:35:02 +00:00
Rob Pearce 8b6f5a13a8 - [+] new skill: advanced combat
- [+] each level:  10% increase chance of not using stamina to
          attack
    - [+] nov: improvised weapons
    - [+] beg: nausea, being prone don't affect your accuracy
    - [+] adept:
        - [+]  blind fighting ability.
    - [+] skilled: DISARM skill
    - [+] expert: regain stamina once you kill someone
        - [+] FLIP skill
    - [+] master: attacking uses no stamina
    - [+] assign to jobs
        - [+] Ninja starts with ADEPT level.
        - [+] Warrior too?
- [+] genericise plural code:
    - [+] plural_t
        - [+] singular
        - [+] plural
    - [+] change object.c addobject()
    - [+] chnage text.c makeplural()
- [+] move flak jacket to go over shoudlers.
- [+] fix: don't give player skill in their race
2012-07-18 10:12:32 +00:00
Rob Pearce 023c8a5eaa - [+] reduce movement noise when hiding.
- [+] stealth check to not make ANY noise when hiding is easier.
- [+] redo skillchecks to use a percentage, not d20!
    - [+] new function behaviour:
        - [+] skillcheck()
            - [+] roll a die.  d100? d50?
            - [+] modifyskillcheckroll() - apply modifiers (based on
                  attribs, etc). higher roll is better.
            - [+] store die roll in *result
            - [+] difficulty 70 means "must roll higher than 70" = 30%
                  chance.
            - [+] if roll >= what you need, you pass.
        - [+] skillcheckvs()
            - [+] each roll a die
            - [+] modify die roll for both of you
            - [+] who is higher
        - [+] now modify ALL calls to skillcheck() to be pctage based. 
            - [+] in general, difficulty of 20 ->diff 95 (ie. 5% base
                  chance)
            - [+] each +/- 1 will chance difficulty by 5%
            - [+] ie. multiply current values by 5
            - [+] IN
                - [+] attack
                - [+] io
                - [+] lf
                - [+] move
                - [+] objects
                - [+] shops
                - [+] spell
        - [+] then REMOVE getskillcheckchance()
        - [+] auto fail poison check on low roll
- [+] let everyone attempt to climb climbobstacles.
- [+] potion of oil isn't smashing when thrown
    - [+] shatter() was failing because the EXPLODEONDAM check was
          incorrect.
- [+] fix felix money sacrifice exploit . done.
- [+] change collapsing door trap - first check for F_DOORFALLOB
      instead of just checking material. that way we can cope with iron
      gates etc.
    - [+] done
    - [+] define doorfallob for iron gate - 4-5 iron bars
2012-07-17 23:03:17 +00:00
Rob Pearce 57be5448c8 - [+] hecta's escaping sacrifices - only trigger this 5 turns AFTER
they get out of sight.
- [+] some kind of obstacle which you must CLIMB over
    - [+] objects
        - [+] metal barricade (also breakable)
        - [+] pile of rubble (not breakable)
    - [+] F_CLIMBOBSTACLE
    - [+] need a climb check of difficulty v0 to move ON to it. if you
          fail, you fall off in a random direction.
    - [+] if you don't ahve the climbing skill, you can't move onto it.
    - [+] ...and EVERYONE needs to be able to learn swimming & climbing
    - [+] vaults:
        - [+] room with heaps of these in rows - "fortified_room"
        - [+] room with lots of these over a pit - "pit_path"
        - [+] room with lots of these over fires (or something
              damaging) - "firepit"
    - [+] if you're standing on something with "climbobstacle", you
          count as being higher
    - [+] tables should have CLIMBOBSTACLE diff 5
- [+] vault - pit with archers on the side
    - [+] cope with "monster_name with _objectname_"
    - [+] cope with objects of name "random firearm"
- [+] BUG: "Gather up the spoils of battle!"  A masterwork weapon store
      appears!--More--
- [+] rarity on wands seems broken...
- [+] god gifts are happening too often when god is just 'pleased'
- [+] on levels where floor is carpet, don't create vaults with obs
      made of MT_FIRE
- [+] bjorn prayer's forcesphere radius should depend on piety level
- [+] collapsing door trap - need f_doortrap to restict this to just
      doors
2012-07-15 13:27:45 +00:00
Rob Pearce c421529221 - [+] glorana doesn't like you attacking during Glorana's Peace
- [+] make more shops let you donate
    - [+] bookstore
    - [+] jewellery store
- [+] rename blood hawk to hunting hawk
- [+] offering a bribe to creatures should make them move likely to
      helkp you, AND reset the "auto don't help' flag
- [+] change "get lost " message to "get lost, <racename>" if your race
      is different.
    - [+] sayphrase() needs a new arg:  lifeform_t *talkingto
- [+] colours for spell effect.
    - [+] eg. "the flame dart hits xxx" should use CC_BAD
- [+] muddy room - mud should be immutable.
- [+] maybe change rage - you lose control totally and just attack
      anything in sight?
    - [+] do it.
    - [+] don't train when enraged
    - [+] don't hear sounds when enraged
    - [+] RAGE effects: strength bonus, accuracy bonus, infinite
          stamina, never flee, 
- [+] fix bug in skill point calculation
- [+] CRASH - someone got their turn BEFORE the player!
- [+] new poisontype field - contracttext
- [+] hecta's pray effect not working.
- [+] adjust food poisioning check difficulty based on food age
    - [+] check OBHP percentage of max.
    - [+] >= 80% obhp means -30% difficulty check
- [+] ring of unholiness should confer dtvuln holy.
- [+] fix colour on spellclouds
- [+] fix bug with spellclouds not affecting centre cell.
- [+] if you are frozen, heat does extra damage and cold does none.
- [+] when frozen, lessen chance of melting.
- [+] reduce bite damage of snakes
- [+] balaclava should protect from gas
- [+] make some floor types (like carpet) be multicoloured
    - [+] celltype->altcolour
    - [+] if altcolour is not C_NONE then use it where (x + y) % 2 is
          true.
- [+] don't regain stamina while training
- [+] random text in shops - sayphrase needs to cope with lf == null
    - [+] done
- [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with
      staves!
- [+] BUG: in vault.vlt.
    - [+] "30% chance of door" really means "otherwise empty cell"
    - [+] need to be able to say "else put a wall here"
    - [+] so change:
        - [+] c:type:what[:pct]
    - [+] to this:
        - [+] c:type:what[:pct][:alttype:altwhat]
    - [+] vlegend_t needs
        - [+] enum VAULTTHING tt2
        - [+] char *what2
        - [+] they default to VT_NONE, NULL
- [+] secret doors should take their fake wall type from the vault spec
    - [+] vaults need f_celltypeempty/solid flags
    - [+] add via:  solid:xxx in vault def
- [+]  recycler
    - [+] donate anything
2012-07-15 05:01:58 +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 e5c6d8b094 - [+] bjorn prayer should knockback adjacent enemies
- [+] BUG when i enter baba yaga's hut:
    - [+] ERROR - couldn't link stairs back to map entry object.--More--
        - [+] was assuming that exitdir was up/down.  for entering the
              hut, the direction is "in".
- [+] lots of missing text colours - fixed.
- [+] is 'appropriate' working? i got a sun hat!
    - [+] yes, but "armour" should mean "ar >= 1", to differentiate
          from 'clothing'
    - [+] also, size sohuld match for armour.
- [+] time code (if you have a watch):
    - [+] things which occur at certain times
        - [+] "glorana's peace" - morning twilight and sunrise.
            - [+] boost life spells
            - [+] glorana worshippers gain some special - regen.
        - [+] midnight =  "witching hour"
            - [+] boost necromancy
            - [+] werewolves always change to wolf
            - [+] implement an auto-cast for player lycanthropes
- [+] when a ling parasite enters a corpse:
    - [+] add some kind of flag so that when it dies, a living ling
          parasite appears on top of the corpse.
    - [+] F_CORPSELF
2012-07-06 03:54:58 +00:00
Rob Pearce 2603d35bc7 - [+] glorana should accept scarifice of undead corpses.
- [+] babayagahut stay in vault not working. am i allowing it to pursue
      out ?
- [+] babayagahut shoud ahve nobleed
- [+] scourge shouldn't get heavy blow etc
- [+] problem - scourge was able to learn allomancy.
- [+] rats should squeak
- [+] bug: anticipate spell lasting forever.
- [+] time announcements if you have a watch
    - [+] night is falling
        - [+] undead will be stronger
    - [+] sun is rising outside
        - [+] undead weaker
2012-07-04 06:01:07 +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 ff6dba534e - [+] modifications to alchemy spell - affect stone, not metal
- [+] fire/cold spells:
    - [+] endure fire/cold
        - [+] L2
        - [+] ongoing
        - [+] like endure elements but only one element.
        - [+] fire - done
        - [+] cold - done
    - [+] negate fire/cold
        - [+] L3 ongoing
- [+] rename "gold coin" to "gold dollar"
- [+] announce mosnters losing interest.
- [+] if accuracy is too low, chance to fumble your atttack if you miss.
    - [+] ie. drop weapon 
- [+] show "please wait' message during initial build.
- [+] why can't i fill an empty flask from a potion of blood?
    - [+] because blood grew into a bigger one
- [+] CRASH - go to a shop, 'sell gems', pick a letter not in the list
- [+] The giant ant kills the kobold.  The kobold dies.
    - [+] never use "kills" when a monsters is killing another one.
- [+] implement CURSED scroll of wishing effects.
    - [+] stoning
    - [+] hostile summons
    - [+] insanity- drop iq prmenantly
    - [+] golden boulder
- [+] proximity mine (l3 tech)
    - [+] if activated, explodes when someone walks ONTO it (but not
          _off_ it)
    - [+] only gtaverage WIS _or_ adept tech knowledge won't walk onto
          it
- [+] rollerskates (wear on feet, move fast fowards)
- [+] jet skates (faster version of rollerskates)
    - [+] only work when ACTIVATED
    - [+] only work when they have CHARGES left
    - [+] drain charges when activated (like a jetpack)
- [+] cattle prod - piercing DR 1, +10 electical dam while it has
      charges
    - [+] f_extradamwithcharges
- [+] computers
    - [+] operable
    - [+] no pickup (or at least, VERY heavy)
    - [+] need tech usage to use.
    - [+] get choices equal to your tech level (novice = random)
    - [+] choices:
        - [+] 1 M = map whole level
        - [+] 2 O = show location of loot (detect objects)
        - [+] 3 L = show lifeforms
        - [+] 5 D = explode
        - [+] 6 I = identify one item.
        - [+] 7U - unlock all doors + chests
    - [+] at high techusage you can pick destruct time ?j:e sp
2012-06-25 12:49:53 +00:00
Rob Pearce 1de13a1904 - [+] lots of unneccesary redraws when using stairs
- [+] don't ever redraw during new level creation
    - [+] lots of calls to setlosdirty() - for the player, this causes
          instant screen redraw.
        - [+] remember if player is changing level. if so, setlosdirty
              won't redraw.
    - [+] fixed!
- [+] basic clothing shouldn't be able to be cursed
- [+] don't show"you have no clear line of fire to here" if all the
      things in the way are invisible!
    - [+] argument to haslof:  "knowlofonly" - already there.
    - [+] apply this to all checks where it is from someone's point of
          view only.
        - [+] (ie. aimove)
        - [+] (ie throw)
        - [+] (ie spell aiming)
2012-06-22 02:48:39 +00:00