Commit Graph

125 Commits

Author SHA1 Message Date
Rob Pearce af3116f6d4 - [+] press ] then \ - CRASH.
- [+] if sound is behind walls:
    - [+] you hear a muffled explosion
    - [+] int canhear() needs one more optional  argument: 
          &numwallspassed
        - [+] if supplied, fill it in.
    - [+] in noise(), check numwallspassed. if there were any, then say
          'muffled'. or maybe if more than 2? play around with this.
- [+] listen skill should also give more info about NON monster sounds
    - [+] ie. direction, distance.
- [+] set user->changinglev when CHECKING stairs in the same way as
      when we use them.
- [+] monk abil - iron fist - use all remaining stamina as damage +
      knockback
* [+] HITCONFER - this should only work if you were attacked through a
      BITE or CLAW etc.
- [+] bug... werewolves etc not attacking properly after shapehifting
- [+] some tech/tools should be usable with hands (ie. watch).
      f_operwithouthands
- [+] werewolves sohuld keep f_hitconfer after shapeshifting
    - [+] done
- [+] summoned creatures from ai should never attack their masters!!!
- [+] only the PLAYER can be infected by a werewolf?  or only HUMANS ?
- [+] when a werewolf changes to animal form, no longer hide true race
      as 'human'
- [+] lycanthropy?
    - [+] how to get it:
        - [+] drink were-xxx blood (->potion of lycanthropy, never
              appears randomly)
        - [+] bitten by a lycanthrope (chance) with hitconfer  and fail
              a con check
    - [+] change f_lycanthrope so text = racename.
    - [+] effects when you get it:
        - [+] right away, add diseased with lycanthropy. incubatino
              infinite ?
        - [+] if you are incubating lycanthropy, you always change at
              the full moon (and get rage, and lose control).
            - [+] at this point, complete the incubation and...
            - [+] add f_hatesall
            - [+] lose control for a while
        - [+] after you change back the first time,  you can change at
              will. (but there is a risk each time of losing control)
            - [+] player regains control
            - [+] remove aicontrolled, hatesall, rage
            - [+] actually add f_lycanthrope, text=xxx, v0=4
        - [+] when f_lycanthrope  v0 drops to 0 or less...
            - [+] canwill shapeshift  with race:xxx
    - [+] how to remove it
        - [+] remove curse scroll 
        - [+] drink holy water
        - [+] these will:
            - [+] cure any incubating curse
            - [+] cure any f_poisoned curse
            - [+] cure lycanthropy, and any flags FROMLYCANTHROPY
    - [+] other effect
        - [+] wont/cant walk into holy circle?
        - [+] holy circle hurts you
- [+] shouldn't be able to get critical hits on you (ie. injuries) if
      you ahve heavenly armour
- [+] bug in f_poisoned text. i think i've fixed this now.
          Died on level 2 of the dungeon.
          Killed by venom poisoning
          from 5-10
- [+] donated objects count towards xp!
    - [+] -50% of value if not known.
    - [+] -25% of value if not id'd
    - [+] donating objects will anger felix
2012-07-11 04:10:21 +00:00
Rob Pearce 042ade4ca6 - [+] change descriptive text for nullify power.
- [+] if you burn your hands on an equipped shield, drop it autoatically
* [+] sewer stairs problem
- [+] if something redhot/flaming takes water damage, it will make
      steam.
