Commit Graph

93 Commits

Author SHA1 Message Date
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 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 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 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 43aa7888f3 - [+] poltergeists are not honouring stayinroom.... fixed.
- [+] unique monsters shouldn't get things like 'hungry'
- [+] A some bread flies through the air toward you.  A some bread hits
      you.
    - [+] related to using "FEELTEXT"
    - [+] fixed - need to set "no_a" when using feeltext.
- [+] bug: ice wraith drops a bog wraith corpse
    - [+] ...why ?
    - [+] wish for 'ice wraith corpse', and i end up with 'bog wraith
          corpse'
    - [+] racename is "wraith", not "ice wraith"
    - [+] ...because "p" was just "wraith corpse", what happened to
          "ice" ?
    - [+] wishing for "bog wraith corpse", p is "bog wraight corpse"
          was expected.
    - [+] for some reason the prefix "ice " is special...
    - [+] it's because "ice" is the name of a material
    - [+] need isvalidoverridemat()
- [+] don't show attribs as options when levelling up if the base score
      is maxed.
- [+] bug donating money
- [+] bug: wearing gauntlets, someone cast heat metal on me. my
      gauntlets didn't hurt me?
    - [+] nor did my armour??
    - [+] they get set to 'a red-hot xxx'
    - [+] ...but don't deal damage.
    - [+] touch() needs to differentiate touching something (with your
          hands) from it touching you!
        - [+] ie. int onpurpose argument.
- [+] bjorn no longer being pleased by defeating all foes...
- [+] monster modification at nighttime/daytime
    - [+] undead are stronger at night (bonus on all skillchecks &
          tohit) +/- 15%
    - [+] undead are weaker during the day (penalty to skillchecks &
          tohit) 
    - [+] plants are stronger during the day
    - [+] describe in adept level knowledge
- [+] more work on hydra
    - [+] poison breath - autocreate poison gas in front of it
    - [+] cases where head not severed
        - [+] criticalhit() needs to know about the weapon which was
              used (or NULL)
        - [+] then:
        - [+] flaming weapon cauterises wound
        - [+] silver does too
        - [+] in this case after severing a head:
            - [+] don't regrow more
            - [+] lower TR
            - [+] lose f_hasattack
            - [+] if it was the last head, it dies.
- [+] fishfolk should have extra evasion in water, and aviads in air
    - [+] implmement
    - [+] apply to races:
        - [+] fishfolk
        - [+] aviad
        - [+] nimble creatures with aquatic
        - [+] nimble creatures with natural flight
    - [+] announce in makedesc_race, beginner level knowledge.
2012-06-08 01:29:48 +00:00
Rob Pearce 200dae5175 * [+] BUG: books lose their hidden names after load:
- [+] bug: on  load i can see in all directions, and impassable stuff
      around me is obliterated!
- [+] warn when attacking will rust your weapon (if wis high enough)
- [+] yumi should like killing injured things
- [+] bug: sandman isn't attacking or casting spells. - wasn't hostile.
* [+] bug: not able to sell gems in a jewelery store
- [+] when something casts swap places, need to redo los for the target
      too!
- [+] "you feel a wrenching sensation" should have 'more' after it.
- [+] stat bonuses for gods
    - [+] yumi  - boost wis
    - [+] glorana - boost con
    - [+] Lumara - boost iq
- [+] enchant weapon should remove rust too.
- [+] only place a pool of blood if monster is large enouhg
- [+] when mosnters steal gold, let them take more than just one!
- [+] monstres need to retain F_HOSTILE on polymorph! forgot about
      rndhostile
- [+] change some eatconfers to blood confers
    - [+] make blood splashes combine properly
    - [+] test with troll blood
    - [+] when you _kill_ something, drop more blood
    - [+] when you behead/bisect, do splatter
    - [+] in knowledge, show:  "its blood can be bottled to make xxx"
        - [+] (at skilled knowledge level)
        - [+] test....
    - [+] replace eatconfer flags with f_fillpot
    - [+] make sure monsters with fillpot actually bleed
    - [+] make slash etc damage ALWAYS cause bleed
    - [+] make projectile damage only cause bleed if the object is
          pointy (f_missiledam)
    - [+] make bashing not cause bleed
    - [+] make sure that bottling blood reduces/kills the object.
- [+] robots should bleed oil
- [+] CRASH:  during lfhasflag(dodges) - lf.c:20201 (getobname
    - [+] getting ob name of 'rdata' from celldangrous()
    - [+] but rdata->pile is bad...
    - [+] and object was a manual. why was a goblin avoiding a manual?
    - [+] celldangerous() actually set rdata to "deep water"
    - [+] ....but somehow it changed to point to a manual!!!
    - [+] getdodgecell() changed it!
- [+] bug: when a monster kills anohter:
    - [+] "the xxx hits the xxx"
    - [+] (no death message).
    - [+] either include "xxx dies". or make "xxx kills xxx".
    - [+] fixed, i think. wasn't calling getkillverb when attacker was
          a monster.
2012-06-02 22:43:18 +00:00
Rob Pearce 8377a72242 - [+] credit cards shouldn't be stackable
- [+] minor grammer fixes in skill descriptions and looting choices
- [+] crash when donating objects to a shop.
- [+] only allow lock breaking with bashing wepons
- [+] make minor undead like skeletons not pursue once you're out of
      sight.
- [+] don't allow damaged objects to stack
- [+] wyrmspawn should be able to learn master wyrm lore!
- [+] fixed crash when operating tech which asks for a target cell
- [+] bug in bones
    - [+] invalid at() definition: 'at(0,0) ob:an uncursed bone club'
          [vault:bones7/loading flags] Invalid line: [at(0,0) ob:an
          uncursed bone club]
- [+] when monsters polymorph into a new race, don't change their
      allegiance (ie. dont inherit f_hostile)
- [+] don't want boulders or other impassable objects in starting room
- [+] lumara should give you one more mp if you are already full
- [+] reduce radius of gas trap
- [+] fixed description for mana spike
- [+] increase damage of wild spells
2012-05-28 07:05:19 +00:00
Rob Pearce 1605501866 - [+] rename:
- [+] rename "regiontype" to "branch"
    - [+] regionlink to branchlink
    - [+] RG_ to BH_
- [+] fix major bug in roll()
2012-05-14 21:12:15 +00:00
Rob Pearce 6764a20443 - [+] bug: training never going up!
- [+] new listen code
    - [+] nov: approx. dist
    - [+] beg: distance + direction + detect if 1 away
    - [+] adp: listen at stairs, detect if 2 away
    - [+] sk: detect if 3 away
    - [+] exp: ident monsters
    - [+] exp: detect if 4
    - [+] mas: detect anywhere
- [+] remove f_nosmell from snakes.
- [+] sixth sense - don't kill the spell after it has activated.
2012-05-08 21:57:49 +00:00
Rob Pearce 435b374c25 - [+] "really attack the helpless something?"
- [+] don't show this message if we can't see iT!
    - [+] also dont count this as a peaceful attack if we can't see it.
- [+] missiles missing you should interrupt training!
- [+] Why does monk acuracy start at -4?!
- [+] godstone of destruction (hammer )
- [+] godstone of life (heart ?)
- [+] godstone of mercy (flower?)
- [+] revenge/theft (glove?)
- [+] godstone of purity (orb ?)
- [+] death: of death. (skull ?)
    - [+] casts infinite death
- [+] nature: of Nature (seed ?)
    - [+] all plants become peaceful
    - [+] all animals become peaceful
    - [+] cure all diseases
    - [+] quench all fires
    - [+] flowers grow everywhere
    - [+] summon treants ?
- [+] battle: of Battle (make this a horn?)
    - [+] remove all curses on equipped wep/arm.
    - [+] bless weapon (if not already done)
    - [+] nullify all other lfs
    - [+] super speed attacks ?
    - [+] warriors appear
- [+] magic: of Magic (crown ?)
    - [+] restore all mp
    - [+] learn any spell
    - [+] identify all objects
- [+] make Lavax be playable
- [+] make Fishfolk be playable
- [+] fix bug with wand lof
- [+] reduce rarity of wands
- [+] getrandomobwithflag()
- [+] fix big memleak bug (allocating map cells twice)
- [+] infinite loop on win game by defeating a god.
- [+] klikirak shouldn't make fire when on plane of gods/
- [+] createhabitat shouldn't be allowed to blank pre-vault  (ie.
      locked) cells