- [+] ring of unholiness(blessed things burn you - just add undead flag?
    - [+] gods of purity/life will warn you first.
- [+] fixed crash checking for blocking attacks from adhesive lfs.
- [+] glorana cure poison doesn't work
    - [+] cancast is returning FALSE but E_OK.
    - [+] glorana isn't getting canwill ot_s_curepoison
    - [+] got it - was using getspellschool() instead of
          spellisfromschool()
- [+] giant spider not casting web
    - [+] .oO { can't cast web right now (lowiq) (mpcost=4, i have 0) }
    - [+] FIXED, and also fixed validateraces() check for this kind of
          thing.
- [+] cats are now territorial with rndhostile rather than always
      hostile
- [+] do final cursed wish scroll effect - magic
    - [+] get a suicide spell?
- [+] thornspike armour.
- [+] new slashing weapons
    - [+] new weapon: vibroblade
        - [+] short blade
        - [+] slashing 8
        - [+] extra high crit chance
    - [+] new weapon: nanoblade
        - [+] short blade
        - [+] slashing 10
        - [+] unlimited armour piercing
    - [+] laser sword
        - [+] longblade
        - [+] fast!
        - [+] not dullable
        - [+] armour piercing (not as much as nanoblade)
        - [+] high critical (not as much as vibroblade)
    - [+] gunblade
        - [+] extra explosive damage while it has charges.
- [+] glorana accepts sacrifice of weapons, instead of food.
- [+] ekrub acceps sacrifice of food.
- [+] bug in pirate description:
    - [+] Its  (). It has no left hand.
- [+] god description should show prayer results. ie. "yumi will
      respond to prayer by xxx"
- [+] if glorana likes you while you're sleeping say, "you dream of a
      choir singing" instead of "you hear".
- [+] eating garlic gives stench.
- [+] cope with "armorpierce NA" - "will not reduce damage at all"
2012-07-03 03:53:41 +00:00
Rob Pearce 1de13a1904 - [+] lots of unneccesary redraws when using stairs
- [+] don't ever redraw during new level creation
    - [+] lots of calls to setlosdirty() - for the player, this causes
          instant screen redraw.
        - [+] remember if player is changing level. if so, setlosdirty
              won't redraw.
    - [+] fixed!
- [+] basic clothing shouldn't be able to be cursed
- [+] don't show"you have no clear line of fire to here" if all the
      things in the way are invisible!
    - [+] argument to haslof:  "knowlofonly" - already there.
    - [+] apply this to all checks where it is from someone's point of
          view only.
        - [+] (ie. aimove)
        - [+] (ie throw)
        - [+] (ie spell aiming)
2012-06-22 02:48:39 +00:00
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 cd9b6cd40a - [+] bug: shouldn't be able to pay with gems without beginner
psychology
- [+] plauge rat should have poison corpse
- [+] bjorn should only get mad when you flee from armed foes.
- [+] Strengths: should include poisonous bite at beginner level, not
      adept.
- [+] show behaviour flags in description
    - [+] territorial (insane)
    - [+] fleeondam (timid)
    - [+] noflee (drugged)
    - [+] followtime (detemrined / lazy)
    - [+] muscled/scrawny
- [+] should be able to pay potion stores to id stuff.
    - [+] update make_basic_shop
    - [+] use shopacceptsflag
    - [+] id function...
- [+] bug: scroll of wishing, Protection. keeps giving me 'sun hat.
    - [+] limit possible body parts to certain ones.
- [+] when wearing armour of the spider, you should never get exhausted
      from climbing
- [+] show "Threat Assessment" text on @@
- [+] only warn about pentagrams with gtaverage iq
* [+] new playable race: Wyrmspawn
2012-05-22 06:10:49 +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 8a70cd0f99 - [+] don't make skill points exponentially harder to gain (or greatly
reduce the impact)
- [+] remove 'attacked peaceful' penalty for animals
- [+] ring of decel should also not let YOU throw. limit your throw
      range to 1.
- [+] fruit should get bruised when it takes dt_projectile / dt_bash
      damage?
    - [+] -25% nutrition.
    - [+] f_bruisable
    - [+] f_bruised
    - [+] *addobject()
    - [+] getobname()
- [+] gluon (yellow)
    - [+] f_adhesive, xx
    - [+] sticky
        - [+] str check of diff xx
        - [+] - weapons have a chance of sticking to it when you hit it
        - [+] same if you block its attack with a shield.
        - [+] always stick if thrown .
- [+] bug on load - no gods.
    - [+] need to repopulate godlf[] on load.
- [+] monsters getting stuck. changed so that turntoface isn't called
      if you just turned.
- [+] sanctuary potion should knock other lfs away
- [+] backstabbing shoudl please felix
- [+] genericize determining casttype
- [+] remove nutrition penalty for uncooked food - the threat of
      disease should be enough.
2012-04-18 21:34:41 +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 acd641ebc0 - [+] add territorial to monsters!!!
- [+] wolf
    - [+] hawk
    - [+] bear
    - [+] worker ant (but not soldier ant)
- [+] player shouldn't know if mosnters are peaceful or not
    - [+] ie. no warnings when attacking them
    - [+] no swapping places
    - [+] don't show "(peaceful)" in io.c askcoords()
    - [+] need isknownpeaceful()
    - [+] lv1 negotiation will fix this.  maybe rename it though:
        - [+] psychology
- [+] psionic spells:
    - [+] boost confidence
- [+] wild spells:
    - [+] pyrotechnics
- [+] absorb metal should give you hp if you already have ful lmana
2012-04-07 07:18:56 +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 53ada31364 - [+] bones file error:" the lazy minotaur"
- [+] parserace needs to cope with lazy etc.
        - [+] make enum BEHAVIOUR
        - [+] make behaviour_t
            - [+] id
            - [+] name
            - [+] flags
        - [+] killbehaviours()
        - [+] addbehaviour() calls to define them
        - [+] cleanup callsk illbehaviours
        - [+] givebehaviour(lf, enum behaviour)
        - [+] getrandombehaviour()
        - [+] instead of checking f_behaviour->text, use
              findbehaviour(f->behaviour->val[0])->name
        - [+] parserace should handle these and populate wantflags
              appropriately.
- [+] add disease incubation times (instead of getting them right away)
- [+] OT_A_TRIP should be a lot harder on anything with more than 2 legs
- [+] monster fleeing up/down stairs should anger hecta
- [+] reduce short bow damage.
- [+] add composite bow (between short & long)
- [+] need magic/silver weapons to hurt MT_MAGIC things
    - [+] spirits should no lnoger be made of "MAGIC" - make them
          something else. flesh will do.
    - [+] in attack.c, noncorporeal check should also check for silver
          / magic weapons
    - [+] describe noncorporeal in io.c if knowledge is high enough.
- [+] new spell casttype: ct_sounbased. deafness protects.
- [+] Banshee (7hd, spirit, death keen at night) - blue / red 'p'
    - [+] death keen = sonic damage"midnight dirge"
    - [+] but only at night. 
- [+] harpy: 7hd - orange 'A'
    - [+] charm (via sound, so sonic prevents)
    - [+] 50% chance of bone club
    - [+] bite, claw
2012-03-30 03:34:24 +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 eb859a4889 - [+] ENLARGE spell
- [+] grant extra hp too (*2)
    - [+] grant extra strength (+50)
    - [+] sizetimer text:
        - [+] orighp^origstr
    - [+] polymorph while resized will just return you to your original
          size.
    - [+] high level: enlarge your armour/weapons with you!
        - [+] need to change resizelf() too to take an extra arg
        - [+] need to chance F_SIZETIMER too
- [+] diurnal/nocturnal monsters get a penalty to listen checks during night/day
- [+] spriggan - green 'n'. ugly. can change size.
- [+] weed sprite - evil fairy, wild magic - orange 'n'
- [+] bog wraith - destroy food on touch. wants food. blight.
    * [+] can use "blight" spell
- [+] Unicorn
    - [+] white 'u'
    - [+] good
    - [+] teleport 
    - [+] nocharm
    - [+] good spell resistanve (high wis)
    - [+] drop a horn on death, which grants poison resistant when held
2012-03-27 10:49:23 +00:00
Rob Pearce d872098c48 - [+] battlemage spellbook
- [+] make it grimoire.
    - [+] don't learn the first spell automatically
    - [+] only start with 3 spell schools, and they must be from:
- [+] wizards with no subjob:
    - [+] get a grimoire rather than a spellbook. but first spell is
          always mana spike?
- [+] need some frequent forest vaults
    - [+] tree passage:
    - [+] tree circle
- [+] more enlarge/shrink object effects
    - [+] wooden door = wood wall
    - [+] wooden barrel - wooden dor
- [+] i turned into a cloud of gas. why was i not flying?
    - [+] when you polymorph to creautre with natural flight, start
          flying right away
- [+] show %age chance when studying a scroll
- [+] redo skillcheck code so we can calculate % chance beforehand.
- [+] automatically unlock all doors in starting room
- [+] reduce accuracy for innate attakcs- at the moment they always hit!
    - [+] based on agility.
    - [+] test with monk......
- [+] You have the following spells active:
      3 damage reduction, vuln to fire
- [+] grimoire - why could druid see 'knock' ? think this is fixed now.
- [+] new killverbs:  "murdered" "slain"
- [+] superheat not working if you miss. fixed.
- [+] skillchecks for NC_SPELLEFFECT noises should always succeed.
- [+] modifydamage dealt now that monsters have more hp:
    - [+] initial wizard spells
        - [+] chill
        - [+] spark
        - [+] manaspike
    - [+] later wiz spells
    - [+] fire on ground
- [+] new type of spellbook:
    - [+] general - one spell from each school "spell tome" ? "xxx's
          grimoire"/
- [+] another flagpile corruption bug.
    - [+] asked a mammoan hunter to join me.
    - [+] Marcus shouts "Beware a mosquitoid!".  You hear heavy
          footsteps.
    - [+] Assertion failed: ("flagpile is corrupt!" == 0), function
          checkflagpile, file flag.c, line 456.
    - [+] (timeeffects on footprints)
- [-] when you "vomit then wake up", need to recalc los
    - [+] killflag() is meant to fix this!
    - [ ] why isnt it working?
- [+] bug: wasn't identify()ing starting weapons when you selected them.
- [+] allow temples to try to belss unknown objects.
- [+] allow describing obs from askobmulti()
- [+] warrior read a grimoire, why did it get identified? fixed.
- [+] reduce cost to repair stuff
- [+] dancing flame -l1: fires spread to adjacent lfs
- [+] cleansing fire = l2: use nearby fire to heal -heal (power*20)%
      from each one.
    - [+] maxpower 5
- [+] quicken fire - l4: make flame primarliry
- [+] magic barriers should vanish if you walk into your own one
    - [+] implement
- [+] fleeing from something with F_NOMOVE shouldn't be cowardice
- [+] fix crash in check_for_block()
- [+] new branch: sylvan forest
    - [+] entrance to this branch: hollow tree?
    * [+] add some forest vaults
    - [+] get rid of 'the sun is coming up" messages
    - [+] nature spells which work better outside need to change...
          make it 'when in sylvan woods' instead
- [+] need a spell to teleport to entrance of a branch!
    - [+] done. TRAVEL.
2012-03-26 20:21:43 +00:00
Rob Pearce 45c5fd0365 - [+] Monsters should not use longbows as melee weapons!! 2012-03-16 00:35:38 +00:00
Rob Pearce a6aab1afe1 - [+] ai shuldn't want its home/life objects.
- [+] lich
    - [+] lifeob = ornate glass jar
    - [+] can walk up to 12 away
    - [+] chilling touch
    - [+] mindshield
    - [+] teleport back to jar on death
- [+] monster ghosts have lifeob = corpse, which we generate.
    - [+] but DONT let them possess the player ?  or dont let them
          possess anyhting ?
- [+] mosnters should say noooo! if their lifeob is destroyed
    - [+] lifeobs need a link back to owner f_lifeobfor xxx
- [+] lifeob check wasn't including the lf's cell itself.
- [+] spellcasttext for dryad - "Charm" = beckons
- [+] poltergeist should be invisible
- [+] troll should covet food
- [+] avian - birds should be friendly
- [+] scroll of permenance should make armour invulnerable
- [+] amulet of mind sheild - immune to psionics 
- [+] parserace() shouhld handle "random _baseid_" ie. random ant,
      random troll etc
- [+] vault: troll cave (very rare)
    - [+] trolls
    - [+] bones
    - [+] cooked corpses
- [+] bug: minions not being created in vaults.
- [+] vault: ant nest
    - [+] queen ant
    - [+] dirt floor
    - [+] lots of ants
    - [+] LOTS of food.
- [+] reduce flame volume
- [+] vault maintainedge not working.  slightly fixed now?
- [+] vampires are turning into gas clouds but then trying to attack.
- [+] new amulets
    - [+] Of evolution (turn into a merman in deep water, aviad instead
          of falling, (fireres humanoid) in fire, (coldred human) in
          cold)
        - [+] in deep water and can't swim? turn into merman
        - [+] about to fall through a hole? turn into a flying aviad
        - [+] in fire and not resistant? turn into a Lavax
        - [+] in cold and not resistant? turn into sasquatch
        - [+] all polymorphs are TEMPORARY (5 turns or so).
        - [+] no autoid
    - [+] of bloodthirst - walking over blood heals you!
        - [+] no autoid
    - [+] Of graceful swimming (auto turn into a swan when you enter
          water)
        - [+] no autoid
    - [+] paranoia (5% chance per turn to create monsters out of sight,
          but in lof)
        - [+] they will make a "walk" noise right away
        - [+] or something just "you hear xxx right behind you!"
2012-03-08 19:42:25 +00:00
Rob Pearce ea5d012876 - [+] bug: notime being set in timeeffectslf() but NOT being UNSET!!!
- [+] air spells:
    - [+] create whirlwind - make a single whirlwind
        - [+] implement
    - [+] ethereal steed - move very fast and levitate
        - [+] f_autocreateob whirlwind behind you
        - [+] whirlwind object throws any lfs/objects around randomly
    - [+] tornado - creates a single tornado at a given location (more
          powerful). it moves around randomly, kills adjacent walls.
        - [+] F_OBMOVESRANDOMLY
        - [+] find an adjacent cell (walls ok)
        - [+] kill any walls there
        - [+] move there
    - [+] hurricane -  creates a cross cloud of whirlwinds (very
          powerful!). these move around randomly and kills adjacent
          walls.
        - [+] implement
        - [+] make them all move TOGETHER.
- [+] djinni / genie
    - [+] invisibility
    - [+] gaseous form
    - [+] illusion? mirror image ?
    - [+] permenant ethereal steed effects
    - [+] airblast
    - [+] gust of wind
- [+] efreeti
    - [+] wall of fire (new spell)
    - [+] gas form
    - [+] enlarge
    - [+] flame pillar
- [+] when summoning a monster with a lifeob, place it under them?
- [+] druid should learn canwill plantwalk at some point... level 7
- [+] allow f_cancast to have a timer too, like canwill. (so that
      monsters only cast certain spells sometimes)
- [+] is ai plantwalk working?
    - [+] seems to...
    - [+] but then i get "something casts a spell at you!"
    - [+] aigetspelltarget is setting targlf to player. FIXED.
    - [+] ai keeps on casting plantwalk after doing it once.
    - [+] ai needs to sto fleeing after casting plantwalk successfully!
        - [+] this is because after stealing, we are fleeing for a time
              limit, rather than PERMENANT
    - [+] once this is fixed, add spellcasttext plantwalk = null for
          dryad.
- [+] NEw code:  if you teleport, and you were fleeing, and you can no
      longer have LOF to the one uou're fleeing from, STOP.
- [+] The dryad vanishes!  A dryad moves out of view.--More--
    - [+] don't say both!
- [+] change CHARMEDBY code for player:
    - [+] walk towards charmer, then give them your stuff!
- [+] dryad brown 'T' (tree creature)
    - [+] knife
    - [+] must stay near oak tree
    - [+] can "plantwalk" between oak trees (or other plants).
        - [+] cast spell at cell with plant, warps you to a random one
            - [+] for player:  reveal all cells with trees, then ask
                  you which one.
        - [+] range 1
        - [+] maxpower 1
        - [+] ai casting:  must be a plant in range.
    - [+] emergency code: if not within lifeob range, move back!
    - [+] can cast sleep
    - [+] wants gold/gems/weapons
    - [+] home oak tree contains gems
    - [+] steal
    - [+] stayinroom
    - [+] charm 
    - [+] AI shouldn't ever walk away from life ob!
    - [+] ai homeob gems aren't appearing
2012-03-07 11:46:55 +00:00
Rob Pearce 95e470238e - [+] fire skeleton shouldn't be immune to cold
- [+] if monster dodges your first atatack, cancel the second!
- [+] make god anger/happiness fade over time, unless they are enraged
      (1 per turn ?)
    - [+] chance of fading is 1 in (abs(piety)/100)
- [+] don't include " [tried] when dumping bones!
- [+] "repair all"!
    - [+] implement repairall
    - [+] make repairall like eating (auto action)
- [+] time taken when you fall down should be longer
- [+] F_STAYINROOM monsters will go back to their lair if they ahve no
      target.
- [+] more object decay in bones files:
    - [+] blood splashes/pools become blood stines
    - [+] all objects have a 1/4 chance of vanishing (someone picked
          them up)
- [+] resting should only please glorana if your'e actually worshipping
      her!
- [+] exploit: stand outside jimbo's room and pelt him! fixed.
- [+] random "behaviours" for more/less hp
- [+] around dlev 8-9, monsters are too easy.  at this point i'm
      dealing 10-20 damage per hit.
    - [+] give monsters a "Challenge Rating" seperate to their hitdice.
    - [+] instead of gethitdice(), use getcr()
    - [+] change dumpmonsters
    - [+] use cr() to determine what monsters will appear, not hit dice.
    - [+] that way i can have certain mosnters have more hp, but still
          appear higher in the dungeon
    - [+] initially, assign CRs based on hit dice
    - [+] when rolling hitdice for monsters, always give maximum, then
          go up/down by 15%
- [+] monsters shoiuld always know spells from their spellbooks.
2012-03-06 10:47:26 +00:00
Rob Pearce 69cd41a714 - [+] make zombies eat flesh.
- [+] warn before eating your own kind if it will anger your god, and
      you wisdom is high.
- [+] make disease way worse if you eat your own race's corpse!
- [+] CRASH when i try to cook firebug corpse
* [+] bones files:
- [+] when your leg is bleeding, don't lose hp for ATTACKING, only for
      MOVING.
- [+] bug: issue with skill display if you learn higher than your max
      level by reading a book!
    - [+] in this case, reading the book should fail.
- [+] when you start worshipping felix, allow you to learn lockpicking
      & thievery to full level!
- [+] infinite loop when an ashkari enters rage while already eating.
- [+] felix prayer should always unlock all nearby doors
- [+] if you add f_calwill xxx, v1=112312 v2=NA, make v2 = v1.
    - [+] that way we can confer it!
- [+] say "this is xxx!" after wearing a new amulet.
- [+] fork / knife should make you eat faster.
- [+] double the hp of most armour again
AMULETS
- [+] add new bodypart = neck
- [+] object hiddennames
    * [+] nouns
    * [+] adjectives
- [+] flight  (canwill fly)
- [+] enhance spell power
- [+] victimization (makes everything hostile) (no auto id)
- [+] blinking
- [+] anger (canwill rage)
- [+] vs poison (poison immune)
- [+] vs magic (magic resistance)
- [+] common
    - [+] feather fall (dt_fall dmg = 0)
        - [+] don't "slam into the ground", just "float gently to the
              ground"
    - [+] of amplification (boost listening skillchecks, allow you to
          listen at stairs)
    - [+] peaceful sleep (don't get woken up by sound, cursed)
    - [+] chef's amulet(lower metabolism) 
    - [+] thief's amulet (lockpicking)
2012-03-05 10:31:21 +00:00
Rob Pearce 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 ff13f25bb9 Paladin changes
- [+] average charisma + speech ?
- [+] lose all/most of  the warrior abilities
- [+] can only voluntarily wear known blessed items (add this to the
      description)
    - [+] (glorana must give holy water when you pray)
- [+] move most post-damage stuff into losehpeffects()
    - [+] pass "int doextraeffects" to losehp_real().
    - [+] during melee attack, delay this.
    - [+] otehrwise, it happens in losehp!
- [+] add constants for real_getobname params
- [+] add constants for real_losehp params
- [+] issue - should i be able to say 'have mercy' when i'm not
      adjacent?
    - [+] probably not!
- [+] don't sell credit cards in shops.
- [+] make crowns, velvet robes, wizard hats more likely to have brands
- [+] don't say "your feet get wet" when walking from water to water
- [+] fix bug in real_warnabout() where multiple warning_t instances
      were being made for the same text.
2012-02-25 23:42:48 +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 3e5c718502 - [+] non-player insects should never be able to break out of a web.
- [+] stench should still affect non humanoid/animals if they have
      f_enhancesmell
- [+] bug: god of fire should only be pleased by kills if you used fire.
- [+] luck should affect whether you gain abils from eating corpses
- [+] lower weight of four leaf clover
- [+] bug: when dungeon had different wall type selected, still got
      scattered rock walls
- [+] death spells shouldn't please hecta if they fail
- [+] bjorn should restore stamina when you pray
- [+] show your score when you didn't make the hiscore table.
- [+] eating corpses for resistances
    - [+] f_eatconfer on race defs. fill in text for stacking, ie.
          resist becomes immunity if you already ahve it.
        - [+] must have f_mutable.
    - [+] have to eat mutant corpse first to enable this.
        - [+] you gain f_mutable.
        - [+] "Your body feels ready for mutation."
    - [+] thereafter......
    - [+] for resistances, you first take maxhp/2 damage of the same
          type (with chance to ko rather than kill)!
    - [+] inherited by corpses
    - [+] eat shadowcat to see through smoke? this replaces the
          temporary smoke creation effects.
    - [+] add to some lfs
        - [+] dtresist (elemental based)
        - [+] attrmod (wyrm or giant corpses)
    - [+] when you create a new corpse object, take EATCONFERS from
          race!
- [+] store owners shouldn't let you in if you have f_stench
- [+] if you pick up a non-magical object (ie. a potion of water), and
      have detect magic, and it's not magic...you know it's uncursed,
      +0, etc.
    - [+] (assuming pot_water is known)
- [+] other effects of alignment
    - [+] areenemies()
        - [+] good:
            - [+] other good creatures are still "peaceful" (remove
                  f_hostile on creation)
            - [+] evil creatures are always hostile (even npcs) (add
                  this flag in addlf())
            - [+] no xp for attacking peaceful
        - [+] neutral: nothing special
            - [+] no xp for attacking peaveful
        - [+] evil: 
            - [+] still get xp for attacking peaceful
            - [+] good creatures are always hostile (add this flag in
                  addlf())
    - [+] show alignment in @. maybe after "Race: xxx"
    - [+] add random alignments to some humanoid races
        - [+] should be able to jsut use f_align al_none "gne"
        - [+] lizardman
        - [+] all the playable races
    - [+] bonus when 'c'hating to your own alignment npcs 
    - [+] move alignment question to givejob(), and make it random for
          mosnters
    - [+] add alignment to gods
- [+] sandman - puts you to sleep. OR has lots of sleeping dust.
    - [+] glyph: brown 'y'
    - [+] miniature tornado of sand, humanoid visible inside
    - [+] can cast sleep, range 1 (or 2 and need lof?)
    - [+] corpse:  smoke and sleeping dust?
    - [+] no attack.
    - [+] low hitdice (2)
    - [+] fairly high ar (10)
    - [+] madeof dirt
2012-02-10 06:44:12 +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 d876d30d70 - [+] Remove or disable old code:
- [+] shopkeepers
    - [+] remove F_SHOPITEM - this was used for old shop code.
    - [+] "shop" vaults
    - [+] village map (but leave the habitat for use in bazaar vault
          etc)
- [+] vault: support for random monsters - use "random" for name
- [+] vault flag: f_monsstayinvault
- [+] vaults for goblin caves
    - [+] pool of water
    - [+] small hut
    - [+] brick wall
- [+] trapped corridor
- [+] pranksters dust (makes everyone invisible)
- [+] allow c_random for animations
- [+] random chance of different kind of wallfloor when creating
      dungeons
    - [+] brick wall (slightly weeaker, orange/red)
    - [+] metal wall
    - [+] wood ??
    - [+] instead of using map->habitat->solidcelltype, use
          getsolidcelltype(map)
        - [+] this checks map for f_solidcelltype
        - [+] if not there, uses map->habitat->solidcelltype.
    - [+] vaults should be able to inherit empty/solid types from map
        - [+] x:cell:EMPTY
2012-02-07 23:28:48 +00:00
Rob Pearce 24d95368b6 - [+] redo throw hit%. even inept sk_throwing should have 40% or so to
hit at point blank range.
    - [+] only reduce hit% after first cell? 
- [+] increase change of player ko with yumi
- [+] tranq dart and nanodart should be rodshaped.
- [+] genericise purification
    - [+] F_PURIFIESTO v0 = newobject
    - [+] add toadstool -> shiitake
    - [+] posion potion -> water
    - [+] acid potion -> water
    - [+] rum -> water
    - [+] DONT make the original object type known now 
- [+] higher level purify food lets you select a cell!
    - [+] need f_targettedspell v1 & v2 to specify power.
- [+] druid should get to pick one of 3 spells (from each available
      level) upon levelup, not anything!
    - [+] implement f_levspellschoolfromx
    - [+] TEST!
- [+] implement secondary weapon swap with 'x'
    - [+] initial press:  unweild curwep. if successful, mark as
          secondayr.
    - [+] subsequent presses:  find secondary wep (or fail). remember
          cur. weild secondary. if successful, remove scondary flag and
          mark old cur wep as secondary
    - [+] when you move an object, it loses secondary flag.
- [+] BUG:  I had TWO regions with rtype->id == RG_CAVE!!!
    - [+] have added debug code
    - [+] think this is fixed - need to remove created regions when i
          regenerate a map.
- [+] should be able to sell gems to jewelery store
    - [+] sm_sellitems
    - [+] shopsell()
    - [+] shop has f_cansellobclass xxx, val[0] = pct of full price you
          can sell for. normally 50% but 75% for gems. 
    - [+] allow COUNT - modified askobjectwithflag ?
        - [+] OR add an extra *sellshop option to doaskobject ??
        - [+] if this is set, only allow selection of objects which
              match the shop's f_shopsell flags
            - [+] ie. replace wantflags[]
        - [+] when passing this, don't  also pass wantflag args!!!
    - [+] rename shopsell flag to  f_shopacceptsflag
    - [+] accept F_NONE in shopacceptsflag
    - [+] make shopdonate use the same code
- [+] make donating to shops lower their prices ?
    - [+] for each 100 value you donate, reduce prices by 1%
        - [+] ie. donate 1000 worth, reduce by 10% = 1 level of speech
              skill
- [+] change shopsell to use  applyshoppricemod
    - [+] applyshoppricemod needs a new arg - up or down
    - [+] check code in objects.c for naming too!  listobs()
2012-02-07 02:50:17 +00:00
Rob Pearce c1bccc652c - [+] fixed crash related to F_CASTINGSPELL
- [+] change god names to "god of xxx/yyy/zzz"
- [+] i'm pleasing the god of life somehow unknown. why?
    - [+] from sleeping!
    - [+] was checking !isasleep(god), not !isasleep(player)
- [+] ai object stealing code not working
- [+] chance to wake up when someone is stealing your objects ?
    - [+] stealer makes an easy stealth check
- [+] fix crash in steal()
- [+] when fix_reachability kills a wall, add rubble as if the wall
      fell down.
- [+] if you burn yourself on something, automatically drop it.
- [+] ai shouldn't try to wear dangerous objects.
- [+] f_hot objects count as dangerous
- [+] if metal takes fire damage, it gets F_HOT (unknown)
    - [+] touch() will burn you, and make the flag known ("red hot") 
    - [+] if you are wearing F_HOT armour, take damage from it.
    - [+] modify how heat metal spell works
    - [+] when something catches on fire, it also gains F_HOT 
    - [+] test heat metal
- [+] firebug and fire sprite should have f_extracorpse "small fire"
- [+] in makedesc_skill, only show each "at xxx level" heading once
- [+] ice wraith shuld be flying.  ghast shouldnt be levitating.
- [+] MENDING should fix rust.
- [+] BUG: ERROR - unlinked stairs! should have been linked during map
      creation.
    - [+] was on Dlev 9
    - [+] stairs were going to the swamp.... and swamp had no stairs!!!
    - [+] in finalisemap: swamp was misisng stairtypes!
2012-02-03 05:55:19 +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 a4ac951f15 - [+] remove "inscribe" spell for now.
- [+] beginner perception should let you see next to you.
- [+] fix trail directions when checking stairs
- [+] make labyrinth vault be a proper labyrinth shape
- [+] 'spark' should affect floor obs even if there is a lf there.
- [+] cursed scroll of awareness should blind you for 10-20 turns.
- [+] bug: monsters trying to flee through locked drainage grate.s
- [+] new god: Bjorn the battlelord
    - [+] Pray effects:
        - [+] bless weapon
        - [+] bezerk 
        - [+] true strike
        - [+] haste
    - [+] Likes: battles (ie. kill last enemy in lof)
    - [+] Dislike:
        - [+] calming
        - [+] poison
        - [+] magic (wands, spells etc)
        - [+] retreat (moving away with back turned) "Coward!"
    - [+] gifts:
        - [+] weapons, armour
    - [+] sacrifice:
        - [+] untouched battle spoils
        - [+] after dropping objects, add f_battlespoils if YOU killed
              the ownert.
        - [+] remove this if/when the object gets moved again
        - [+] splatter blood
    - [+] minor anger:
        - [+] rust your armour / weapon
    - [+] major anger:
        - [+] destroy your armour
        - [+] destroy your weapon
        - [+] summon lots of enemies
- [+] new god: Lumara - fem, magic
    - [+] likes:
        - [+] most things which train magic skills
            - [+] ie. casting spells
        - [+] using wands
        - [+] reading scrolls
    - [+] dislikes:
        - [+] missile weapons
    - [+] pray:
        - [+] restore mp if low
        - [+] identify books/scrolls
        - [+] remove curses
    - [+] gift:
        - [+] spellbooks
        - [+] manuals of spell schools
        - [+] extra mp
    - [+] angry minor:
        - [+] lose mp
        - [+] forget a spell
    - [+] angry:
        - [+] spells stop working (100% failure chance)
        - [+] forget all spells
        - [+] polymorph you into something bad
    - [+] sacrifice
        - [+] weapons / armour
2012-01-25 09:20:15 +00:00
Rob Pearce 4a32308310 - [+] dual wield, then weild -, say "y" to "weild nothing in your left
hand", CRASH.
- [+] rogue should start with novice speed and throwing
- [+] better method of sneaking - just hiding in one spot isn't
      effective.
    - [+] get "hide" at novice level
    - [+] at beginner level, you can move while hiding. ( but if
          someone hears you, they spot you)
- [+] if you can't see an object (ie in inventory it just comes up as
      "a potion"), make the description be generic.
- [+] stealth shouldn't affect movement noise uless you are hiding
- [+] move slower when hiding.
- [+] trying to hide while already hiding will cancel it.
- [+] rename f_sneak to f_movecarefully
- [+] move "you attack the helpless xxx" into construct_hit_string.
- [+] light level should affect stealth checks.
- [+] flying should only impact stealth checks to make noise, not to
      hide.
- [+] sprint should stop hiding!
- [+] weapon brand: of protection.  gives AR. 
    - [+] make sure i show this in showlfarmour ]
- [+] shouldn't be able to backstab plants
- [+] no hiding while producing light.
- [+] changing armour should stop you from hiding.
- [+] let you hide when you can see monsters, but they instantly get
      F_SPOTTED.
- [+] different verbs for god voices
- [+] remove "enhanced smell" from xat and dire rat.
- [+] make guns usually start with ammo
- [+] gain attrib point on _every_ levelup, but 2 each time not 5.
    - [+] this means that we now gain 6 stat points every 3 levels
          rather than 5, but they can be spread out.
- [+] rogue modifications
    - [+] change starting backstab level from beginner -> novice
- [+] generated monsters: "It is sleeping. It is flying."
    - [+] should be sleeping AND flying!
- [+] remove duplicate tanglemissile code.
- [+] change F_ATTREQ - split up penalty cutoff and bonus cutoff
    - [+] needs a "boostafter" param.
    - [+] ie.
        - [+] needs at least ATTREQ agility to USE it.
            - [+] if you are less than this, start applying penalty.
        - [+] v2 = BOOSTAFTER level. (CHANGE)
            - [+] if you are above this amount, start applying bonus.
        - [+] text = scalepercent. (CHANGE)
    - [+] adjust code
    - [+] adjust defs
    - [+] explain in io.c
    - [+] test
- [+] new felix pray effect: invisibiltity
2012-01-23 07:16:18 +00:00
Rob Pearce fa9071ab69 - [+] bug: mammoan warrior with spear not agile enough to use starting
weapon!
- [+] new option when chatting:
    - [+] "care to trade knowledge?"
        - [+] works if:
            - [+] you have a skill which they don't know (or a spell
                  which they don't know)
                - [+] otherwise "there is nothing you can teach me."
            - [+] AND ONE OF
            - [+] works if they know a spell which you don't know (but
                  are able to learn)
            - [+] works if they have the same skills as you, but better,
            - [+] works if they have the a skill which you don't, AND
                  they are >= adept
                - [+] otherwise "i fear there is nothing useful i can
                      teach you"
        - [+] TEST
        - [+] can only do this once per person ("i have nothign more i
              can teach you")
        - [+] if high speech, you can pick what to learn. otherwise
              it's random.
        - [+] bug: human rogue asking to learn 'summon weapon' but not
              skilled in summoning!!!
        - [+] TEST AGAIN!
- [+] speech skill determines what you can ask people about!
    - [+] nov:any dangers?
    - [+] beg:any useful items around?
    - [+] ad:trade knowledge? 
    - [+] sk:join me?
    - [+] (but make skillchecks harder otherwise by the time you get
          the rigth speech skill level, you'll always pass!)
2012-01-21 00:35:04 +00:00
Rob Pearce 80a8edf471 - [+] increase accuracy of blessed firearms ?
* [+] in temples, holy water is just showing up as "potion of water"
- [+] make blessed/silver arrows hurt undead etc 
- [+] different temple exit messages based on f_linkgod
- [+] problem: in temples, holy water only casts $5 whereas a blessing
      costs around 100!
    - [+] adjust cost - increase value of BLESSED potion of water
    - [+] test out the new pricing...
- [+] bug in skill descriptions.... never being added.
    - [+] why? debug to find out.
    - [+] because firstraceclass == NULL
- [+] make monster skill determine whether you can identify them from
      footprints, not perception
    - [+] lorelev = novice:  "you see animal footprints"
    - [+] lorelev = beginner:  "you see xat footprints"
    - [+] perception beginner: "you see fresh xat footprints leading
          north"
- [+] linkexit() shouldn't be allowed to fill in cells at the very edge
      of the map. 
    - [+] just say can't fill in if c->locked.
- [+] electrical trap - casts chain lightning
- [+] some traps only trigger if you're on the ground (not flying)
- [+] let you be able to dodge fire traps
- [+] in io.c, show ability timers for canwill
- [+] sacrifice of cursed obs to amberon - move this from "pray" to
      "offer".
- [+] once you have prayed to one god, prevent praying to opposing gods.
    - [+] implement getopposinggod
    - [+] implement this - "xxx ignores you"
    - [+] in god display show line in red, and "prayed" as "N/A"
- [+] need an alternate amberon anger effect if you don't have any
      blessed objects.
- [+] when using 'm', skill list should show 'canwill' as 'abilities',
      not magic.
- [+] when using 'm', skill list should show shortcuts
- [+] change attribs to be 0-100
    - [+] getskillbracket type functions
    - [+] lf definitions
    - [+] this impacts skill checks and their difficulty
    - [+] and object boosts / penalties 
    - [+] and weapon attrreq
    - [+] ATTRMOD
    - [+] JOBATTRMOD
    - [+] io.c: attrmod, jobattrmod
    - [+] getstatmod()
    - [+] basically anything which calls getattr()!!!
    - [+] when you levelup, increase one stat by 5, not 1.
    - [+] ATTRSET and ATTRMOD in spells
2012-01-18 23:11:55 +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 db0b726088 - [+] corpses should inherit lf vulnerabilities/immunities
- [+] change bloodsplatter for full leeches to no longer use fireat code
    - [+] was a bug - wasn't handling NA for speed in F_DIESPLATTER
    - [+] change fireat code to not announce "xxx flies through the
          air" for platters
- [+] fix it so that things flying through the air (via fragments())
      can hit people.
- [+] when calling fragments(), don't announce every single "a shard
      flies at xxx"
    - [+] fireat() needs "announcethrow"
- [+] stop running when adjacent to any monster (evne peaceful)
- [+] monsters should always turn to face their attackers, even if they
      aren't adjacent.
- [+] multiple ring types are getting the same hiddenname:
    - [+] Rings
             ring of strength          (flourite ring)
             ring of stench           (flourite ring)
    - [+] validateobs now checks for this.
    - [+] nearly everything seems to have 2 entries.
    - [+] maybe also put a check inside addhiddenname!
    - [+] addhiddenname no longer triggering dupes.
- [+] bug: planeshift not working when cast by enemies.
- [+] bug: skillxp being boosted by massive amounts sometimes
    - [+]  Exp Level: 15 (32150 XP, -1581 for next)
    - [+] bug in getlfaccuracy - returning 9937 and boosting xpval by
          massive amounts!
- [+] motel bug:
    - [+] How many hours will you pay for (you have $1073)? 4 hours
          ($440)
          You start resting (in your motel room)...  You finish resting.
          You wake up.
          "Sleep well!"
    - [+] say"sleep well" BEFORE sleeping!
- [+] for some reason i'm gaining massive amounts of skill points!
    - [+] killed  giant ant, got 3 points???
    - [+] pointsforsp not going up fast enough, especially at high
          levles (13+)
    - [+] was a bug in getlfaccuracy
- [+] yumi should only check attacking helpless on your FIRST attack.
    - [+] if you have subsequent ones, they're ok since you can't
          control them!
- [+] don't please or anger gods when fighting gods
2012-01-15 23:18:20 +00:00
Rob Pearce bbaca368e7 - [+] make ring of invisibility also drain your hp!
- [+] monster with tremorsense can 'hear'
- [+] allow attacking of wall cells with normal melee attacks
    - [+] glass should shatter
- [+] option: stop running on hearing a sound
- [+] make describerace use downline().
- [+] make certain strengths and weaknesses not show up in player
      selection
- [+] An uncursed manriki wraps around the hawk.  The hawk falls to the
      ground.
      A black bear comes into view.
      You critically scratch #.  The black bear roars.
    - [+] check construct_hit_string.
    - [+] i was hitting a hawk.
- [+] still some entrances overlapping glyphs.
    - [+] genericise checking code in fix_Reachabilty
    - [+] Also: in fix_reachability, disallow linking to cells which:
        - [+] are adjacent to a door
        - [+] are part of a vault with maintain_edge, and are 't marked
              as exits.
    - [+] looking a bit better now...
- [+] incorrect glyph colour for animated zombies
- [+] grow/shrink potions? to change lf size to fit armour.
    - [+] resizelf()
    - [+] modification spell (l2)
        - [+] grow
        - [+] shrink
    - [+] potions
        - [+] cursed growth does shrink
- [+] make rare monsters / objects only sometimes be known.
2012-01-12 01:28:07 +00:00
Rob Pearce f7061b45ca - [+] in shops, show 'ESC when done, ? to describe/purchase'
- [+]    b - a silver shoddy bastard sword
    - [+] show object's condition before changed material state?
- [+] bug: torches aren't lighting up walls when walking in corridor!
- [+] scrolls with f_scrollneedsob should say 'tried on object' 
- [+] dungeon light
    - [+] lit shoudl be "illuminated" and be an enum
        - [+] IL_FULLYLIT
        - [+] IL_WELLLIT (dark, candelabras in  every room and moss
              every 4 steps)
        - [+] IL_DIM (dark, torches in rooms and moss every 6 steps)
        - [+] IL_SHADOWY (dark, torches in some rooms and moss every 8
              steps)
        - [+] IL_FULLYDARK (ocassionally moss in rooms, otherwise no
              light at all)
    - [+] need more fixed light source objects:
        - [+] moonmoss and sunmoss
    - [+] if not fully lit, map illumination level determines how often
          light sources are placed, and what type.
- [+] special monster behaviour (perception or lore will show this?)
    - [+] insane monsters (attacks anything)
    - [+] hunting for food (hungry, add covets food)
    - [+] returning to lair with plunder (extra treasure)
    - [+] timid (lower morale, maybe add f_timid or alwaysflees)
    - [+] drugged (never flee)
    - [+] drunk
    - [+] diseased (start with a non-lethal disease. eating its corpse
          infects you)
    - [+] determined (will chase the player for longer)
    - [+] lazy (chase for less time)
    - [+] only show if perception >= skilled)
- [+] only show monster jobs if lorelev >= beginner
- [+] bug: cursed scrolls no longer having bad effects. fixed.
- [+] after you fool a monster by feigning death, it shouldn't target
      you for a while.
- [+] prevent wands from being blessed/cursed.
- [+] bug: still no displayed text when your pet dies.
    - [+] update: this seems to happen when a monster is killed by
          another monster
    - [+] The bear cub claws the dog.  The dog wakes up.
    - [+] fixed!
- [+] hwen monsters start with weapons/sheilds, their starting skill
      should be based on hit dice.
    - [+] max skill is hitdice / 3
- [+] wake up player before giving god gift!
- [+] "a goblin shaman moves out of view"
    - [+] but i didnt hav ehigh enough lore!
    - [+] maybe real_getlfname needs "showall".  check this istneda of
          usevis to see whether to show job.
- [+] crash when objects fall through a hole and the lower hole needed
      to be moved slightly.
- [+] bug: invisibility is fooling even things with 'enhancesmell'
- [+] water onto dirt only makes mud if there isn't some already there.
- [+] monk fists DR should max out at 12 or so, since #attacks keeps
      going up!
- [+] don't show god pleaseing messages when asleep
- [+] bug: showing '%s dodges" when you can't see it.
- [+] fix rarity of wands
- [+] reward at bottom of caves:
    - [+] godstone of war (cases RAGE on everyone near you)
Goblin cave bosses:
- [+] goblin king
- [+] young dragon
2012-01-10 03:40:43 +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 585876caee - [+] high metalwork/sewing lets you make things into masterwork
(combine two).
- [+] get dizzy if you turn too much.
- [+] stomach
    - [+] obejcts - gems etc (check phone)
    - [+] if you kill it form inside, you get expelled.
- [+] don't say "you hear fighting" when things are attacking you!
- [+] fix crash in polymorph code
- [+] All bandits should demand gold
    - [+] when you give it to them, thel ALL get satisfied.
- [+] more flagpile corruption still happening.
    - [+] wasn't allcoating enough space for losdark in precalclos.
- [+] still missing death announcement for plauyer pets
- [+] reduce #attacks for young hawk to 1
- [+] mercy
    - [+] say this to intelligent mosnters then pass a speech check
    - [+] if you pass:
        - [+] they say something
        - [+] they ko you
- [+] monstesr shouldn'ts randomly move into unconscious/dead lfs
- [+] monsters should take wanted obs from adjacent unconscious lfs
    - [+] when you wake up: "some/all of your items are missing..."
- [+] at beginner weapon skill level: exposed strike - takes longer but
      higher accuracy?
- [+] impaler frog
- [+] sinkmite
    - [+] drills for hands
    - [+] canwill Ot_s_dig
    - [+] targetting:
        - [+] fleeing: downwards
    - [+] can drill downwards to flee
    - [+] can dig through walls
- [+] necrons:
	- [+] trapper - blue
	- [+] reaper - red
	    - [+] scythe
	    - [+] hurricane strike
- [+] bug: necron reaper is not preffering its weapon for attacks....
      why?
    - [+] check attackcell()
- [+] fix colour in retaliation text
- [+] need to announce hurricane strike ability
- [+] amnesia scroll  - lose all skill points!
- Hecta effects
- [+] flay flesh (bleed depending on hitdice)
- [+] hecta's servent (skeletal hand rises, cannot move, grabs adjacent
      lfs, drags underground)