- [+] bug: wasn't any lfs in realm of gods
- [+] master vault
    - [+] bottom of dungeon has link to "vaults".
    - [+] vault stairs needs a key to open it. (special stair type)
    - [+] stair type:
        - [+] metal hatch leading down
        - [+] metal ladder leading up
    - [+] add new habitat
    - [+] add new branch
    - [+] algorithm for making h_vault level:
        - [+] start with everything a wall
        - [+] place x number of random rooms or vaults with tag:vault
            - [+] rooms can't overlap
            - [+] rooms should be fairly small
            - [+] IMPORTANT: rooms can't be further than 2 (3?) cells
                  away from other rooms
        - [+] every room has locked doors (never open entrances)
        - [+] then go through, and cell which has a room cell near it
              becomes empty
        - [+] problems:
            - [+] rooms have no doors!
            - [+] rooms are too small!!
        - [+] populate with monsters (f_rarity)
        - [+] more chance of "guard" jobs
        - [+] automatically place chests
    - [+] 3 levels with:
        - [+] 1 staircase up/down form each
        - [+] down stairs require key to open.
    - [+] first level of vaults: outer vaults
        - [+] antechamber with vault guardians
    - [+] second level: inner vaults
    - [+] last level: master vault
        - [+] inner chamber with all the godstones
        - [+] once you pick up one godstone, the others vanish.
2012-04-27 01:23:14 +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 4d5fa3c4e7 - [+] fire spells:
- [+] gather flame - l1: nearby fire boosts next spell's power.
          casttimme 2
    - [+] boil blood - l2:  when monster dies, it explodes (like a
          fireball?)
- [+] maybe: create player lf BEFORE creating maps
    - [+] then move player to start pos and add pets etc
    - [+] then kill mons in los
    - [+] this will let us correctly adjust hostility even on dlev 1
- [+] goat (yellow 'q', 1hd)
    - [+] charge
    - [+] horn attack
    - [+] eats anything!
        - [+] f_caneatmaterial
        - [+] calculate nutrition based on weight...
- [+] chimera(9hd, 9tr, mutant) - purple 'm' - goat/lion/wyrm, 3 headed.
    - [+] LARGE
    - [+] Morale 13-14
    - [+] EVIL
    - [+] Hostile
    - [+] swoop
    - [+] can breath fire - use burning wave
    - [+] melee attacks:
        - [+] bite (lion head) (3)
        - [+] bite (dragon head) (5:w)
        - [+] gore (horns) (3)
        - [+] 2 x claw (4)
        - [+] TOTAL 18
        - [+] but... do maxattacks = 4, not 5.
    - [+] slash attack: chance to remove a head.
        - [+] this makes it lose one bite attack and (maybe) its breath
              weapon.
- [+] hydra
    - [+] 5-12 heads
    - [+] each head has bite attack
    - [+] hit dice / tr based on heads
    - [+] regenerate 2 heads each time one is severed
2012-04-09 21:52:39 +00:00
Rob Pearce 0f9db848d3 - [+] populate ant nest with objects (set rarity)
- [+] when placing any vault with maintainedge, set "LOCKED" for all
      cells
- [+] change all mapmaking code to honour LOCKED(not just digdungeon)
    - [+] room placement code
    - [+] cave
    - [+] dungeon
    - [+] forest
    - [+] sewer
    - [+] swamp