2011-12-20 08:03:15 +00:00
Rob Pearce 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 f31222e47d - [+] all torches are broken!!! i'm not setting losdirty when a cell's
light level changes
    - [+] try implementing "haslosdark"
    - [+] TEST TEST TEST - at the moment this is causing massive
          amounts of redraws!!!
- don't announce sounds when we can see the source (but monsters still hear them)
2011-12-09 03:39:57 +00:00
Rob Pearce 0f99007c2a added bazaar vault.
- [+] remove damage from jumping onto other lfs
- [+] when you jump in water or something lands in water: "you hear a
      splash"
- [+] tweaks to how evasion works.
- [+] The book crumbles to dust.  Your manual is no longer glowing.
      FIXED.
- [+] fix msghistbuf for askchar - not showing your choice.
- [+] in shops, show prices in red if you can't afford them.
- [+] retaliate should only work if you're still adjecent
- [+] show Ravenous in RED
- [+] no xp for rapid ivy clones
- [+] make weapon of impact only knockback 33% of the time (instead of
      always)
- [+] don't set F_NOSCORE when quitting.
- [+] some scrolls cost $1??
- [+] You see a masterwork shoddy club here.
    - [+] shouhldn't be able to have both!!!
- [+] change bleeding code.  lowhp doesn't mean bleeding.
    - [+] also change flee on bleed etc
2011-12-09 00:37:02 +00:00
Rob Pearce 089ce94751 * [+] let credit cards be used at some shops?
* [+] bug with adding obejcts to shops
- [+] issue with objects dying and killing their flagpiles
    - [+] A medium fire dies down a little.  A medium fire is no longer
          glowing.
    - [+] shouldn't say "is no longer glowing" when we're changing the
          type... ?
    - [+] put a breakpoint on "is no longer glowing"
* [+] let you bless objects using a holy circle somehow (but it might
      make the circle disappear?).
- [+] darness bug - need to recalc light for anyone who sees a cell's
      lightlevel change.
- [+] call more() after showing vaultentertext()
- [+] remove "inspected" when you ident or makeknown an object.
- [+] BUG - no objects in inventory!!!!
    - [+] listobs failing? mylist[0] = null.
MEMLEAK
- [+] finish implementing CLEANUP()
- [+] crash in cleanup() -> killot() -> findleak.c_stuff while freeing
      STACKABLE flag from cactus fruit???
    - [+] better now?
- [+] now a crash freeing hiddennames!
- [+] forgot to free obmods
- [+] leaking approx. 1 meg per turn!
- [+] where am i leaking?! maybe try valgrind or findleak.c
- [+] findleak.c now finds nothing.
- [+] but i am sitll leaking?????
- [+] related to lifeform count.  killing all but player dramatically
      slows it.