- [+] fixed. BUG: TRAVEL to the swamp, walk up stairs...
    - [+] ERROR - stairs should link to existing map ('dungeon L7 (id
          #3)', depth 7), but
          it has no free stairs.--More--
    - [+] walking _down_ is okay.
    - [+] was only checking to link entryob when we were going DOWN
          stairs.
- [+] place fixed vaults _BEFORE_ creating habitats ???
    - [+] this will only work after all creation routines honour
          "->locked"
    - [+] set locked on all fixed vault cells after making them.
- [+] better code for removal of internal doors.
- [+] bug! fleeing monsters taking no time!
- [+] brainbat
- [+] consume corpses to regain life? make this a normal death spell.
    - [+] f_consumesouls
    - [+] anything that dies in sight nearby heals her.
    - [+] "%s consumes the soul of the dying %s ?"
    - [+] give this to baba yaga
- [+] loading bug with map flags:
    - [+] getting a flag with text = "flags"
    - [+] am i saving something else with a space in it ???
    - [+] %s in fscanf doesn't handle spaces!
        - [+] in save.c, when I'm liable to get spaces in a string,
              replace %s with:
            - [+]  sscanf("%[ a-xA-Z0-9+'*/-]")
- [+] earthwyrm
    - [+] divine into two monsters if slashed
    - [+] appear in ant nests
2012-04-05 09:28:20 +00:00
Rob Pearce 892440031d - [+] if you cancel a limited wish, don't age you.
- [+] sourges shouldn't learn spells from books
- [+] MR doesn't affect canwill spells?
- [+] innate MR (ie. fromrace or from scource) doesn't affect spells
      either.
- [+] too many potions of water! made it common rather than frequent.
      now NO frequent potions.
- [+] getting 'wake t someone runmmaging through your pack' when noone
      nearby
    - [+] maybe this flag isn't gettginre removed properly?
- [+] polymorph should fix injuries first
* [+] for missing hand injuries, select the hand AFTER main switch()
* [+] shouldn't be able to weild 2-handed weapons if you only have 1
      hand!!!
- [+] "travel" spell should let you go to RT_HABITAT things.
- [+] fix crash validating f_spotted flag
- [+] don't always put "The " on unique objects.
    - [+] use F_THE for this instead.
    - [+] godstones should still have F_THE
- [+] don't place staircases inside MAINTAINEDGE vaults!!
- [+] burning a wood floor only makes a hole in the ground if there are
      more levels underneath!
- [+] end of caves:
    - [+] both bossrooms should have goblin king and red wyrmling
    - [+] stone key.
- [+] need a vault flag which say s: add f_stayinroom to everyone who
      is created in this room
    - [+] done: "keepmonsinroom"
- [+] cope with a branch's entry stairs coming from a vault 
- [+] killing unique monsters with necrotic damage should still leave a
      corpse.
- [+] make "ornate chest" which has rare objects
    - [+] put it in branch endings and make it a rare object
- [+] f_extrainfo in fireat() should show damage _after_ adjustment
- [+] BUG: swamp rooms aren't connected!!!!
- [+] end of forest branch:
    - [+] vault containing baba yaga's hut
        - [+] bone fence around it
        - [+] skeletons
        - [+] the hut.
    - [+] baba yaga's hut
        - [+] cabin on chicken legs
        - [+] f_timid!
        - [+] jump
        - [+] claw attacks
        - [+] walks around
        - [+] corpsetype = link to inside the hut
        - [+] made of dragonwood (ie. hardness 5)
        - [+] Don't say "You kill the walking hut".
        - [+] text when it dies: "Exhausted, the hut slumps to the
              ground."
    - [+] inside the hut = small level with baba yaga
        - [+] new regiontype: babayaga's hut
        - [+] new habitat: byhut
        - [+] making the habitat: only has a single vault. (one with
              tag 'byhut')
        - [+] diff layouts
            - [+] circular
            - [+] square
        - [+] baba yaga herself
    - [+] baba yaga
        - [+] weighs 50kg
        - [+] obs:
            - [+] key!
        - [+] hp: 135 = 22 hitdice (d6)
        - [+] 75% magic resistance
        - [+] attribs
            - [+] str: exhigh
            - [+] iq: exhigh
            - [+] wis: exhigh
            - [+] agi: average
            - [+] con: high
            - [+] cha: exlow
        - [+] fire, cold, magic, poison resist
        - [+] immune to  necrotic
        - [+] abilities
            - [+] seeinvis
            - [+] awareness
        - [+] claw/teeth attacks.
            - [+] claw = 8 DR
            - [+] teeth = 6 DR
            - [+] maxattacks = 2
        - [+] grab ability
        - [+] spells??????
            - [+] fear
            - [+] weaken
            - [+] summon insects/animals
            - [+] entangle
            - [+] blink
        - [+] when she dies, unlock the hut door.
- [+] delving code.
    - [+] new digging code:
        - [+] delve()
        - [+] delve_pullcell
        - [+] etc
    - [+] h_antnest
        - [+] creaetantnest calls delve() functions.
    - [+] insert this in the main dungeon somewhere
    - [+] populate with monsters (set rarity)
    - [+] place queen ant on the map.
        - [+] via new regionthing type RT_LF 
- [+] branch ends should have a boss with a key!
    - [+] jimbo
    - [+] babayaga
    - [+] cave boss (dragon ?)
2012-04-04 09:59:48 +00:00
Rob Pearce 252a4024a7 - [+] disrupt undead
- [+] gust of wind has higher chance of knocking down small creatures
- [+] check: ensure vault names have no ' 's
- [+] loading bug: celltype id 0 doesn't exist.
- [+] loading bug: adding minotair - don't call sethomeroom()
- [+] fixed - bones bug: "2 loaves of stale bread"
- [+] crash when object thrown away by holy circle dies.
- [+] armour with "permenance" cast shouldn't be able to be healed
      either!
    - [+] use immutable instead of invulnerable
- [+] if you weild your spare weapon (and dont have a spare), remove
      'spareweapon' flag!
- [+] skoob should be made out of "water", not "ice" (don't want it to
      have hardness)
    - [+] change its material
    - [+] hitting water-based lfs should rust weapon!
- [+] rusted weapons should have 10-30% chance of giving tetanus.
    - [+] low chance of spasm each turn (5%)
    - [+] "your [xx] spasms/contorts violently!"
    - [+] hand = drop weapon
    - [+] leg = fall over
    - [+] jaw = nothing
    - [+] back = spine broken, you die
    - [+] tail = tail broken
    - [+] chest = rib broken
    - [+] wings = stop flying
- [+] electricity damage confuses robots
- [+] poison's power increase chance of its effects happening
    - [+] whenver tetanus effect fires, increase power.
- [+] electric damage spreads through water
- [+] create water spell (like grease, but just makes water)
- [+] objectgrowth spell shoudl use f_growsto instead of hardcoding
    - [+] v0 = obid or celltypeid
    - [+] vt = determines VT_ob or vt_cell
- [+] then add shrink spell which uses f_shrinksto
    - [+] deinfe it
    - [+] add effects
    - [+] specail case - brazer -> helmet should be red hot
- [+] hecta should mind attacking evil peaceful creatures
- [+] ai should still flee with bleeding legs
- [+] bandit had 90hp - problem with varlevel!! have changed
      calculation.
    - [+] monsters now just get 1 extra hit die per level after the
          first.
- [+] only some branches should use region->depthmod. others only use
      regiontype->depthmod.
- [+] spell: disrupt undead -
- [+] announce 'shatter' spell:  you hear an ultra=high pitched
      whining/ringing.
- [+] announce'sleep' spell: suddenly, you feel very drowsy.
- [+] inducefear: too powerful. tweak skillcheck values.
Initial work on baba yaga (sylvan forest boss)
2012-04-01 19:48:13 +00:00
Rob Pearce 984999d912 - [+] change real_getlfname():
- [+] take lifeform_t * for usevis instead of boolean
    - [+] add new option "useorigrace" for shapechangers
- [+] whips
    - [+] F_WHIP
    - [+] new skill: sk_whips
    - [+] basic trais:
        - [+] high accuracy
        - [+] lowish dam
        - [+] pierce/slash/bash damage
        - [+] some will let you cast 'snatch' and suck
        - [+] no crit chance
    - [+] examples:
        - [+] bull whip (lowest damage)
        - [+] flail (ie. chain whip ,change type from club to whip)
        - [+] heavy flail
        - [+] metal-tipped whip (flail with higher acc)
        - [+] barbed whip (causes piercing damage as well)
        - [+] io.c @@ should take extradam into account
        - [+] describbeob() should show F_EXTRADAM 
- [+] change morale values - this shoudl default to your TR, otherwise
      f_morale replaces it.
- [+] CRASH in doknowledgelist()
- [+] hecta bug: fixed!
    - [+] You bisect the kobold!  The dying kobold shouts "Nooooo!".
          Hecta's voice grates against your mind:
          "You allowed my sacrifice to escape!"
        - [+] is this because i'm calling "flee" after the lf takes
              fatal damage but before die() is called?
            - [+] NO, because flee() checks isdead(lf)
        - [+] it's happening when i kill a monster, and another one of
              the same type sees me!
        - [+] change:  only trigger this is the player has previously
              attacked the monster
- [+] replace fire titan with balrog
- [+] You bisect the giant gnat!  The dying giant gnat shouts "Nooooo!".
    - [+] fixed.
- [+] boggart -brown 'n'
    - [+] made of wood
    - [+] cause things to disappear
    - [+] cause milk to sour (low power blight)
    - [+] scared of salt
    - [+] demandgold 
- [+] briar thrash (spiky) - yellow 'T' (grab)
- [+] bingebark - red 'T'. wants edible, canwill snatch
- [+] leshy (human with leaves) - green 'h'
- [+] manticore - red 'm''
    - [+] lion, bat lings, man head, tail tipped with iron spikes
    - [+] carnivore
    - [+] human sized
    - [+] shoots 1-6 spikes. each spike does 1d6. too much!!
        - [+] change this to be 5d3 damage per volley.
            - [+] ie missiledam 4d3
        - [+] can do this once every 50 turns.
    - [+] can fly
    - [+] claws - 1d3 1d3
    - [+] want gold (non covet)
2012-03-28 20:17:47 +00:00
Rob Pearce cbbab346e2 - [+] bones bug:
- [+] saving "a clear fountain"
    - [+] getobnametrue() needs to show "a fountain of xxxx" or "a
          water fountain"
    - [+] addobject() needs to handle "fountain of xxx" or "water
          fountain"
- [+] don't generate bones file while debugging
- [+] should amour really be 'battered' at 98% ?
    - [+] make 85 and abve still mean 'pristine'
- [+] reduce bjorn cowardice anger amount
- [+] snakes shouldnt follow up stairs
- [+] fix broken f_accuracymod.
- [+] unicode for trees and dense bushland.
- [+] bug loading again......related to gratings
- [+] don't inherit alignment when giving jobs to monsters
2012-03-23 04:36:32 +00:00
Rob Pearce 672e26a81c - [+] object descriptions giving away obmods! fixed.
- [+] change lf summoning to better control hostility
- [+] gods should be able to see invisible
- [+] travel spell to quickly get around branches
- [+] treant / ent = green T
    - [+] old/normal/young
    - [+] older = slower
    - [+] elder can cast 'animate tree' ?
- [+] bug: when you offer a godstone to a god outside of realm of gods,
      they are saying "no" but still taking it.
- [+] gods should yell out a warning when you walk over a new godstone
    - [+] this lets the player know that picking it up will anger that
          god.
    - [+] then add f_donewarning to it.
2012-03-22 23:17:28 +00:00
Rob Pearce 5d61533c15 - [+] move pctchance for individual spells from F_AICASTTOxxx to
F_AISPELLTARGETOVERRIDE v2.
    - [+] change code:
        - [+] F_AISPELLTARGETOVERRIDE v0=spellid, v1=F_AICASTTOxxx
              v2=TT_xxx text=pctchance or NULL.
        - [+] aispellok(xx, purpose) : check this _before_ checking
              spell->f_aicasttoxxx
    - [+] add spelltargetoverride for vampire
    - [+] add spelltargetoverride for werewolf
- [+] retain F_FLEEFROM on polymorph.
- [+] lycanthropes
    - [+] show up as "human" unless your animal/magic lore is high
          enough
    - [+] vulnerable to silver weapons
    - [+] Wererat (3hd, weapon damage)
        - [+] uses short blades
        - [+] stench
        - [+] want alcohol?
        - [+] transform into fast version of rat. plague rat?
        - [+] summon small animals. summon # override? "count:"
    - [+] Werewolf (4hd, 6 dam)
        - [+] summon wolves ?
        - [+] shapeshift to dire wolf
        - [+] regenerates
        - [+] firstaid skill (fast healing when resting)
    - [+] Werebear
        - [+] 6 hd
        - [+] shapeshift to grizzly bear
        - [+] summon 2-3 black bears
        - [+] firstaid skill (fast healing)
- [+] shapeshifting monsters sometimes start as animal form
- [+] if you are good/evil different alignments, mosnters should flat
      out refuse to join you.
- [+] more different sayphrases for recruitment.
- [+] when placing homelevobs, try to stick to rooms, not corridors
    - [+] getrandomroomcell() needs WE_xxx argument.
    - [+] implement cellmatchescondition(c, cond)
    - [+] real_getrandomadjcell() should use this too
- [+] swoop ability should only work with claw attacks
    - [+] F_FORCEATTACKOB
        - [+] getweapons() needs to honour this.
    - [+] spell.c: check if you have the right attack type
    - [+] aispellok: only if you have the right attack yype
- [+] horse - 2hd, brown u
- [+] Hippogriff (3hd , horse/eagle, 'u') - yellow
- [+] centaur (4hd, u) - grey
- [+] make pegasus be cyan
- [+] CATs
    - [+] Griffon (7hd, tr4-5, u, hates horses) - lion/eagle - yellow
          'f'
2012-03-15 09:19:05 +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 2b77aa200e - [+] vaults
- [+] oval
    - [+] chasm
        - [+] room split in 4 by glass
    - [+] concentricroom
- [+] Crash when a vault uses the object 'hole in the ground' 
- [+] better method of giving spells to monsters
    - [+] f_randomspellcount v0=amt
    - [+] f_randomspellschool v0=ss_xxx  v1=minlevel v2=maxlevle, text
          = pw:xxx or null
        - [+] if power not given:
        - [+] castig power is (starting depth / 2)
        - [+] limited by spell's max level.
    - [+] OR
    - [+] f_randomspellcount v0=amt
    - [+] f_randomspellposs v0=spellid, optional text = power.
    - [+] include these in validateraces
    - [+] populate monsters...
    - [+] TEST! (with fire sprite, check if it casts a spell other then
          fire dart)
- [+] if monster is randomly given the job "j_wizard", you MUST pick a
      subjob too!
- [+] go back to using CANCAST for monster spells, so that they show up
      properly in a mind scan.
- [+] druid should start with sickle as secondary weapon.
- [+] healing not hurting undead - should be fixed now.
- [+] add description of spell powe calculation to spell skills
- [+] increase obhp of armour
- [+] i was a druid, levelled up to l4, and didn't get a new spell!
      FIXED. wasn't refreshing LEVSPELLSCHOOLFROMX.
- [+] make it a lot harder to get "beheaded" etc.
- [+] show real object name in "killed by a thrown xxx" even if you
      didn't see it
- [+] short blades shouldn't be able to behead.
- [+] monster threat calc should take #attacks into account!
- [+] CTRL-DIR to turn isn't working agian. fixed.
- [+] make peasoup have range 1, rather than just going straight in
      front of you.
- [+] power 1 glyph of wardning useless. fixed.
- [+] reduce zombie maxattacks to 1.
- [+] bug:  Are alcohol no longer covered in (null).--More--
- [+] make merlochs much more rare.
- [+] light recalc is MASSIVELY slow on some levels.
    - [+] for now:  remove dark levels completely?
- [+] "You see 2 sheet of ices here."
- [+] remove F_FROZEN when you cook something.
- [+] frostbite should do a little more damage. d4 instead of d3.
2012-02-29 06:05:14 +00:00
Rob Pearce 8186db9f5a - [+] chance to resist knockback?
- [+] "%s staggers backwards, but stands its ground."
    - [+] every size over human gives 10% chance to avoid.
- [+] monster jobs
    - [+] demonologist - can summon demons
    - [+] shaman - summon animals
    - [+] bezerker - can use rage
    - [+] necromancer 
    - [+] add f_startjobs to monsters
- [+] in makedesc_race, combine skills up until screen width. ie:
    - [+] Novice Listen, Novice CLimbing
    - [+] Also combine abilities, ie:
        - [+] Ability: jump
        - [+] Ability: xxx
        - [+] becomes:
        - [+] Abilities: jump, xxx
- [+] more psionic spells!
    - [+] psionic blast ? daels direct damage to intelligent creatures
          ( 1 to iq/10 )
    - [+] anticipate action: next xxx attacks from target lf against lf
          always miss
        - [+] "you easily dodge %s%s attack."
- [+] fire should spread on carpetted floors?  how to stop it spreading
      to the whole dungeon ?
    - [+] implement
    - [+] test
- [+] new poison type:
    - [+] migraine. sound causes pain (1 per volume?). light spells
          cause pain too.
        - [+] can get this from food too. (instead of gastro ?)
        - [+] mental spell to give a migraine - "brainache"
- [+] eating raw meat can give you migraine, or gastro.
- [+] make makedesc_race take player lore skills into account
    - [+] in describerace(), make title be:
        - [+] Race::glowbug (beginner level knowledge)
    - [+] LORE LEVELS:
        - [+] NOVICE: common knowledge
            - [+] breaths water 
        - [+] BEGINNER: only known if you've studied it a bit
            - [+] nocturnal, damage resistances/vulns
            - [+] silentmove
            - [+] stability
        - [+] ADEPT:
            - [+] only know it if you've studied it a LOT
                - [+] wantsobs
                - [+] spells
                - [+] morale
                - [+] eating habits
        - [+] when attacking something which is immune to your weapon, 
              warn you.
            - [+] (if your lorelev >= beginner)
- [+] change io.c to use command_t table
- [+] when selecting your starting weapon, show damage and accuracy 
- [+] scourge gains nullify at high levels
- [+] bug: ur-gnats not flying
    - [+] had f_nospells AND f_canwill flight
    - [+] made f_nospells not affect F_CANWILL, just F_CANCAST
- [+] shouldn't be able to cook firebug corpses
- [+] fire shoudl make crackling noises
- [+] nullify should anger god of magic, and not upset god of battle
- [+] nullify shouldn't affect natural flight fof birds
- [+] shouldn't remember your surroundings while raging
- [+] lfs shouldn't flee from themselves!
- [+] change attackverb for touch attacks.
- [+] eyebat gaze
    - [+] "your pair of sunglasses protects you"
    - [+] but the spellcast is never announced!
    - [+] fixed.
- [+] stun() should make lf lose concentration
- [+] fix a few logic errors in gaze protection code.
- [+] when i go up level as a scourge, I'm getting "You have gained the
      ability 'Nullify' (job perk)."
    - [+] i should be getting You have gained the ability 'Nullify VII'
          (job perk).
    - [+] why isn't 'hte power appearing
- [+] also when i start typing nullify, it says "It is too powerful for
      you to cast"
    - [+] because levabil isn't keeping pw:xxx text
    - [+] BUG in LEVABIL.
2012-02-28 11:02:02 +00:00
Rob Pearce afb0d30b23 - [+] remove enchantment school
- [+] remove gravity school (move to "air")
- [+] mud should eventually dry out (but take 50 turns or so)
- [+] bug: " [@=stats Effects Items gic ?=describe ESC=quit]"
- [+] allow '?' from askgod() prompt.
- [+] when hecta changes you to a vampire:
    - [+] don't change your hp!
    - [+] don't chance your stats ?
- [+] add ?j for job descriptions
- [+] wrapprint: when caling line length, use modified strlen to ignore
      ^c or ^num
- [+] extra info in makedesc_job:
    - [+] Attrib mods:
        - [+] Strength: very high
        - [+] IQ: Low
    - [+] Alignment:  Neutral  OR Good/Evil etc, or ANY
    - [+] starting skills: x, x, x, x, x, x
- [+] changes to paladin
    - [+] cannot cast spells if using cursed weapon/armour
- [+] get rid of skillcheck to learn a new spell.
- [+] cyclonic shield should also damage attackers.
- [+] ^F#_#^? releases a cloud of red spores
- [+] ragefungus bug
    - [+] "you are too tired to do that right now"
    - [+] move this check out into useability.
    - [+] test that minotaur still uses charge. (which costs stamina)
- [+] force sphere not working! fiexd, needed to limit "radius" to 1
      minimum. also added animation.
- [+] reduce max jolt power to 5.
- [+] change initial sky wizard spell to jolt
2012-02-27 08:27:55 +00:00
Rob Pearce 4808d2c9df - [+] allow user to DISABLE auto dodge fatal attacks ?. enable through
"reflexive dodging" ability
- [+] first rotation in a turn takes no time
- [+] exploit: if you walk diagonally next to a monster, it moves to
      your previous space!
    - [+] fix: aigetlastknownpos should  return the cell that trails
          point to, not the cell _with_ the trails.
- [+] only recognise weapon quality (masterwork etc) if you are skilled
      in that weapon or perception
- [+] cope with mosnter necromancers, etc
    - [+] parserace should look for necromancer etc.
    - [+] if so, set "wantsubjob" to SJ_NECROMANCER etc
    - [+] move specialty mage code into "givejobspecialty"
- [+] Make wizard's job name depend on primary spell school.
    - [+] "Demonologist", "Firemage", "Icemage", "Necromancer",
          "Skymage", "Wizard" (wild)
    - [+] instead of getjob() then j->name, use "getjobname(lf)"
    - [+] f_jobname
- [+] i should never "hear voices chanting" from an abandoned temple
- [+] for monsters, show "its bite inflicts poison" in io.c racial
      knowledge
- [+] casting healing on myself pleased Glorana twice!
    - [+] one from casting a life spell
    - [+] one from casting healing.
    - [+] move ones from spell.c to castspell()
    - [+] new flag: f_pleasesgod v0=godid, v1=howmuch
    - [+] add to other spell objects:
        - [+] f_pleasesgod
            - [+] GODFIRE - spelllevel * 2
            - [+] GODDEATH = spelllevel
            - [+] GODLIFE = spelllevel*2
            - [+] GODNATURE: spelllevle*2
    - [+] show this in describespell
- [+] for god healing effects, use gainhp() so that it says "Your HP is
      fully restored."
- [+] change F_RESISTMAG to be percentage rather than 1-20
- [+] make some gods' pleasure boost power of related spells
    - [+] 1 per each positive levle of getpietylev()
    - [+] glorana: life
    - [+] hecta: death
- [+] only apply auto shortcuts for players.
- [+] subjob_t
    - [+] addsubjob()
    - [+] killsubjob()
    - [+] show subjobs in job descriptions.
    - [+] data.c:  addsubjob(.... 
    - [+] in job defs:
        - [+] f_canhavesubjob sj_xxx
    - [+] use this to determine whether to ask about them
    - [+] redo getjobname 
    - [+] remove f_job->Text
- [+] speak with dead should only work on corpses of races which can
      talk.
- [+] warrior subclasses
    - [+] "Scourge"
        - [+] gains magic resistance as you level up
            - [+] == 5 + (level * 3) %
        - [+] nospells
        - [+] no mana
    - [+] paladin
        - [+] blessed gear
        - [+] can will turn undead
        - [+] healing magic
        - [+] god = glorana.
        - [+] cannot use spells if glorana is angry.
    - [+] battlemage
        - [+] starts with one spell school (fire/ice/air)
        - [+] canlearn fire/ice/air spell schools
        - [+] limited to adept in all schools
        - [+] slightly less hp
        - [+] no warrior abilities
2012-02-24 06:45:23 +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 d2588bdd98 - [+] replace causesvomit with vomitob
- [+] monsters shouldn't weild lit torches
    - [+] maybe reduce the damage that they do?
- [+] change allomancy to work like psionics
- [+] change colour of carpetted floor?  to what though? red.
- [+] amberon should only accept sacrifice of KNOWN cursed objects!
- [+] infinite loop when going into a sewer. fix_reachability keeps
      failing.
    - [+] in linkexit()
        - [+] startdir getitng set to DC_E! should be orthog only!
        - [+] because forcedir is DC_E!
- [+] Mummy? made of paper (ie flammable). rotting touch. curse.
      corpsetype = sand or ash, and blank paper.
    * [+] inflicts rotting disease "mummy's curse"
    - [+] can cast cause fear (but not very often, 50 turns or so)
    - [+] vuln to fire (1-8)
    - [+] vuln to holy (2-8)
- [+] greater mummy
    - [+] more hd
    - [+] lots more damage
    - [+] stronger fear spell
    - [+] no vuln to anything
    - [+] magic resistance
    - [+] priest spells. - death disease evil revenge, guardianship.
          some new ones:
- [+] rot:
    - [+] instead of losing hp, lose str+fit and just no healing ?
- [+] wyvern
    - [+] wyrm without breath weapon
- [+] ice demon
    - [+] shardshot, power 3 (ie 3d6)
- [+] snow troll
    - [+] implement
    - [+]  - frostbite, range 1 "exhales a freezing wind"
- [+] griddler, small demon, fire dam attack, heat metal ability,
      carries a permenantly red-hot weapon 
- [+] curse (curses equipped objects)
    - [+] applys a curse to 1-power equipped objects.
    - [+] applies a -1 penalty too, if it's a weapon/armour/can have
          bonuses.
- [+] protection from good.
    - [+] repel the next "power" attacks from good-aligned lfs
    - [+] casttoattack xxx
    - [+] this needs the player to have an alignment!!! (base it on the
          job)

FROM PREVIOUS COMMITS:
- [+] if you polymorph into something with nopack, MELD your pack ?
    - [+] move all from lf->pack to lf->meldpack
    - [+] have to SAVE meldpack too.
- [+] monsters which attack if you get too close
    - [+] eg. wolf
    - [+] do they attack other monsters in range too? or just players?
2012-02-09 21:00:10 +00:00
Rob Pearce 5d7b3dedc6 - [+] change how poison works
- [+] poisontype_t
    - [+] define them all
    - [+] ie. each poison type has a fixed damage amount.
    - [+] check poisonisfatal()
    - [+] check F_POISONED bit in startlfturn

- [+] salmonella. like food poisoning but causes more damage.
- [+] small chance of getting sick from raw meat?
    - [+] FIT check to avoid.
    - [+] raw meat = gastroenteritis. 
    - [+] raw chicken = salmonella 
    - [+] rotting food = either gastro (66%) or salmonella (33%)
- [+] new monster-only jobs
    - [+] guard
        - [+] has lots of armour and f_noflee and f_stayinroom
- [+] set climbing difficulty based on cell type as well as material
2012-02-08 04:23:51 +00:00
Rob Pearce 22c316437e - [+] hiscores - show "Killed by xxx on level 5 of the dungeons."
- [+] extra suffix text.
    - [+] use two lines for each entry.
    - [+] have to use modified version of wrapprint for this.
        - [+] wrapprint needs a "wrapped_lines_indent_amt" option.
    - [+] this should give exactly 24 lines.
2012-02-07 04:26:29 +00:00
Rob Pearce ee42bdc73f - [+] rename dragon to wyrm
- [+] cooked food shouldn't "completely rot away"
- [+] fire l6: meteor - large version of fireball
- [+] burning feet
- [+] evaporate should be a fire spell too.
- [+] more gods should remove curse for you.
- [+] eyebats shouldn't sleep
- [+] make hecta's prayers even more powerful.
- [+] fix bug in bjorn's truestrike effect
- [+] bjorn should un-dull weapons
- [+] fix buggy supply closet definitions - was getting 1-5 of same
      object rather than 1-5 different ones
- [+] restrict potion of growth to lower levels.
- [+] change method of determining how much you can carry.
- [+] change initial modification spell to 'enlarge object'
- [+] enlarge object
    - [+] door -> seals with surroundings
    - [+] rock -> boulder
    - [+] sword -> greatsword
    - [+] buckler -> next size shield
    - [+] bag -> next size bag
    - [+] or should this be a different spell?
- [+] immolate
    - [+] if a successful unarmed attack, lf catches on fire.
- [+] wizard isn't weilding staff. are fists better?
- [+] freezing touch shouldn't work on dragonwood
- [+] fix bug preventing vision when meditating
- [+] auto shortcuts
    - [+] wizards: pri/sec spells are 1/2
    - [+] cook:  lowest shortcut left.
- [+] statbar not being updated when i drink potion of magic.
- [+] warn that flying will stop mapping.
- [+] bjorn gifts should only be ones which you are skilled in!
    - [+] add 'appropriate'
    - [+] then apply to god.c
- [+] warn if you pick up poison stuff and you god doesn't like it
    - [+] "I hope you're not planning on using that/those...."
- [+] superheat - throw potion like a grenade
2012-01-29 22:47:43 +00:00
Rob Pearce 5f4454d56a - [+] increase damage for missiles
- [+] retain items on polymorph if new race has f_nopack or nobodypart
      for equipped stuff
    - [+] move obs to lf->polypack
    - [+] save this!
- [+] fix bugs with remembering/restoring stats on polyrevert.
- [+] scroll of permenance should make conferred attribute changes
      permenant
- [+] change strength damage mod to be range -2 to 2 (instead of a
      percentage)
- [+] corrected poison/methane gas difference.
- [+] hecta gift: necromancy books
- [+] damagecell()
    - [+] make rock walls turn to rubble ("50-100 stones")
- [+] change to lore skill: incrase damage by a fixed amount, not a
      percentage.
- [+] felix effect: evaulation (identify obs)
- [+] god piety should never change once thy are ignoring you.
- [+] shields should protect against crit hits
- [+] hecta no longer gives unholy water? 
- [+] I'm able to use OT_A_SHIELDBASH with 0 stamina.
- [+] CRASH during loading
    - [+] fixed
    - [+] ...but check for more....
- [+] quaff potion of fury - "you're too tired to do that right now"
- [+] player was being prompted for locaiton when monster tried to wear
      a bandage.
- [+] closing iron gates is making them opaque.
    - [+] only add blocksview if the objectTYPE has it.
- [+] fountains of experience not drying up.
- [+] looking for tracks on stairs.  never finding any!!
- [+] shop descriptions not working anymore.
- [+] left hand got destroyed by explosion.
    - [+] i then wore a ring... and it went on "left finger"!
- [+] all spell effects should cease just before death.
- [+] crystal shield/armour shouldn't call wear() but rather just set
      f_equipped directly.
- [+] bedrooms/kitchens should have tiled or carpet floors?
    - [+] tiled = less stability (especially with water!!)
    - [+] carpet = more stability
- [+] fire skeleton
- [+] firebug
- [+] ice wraith
- [+] winter wolf
- [+] skoob (snowman)
- [+] crymidia can cast crystal spells
- [+] blastbug
- [+] bilco - casts flood at itself.
- [+] rubber-like things
    - [+] slug
    - [+] snail
2012-01-24 20:38:59 +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 849e567b43 - [+] replace "fireplace" with "brazier"
- [+] make non-lethal kills (ie. knockouts) display in grey rather than
      green
- [+] ability: merciful fighting? always does bashing damage, always
      ko. 
    - [+] done
- [+] Chatting to gods shouldn't work
- [+] bug: when running with shift+dir, i'm running past corridors.
- [+] when announcing skill gains, say if they are from a level.
    - [+] set lifetime to FROMJOB when giving them.
    - [+] if lifetime = FROMJOB, ""you can now use the ability 'xxx' 
          (warrior skill)"
- [+] grenade/c4 explosions should be able to damage cells!
- [+] change grenades to have bigger radius (dtorth 1)
- [+] automatically call "fireat" for grenades
    - [+] impement this
    - [+] make the timer shorter!
- [+] add extra checks to stop monsters from attacking allies
- [+] replace "insane"monster behaviour with F_TERRITORIAL v0=range.
    - [+] will atatck anything else visible within range xxx
- [+] grave sprite should be able to see in the dark
- [+] instead of saying "An orc [drunk]", change getlfname to return "a
      drunken orc" etc
- [+] when you throw an object at someone in a wall, it should fall
      onto the ground in front, NOT the wall itself!
- [+] show how MUCH high/low str/agi will affect weapon damage/accuracy
- [+] different shoddy/masterwork text based on weapon types
- [+] bug: monsters never bleed from injuries!
- [+] another bug in getavgdam - negative accuracy returns negative
      damage since we modify damage by accuracy!
    - [+] within this function, limit accuracy to range 0-100
- [+] bug with options - opt->id never being initialised!
- [+] don't apply "behaviours" to anythuing other than humanoids.
- [+] increase missile accuracy if you are above your target
    - [+] (ie you are flying higher them them)
    - [+] getflightsizemod()
2012-01-17 20:46:23 +00:00
Rob Pearce d063040341 - [+] when we restart map creatuion due to failed fix_reachability,
need to delete all the map flags we added.
- [+] in fix_reachability, never create corridors on the perimeter of
      the map.
- [+] realmofgods should be a fixed vault. like stomach. no exits.
- [+] bug: addmosnter() not setting lf->born when autogen = false
- [+] bug: monsters trying to pick up objects with f_nopickup
- [+] gods shouldn't flee after stealing.
- [+] regenerating troll corpses!
    - [+] F_REVIVETIMER v0 = cur v1 = max.  if v0 = v1, change object
          to race v2. 
    - [+] + troll corpses do NOT decay.
- [+] worm stomach now uses tag:stomach rather than f_vaultisstomach
- [+] fire sprite should drop corpse AND fire


--This linee and those below, will be ignored--

M    nexus.c
M    attack.c
M    text.c
M    objects.c
M    vault.c
M    lf.c
M    data.c
M    map.c
M    spell.c
M    defs.h
M    ai.c
M    vaults/stomach1.vlt
2012-01-12 05:16:01 +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 060470ac3a - [+] allies should always give out info without payment
- [+] ....but only about their home level!
    - [+] f_startmapid
- [+] cave entrances should make noise
    - [+] drip
    - [+] echoing
- [+] cope with multiple f_makesnoise flags on objects (pick one
      randomly)
- [+] showlfstats skill display bug - "MORE" keystroke doesn't fall
      through.
- [+] You impale the chicken!  The chicken turns to face you.
    - [+] shouldn't turn to face if your'e dead!
- [+] nulllify spell not populating seenbyplayer
- [+] crash in createfakes()
- [+] animals hsould still walk onto SHARP objects.
- [+] secret doors showing up as empty remembered cells when you look
      away from them (and have lowish cartography)
- [+] don't call remove_deadends on vaults.
- [+] when walking down stairs to level 3:
    - [+] ERROR - stairs link to existing map 3('dungeon L2 (id #3)',
          depth 2), but it has no free stairs
    - [+] ie. Level 3 has too many up staircases ? no. 3 on all of them.
    - [+] FIXED. countstairs() was including too much.  now using
          countmapobs(map, stairtype) instead.
- [+] The goblin rogue a half-sized leather armour (null).
- [+] fixed crash when you cast rage on someone who is eating.
- [+] crash when catching  a glowbug in a flask
- [+] use canreachbp code when selecting armour to damage as well....
      ie newt can't hit your helmet!
- [+] BUG: "tunnel doing up" went down!
- [+] for monsters:auto raise lf stats to match starting weapons
- [+] crash in aigetspelltarget() for CLIMB
- [+] should deactiveate all spells on polymorph
- [+] allow usage of FEIGNDEATH while prone.
- [+] make coprses non-stackable
- [+] CRASH in animatedead
- [+] shouldn't say 'you attack x from behind' if x has awareness
2012-01-06 00:20:57 +00:00
Rob Pearce 040b9bf052 - [+] don't place draininge grates on low floor!!
- [+] gate spell should always take you to a location wihtout water!!
- [+] enhance speak with dead spell (SPEAKDEAD)
    - [+] may ask "how did you die" plus one of the below:
    - [+] tell me about the area
        - [+] mark stairs on the map
        - [+] mark shops on the map
        - [+] tell about very rare objects 
    - [+] tell me about nearby dangers
        - [+] tell about odd monsters
        - [+] tell about traps
    - [+] test
- [+] let you ask peaceful lfs about the surroundings too
    - [+] move code into io.c "askaboutarea(char *who)"
    - [+] test
- [+] the first time you ask someone for info, randomly determine
      whether they know about:
    - [+] stairs (high chance)
    - [+] shops (medium chance)
    - [+] traps (low chance)
- [+] areacomms_danger should include out of depth monsters - need
      isoutofdepth(lf)
- [+] room floors should take the entry type from the habitat, NOT just
      use ct_room!!!!
- [+] sometimes generate fixed SEWER regionthings
    - [+] done
- [+] BUG: canT enter goblin caves again!!!!
    - [+] getting "ERROR - can't find opposite end of stairs/portal!"
    - [+]   FAILED to link stiars: 'tunnel leading up'
- [+] make maps direct you to regionthings.
    - [+] region things need unique IDs !!!
    - [+] change F_MAPTO
        - [+] v0 = src region  id
        - [+] v1 = src depth
        - [+] v2 = regionthing with whatkind = RT_REGIONLINK
    - [+] when generating map objects, fill in a random branch entry
    - [+] fix getobname code for unknown maps.
    - [+] TEST
        - [+] with "map to the goblin caves"
        - [+] with "map"
        - [+] with "map to"
    - [+] use "the goblin caves are to the north", not "is to the north"
        - [+] is
        - [+] isn't
    - [+] test reading a map when on the wrong branch
    - [+] test reading a map when on the wrong level
    - [+] test reading a map when on the right level
- [+] move staircase generation to END of map create
    - [+] finalisemap()
    - [+] countobswithflagval(obpile, flagid, val0...)
    - [+] countmapobswithflagval(map, flagid, v0...)
- [+] jimbo's map should lead you to one of the major branches.  
- [+] crit pos shouldn't be higher than you can reach!
    - [+] same size or bigger = can reach anything
    - [+] 1 size smaller = you can't reach the head
    - [+] 2 sizes smaller = can't reach head or hands
    - [+] 3 sizes smaller = can't reach head, hands or body 
- [+] jimbo's room should contain all the staircases
- [+] make you have to pass a speech check before people will tell you
      about the area
- [+] bug in recruitment skillchecks - using wrong attribute, and too
      easy.
- [+] rename dwarf to delver
- [+] somtimes say "dons" instead of "puts on"
2012-01-04 15:54:28 +00:00
Rob Pearce adb066d31a - [+] prevent ALL overlapping rooms!
- [+] stop running for any non-cosmetic object.
- [ ] echoing?
- [+] OPTIONS 
    - [+] option_t
        - [+] id
        - [+] letter
        - [+] text
        - [+] int enabled
        - [+] int default
        - [+] next/prev
    - [+] addoption()
    - [+] getoption()
    - [+] dooptions()
        - [+] list them all (with 'more' for multipages)
        - [+] pressing a letter toggles it.
    - [+] "display trails"
- [+] make scents be "cosmetic"!
- [+] increaes skeleton's vulnerability to falling
- [+] missing announcement for bleed()
- [+] let rapid ivy cast entangle
- [+] caves
    - [+] new regiontype
    - [+] new link
    - [+] new habitat
    - [+] objectlass rarities
    - [+] assign obs/mons to habitat
    - [+] code to dig caves
    - [+] stairs linking to cave region
- [+] when learning random skills:
    - [+] prefer lower-level skills
    - [+] onyl learn up to adept level 
- [+] animate dead crashes if there is no space to place the lifeform!
- [+] increase range of charge ability
- [+] when you gain techusage, check held objects for conferred flags.
- [+] bug: motion scanner working even though i have no tech usage!
- [+] warn player before climbing without climb skill (if wisdom is >=
      average)
- [+] regions should have depthmod.
- [+] regionthings should be based on DEPTH, not difficulty!
- [+] rename firstdungeon to maindungeon
- [+] announcearrival broken -always saying 'new area'
- [+] don't use ranged attacks when feigning death if target is adjacent
- [+] don't say 'argh' if you were beheaded.
- [+] The bear cub bites a wooden door with a teeth.--More--
- [+] random levelup skills - only select from skills which we have
      used?
    - [+] need to chance f_hasskill to use f->val[2] = used_this_level
    - [+] when you gain a skill, set f>val[2] = b_false or NA
    - [+] add setskillused for all skills!
    - [+] make random levleup only pick from used skills.
    - [+] TEST
- [+] knowledge skills - practice them when you see a new lf of this
      type.
- [+] slithering shoudl hardly ever awaken you - make listen check
      harder.
- [+] don't put fireplaces in corridors.  F_ONLYINROOM ?
- [+] bug: acid trails from slug disappearing or never appearing?
- [+] snails/slugs
    - [+] killed by salt
    - [+] vslow
    - [+] snails have vhigh armourrating
    - [+] slugs have lots of hp and do more damage
    - [+] brown/grey  'j' ?
    - [+] leave slime/acid trails?
2012-01-03 01:21:22 +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 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 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 c9fcd90a2c - [+] better body part handling
- [+] bodypart_t[MAXBODYPARTS]
        - [+] enum BODYPART id
        - [+] char *name
    - [+] add defs to all races
    - [+] fix quadrapeds - not all have tails!
    - [+] remove f_bodypartname - use addbodypart instead
    - [+] update hasbp
    - [+] remove  occurences of F_NOBODYPART in races
    - [+] fix up getrandombodypart functions
        - [+] getrandomonbodypart
        - [+] getcrithitpos
        - [+] copy with null returns
    - [+] check all occurences of MAXBODYPARTS, change to "for each
          bodypart of this lf/race"
    - [+] show nobodypart differently in io.c 
    - [+] criticals:  hindlegs / frontlegs -> legs
    - [+] makeunusual shaped be part of the body part. then remove 
          F_NOARMOURON
- [+] critical hits on new body parts
    - [+] wing crits
        - [+] bash - wings are bruised - reduced flight speed
        - [+] slash
            - [+] - wings are torn - can't fly. implement in cancast.
            - [+] bleeding - flying hurts
        - [+] explosive
            - [+] destroyed - can't fly!
    - [+] tail crits
        - [+] slash
            - [+] bleeding
        - [+] bash
            - [+] bruised - accuracy lowered
            - [+] fractured - randomly move the wrong way like
                  drunkenness
        - [+] explosive
            - [+] lacerated - randomly fall like hamstrung
- [+] don't prompt for moving into dangerous cells f moving randomly
      due to drunkenness etc
- [+] bug: double criticals?
    - [+] You flatten the kobold!  The kobold loses consciousness.
          The kobold's hand is swollen!  The kobold's leg is broken!
- [+] all f_flying races should have f_canwill ot_s_fly with no
      spellcasttext
2011-11-22 21:32:10 +00:00