- [+] check calclos()... looks okay.
- [+] setcellknown() ?no.
- [+] startlfturn?? no.
- [+] remove unused "lf->viscell"
- [+] when there are 2 things in a cell, say "you see x and x here."
- [+] restore original stast when polymorphing back to original form!!!
- [+] when making shops, pick new ones more often.
- [+] change to maps: don't let vaults overlap.
- [+] HARDCODE object values
    - [+] potions
    - [+] tech
    - [+] tools
    - [+] rings
- [+] increase evasion skill effects
- [+] changes to  animradial... and animradialorth
    - [+] combine into one function
    - [+] move msg into here
    - [+] refs to spellcloud()
    - [+] refs to animradial()
- [+] fire should spread onto flammable lifeforms
- [+] bug: attack flurry doesn't work for monk
- [+] let monsters climb even when not facing a wall?
    - [+] set their facing first.
- [+] CRASH when you die while climbing (or on a solid cell)
- [+] rings
    - [+] stench
    - [+] breath water
    - [+] detect life
    - [+] deceleration
    - [+] meditation
    - [+] reflection
    - [+] boost magic power
    - [+] education - gain xpskills more quickly
    - [+] crit protection
    - [+] greed - detect obs
- [+] ivy - grows!
- [+] ragefungus - bezerk spores
- [+] nutter - drops peanuts
- [+] dish which slightly increases maxhp (beginner level)
    - [+] stuffed mushroom. shiitake mushroom + bread
2011-12-08 02:55:14 +00:00