2010-12-02 12:17:54 +11:00
|
|
|
#include "defs.h"
|
|
|
|
|
|
|
|
cell_t *addcell(map_t *map, int x, int y);
|
2012-11-27 21:27:54 +11:00
|
|
|
habitat_t *addhabitat(enum HABITAT id, char *name, enum CELLTYPE emptycell, enum CELLTYPE solidcell, int thingchance, int obchance, int vaultchance, int maxvisrange, enum OBTYPE upstairtype, enum OBTYPE downstairtype, int stairsinrooms, enum TEMPERATURE temp);
|
- [+] 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 22:46:55 +11:00
|
|
|
void addhomeobs(lifeform_t *lf, int dolevelobs);
|
2010-12-02 12:17:54 +11:00
|
|
|
map_t *addmap(void);
|
2012-12-04 16:15:27 +11:00
|
|
|
lifeform_t *addmonster(cell_t *c, enum RACE rid, char *racename, int randomjobok, int amt, int autogen, int allowextras, int *nadded);
|
2011-05-20 06:30:58 +10:00
|
|
|
object_t *addrandomob(cell_t *c);
|
Monster AI improvements:
- [+] replace f_target with f_targetlf
- [+] wantrange. for melee fighters (default), it's 0. for
spells/archers, it's higiher.
- [+] if we are further away than bestrange, move towards.
- [+] if we are closer than bestrange, move away
- [+] AND: move to wantrange before doing spells etc
- [+] if we have a ranged attack and wantrange is default, increase
it.
- [+] in movetowards/away, cells in the wrong dir should NEVER be
acceptable!
* [+] mflag_push for monsters
http://roguelikedeveloper.blogspot.com/2007/10/unangband-monst
er-ai-part-three.html
- [+] randomly use ranged attacks when adjacent
* [+] show trail in askcoords
- [+] when throwing, pass range to askcoords
- [+] max monsters per room is depth + 1
* [+] why do humans take ages to appear?
- [+] fireball spell is slow
- [+] why can i throw objects through magic barriers?
- [+] add a bonus for mastery of cartography - magic mapping every 50
turns.
- [+] crash with monsters moving off edge of world map
- [+] make magic barriers be ON stairs, not around them.
- [+] handle DIAGONAL entry to maps
- [+] OR make this impossible.
- [+] druid should get auto nature knoeldge as they levle up (levs 5 10
15).
- [+] CRASH flagpile corrupt
- [+] happening during AI movement.
- [+] make lightning storm only hit enemies
- [+] store last known movement dir in TARGETLF and PETOF.
- [+] limit monsters per room not working?!?!
- [+] make askcoords let you show object piles with .
- [+] make askcoords say "A magical barrier (+xx other objects)"
- [+] combine getlastknownmovedir into getlastknowncell
* [+] BUG: secret doors are showing up as . again!
* [+] implement trails (footprints & scent)
* [+] aimovetowardslf(lf, wantattack)
* [+] make pets use wantdist code?
- [+] what does expert/master tracking give you?
- [+] ex: your tracks don't last as long
- [+] ms: you don't leave tracks.
- [+] change f_reducemovement from multiplier to addition
- [+] comma still showing up scents and footprints incorrectly!!!!!!!!
Initial shallow/deep water:
- [+] restrict movement
- [+] check for drowning in turneffectslf AND movelf
- [+] warn before walking onto dangerous objects.
- [+] change how walkdam works for deepwater.
- [+] don't use walkdam flags.
- [+] don't make splashes of water on top of deepwater.
* [+] deep water will drown you if
- [+] don't leave footprints in either
- [+] create steam on fire damage, but don't CONVERT to it.
- [+] f_waterbreathing
- [+] can't drown in water
- [+] extra damage from cold/elec if in deep/shallow water
Initial swimming implementation
* [+] sacred/cursed ground
- [+] vending machine
- [+] don't transfer f_rarity flag when making objects / lifeforms.
Initial work on adding a goal to the game!
2011-05-25 12:12:00 +10:00
|
|
|
int addrandomthing(cell_t *c, int obchance, int *nadded);
|
2012-05-09 07:57:49 +10:00
|
|
|
region_t *addregion(enum BRANCH rtype, region_t *parent, int outlineid, int depthmod, int createdby);
|
|
|
|
regionoutline_t *addregionoutline(enum BRANCH rtype);
|
2011-06-22 16:01:48 +10:00
|
|
|
regionthing_t *addregionthing(regionoutline_t *ro, int depth, int x, int y, enum REGIONTHING whatkind, int value, char *what);
|
2012-05-09 07:57:49 +10:00
|
|
|
branch_t *addbranch(enum BRANCH id, char *name, int pluralname, enum HABITAT defaulthabitat, int maxdepth, int stairsperlev, int deeperdir, int major, int depthmod, int addparentdepth);
|
2012-11-30 07:18:21 +11:00
|
|
|
void adjustcellglyph(cell_t *c, glyph_t *g, enum CELLADJUSTTYPE how);
|
2011-06-22 16:01:48 +10:00
|
|
|
int autodoors(map_t *map, int roomid, int minx, int miny, int maxx, int maxy, int doorpct, int dooropenchance);
|
- [+] glorana doesn't like you attacking during Glorana's Peace
- [+] make more shops let you donate
- [+] bookstore
- [+] jewellery store
- [+] rename blood hawk to hunting hawk
- [+] offering a bribe to creatures should make them move likely to
helkp you, AND reset the "auto don't help' flag
- [+] change "get lost " message to "get lost, <racename>" if your race
is different.
- [+] sayphrase() needs a new arg: lifeform_t *talkingto
- [+] colours for spell effect.
- [+] eg. "the flame dart hits xxx" should use CC_BAD
- [+] muddy room - mud should be immutable.
- [+] maybe change rage - you lose control totally and just attack
anything in sight?
- [+] do it.
- [+] don't train when enraged
- [+] don't hear sounds when enraged
- [+] RAGE effects: strength bonus, accuracy bonus, infinite
stamina, never flee,
- [+] fix bug in skill point calculation
- [+] CRASH - someone got their turn BEFORE the player!
- [+] new poisontype field - contracttext
- [+] hecta's pray effect not working.
- [+] adjust food poisioning check difficulty based on food age
- [+] check OBHP percentage of max.
- [+] >= 80% obhp means -30% difficulty check
- [+] ring of unholiness should confer dtvuln holy.
- [+] fix colour on spellclouds
- [+] fix bug with spellclouds not affecting centre cell.
- [+] if you are frozen, heat does extra damage and cold does none.
- [+] when frozen, lessen chance of melting.
- [+] reduce bite damage of snakes
- [+] balaclava should protect from gas
- [+] make some floor types (like carpet) be multicoloured
- [+] celltype->altcolour
- [+] if altcolour is not C_NONE then use it where (x + y) % 2 is
true.
- [+] don't regain stamina while training
- [+] random text in shops - sayphrase needs to cope with lf == null
- [+] done
- [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with
staves!
- [+] BUG: in vault.vlt.
- [+] "30% chance of door" really means "otherwise empty cell"
- [+] need to be able to say "else put a wall here"
- [+] so change:
- [+] c:type:what[:pct]
- [+] to this:
- [+] c:type:what[:pct][:alttype:altwhat]
- [+] vlegend_t needs
- [+] enum VAULTTHING tt2
- [+] char *what2
- [+] they default to VT_NONE, NULL
- [+] secret doors should take their fake wall type from the vault spec
- [+] vaults need f_celltypeempty/solid flags
- [+] add via: solid:xxx in vault def
- [+] recycler
- [+] donate anything
2012-07-15 15:01:58 +10:00
|
|
|
void breakwall(cell_t *c, char *why, ...);
|
2011-02-01 06:16:13 +11:00
|
|
|
int cellhaslos(cell_t *c1, cell_t *dest);
|
2012-01-12 12:28:07 +11:00
|
|
|
int cellisfixedvaultwall(cell_t *c);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
//int cellmatchescondition(cell_t *c, int wecond);
|
|
|
|
int cellmeetscondition(cell_t *c, enum CELLCONDITION cond, int arg, int value);
|
|
|
|
int cellmeets(cell_t *c, condset_t *cs);
|
2012-11-19 15:57:48 +11:00
|
|
|
int cellokforreachability(cell_t *startcell, cell_t *c, int srcroomid, int dir, int wantfilled, int *insameroom, char *why);
|
2012-12-01 16:26:23 +11:00
|
|
|
enum CELLTYPE celltypefromvault(cell_t *c);
|
2016-05-31 00:21:12 +10:00
|
|
|
void clearcellstrings(cell_t *c);
|
2011-06-09 18:58:35 +10:00
|
|
|
void clearcell(cell_t *c);
|
- [+] make "fear" be used to flee, not attack
- [+] CRASH in linkexit()
- [+] make most monsters either have sk_perception at least novice.
- [+] show success rate when studying scrolls
- [+] bug: unable to drink from fountains anymore
- [+] always use multidrop - this will free up 'D'
- [+] forest tree cluster maps are not working - only a single tree in
each cluster!
- [+] crash - ghost adding footprint to solid cell!
- [+] amberon's wrath for attacking peaceful should happen once per
ATTACK, not once per HIT
- [+] show cells outside LOS as blue or darkgrey
- [+] Don't place normal rooms next to the edge of the map either!!
- [+] getradiuscells(scatter) needs an option to include density
- [+] then make absolute zero have high density
* [+] summoning spells on pentagram will summon a demon instead
- [+] "confusion" / "baffle" mental spell - l2
- [+] add 'concussion' injury (head bash) - confusion effect.
- [+] iswoozy checks for this.
- [+] severed limbs -"frominjury" so taht you can heal them
- [+] linkexit() needs to be able to handle making THREE turns:
- [+] when looking for turnpos, remember each up/down celll
- [+] if we don't find one ("annot find a way to link up") , go
through each up/down cell and look left/right
- [+] fix is in place.
- [+] tested.
- [+] bug: doors being placed on top of rock walls!!! think this is
related to fix_deadends.
- [+] assert statement added.
* [+] bug: no up stairs generated on first dungeon map! was being
removed by clearcell() for overlapping rooms.
- [+] mass stun spell - l4. stuns all in los ?
* [+] make "stun" / massstun durations be 2-4 depending on power
- [+] "restricted" jobs/races?
- [+] don't put shopkeepers in pubs
- [+] make a per-map maxvisrange. the deeper you go, the lower this
gets (ie . it is darker, less ambientlight)
- [+] limit getvisrange(lf) by getmapmaxvisrange()
- [+] map->habitat->maxvisrange. set this during createhabitat()
- [+] reduce maxvisrange
- [+] reduce it to 6
- [+] why can i still see 1 cell?
- [+] why can i still always see my own cell?
- [+] when in pitch black for a certain amount of time, your vision
adjusts to maxrange=1
- [+] ie. getnightvisrange(lf) should be modified by
lf->eyeadjustment
- [+] reset if you can ever see a lit cell.
- [+] when this happens to the player:
- [+] msgs about this
- [+] also force light recalc
- [+] only recalc light when dirty
- [+] if we call "haslos()" for a lf and they have losdirty,
precalclos first.
- [+] vis range problems
- [+] sunglasses/footballhelm visrangereduce isn't working anymore
- [+] it's reducing maxvisrange(lf).
- [+] BUT - my maxvisrange is 5, which is still higher than the
ambient range.
- [+] need to apply reductions AFTER ambient light
- [+] NOW eyeadjustment isn't working. because cell lit is
l_temp, not l_notlit.
- [+] but if this is the case, why can't i see? anwer: because
my visrange has been reduced to 0 due to no ambient light!
- [+] so.... how do i make lightt sources override this?
- [+] maybe say: if a cell is lit, i can see it, even if it's
outside my ambient light.
- [+] falling over isn't reducing your visrange anymore
- [+] why doesn't eyeadjust make the screen update?
- [+] is regular "haslos" code ever used anymore????
- [+] now i can't see lit cells in the darkness again....fixed
- [+] after you calm something, give it xpval0
- [+] show message when calm animals fails
- [+] check all spell sc_resistmag oskillcheck difficulties
- [+] diff should be 20 + (spelllev*2) + power
- [+] l1 spell should be diff 20
- [+] l2 should be diff 24
- [+] ...
- [+] l7 should be diff 34
- [+] bleeding injuries should make armour "bloodstained" (5% chance
per turn)
- [+] msgs for "the sun is starting to set" and "the sun is starting to
rise"
- [+] make 6am, 18pm be constants
- [+] add crushed windpipe - lower Fitness, cannot sprint
* [+] CRASH when going down stairs! another overlapping room bug i
think.
- [+] cockatrices and chickens should cluck
- [+] canwill param: race:xxx;
- [+] define it
- [+] use this in "createmonster"
- [+] use this in "polymorph" when on self
- [+] then remove f_forcepoly
- [+] TEST
- [+] make playerstart vaults able to appear randomly (just don't place
the the "playerstart" object)
- [+] redo texttospellopts() to make it more friendly
- [+] give a list of what we want as args, rather than passing lots
of nulls
- [+] "pw:", &localpowervar etc
- [+] make "n_lowhp" noisetext happen at END of lf turn - NOT during
losehp.
- [+] rename turneffectslf() to startlfturn()
- [+] show hunger level as a bar in @@
- [+] warn before becoming burdened.
- [+] warn when you ARE burdened. at the end of moveob()
- [+] l6 - absolute zero (turn everyone around you to ice, freeze all
obs, turn ground to ice)
- [+] some monsters leave non-meat food behind?
- [+] cactus -> cactus juice/fruit
- [+] dreamfungus -> sleeping powerder
- [+] silver weapons (5% chance on eligible weapons)
- [+] hurt vampires
- [+] vulnerable to mat??? - then use fromob in losehp()
- [+] f_matvuln mt_xxx multiplier
- [+] add some silver weapons
- [+] f_canbediffmat mt_silver 10%
- [+] if f_canbediffmat is true, sometimes change material to
this on creation
- [+] getobname - if material is differnet, show this
- [+] dagger
- [+] sword
- [+] arrow
- [+] bolt
- [+] dart
- [+] addob should accept 'wantdiffmat'
2011-09-10 09:03:32 +10:00
|
|
|
void clearcell_exceptflags(cell_t *c, ...);
|
2012-04-04 19:59:48 +10:00
|
|
|
int delve(map_t *map, int neighbourmin, int neighbourmax, int connchance, int chancepct, int newneighbourmin, int newneighbourmax, int newconnchance, enum CELLTYPE empty, enum CELLTYPE solid);
|
|
|
|
int delve_countadjgroups(cell_t *centre, enum CELLTYPE ct);
|
|
|
|
int delve_cuberoot(int num);
|
|
|
|
int delve_digcell(cellstore_t *cs, cell_t *centre, enum CELLTYPE empty, enum CELLTYPE solid);
|
|
|
|
cellstore_t *delve_makecellstore(int maxsize);
|
|
|
|
void delve_killcellstore(cellstore_t *cs);
|
|
|
|
cell_t *delve_rndpull(cellstore_t *cs, cell_t **c);
|
|
|
|
void delve_storecell(cellstore_t *cs, cell_t *c);
|
- [+] announce when a web spell hits you
- [+] grammar: xxx "flys" into view. need getmoveverbplural()
- [+] make yumi's "well, that seems unfair" only work when killed by a
mosnter which didn't chase you up.
- [+] no unarmed skill descriptions!!
- [+] remove pain ability from stink beetle
- [+] cockroach - with just high armour rating (10)
- [+] bajeetle - lower armour but bite causes pain
- [+] yumi - only allow you to gain piety from letting a monster run
away ONCE per mosnter
- [+] new monster: petrifungus
- [+] give merciful fighting for novoice adanced combat
- [+] monsters should lose targets when eating
- [+] vault: window in wall
- [+] fix werewolf hiding code for Rattus (when medium sized)
- [+] "you hear a muffled slithering" - this shouldnt be loud enough to
go through walls!
- [+] selected Evil Adventurer. alignment ended up as NONE
- [+] have added debugging
- [+] wait for it to happen again
- [+] put in code to check at start of turn whethe r my alignment
just changed.
- [+] my alignment seems to have changed to NONE
- [+] POLYMORPH is causing this.
- [+] fixed
- [+] commando should have low level version of gunblade
- [+] electromachete - low pierce + low electric
- [+] gunblade - med slash + low explosive
- [+] boomstick - med bash + high explosive
- [+] commando should start with a few energy packs (need to add this
object)
- [+] l2 tech
- [+] operate it to recharge tech which has charges.
- [+] like a scroll of replenishment, but only for tech.
- [+] when monsters follow you up stairs, they should face you
- [+] jewelry store should buy watches
- [+] when exploding cells, remember who caused it
- [+] new arg: lifeform_t *causedby
- [+] use this when dealing damage, so that it counts as player
kill (etC)
- [+] explodeob
- [+] monks sohuld be very resistant to being scared
- [+] gauntlets (or other hard gloves) should increase unarmed damge by
1
- [+] seems almost impossible to break locks on chests by bashing....
check the calc.
- [+] fixed.
- [+] ekrub should accept sacrifices of plant matter
- [+] sebastian - absorbs physical damage to increase damage.
- [+] after first hit: +1dam, knockback
- [+] after 2nd: +2 dam
- [+] etc
- [+] vuln to non-physical (fire, magic, cold, elec, etc)
- [+] cockroach, plague rat should taint anything it walks on
- [+] fix up morale checks. 30 should be 100. therefore: multiply by 3
and a bit.
- [+] CRASH during wish for Power
- [+] bug:
- [+] You whack the pixie. The pixie turns to face you.
The pixie turns to flee from you!
Amberon's voice booms out from the heavens:
"You dare attack an innocent?" Amberon's voice booms out
from the heavens:
"You dare attack an innocent?" The pixie gestures at itself.
- [+] baba yaga's hut
- [+] shoudln't be able todrink potions
- [+] shouldn't take criticals
- [+] don't annoucne time during combat
- [+] bug after giving gold to a bandit:
- [+] $ - 0 gold dollars
- [+] lore: tech... every level says' no special effects'
- [+] bug: Strength: 24 (very weak, +1 dmg)*
- [+] bug in getstrdammod()
- [+] bug: A brown snake walks into view.
- [+] should be 'slithers'
- [+] mud shouldnt make shoes wet
- [+] refridgerator should only have meat in it
- [+] some jobs which have whip skills
- [+] scourge should always start with a whip.
- [+] fighter should be able to pick it
- [+] aligned temples sohuld be half price (or free if god is pleased?)
- [+] SM_DETECTCURSE
- [+] SM_PURCHASEITEMS
- [+] SM_BLESS
- [+] SM_MIRACLE
- [+] re-introduce monster zoos vault
- [+] bullwhip shouldn't be able to dull!
- [+] banana skin not slippery anoymore
- [+] slightly boost player's starting hp
- [+] why can vampire bat reach me to damage by boots/trousers?
- [+] check out canreachbp() in lf.c
- [+] maybe fixed
- [+] commando's starting gun should start with normal bullets, never
silver
- [+] klikirak should grant fire powers
- [+] cast pyromania when you pray
- [+] gift: immolate every 20 turns
- [+] fix trytokillobs() - this might fix some of the infinite loops
i'm getting during level creation.
- [+] klikirak should give slightly more xp for sacrifing objects
- [+] hawks should swoop more often
- [+] book colours are incorrect (ie. "red book" isn't red)
- [+] i saw "something burns!" while resting...
- [+] make hollow trees be green
- [+] blessed amnesia shouldn't do anything bad
- [+] armour stores shouldn't get hot!
- [+] earthworm should only divide from slash damage - not bash
- [+] queen ant shoudl be able to summon lots of soldiers
- [+] staircases should be on top of ash piles when draring them!!
- [+] in fact, staircases should be on top of _everything_
- [+] sanctuary potion should put out fires under you! (or anything
with walkdam)
- [+] shouldn't be able to smell by's hut
- [+] wood wall should be diggable with pickaxe
- [+] does shovel actually work? no, but it does now.
- [+] dungeon level name - if it has a swamp vault, level is just
called "the swamp"
- [+] fire damage to bread = toast
- [+] only say "the light here is a bit dim" etc if it's different form
your previous level
- [+] weapon stores shouldn't appear in baba yaha's hut!
- [+] i think i said "weapon" but it turned into weapon store.
- [+] works in a wish...... is this only a problem in a vault?
- [+] test agian.....
- [+] during summon mosnter, don't say 'the xxx starts to fly!' before
"the xxx appears"
- [+] when i read a create monster scroll, this _doesnt_ happen.
- [+] when i cast summon small animals and a brian bat appears, it
_doesnt_ happen
- [+] only seems to happen whan a mosnter uses a summon spell
- [+] maybe to do with finalisemonster() or "autogen" being set in
addmonster?
- [+] fixed now?
- [+] walking on water shouldn't extinguish a flaming weapon!
- [+] losehp_real needs a 'bodypart' argument
- [+] klikirak should like killing plants
- [+] do something to stop kilkirak worhipers from scarificeing the
entire forest!
- [+] if you attack a plant lf in the sylvan forest
- [+] nearby plants attack.
- [+] 33% chance of a treant:
- [+] same if you destroy a plant object
- [+] takedamage() needs a "fromlf" arg
- [+] or sacrifice one.
- [+] _warning_ if you attack a plant object or plant lf. (but
don't kill it)
- [+] WISDOM warnings:
- [+] if you are about to attack an OC_FLORA object in the
woods (and have felt the woods get angry once before)
- [+] if you are about to attack a RC_PLANT lf in the woods
- [+] if you are about to attack a CT_WALLTREE cell in the woods
- [+] remove base 'wizard' class...
2012-08-12 15:04:49 +10:00
|
|
|
int damagecell(cell_t *c, int amt, enum DAMTYPE damtype, lifeform_t *fromlf);
|
2011-10-14 08:37:15 +11:00
|
|
|
int doelementspread(cell_t *c);
|
2012-11-09 22:50:52 +11:00
|
|
|
int dodoorfill(cell_t *c);
|
|
|
|
void doorfill_r(cell_t *startcell, cell_t *c, int *nfilled);
|
- [+] when throwin gn aobject, warn if you have no LOF (just like
spells)
- [+] allow dodge/catch of thrown object when there is no thrower (ie.
arrow traps)
- [+] simplify monster spellcasting
- [+] don't use any mp
- [+] select power based on monster hit dice only
- [+] monsters should cast spells less often - use f_castchance,
default of 15% chance
- [+] TEST
- [+] you keep your own mpdice when polymorphing into a mosnter
- [+] fxied: throw a tranq dart, then:
- [+] The cockatrice loses consciousness. The cockatrice falls
asleep.
- [+] bug: can't operate a fridge on the ground cause it's too heavy to
lift
- [+] monsters generated on dark levels should always have seeindark 3-4
- [+] vending machines not working... fixed.
- [+] in getchoicestr:
- [+] if !showall, and if it shows a longdesc, then you hit
backspace, longdesc should be cleared.
- [+] show completion in a different colour
- [+] bug: sometimes we seem to have map->room[x], but no cells with
cell->room->id == thatid!!
- [+] stop vaults from overlapping.
- [+] taking too long to walk down levels - enforce max number of
monster free turns
- [+] inept weapon penalty should be slightly higher
- [+] bad feeling check is too easy.
- [+] skeletons should have f_noinjuries
- [+] shouldn't check for slipping on things while swimming
- [+] tweak how traps + perception skill impact search checks
- [+] bug: sometimes we have no player start position.
- [+] if the vault creation fails, restart map generation.
- [+] only give study scroll ability at high spellcasting skill
- [+] typo: ring (1 charges left)
* [+] god effects when you die:
- [+] pea soup should work in the cell in FRONT of you.
- [+] bug: ring of control seems to work when you _weild_ it!!
- [+] non-lethal weapons
- [+] sword of mercy (at <1hp, ko)
- [+] tranq dart
- [+] add sleeptypes
- [+] change all refernces to f_asleep->val[1] (now an enum)
- [+] change "stirs in its slumber" if unconscious
- [+] change all 'fallasleep' calls
- [+] attacking a ko'd enemy with merciful weapon should do nothing.
- [+] ai shouldn't target ko'd enemies
- [+] ai should stop targetting people once they're dead/ko'd
- [+] bashing damage should sometimes just knock unconscious instead of
killing?
- [+] if their hp would be >= -3, and onein(2)
- [+] different body part names? "metal frame" instead of "body"
- [+] implement F_BPNAME, v0=enum bodypart, text = name
- [+] getbodypartname() needs a lf argument.
- [+] once i add this, also make animals have "front legs" instead
of "arms", "paws" rather than "hands" etc.
- [+] fix calls to getbodypartname to pass in lf or null
- [+] cyborg mods:
- [+] can't wear most armour?
- [+] need f_noarmouron - we HAVE this bp, but can't put armour
on it.
- [+] large rust damage from water
- [+] if you have a bad feeling about an object, mark it as "[bad]"
- [+] f_knownbad
- [+] killing should anger the god of mercy
2011-09-22 12:00:16 +10:00
|
|
|
int fix_reachability(map_t *m);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
int fix_unreach_via_doors(map_t *m);
|
2011-08-25 09:48:29 +10:00
|
|
|
void floodfill(cell_t *startcell);
|
2012-04-04 19:59:48 +10:00
|
|
|
int getbranchlinks(regionthing_t **thing, int *nthings, ...);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
cell_t *getcell_cond(map_t *map, condset_t *cs );
|
2010-12-02 12:17:54 +11:00
|
|
|
cell_t *getcellat(map_t *map, int x, int y);
|
2011-11-03 09:34:15 +11:00
|
|
|
int getcellclimbdifficulty(cell_t *c);
|
2012-02-08 15:23:51 +11:00
|
|
|
int getcellclimbdifficultyavg(cell_t *c);
|
2010-12-02 12:17:54 +11:00
|
|
|
int getcelldist(cell_t *src, cell_t *dst);
|
2011-02-01 06:16:13 +11:00
|
|
|
int getcelldistorth(cell_t *src, cell_t *dst);
|
2011-04-06 17:27:55 +10:00
|
|
|
void getcellglyph(glyph_t *g, cell_t *c, lifeform_t *viewer);
|
2012-02-08 10:28:48 +11:00
|
|
|
enum CELLTYPE getcellempty(cell_t *c);
|
|
|
|
enum CELLTYPE getcellsolid(cell_t *c);
|
|
|
|
enum CELLTYPE getmapempty(map_t *m);
|
|
|
|
enum CELLTYPE getmapsolid(map_t *m);
|
2012-11-27 21:27:54 +11:00
|
|
|
int getmidtemp(enum TEMPERATURE temp);
|
2011-06-09 18:58:35 +10:00
|
|
|
enum DEPTH getcellwaterdepth(cell_t *c, lifeform_t *lf);
|
2012-04-02 05:48:13 +10:00
|
|
|
int getconnectedwatercells(cell_t *c, cell_t **retcell, int *ncells);
|
2011-09-28 04:56:58 +10:00
|
|
|
cell_t *get_closest_adjcell(cell_t *src, cell_t *dst);
|
VAULTS
* [+] vaiultlegend_t
* [+] vaultdef_t
- [+] implement addlegend()
- [+] implement addvault()
- [+] function to read in a vault from a data file
- [+] vs_noid
- [+] vs_loadingmap
- [+] vs_loadinglegend
- [+] vs_loadingflags
- [+] vs_loading
- [+] load all vaultdefs in at start
- [+] change createroom to calculate the posistion
- [+] for each room, give a %chance of haivng a vault. (based on
habitat?)
* [+] createvault(map_t, roomid?, char *vaultid)
- [+] mapdata with letters
* [+] MSG up vault errors on load.
- [+] Select job _before_ generating first map.
* [+] make addob() handle door flags:
* [+] addob() improvements
* [+] wish bug: first object goes in pack, rest on ground.
- [+] genericise getroomedge()
- [+] finish 'autodoors' (at the end, add doors if none already done)
- [+] at(x,y):type:what:pct -> f_vaultob / vaultlf / vaultcell, v0=x,
v1=y, v2=pct text=what
* [+] "what" can be:
* [+] scatter:y1:x2:y2:what:chance%:howmany
* [+] some way to make the @map bit just say 'random room at least 2x4'
- [+] make "scatter" able to take range instead of count.
- [+] make "scatter"able to take x% instead of count.
- [+] upsidedown chars no longer working with winch()
- [+] ensure no DUPE ids
- [+] make legend take percentages (optional)
- [+] make "at" take negative values...
OPTIONS
- [+] autodoors - put doors on edges like with normal dungeon rooms.
* [+] autopop - fill with obs/monsters like normal rooms
VAULT FILES
- [+] flooded room
- [+] labyrinth
- [+] vault (lots of money, locked secret doors)
- [+] monster zoos (money and monsters)
- [+] diningroom - lots of tables and chairs
- [+] circleroom
- [+] pillared room
- [+] glass pillared room
- [+] cockatrice lair (statues)
- [+] traproom - need "random trap". need OC_TRAP.
- [+] BUG: piranhas walking out of water sometimes.......
- [+] add startatt x-y rather than just a bracket. use text field.
- [+] make teleport auto move away form lfs
- [+] add minotaur
2011-06-02 18:34:44 +10:00
|
|
|
int getdoorlockdiff(int depth);
|
|
|
|
int getdoorsecretdiff(int depth);
|
2011-05-20 06:30:58 +10:00
|
|
|
flag_t *getmapcoords(map_t *m, int *x, int *y);
|
|
|
|
int getmapdifficulty(map_t *m);
|
2011-06-23 15:57:55 +10:00
|
|
|
map_t *getmapindir(map_t *src, int dir);
|
- [+] make "fear" be used to flee, not attack
- [+] CRASH in linkexit()
- [+] make most monsters either have sk_perception at least novice.
- [+] show success rate when studying scrolls
- [+] bug: unable to drink from fountains anymore
- [+] always use multidrop - this will free up 'D'
- [+] forest tree cluster maps are not working - only a single tree in
each cluster!
- [+] crash - ghost adding footprint to solid cell!
- [+] amberon's wrath for attacking peaceful should happen once per
ATTACK, not once per HIT
- [+] show cells outside LOS as blue or darkgrey
- [+] Don't place normal rooms next to the edge of the map either!!
- [+] getradiuscells(scatter) needs an option to include density
- [+] then make absolute zero have high density
* [+] summoning spells on pentagram will summon a demon instead
- [+] "confusion" / "baffle" mental spell - l2
- [+] add 'concussion' injury (head bash) - confusion effect.
- [+] iswoozy checks for this.
- [+] severed limbs -"frominjury" so taht you can heal them
- [+] linkexit() needs to be able to handle making THREE turns:
- [+] when looking for turnpos, remember each up/down celll
- [+] if we don't find one ("annot find a way to link up") , go
through each up/down cell and look left/right
- [+] fix is in place.
- [+] tested.
- [+] bug: doors being placed on top of rock walls!!! think this is
related to fix_deadends.
- [+] assert statement added.
* [+] bug: no up stairs generated on first dungeon map! was being
removed by clearcell() for overlapping rooms.
- [+] mass stun spell - l4. stuns all in los ?
* [+] make "stun" / massstun durations be 2-4 depending on power
- [+] "restricted" jobs/races?
- [+] don't put shopkeepers in pubs
- [+] make a per-map maxvisrange. the deeper you go, the lower this
gets (ie . it is darker, less ambientlight)
- [+] limit getvisrange(lf) by getmapmaxvisrange()
- [+] map->habitat->maxvisrange. set this during createhabitat()
- [+] reduce maxvisrange
- [+] reduce it to 6
- [+] why can i still see 1 cell?
- [+] why can i still always see my own cell?
- [+] when in pitch black for a certain amount of time, your vision
adjusts to maxrange=1
- [+] ie. getnightvisrange(lf) should be modified by
lf->eyeadjustment
- [+] reset if you can ever see a lit cell.
- [+] when this happens to the player:
- [+] msgs about this
- [+] also force light recalc
- [+] only recalc light when dirty
- [+] if we call "haslos()" for a lf and they have losdirty,
precalclos first.
- [+] vis range problems
- [+] sunglasses/footballhelm visrangereduce isn't working anymore
- [+] it's reducing maxvisrange(lf).
- [+] BUT - my maxvisrange is 5, which is still higher than the
ambient range.
- [+] need to apply reductions AFTER ambient light
- [+] NOW eyeadjustment isn't working. because cell lit is
l_temp, not l_notlit.
- [+] but if this is the case, why can't i see? anwer: because
my visrange has been reduced to 0 due to no ambient light!
- [+] so.... how do i make lightt sources override this?
- [+] maybe say: if a cell is lit, i can see it, even if it's
outside my ambient light.
- [+] falling over isn't reducing your visrange anymore
- [+] why doesn't eyeadjust make the screen update?
- [+] is regular "haslos" code ever used anymore????
- [+] now i can't see lit cells in the darkness again....fixed
- [+] after you calm something, give it xpval0
- [+] show message when calm animals fails
- [+] check all spell sc_resistmag oskillcheck difficulties
- [+] diff should be 20 + (spelllev*2) + power
- [+] l1 spell should be diff 20
- [+] l2 should be diff 24
- [+] ...
- [+] l7 should be diff 34
- [+] bleeding injuries should make armour "bloodstained" (5% chance
per turn)
- [+] msgs for "the sun is starting to set" and "the sun is starting to
rise"
- [+] make 6am, 18pm be constants
- [+] add crushed windpipe - lower Fitness, cannot sprint
* [+] CRASH when going down stairs! another overlapping room bug i
think.
- [+] cockatrices and chickens should cluck
- [+] canwill param: race:xxx;
- [+] define it
- [+] use this in "createmonster"
- [+] use this in "polymorph" when on self
- [+] then remove f_forcepoly
- [+] TEST
- [+] make playerstart vaults able to appear randomly (just don't place
the the "playerstart" object)
- [+] redo texttospellopts() to make it more friendly
- [+] give a list of what we want as args, rather than passing lots
of nulls
- [+] "pw:", &localpowervar etc
- [+] make "n_lowhp" noisetext happen at END of lf turn - NOT during
losehp.
- [+] rename turneffectslf() to startlfturn()
- [+] show hunger level as a bar in @@
- [+] warn before becoming burdened.
- [+] warn when you ARE burdened. at the end of moveob()
- [+] l6 - absolute zero (turn everyone around you to ice, freeze all
obs, turn ground to ice)
- [+] some monsters leave non-meat food behind?
- [+] cactus -> cactus juice/fruit
- [+] dreamfungus -> sleeping powerder
- [+] silver weapons (5% chance on eligible weapons)
- [+] hurt vampires
- [+] vulnerable to mat??? - then use fromob in losehp()
- [+] f_matvuln mt_xxx multiplier
- [+] add some silver weapons
- [+] f_canbediffmat mt_silver 10%
- [+] if f_canbediffmat is true, sometimes change material to
this on creation
- [+] getobname - if material is differnet, show this
- [+] dagger
- [+] sword
- [+] arrow
- [+] bolt
- [+] dart
- [+] addob should accept 'wantdiffmat'
2011-09-10 09:03:32 +10:00
|
|
|
int getmapmaxvisrange(map_t *m);
|
- [+] job abilities can now generally happen as often as you like,
since they're ilmited by stamina.
- [+] rename dexterity to agility
- [+] The leprechaun steals an uncursed ring of miracles from you!
The leprechaun cowers away from you!
- [+] should FLEE , not cower!
- [+] should set blessknown after reading a scroll
- [+] cursed mending scroll not working on non-damaged objects
- [+] spanner helps metal repair
- [+] needle boosts sewing ability
- [+] when resting in a tent, monstesr have very low chance of noticing
you (5%)
- [+] move display of resistances to 'effects' section.
- [+] show what a mosnter wants in effects (if you have >= beginner
knowledge)
- [+] prevent running into monsters with shift+dir
- [+] infinite loop when creating a map, constant getrandomroomcell()
calls failing
- [+] monstesr will steal objects they WANT rather than always random
- [+] monster:
- [+] leprechaun
- [+] lucky
- [+] covets gold
- [+] shillelagh ? or just a club?
- [+] blink
- [+] steal
- [+] dodge
- [+] at the moment attack doesn't seem to be draining stamina...
- [+] it is, but i'm getting it right back due to attack speed.
- [+] make stamina take longer to regen. - 1 per 3 turns rather
than 1 per 2.
- [+] stamina loss must be MORE than basic regen rate (0.3)
- [+] make stamina loss for attack depend on atatck speed!
- [+] instead of "you feel sick", say "you have contracted
weakening poison" or "you have been infected with xxx"
- [+] store stamina as a float, but getstamina() should return an
int.
- [+] sprinting - use 1.5 stamina per cell instead of 1?
- [+] modify accuracy text
- [+] fork
- [+] showing f_entertext should set didmsg
- [+] instead of printing 100% accuracy, show "Acc:0" (ie 100),
"Acc:-1" (ie -10) etc
- [+] do this in @@
- [+] do this in describeob
- [+] nocturnal monsters
- [+] base monsters initially being asleep on time and whether
mosnter is nocturnal
- [+] also during aiturn(), if they have nothing to do and it's
their sleeping time, goto sleep
- [+] add flags
- [+] flies should always move towards corpses if possible
- [+] maybe F_WANTSOB corpse, covet?
- [+] but thye can't pick it up so they'll just hover nearby?
- [+] now they can be hostile too
- [+] when we're picking a random corpse, try again if we get something
with nocorpse like a ghost
- [+] getrandomcorpserace()
- [+] lower stamina max - currently at lv1+ft:11 i have 7 stam. should
be more like 5
- [+] severed finger shoudn't count as making you bleed when you attack
- [+] in askcoords, always show cell name
- [+] monsters with no melee attacks can always cast spells while
adjacent
- [+] resting issues
- [+] having a temporary injury means oyu need to rest, so don't
say "you don't need to rest"!
- [+] also don't stop resting until all temporary injuries are
healed
- [+] show comparative weights / armour ratings
- [+] make price for npcs to join be lower
- [+] assertion failure with who->timespent == 0 when a mosnter falls
through a hole
- [+] (after I follow by falling down the pit)
- [+] make taketime() not work when not on the player's map
- [+] bug - monsters never waking up
- [+] "tailwind" spell (fast movement speed but forwards only)
- [+] now that i have Hardness, _all_ reduced damage should go towards
armour.
- [+] earthquake - pits open up around you (but not under you)
- [+] force sphere - radial blast outwards, knocks back lfs + obs +
doors etc
2011-10-04 14:24:53 +11:00
|
|
|
void getradiuscells(cell_t *centre, int radius, int dirtype, int outsideonly, enum LOFTYPE needlof, int wantcentre, cell_t **retcell, int *ncells, int scatterdensity);
|
2011-08-24 18:15:09 +10:00
|
|
|
int getroomid(cell_t *c);
|
2012-04-27 11:23:14 +10:00
|
|
|
void getroomedge(map_t *m, int roomid, int minx, int miny, int maxx, int maxy, int whichside, cell_t **retcell, int *ncells, int onlywantsolid, int includefixed);
|
2012-11-19 15:57:48 +11:00
|
|
|
cell_t *getroommidcell(map_t *m, int roomid);
|
2012-11-27 21:27:54 +11:00
|
|
|
void gettemprange(enum TEMPERATURE temp, int *min, int *max);
|
|
|
|
enum TEMPERATURE gettempbracket(int temp);
|
2012-07-06 13:54:58 +10:00
|
|
|
enum TIMEPHASE gettimephase(void);
|
2011-06-09 18:58:35 +10:00
|
|
|
object_t *gettopobject(cell_t *where, int forglyph);
|
2012-08-02 14:08:27 +10:00
|
|
|
//void calclight(map_t *map);
|
2012-04-27 11:23:14 +10:00
|
|
|
int calcroompos(map_t *map, int w, int h, int xmargin, int ymargin, int *bx, int *by, int force, int stayclose);
|
2012-01-12 12:28:07 +11:00
|
|
|
int compassdir(int orthdir);
|
2012-04-04 19:59:48 +10:00
|
|
|
int countadjcellsoftype(cell_t *cell, enum CELLTYPE id, int dirtype);
|
2012-04-27 11:23:14 +10:00
|
|
|
int countadjrooms(cell_t *cell, int dirtype);
|
2011-07-01 13:34:41 +10:00
|
|
|
int countadjcellswithflag(cell_t *cell, enum FLAG fid, int dirtype);
|
2012-01-12 12:28:07 +11:00
|
|
|
int countadjdoors(cell_t *cell);
|
2011-06-23 15:57:55 +10:00
|
|
|
int countadjwalls(cell_t *cell);
|
2011-11-08 12:19:25 +11:00
|
|
|
int countcellexits(cell_t *cell, int dirtype);
|
2011-07-01 13:34:41 +10:00
|
|
|
int countcellexitsfor(lifeform_t *lf);
|
2011-08-24 18:15:09 +10:00
|
|
|
int countmapobs(map_t *m, enum OBTYPE oid);
|
- [+] 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-05 02:54:28 +11:00
|
|
|
int countmapobswithflag(map_t *m, enum FLAG flagid);
|
|
|
|
int countmapobswithflagval(map_t *m, enum FLAG flagid, int val0, int val1, int val2, char *text);
|
|
|
|
int countstairs(map_t *m, int dir);
|
2012-04-27 11:23:14 +10:00
|
|
|
void createantnest(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2012-03-23 10:17:28 +11:00
|
|
|
void createborder(map_t *map, enum CELLTYPE solidtype);
|
2012-04-02 05:48:13 +10:00
|
|
|
void createbyhut(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2012-01-03 12:21:22 +11:00
|
|
|
void createcave(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-06-29 18:48:48 +10:00
|
|
|
void createdungeon(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-09-28 04:56:58 +10:00
|
|
|
void createfakes(map_t *map, cell_t *cell);
|
2011-06-29 18:48:48 +10:00
|
|
|
void createforest(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob, int nclearings);
|
|
|
|
void createhabitat(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
- [+] outdoor bug: at -1,-1. travel south. end up at 0,0!!!
- [+] blink should go to random place within lof, not los
- [+] sunglasses shuld reduce nightvis range, not visrange
* [+] since jolt needs adjacency, make it more powerful
- [+] use colours for spell descriptions
- [+] replace 'call wind' with 'zephyr'
* [+] add vault commonality.
- [+] add more common vaults - roundabout etc
* [+] change "addmonster" to take a string arg instrad of RACEID
- [+] pouring cursed water on blessed scroll didn't work.....
- [+] append "...god of xxx" to rc_god lifeforms
- [+] try to attack with f_pain -> INFINITE LOOP.
- [+] ARMOURPIERCE shouldn't hurt armour
- [+] ghast touchparalyze attack isn't working.
* [+] bug: when praying to gods, ones not in heaven aren't listed.
- [+] when a god apepars..."Hecta appears" x2
- [+] attacking fleeing lf should count as a backstab (if you have the
skill)
* [+] "nothing happens" during god spell effects
* [+] allow hunger to work on monsters
- [+] pressing 'a' on @Magic has weird results.
- [+] bug: got a gift form yumi during combat???? what for? healing?
initial vampire implementation
initial god implementation
- [+] they all start off in "heaven" map.
- [+] gods ahve f_piety. starts at 0
- [+] keep track of piety with each god. starts at 0 for each one.
* [+] let planeshift take you to heaven (for debugging)
* [+] everyone has 'pray' ability.
- [+] modpiety(rid, amt)
* [+] piety vals
* [+] when you pray
- [+] isangry(god) - ie is piety < 0
* [+] if you pray when god is angry, bad!
* [+] once piety gets over 200 or so, praying might give you a gift.
* [+] god_appears(lifeform_t *victim)
- [+] if >=0 (indiff / pleased), goes up to indiff over time(1 per
turn).
- [+] regain through doing actions ... in progress
- [+] lose through doing actions only if you have prayed to this god
before (angergodmaybe)
- [+] special: gods don't need LOS to cast spells.
- [+] gods planeshift away if not doing anything else.
* [+] @g to see your piety levels for each god
- [+] ?g for help on gods
- [+] IN general:
- [+] prey = oneoff effect
- [+] gift = ongoing
* [+] makeangry() vs modpiety
* [+] Yumi - fem,mercy/healing - if you die within the first few turns!
Hecta - partial
Avamon - partial
2011-08-04 04:43:05 +10:00
|
|
|
void createheaven(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2012-11-27 21:27:54 +11:00
|
|
|
void createicecave(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-06-29 18:48:48 +10:00
|
|
|
void createmap(map_t *map, int depth, region_t *region, map_t *parentmap, int exitdir, object_t *entryob);
|
2012-04-27 11:23:14 +10:00
|
|
|
void createmastervaults(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-06-29 18:48:48 +10:00
|
|
|
void createpit(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2012-11-09 22:50:52 +11:00
|
|
|
int createportallink(cell_t *c1, cell_t *c2, enum OBTYPE portalid);
|
2012-05-09 07:57:49 +10:00
|
|
|
void createbranchlink(map_t *m, cell_t *c, object_t *o, char *obname, enum BRANCH newbranch, region_t *parent);
|
- [+] when throwin gn aobject, warn if you have no LOF (just like
spells)
- [+] allow dodge/catch of thrown object when there is no thrower (ie.
arrow traps)
- [+] simplify monster spellcasting
- [+] don't use any mp
- [+] select power based on monster hit dice only
- [+] monsters should cast spells less often - use f_castchance,
default of 15% chance
- [+] TEST
- [+] you keep your own mpdice when polymorphing into a mosnter
- [+] fxied: throw a tranq dart, then:
- [+] The cockatrice loses consciousness. The cockatrice falls
asleep.
- [+] bug: can't operate a fridge on the ground cause it's too heavy to
lift
- [+] monsters generated on dark levels should always have seeindark 3-4
- [+] vending machines not working... fixed.
- [+] in getchoicestr:
- [+] if !showall, and if it shows a longdesc, then you hit
backspace, longdesc should be cleared.
- [+] show completion in a different colour
- [+] bug: sometimes we seem to have map->room[x], but no cells with
cell->room->id == thatid!!
- [+] stop vaults from overlapping.
- [+] taking too long to walk down levels - enforce max number of
monster free turns
- [+] inept weapon penalty should be slightly higher
- [+] bad feeling check is too easy.
- [+] skeletons should have f_noinjuries
- [+] shouldn't check for slipping on things while swimming
- [+] tweak how traps + perception skill impact search checks
- [+] bug: sometimes we have no player start position.
- [+] if the vault creation fails, restart map generation.
- [+] only give study scroll ability at high spellcasting skill
- [+] typo: ring (1 charges left)
* [+] god effects when you die:
- [+] pea soup should work in the cell in FRONT of you.
- [+] bug: ring of control seems to work when you _weild_ it!!
- [+] non-lethal weapons
- [+] sword of mercy (at <1hp, ko)
- [+] tranq dart
- [+] add sleeptypes
- [+] change all refernces to f_asleep->val[1] (now an enum)
- [+] change "stirs in its slumber" if unconscious
- [+] change all 'fallasleep' calls
- [+] attacking a ko'd enemy with merciful weapon should do nothing.
- [+] ai shouldn't target ko'd enemies
- [+] ai should stop targetting people once they're dead/ko'd
- [+] bashing damage should sometimes just knock unconscious instead of
killing?
- [+] if their hp would be >= -3, and onein(2)
- [+] different body part names? "metal frame" instead of "body"
- [+] implement F_BPNAME, v0=enum bodypart, text = name
- [+] getbodypartname() needs a lf argument.
- [+] once i add this, also make animals have "front legs" instead
of "arms", "paws" rather than "hands" etc.
- [+] fix calls to getbodypartname to pass in lf or null
- [+] cyborg mods:
- [+] can't wear most armour?
- [+] need f_noarmouron - we HAVE this bp, but can't put armour
on it.
- [+] large rust damage from water
- [+] if you have a bad feeling about an object, mark it as "[bad]"
- [+] f_knownbad
- [+] killing should anger the god of mercy
2011-09-22 12:00:16 +10:00
|
|
|
void createregionthing(map_t *map, regionthing_t *rt);
|
2011-10-07 07:12:13 +11:00
|
|
|
void createriver(map_t *m);
|
- [+] monster: triclops. perception. vuln to light.
- [+] flying creatures shoudl fall to the ground when unconscious
- [+] (this might kill them)
- [+] animate statue - bring statue to life
- [+] excavate - radial, obliterate walls + obs, doesn't affect lfs
- [+] test unicode wall glyph! 0x2588
- [+] use unicode for gas
- [+] change f_glyph so that v1 = symbol, instead of text = symbol
- [+] change code
- [+] change definitions (macro)
- [+] test
- [+] implement puff = UNI_SHADELIGHT
- [+] implement cloud = bolded
- [+] if good, extend to staem etc
- [+] blue background for lfs in the water
- [+] prone in water means effective lower height
- [+] glass/ice cells not shattering properly
- [+] make magic barriers be solid too
- [+] combine lockpick code in io.c and objects.c into the lockpick()
function.
- [+] first ask what to use (if required)
- [+] then ask what dir (if required)
- [+] then ask what to unlock (if reuiqred)
- [+] then do it
- [+] locked containers
- [+] picklocks prompts to try them.
- [+] in addob, use non-inheritable f_lockedchance for both doors
and chests?
- [+] v0 = chance v1 = mod per depth
- [+] doors:
- [+] base 20% chance locked
- [+] every 5 levels, add 10% chance
- [+] add this to chests / safeboxes
- [+] operate doesn't let you open them
- [+] bugs in linkexits and linkexit
- [+] linkexits: wasn't checking the correct exit cell!!!
- [+] lnkexit: wasn't blanking the startcell
GRATINGS:
- [+] flags:
- [+] addflag(lastot->flags, F_OPPOSITESTAIRS,
OT_HOLEINROOF, NA, NA, NULL);
- [+] climbable d_down NA
- [+] BUT you can't climb it if it's locked.
- [+] usestairs() - if you climb a grating and it has no maplink:
- [+] use createregionlink(map, cell, grating_object, NULL,
RG_SEWER, map->region)
- [+] make stench affect enhancedsmell creatures more.
- [+] excavate should only affect SOLID matter.
- [+] going down a drain:
- [+] "You walk down a staircase" should be "climb down a drain"
- [+] deep slime in sewers sohuldn't spread
- [+] deep slime should spread to a slime puddle if it does....
- [+] fix background glyph colour for slime
- [+] killed by drowning should really be "drowned in %s"
SEWER HABITAT
- [+] permenant stench
- [+] if you're in a sewer cell and are not nauseated, add it.
- [+] nauseated doesn't expire in sewers.
- [+] add RG_SEWER
- [+] new regiontype - RG_SEWER
- [+] map:
- [+] pick size 2 - 5
- [+] start at x=2,y=2
- [+] add square 3x3 rooms in gridlike layout (but need space for 5)
- [+] connect rooms to orthogonally adjacent ones with passages
- [+] use addexits(). no exits on outer walls.
- [+] fill all empty cells with low floor and water (but NOt the
one with the exit!)
- [+] any solid with orthogonally adjacent water changes to a
walkway
- [+] cope with different x/y room counts
- [+] cope with differnet vert/horz corridor sizes.
- [+] horz = 2
- [+] vert = 1
- [+] random room size
- [+] allow objectclasses to have f_rarity
- [+] modify getrandomobcalss
- [+] but DONT make objects inherit it!!!
- [+] this is used to override selection hased on habitat - modify
getrandomobcalss appropriately
- [+] random objects/treasure:
- [+] add these only in non-water cells??
- [+] move all obs from water clls to random land cells
- [+] frequent
- [+] vomit
- [+] soggy paper
- [+] rotted food (add f_tainted to it)
- [+] common
- [+] wep/arm
- [+] all wep/arm are shoddy in sewers
- [+] uncommon
- [+] rings (higher than normal chance - they were lost down
sinks)
- [+] occasional tech
- [+] bug: playerstart3 vault filled with walls when made randomly!
- [+] death speech text for intelligent monsters
- [+] 'aaargh!'
- [+] 'this isn't over!'
- [+] BUG: linkexits() - gettings exits in the wrong place. maybe not
taking rotation into account???
- [+] for example in playerstart_5 vault, found an 'exit' at the x:
- [+] this comes from the map flag f_roomexit, x, y
- [+] the flag may have bene added from autodoors()
- [+] have changed code so that f_roomexti uses text field to say
who added it
2011-11-29 13:25:04 +11:00
|
|
|
void createroom(map_t *map, int roomid, int x1, int y1, int x2, int y2, int forcewalls);
|
2012-04-27 11:23:14 +10:00
|
|
|
int calcposandmakeroom(map_t *map, int roomid, int overrideminw, int overrideminh, int overridemaxw, int overridemaxh, int xmargin, int ymargin, int *retx, int *rety, int *retw, int *reth, int doorpct, int dooropenchance, int forcewalls, int stayclose);
|
- [+] monster: triclops. perception. vuln to light.
- [+] flying creatures shoudl fall to the ground when unconscious
- [+] (this might kill them)
- [+] animate statue - bring statue to life
- [+] excavate - radial, obliterate walls + obs, doesn't affect lfs
- [+] test unicode wall glyph! 0x2588
- [+] use unicode for gas
- [+] change f_glyph so that v1 = symbol, instead of text = symbol
- [+] change code
- [+] change definitions (macro)
- [+] test
- [+] implement puff = UNI_SHADELIGHT
- [+] implement cloud = bolded
- [+] if good, extend to staem etc
- [+] blue background for lfs in the water
- [+] prone in water means effective lower height
- [+] glass/ice cells not shattering properly
- [+] make magic barriers be solid too
- [+] combine lockpick code in io.c and objects.c into the lockpick()
function.
- [+] first ask what to use (if required)
- [+] then ask what dir (if required)
- [+] then ask what to unlock (if reuiqred)
- [+] then do it
- [+] locked containers
- [+] picklocks prompts to try them.
- [+] in addob, use non-inheritable f_lockedchance for both doors
and chests?
- [+] v0 = chance v1 = mod per depth
- [+] doors:
- [+] base 20% chance locked
- [+] every 5 levels, add 10% chance
- [+] add this to chests / safeboxes
- [+] operate doesn't let you open them
- [+] bugs in linkexits and linkexit
- [+] linkexits: wasn't checking the correct exit cell!!!
- [+] lnkexit: wasn't blanking the startcell
GRATINGS:
- [+] flags:
- [+] addflag(lastot->flags, F_OPPOSITESTAIRS,
OT_HOLEINROOF, NA, NA, NULL);
- [+] climbable d_down NA
- [+] BUT you can't climb it if it's locked.
- [+] usestairs() - if you climb a grating and it has no maplink:
- [+] use createregionlink(map, cell, grating_object, NULL,
RG_SEWER, map->region)
- [+] make stench affect enhancedsmell creatures more.
- [+] excavate should only affect SOLID matter.
- [+] going down a drain:
- [+] "You walk down a staircase" should be "climb down a drain"
- [+] deep slime in sewers sohuldn't spread
- [+] deep slime should spread to a slime puddle if it does....
- [+] fix background glyph colour for slime
- [+] killed by drowning should really be "drowned in %s"
SEWER HABITAT
- [+] permenant stench
- [+] if you're in a sewer cell and are not nauseated, add it.
- [+] nauseated doesn't expire in sewers.
- [+] add RG_SEWER
- [+] new regiontype - RG_SEWER
- [+] map:
- [+] pick size 2 - 5
- [+] start at x=2,y=2
- [+] add square 3x3 rooms in gridlike layout (but need space for 5)
- [+] connect rooms to orthogonally adjacent ones with passages
- [+] use addexits(). no exits on outer walls.
- [+] fill all empty cells with low floor and water (but NOt the
one with the exit!)
- [+] any solid with orthogonally adjacent water changes to a
walkway
- [+] cope with different x/y room counts
- [+] cope with differnet vert/horz corridor sizes.
- [+] horz = 2
- [+] vert = 1
- [+] random room size
- [+] allow objectclasses to have f_rarity
- [+] modify getrandomobcalss
- [+] but DONT make objects inherit it!!!
- [+] this is used to override selection hased on habitat - modify
getrandomobcalss appropriately
- [+] random objects/treasure:
- [+] add these only in non-water cells??
- [+] move all obs from water clls to random land cells
- [+] frequent
- [+] vomit
- [+] soggy paper
- [+] rotted food (add f_tainted to it)
- [+] common
- [+] wep/arm
- [+] all wep/arm are shoddy in sewers
- [+] uncommon
- [+] rings (higher than normal chance - they were lost down
sinks)
- [+] occasional tech
- [+] bug: playerstart3 vault filled with walls when made randomly!
- [+] death speech text for intelligent monsters
- [+] 'aaargh!'
- [+] 'this isn't over!'
- [+] BUG: linkexits() - gettings exits in the wrong place. maybe not
taking rotation into account???
- [+] for example in playerstart_5 vault, found an 'exit' at the x:
- [+] this comes from the map flag f_roomexit, x, y
- [+] the flag may have bene added from autodoors()
- [+] have changed code so that f_roomexti uses text field to say
who added it
2011-11-29 13:25:04 +11:00
|
|
|
void createsewer(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-12-19 19:04:49 +11:00
|
|
|
void createstomach(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-11-17 11:50:33 +11:00
|
|
|
void createswamp(map_t *map, int depth, map_t *parentmap, int exitdir, object_t *entryob);
|
2011-06-29 18:48:48 +10:00
|
|
|
int createvault(map_t *map, int roomid, vault_t *v, int *retw, int *reth, int *retx, int *rety);
|
2010-12-02 12:17:54 +11:00
|
|
|
int dirtox(int dt, int dir);
|
|
|
|
int dirtoy(int dt, int dir);
|
2012-11-09 22:50:52 +11:00
|
|
|
int doorisvalid(object_t *o);
|
2012-11-19 15:57:48 +11:00
|
|
|
void dumpmap(map_t *map, int showrooms, char *reasontext);
|
2012-01-03 12:21:22 +11:00
|
|
|
void expand_cave(map_t *map, int numpasses);
|
2012-11-15 22:39:46 +11:00
|
|
|
void explodesinglecell(cell_t *c, int dam, int killwalls, object_t *o, cell_t *centre, lifeform_t *fromwho, int doknockback);
|
- [+] announce when a web spell hits you
- [+] grammar: xxx "flys" into view. need getmoveverbplural()
- [+] make yumi's "well, that seems unfair" only work when killed by a
mosnter which didn't chase you up.
- [+] no unarmed skill descriptions!!
- [+] remove pain ability from stink beetle
- [+] cockroach - with just high armour rating (10)
- [+] bajeetle - lower armour but bite causes pain
- [+] yumi - only allow you to gain piety from letting a monster run
away ONCE per mosnter
- [+] new monster: petrifungus
- [+] give merciful fighting for novoice adanced combat
- [+] monsters should lose targets when eating
- [+] vault: window in wall
- [+] fix werewolf hiding code for Rattus (when medium sized)
- [+] "you hear a muffled slithering" - this shouldnt be loud enough to
go through walls!
- [+] selected Evil Adventurer. alignment ended up as NONE
- [+] have added debugging
- [+] wait for it to happen again
- [+] put in code to check at start of turn whethe r my alignment
just changed.
- [+] my alignment seems to have changed to NONE
- [+] POLYMORPH is causing this.
- [+] fixed
- [+] commando should have low level version of gunblade
- [+] electromachete - low pierce + low electric
- [+] gunblade - med slash + low explosive
- [+] boomstick - med bash + high explosive
- [+] commando should start with a few energy packs (need to add this
object)
- [+] l2 tech
- [+] operate it to recharge tech which has charges.
- [+] like a scroll of replenishment, but only for tech.
- [+] when monsters follow you up stairs, they should face you
- [+] jewelry store should buy watches
- [+] when exploding cells, remember who caused it
- [+] new arg: lifeform_t *causedby
- [+] use this when dealing damage, so that it counts as player
kill (etC)
- [+] explodeob
- [+] monks sohuld be very resistant to being scared
- [+] gauntlets (or other hard gloves) should increase unarmed damge by
1
- [+] seems almost impossible to break locks on chests by bashing....
check the calc.
- [+] fixed.
- [+] ekrub should accept sacrifices of plant matter
- [+] sebastian - absorbs physical damage to increase damage.
- [+] after first hit: +1dam, knockback
- [+] after 2nd: +2 dam
- [+] etc
- [+] vuln to non-physical (fire, magic, cold, elec, etc)
- [+] cockroach, plague rat should taint anything it walks on
- [+] fix up morale checks. 30 should be 100. therefore: multiply by 3
and a bit.
- [+] CRASH during wish for Power
- [+] bug:
- [+] You whack the pixie. The pixie turns to face you.
The pixie turns to flee from you!
Amberon's voice booms out from the heavens:
"You dare attack an innocent?" Amberon's voice booms out
from the heavens:
"You dare attack an innocent?" The pixie gestures at itself.
- [+] baba yaga's hut
- [+] shoudln't be able todrink potions
- [+] shouldn't take criticals
- [+] don't annoucne time during combat
- [+] bug after giving gold to a bandit:
- [+] $ - 0 gold dollars
- [+] lore: tech... every level says' no special effects'
- [+] bug: Strength: 24 (very weak, +1 dmg)*
- [+] bug in getstrdammod()
- [+] bug: A brown snake walks into view.
- [+] should be 'slithers'
- [+] mud shouldnt make shoes wet
- [+] refridgerator should only have meat in it
- [+] some jobs which have whip skills
- [+] scourge should always start with a whip.
- [+] fighter should be able to pick it
- [+] aligned temples sohuld be half price (or free if god is pleased?)
- [+] SM_DETECTCURSE
- [+] SM_PURCHASEITEMS
- [+] SM_BLESS
- [+] SM_MIRACLE
- [+] re-introduce monster zoos vault
- [+] bullwhip shouldn't be able to dull!
- [+] banana skin not slippery anoymore
- [+] slightly boost player's starting hp
- [+] why can vampire bat reach me to damage by boots/trousers?
- [+] check out canreachbp() in lf.c
- [+] maybe fixed
- [+] commando's starting gun should start with normal bullets, never
silver
- [+] klikirak should grant fire powers
- [+] cast pyromania when you pray
- [+] gift: immolate every 20 turns
- [+] fix trytokillobs() - this might fix some of the infinite loops
i'm getting during level creation.
- [+] klikirak should give slightly more xp for sacrifing objects
- [+] hawks should swoop more often
- [+] book colours are incorrect (ie. "red book" isn't red)
- [+] i saw "something burns!" while resting...
- [+] make hollow trees be green
- [+] blessed amnesia shouldn't do anything bad
- [+] armour stores shouldn't get hot!
- [+] earthworm should only divide from slash damage - not bash
- [+] queen ant shoudl be able to summon lots of soldiers
- [+] staircases should be on top of ash piles when draring them!!
- [+] in fact, staircases should be on top of _everything_
- [+] sanctuary potion should put out fires under you! (or anything
with walkdam)
- [+] shouldn't be able to smell by's hut
- [+] wood wall should be diggable with pickaxe
- [+] does shovel actually work? no, but it does now.
- [+] dungeon level name - if it has a swamp vault, level is just
called "the swamp"
- [+] fire damage to bread = toast
- [+] only say "the light here is a bit dim" etc if it's different form
your previous level
- [+] weapon stores shouldn't appear in baba yaha's hut!
- [+] i think i said "weapon" but it turned into weapon store.
- [+] works in a wish...... is this only a problem in a vault?
- [+] test agian.....
- [+] during summon mosnter, don't say 'the xxx starts to fly!' before
"the xxx appears"
- [+] when i read a create monster scroll, this _doesnt_ happen.
- [+] when i cast summon small animals and a brian bat appears, it
_doesnt_ happen
- [+] only seems to happen whan a mosnter uses a summon spell
- [+] maybe to do with finalisemonster() or "autogen" being set in
addmonster?
- [+] fixed now?
- [+] walking on water shouldn't extinguish a flaming weapon!
- [+] losehp_real needs a 'bodypart' argument
- [+] klikirak should like killing plants
- [+] do something to stop kilkirak worhipers from scarificeing the
entire forest!
- [+] if you attack a plant lf in the sylvan forest
- [+] nearby plants attack.
- [+] 33% chance of a treant:
- [+] same if you destroy a plant object
- [+] takedamage() needs a "fromlf" arg
- [+] or sacrifice one.
- [+] _warning_ if you attack a plant object or plant lf. (but
don't kill it)
- [+] WISDOM warnings:
- [+] if you are about to attack an OC_FLORA object in the
woods (and have felt the woods get angry once before)
- [+] if you are about to attack a RC_PLANT lf in the woods
- [+] if you are about to attack a CT_WALLTREE cell in the woods
- [+] remove base 'wizard' class...
2012-08-12 15:04:49 +10:00
|
|
|
void explodecells(cell_t *c, int dam, int killwalls, object_t *o, int range, int dirtype, int wantannounce, lifeform_t *fromwho);
|
2012-11-15 22:39:46 +11:00
|
|
|
void explosion_knockback(cell_t *c, int radius, int dirtype, int dam, lifeform_t *fromwho);
|
2012-11-19 15:57:48 +11:00
|
|
|
int finalisemap(map_t *map, object_t *entryob, int exitdir);
|
2012-03-30 14:34:24 +11:00
|
|
|
void finalisemonster(lifeform_t *lf, lifeform_t *leader, flagpile_t *wantflags, enum BEHAVIOUR wantbehaviour, int idx);
|
2011-04-14 09:44:29 +10:00
|
|
|
celltype_t *findcelltype(enum CELLTYPE cid);
|
VAULTS
* [+] vaiultlegend_t
* [+] vaultdef_t
- [+] implement addlegend()
- [+] implement addvault()
- [+] function to read in a vault from a data file
- [+] vs_noid
- [+] vs_loadingmap
- [+] vs_loadinglegend
- [+] vs_loadingflags
- [+] vs_loading
- [+] load all vaultdefs in at start
- [+] change createroom to calculate the posistion
- [+] for each room, give a %chance of haivng a vault. (based on
habitat?)
* [+] createvault(map_t, roomid?, char *vaultid)
- [+] mapdata with letters
* [+] MSG up vault errors on load.
- [+] Select job _before_ generating first map.
* [+] make addob() handle door flags:
* [+] addob() improvements
* [+] wish bug: first object goes in pack, rest on ground.
- [+] genericise getroomedge()
- [+] finish 'autodoors' (at the end, add doors if none already done)
- [+] at(x,y):type:what:pct -> f_vaultob / vaultlf / vaultcell, v0=x,
v1=y, v2=pct text=what
* [+] "what" can be:
* [+] scatter:y1:x2:y2:what:chance%:howmany
* [+] some way to make the @map bit just say 'random room at least 2x4'
- [+] make "scatter" able to take range instead of count.
- [+] make "scatter"able to take x% instead of count.
- [+] upsidedown chars no longer working with winch()
- [+] ensure no DUPE ids
- [+] make legend take percentages (optional)
- [+] make "at" take negative values...
OPTIONS
- [+] autodoors - put doors on edges like with normal dungeon rooms.
* [+] autopop - fill with obs/monsters like normal rooms
VAULT FILES
- [+] flooded room
- [+] labyrinth
- [+] vault (lots of money, locked secret doors)
- [+] monster zoos (money and monsters)
- [+] diningroom - lots of tables and chairs
- [+] circleroom
- [+] pillared room
- [+] glass pillared room
- [+] cockatrice lair (statues)
- [+] traproom - need "random trap". need OC_TRAP.
- [+] BUG: piranhas walking out of water sometimes.......
- [+] add startatt x-y rather than just a bracket. use text field.
- [+] make teleport auto move away form lfs
- [+] add minotaur
2011-06-02 18:34:44 +10:00
|
|
|
celltype_t *findcelltypebyname(char *name);
|
2011-06-22 16:01:48 +10:00
|
|
|
habitat_t *findhabitat(enum HABITAT id);
|
|
|
|
habitat_t *findhabitatbyname(char *name);
|
2010-12-02 12:17:54 +11:00
|
|
|
map_t *findmap(int mid);
|
2011-02-01 06:16:13 +11:00
|
|
|
map_t *findmapofdepth(int depth);
|
- [+] 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-05 02:54:28 +11:00
|
|
|
object_t *findmapobwithflag(map_t *m, enum FLAG flagid);
|
|
|
|
object_t *findmapobwithflagval(map_t *m, enum FLAG flagid, int val0, int val1, int val2, char *text);
|
2011-05-20 06:30:58 +10:00
|
|
|
cell_t *findmapentrypoint(map_t *m, int side, lifeform_t *lf);
|
2011-04-08 13:18:54 +10:00
|
|
|
object_t *findobidinmap(map_t *m, long id);
|
2011-07-01 13:34:41 +10:00
|
|
|
cell_t *findobinmap(map_t *m, enum OBTYPE oid);
|
* [+] make vending machines use this container code instead.
- [+] don't say "you see a few things" if one of them is footsteps
* [+] IFMONSTER code failing....because flags are now SORTED!!!
- [+] tumble - askcoords is letting us pick a cell we don't have lof to.
* [+] assign a name to lfs once you hire them
* [+] coloured msgtext
- [+] make min dam reduction from AR be AR/5.
- [+] safebox
- [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with
no getsweaker (val1)
* [+] make fire / ice damage mor elike netheck
- [+] towns should have gates on EVERY side
- [+] forest cells outside town gates need to be CLEARED. (maybe turn
to dirt)
- [+] fix up knock targetting to include magical barriers
- [+] say "open a bag?" not "operate a bag?"
* [+] implement immunetodisease
- [+] sort known skills in @s.
- [+] better damage bonus when attacking someone who is asleep
- [+] practive firearms/throwing
* [+] need objecttype->size
* [+] containers
* [+] change guns so you have to reload them. ("operate")
- [+] crash when loading map with water
- [+] SAVE OBJECT CONTENTSk
- [+] monsters with jobs aren't getting start items
- [+] shopkeeper has shotgun
- [+] bug: monster keeps swapping between shotgun and flail
- [+] when hiring, remember failure.
* [+] Inn
- [+] bug: pets fighting!!! then they all turn on you. never make
allies get angry unless the attacker is the player
* [+] hiring npcs
- [+] chat to pet: "stay close" or "keep your distance"
- [+] new 'furniture' obclass
- [+] allow for 'randomshop' regiontype
* [+] add enchantment school
- [+] cast a scroll of mending on itself. CRASH.
* [+] lessengravity should make you jump better and get knocked back
further
- [+] boostgrav/lessengrav cancel out each other.
* [+] CRASH when you fall down a hole and die.
- [+] problem: master gravitation doesn't let us cast levitat.
getspellschoolknown() should return the HIGHEST known skill, not
the first.
* [+] bug: dregion is null?!??!
* [+] dig a pit, if you cleared out land below, you just stay down
there.
- [+] potion of leveitation
- [+] warning msg when levitate is about to expire
* [+] if you fall upwards to the surface...
* [+] if you are ever on the surface while levitating....
- [+] BUG: cna't go up stairs to surface anymore!!!!!
- [+] get hungry LOTS more quickly when you start sprinting
* [+] monk slow metabolism psionic pell.
- [+] fix buf with lore giving LESS accuracy instead of more.
- [+] food shop
- [+] wand of digging not identified if you dig upwards
* [+] when you make ah ole in the roof, objects above should fall
through right away
* [+] all towns should have:
- [+] give monks more psionics spells.
- [+] sk_throwing skill
- [+] make calm animals use spellpower
* [+] add wisdom
* [+] need to save region data along with maps
* [+] COMBINE armour evasion and accuracy penalty!!!
* [+] make armour reduce accuracy as well (unless you have 'armour'
skill)
- [+] landmine trap
* [+] make friendly monsters of same raceclass swap ammo
- [+] rename 'pull' to 'suck' to avoid confusion with pull metal
* [+] food to fix blindness
- [+] potion of coffee
* [+] genericise statbrackets
* [+] tumble ability
* [+] simplify spell power
* [+] shopkeeprs should be allowed to pursue targets outside of the
shop.
- [+] give shopkeepers a shotgun
* [+] make F_RNDHOSTILE be able to ahve a random chance.
* [+] if you randomly generate food in a shop, still give it a price.
- [+] if peaceful humanoid walks into you, "sorry!"
- [+] sayphrase(lf, SP_SORRY, vol)
- [+] only let you recruit jobs with j_recruitable
- [+] CRASH - summon "monk"
- [+] dogs,
- [+] chickens,
- [+] drunks,
* [+] village objects
- [+] change armourrating AGAIN. instead of a percentage, make it a
number.
- [+] rename inn to "pub", since you can't sleep there.
* [+] random speech code
* [+] genericise sayphrase text based on lf's job
* [+] monks - add rest of abliities
- [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
|
|
|
regionoutline_t *findoutline(int id);
|
2012-08-02 23:16:24 +10:00
|
|
|
regionoutline_t *findoutlineforbranch(enum BRANCH bid);
|
2012-05-09 07:57:49 +10:00
|
|
|
branch_t *findrandombranchwithname(char *name);
|
2011-06-22 16:01:48 +10:00
|
|
|
region_t *findregion(int regionid);
|
2012-05-09 07:57:49 +10:00
|
|
|
region_t *findregionbytype(enum BRANCH rtid);
|
|
|
|
regionthing_t *findbranchlink(enum BRANCH rtid);
|
2011-06-22 16:01:48 +10:00
|
|
|
map_t *findregionmap(int regionid, int depth);
|
- [+] 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-05 02:54:28 +11:00
|
|
|
regionthing_t *findregionthing(int id, region_t **retregion);
|
2012-05-09 07:57:49 +10:00
|
|
|
branch_t *findbranch(enum BRANCH rtype);
|
|
|
|
branch_t *findbranchbyname(char *name);
|
2011-08-24 18:15:09 +10:00
|
|
|
room_t *findroom(map_t *m, int roomid);
|
2011-06-22 16:01:48 +10:00
|
|
|
map_t *findsurfaceexitmap(map_t *m);
|
2010-12-07 18:34:26 +11:00
|
|
|
void forgetcells(map_t *map, int amt);
|
2010-12-02 12:17:54 +11:00
|
|
|
cell_t *getcellindir(cell_t *cell, int dir);
|
2012-11-27 21:27:54 +11:00
|
|
|
enum TEMPERATURE getcelltemp(cell_t *c, int *actualtemp);
|
2011-08-24 18:15:09 +10:00
|
|
|
vault_t *getcellvault(cell_t *c);
|
* [+] make vending machines use this container code instead.
- [+] don't say "you see a few things" if one of them is footsteps
* [+] IFMONSTER code failing....because flags are now SORTED!!!
- [+] tumble - askcoords is letting us pick a cell we don't have lof to.
* [+] assign a name to lfs once you hire them
* [+] coloured msgtext
- [+] make min dam reduction from AR be AR/5.
- [+] safebox
- [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with
no getsweaker (val1)
* [+] make fire / ice damage mor elike netheck
- [+] towns should have gates on EVERY side
- [+] forest cells outside town gates need to be CLEARED. (maybe turn
to dirt)
- [+] fix up knock targetting to include magical barriers
- [+] say "open a bag?" not "operate a bag?"
* [+] implement immunetodisease
- [+] sort known skills in @s.
- [+] better damage bonus when attacking someone who is asleep
- [+] practive firearms/throwing
* [+] need objecttype->size
* [+] containers
* [+] change guns so you have to reload them. ("operate")
- [+] crash when loading map with water
- [+] SAVE OBJECT CONTENTSk
- [+] monsters with jobs aren't getting start items
- [+] shopkeeper has shotgun
- [+] bug: monster keeps swapping between shotgun and flail
- [+] when hiring, remember failure.
* [+] Inn
- [+] bug: pets fighting!!! then they all turn on you. never make
allies get angry unless the attacker is the player
* [+] hiring npcs
- [+] chat to pet: "stay close" or "keep your distance"
- [+] new 'furniture' obclass
- [+] allow for 'randomshop' regiontype
* [+] add enchantment school
- [+] cast a scroll of mending on itself. CRASH.
* [+] lessengravity should make you jump better and get knocked back
further
- [+] boostgrav/lessengrav cancel out each other.
* [+] CRASH when you fall down a hole and die.
- [+] problem: master gravitation doesn't let us cast levitat.
getspellschoolknown() should return the HIGHEST known skill, not
the first.
* [+] bug: dregion is null?!??!
* [+] dig a pit, if you cleared out land below, you just stay down
there.
- [+] potion of leveitation
- [+] warning msg when levitate is about to expire
* [+] if you fall upwards to the surface...
* [+] if you are ever on the surface while levitating....
- [+] BUG: cna't go up stairs to surface anymore!!!!!
- [+] get hungry LOTS more quickly when you start sprinting
* [+] monk slow metabolism psionic pell.
- [+] fix buf with lore giving LESS accuracy instead of more.
- [+] food shop
- [+] wand of digging not identified if you dig upwards
* [+] when you make ah ole in the roof, objects above should fall
through right away
* [+] all towns should have:
- [+] give monks more psionics spells.
- [+] sk_throwing skill
- [+] make calm animals use spellpower
* [+] add wisdom
* [+] need to save region data along with maps
* [+] COMBINE armour evasion and accuracy penalty!!!
* [+] make armour reduce accuracy as well (unless you have 'armour'
skill)
- [+] landmine trap
* [+] make friendly monsters of same raceclass swap ammo
- [+] rename 'pull' to 'suck' to avoid confusion with pull metal
* [+] food to fix blindness
- [+] potion of coffee
* [+] genericise statbrackets
* [+] tumble ability
* [+] simplify spell power
* [+] shopkeeprs should be allowed to pursue targets outside of the
shop.
- [+] give shopkeepers a shotgun
* [+] make F_RNDHOSTILE be able to ahve a random chance.
* [+] if you randomly generate food in a shop, still give it a price.
- [+] if peaceful humanoid walks into you, "sorry!"
- [+] sayphrase(lf, SP_SORRY, vol)
- [+] only let you recruit jobs with j_recruitable
- [+] CRASH - summon "monk"
- [+] dogs,
- [+] chickens,
- [+] drunks,
* [+] village objects
- [+] change armourrating AGAIN. instead of a percentage, make it a
number.
- [+] rename inn to "pub", since you can't sleep there.
* [+] random speech code
* [+] genericise sayphrase text based on lf's job
* [+] monks - add rest of abliities
- [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
|
|
|
cell_t *getclosestroomcell(lifeform_t *lf, int roomid);
|
2010-12-02 12:17:54 +11:00
|
|
|
int getnewdigdir(cell_t *cell, int lastdir, int turnpct, int *moved);
|
|
|
|
int getobchance(int habitat);
|
2011-05-16 12:03:25 +10:00
|
|
|
int getthingchance(int habitat);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
cell_t *getrandomadjcell(cell_t *c, condset_t *cs, int allowexpand);
|
|
|
|
cell_t *real_getrandomadjcell(cell_t *c, condset_t *cs, int allowexpand, enum LOFTYPE needlof, cell_t *dontwantcell, lifeform_t *preferlos);
|
2010-12-02 12:17:54 +11:00
|
|
|
cell_t *getrandomcell(map_t *map);
|
2016-06-21 21:19:41 +10:00
|
|
|
cell_t *getrandomcell_forteleport(map_t *map, lifeform_t *lf);
|
2011-06-05 19:21:21 +10:00
|
|
|
cell_t *getrandomcelloftype(map_t *map, enum CELLTYPE id);
|
2010-12-02 12:17:54 +11:00
|
|
|
int getrandomdir(int dirtype);
|
2011-09-15 08:42:54 +10:00
|
|
|
int getrandomdirexcept(int dirtype, int exception);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
//cell_t *getrandomroomcell(map_t *map, int roomid, int wantempty);
|
2011-04-14 09:44:29 +10:00
|
|
|
void getroomcells(map_t *m, int roomid, cell_t **retcell, int *ncells);
|
2011-03-04 12:22:36 +11:00
|
|
|
int getslipperyness(cell_t *c, object_t **slipob);
|
2011-10-17 09:45:36 +11:00
|
|
|
cell_t *getstairdestination(object_t *o, int *madenewmap);
|
- [+] walking on glowing moss sohuld damage it.
- [+] make dagger stronger than combat knife (but combat knife is
faster)
- [+] optimise makefile.
- [+] swapplaces message not appearing.
- [+] fix exploit for dizziness with 'A'
- [+] every time we ask for a direction, use askdirection(prompt).
make this do dizziness check.
- [+] no shieldblocking or dodging if you have no stamina.
- [+] object rarity bugs
- [+] i'm finding way too many books! might be fixed now... ?
- [+] never finding wands
- [+] added debugging to see if there is a problem with wands....
- [+] adjust footstep sound based on material
- [+] carpet = soft
- [+] stone = normal
- [+] tiles = loud
- [+] in @e, "you ar etipsy" should also talk about damage resistance.
- [+] don't show starting abilities if you are a diety.
- [+] don't say 'xx walks out of view' if they didn't move on purpose
- [+] CRASH - summon weapon then drop the energy blade.
* [+] CRASH when fumbling attack using energy blade.
- [+] fighter with wisdom 31. novice perception skill. noticied
teleport trap right in front of me. chances?
- [+] maybe make it you can never detect anything further away than
your perception skill.
- [+] fix bug in geteffecttime()
- [+] announce starting spells at beginning of game
- [+] in skill help, highlight your current level. Maybe: "At Novice
level>>> Unskilled weapons etc..."
- [+] inept level lore shouldn't show "Adept Stealth" as a strength
- [+] when you / then move over a cell with footprints short "Dirt
(with human footprints)"
- [+] or "Dirt (with xxx foorprints leading east)
- [+] typo in killer text - an vs a
- [+] get over here! should give you enough time to attack ?
- [+] felix prayer should remove impassable objects.
- [+] robots shoudl have big penalties to getting up checks. slip,
fall, etc.
- [+] fix bug when falling off a fence.
- [+] BUG: no los when i climb on top of a wooden fence. why?
- [+] F_BLOCKSVIEW needs new option: v1 = true means dont block
if you are standing on it
* [+] engineering / construction skill - replaces 'traps'
- [+] fixed bug where you couldn't rest when you pet was visible.
- [+] bug: aigetlastknownpos populating lastx & lasty with different
info from the the cell returned.
- [+] this has happening when following the direction of a scent.
- [+] remove display of "xx throws xxx towards you" if you can't see
the source and something is in the way.
- [+] druid should alway sbe able to swap with plants.
- [+] peaceful check should do this
- [+] try agian...
* [+] problem- create water can be used instead of soften earth ???
- [+] detect life should help with checking stairs.
- [+] pentagrams should heal the undead.
- [+] ekrub - don't et you sacrifice the flower that appears.
* [+] when doing check for piety on eating animals
- [+] don't auto give druid short blade skill due to sickle
- [+] soften earth on boulder... turn it to mud
- [+] adept psychology - receive change for gems.
- [+] BUG: announceflagloss is never happening.
- [+] new nature spell - absorb wood
- [+] clank - robot, chomp to steal health, self destruct
- [+] new tech
- [+] l0
- [+] chewing gum (jam doors with it) - this should be food
though.
- [+] plants shoudl HELP druid from level 4 onwards
- [+] clean up skill ability code
- [+] automate skill descriptions based on skillwills "you gain the
'xxx' ability"
- [+] auto-learn spells from initial spellbook, rather than having to
read it manually
- [+] finding rings of unholiness everywhere.
- [+] because it's the only rare ring!
- [+] fixed by making ALL rings be uncommon
- [+] first time you slip on something, suggest using 's'
- [+] sewing / metalwork: get resize and enhance earlier.
- [+] bug with engineering seeing through one wall!s
- [+] rogue/knifedancer / blademaster - throwing, extra skill with
small blades. starts with extra knives.
- [+] replace all SUBJOBS with plain regular JOBs
- [+] fix "needobforstaff" for wizards!
- [+] sewer should have mossy rock floor. slippery.
- [+] new specialist classes:
- [+] rogue/assassin (no stealing, no traps, lockpicking, better
stealth+backstab, poison knives)
- [+] minor healing spell is too powerful. should do 5-10hp max.
- [+] reveal hidden is not powerful enough for l4. move to l2.
- [+] reduce effects of stench as TR gets higher
- [+] lumara should accept sacrifice of anything magic.
- [+] oil lamp not making my viison longer! (on dlev11)
- [+] just describe f_produceslight in io.c
- [+] with no evasion skill, agi does way less for EV.
- [+] fungus clouds should be in 1 radius, non orthogonal
- [+] try putting monster zoo back in?
- [+] STILL bugs detecting trapped doors ages away!
- [+] detected one 8 away, perception novice!
- [+] when a monster necromancer is made, i'm prompted for spell
school!!!
- [+] new mushroom: greycap. looks like a miniature snowy mountain.
grants cold resistance
- [+] shop opening hours
- [+] F_OPENHOURS
- [+] v0 = start (inclusive)
- [+] v1 = end (inclusive)
- [+] v2 = sayphrase
- [+] SP_CLOSEDTILMORN (come back in the morning)
- [+] SP_CLOSEDTILNIGHT (come back tonight)
- [+] SP_CLOSEDTILHOUR (come back after x oclock!)
- [+] make shops only be open during the day.
- [+] make some temples only be open at night (eg. hecta)
2012-10-15 13:15:36 +11:00
|
|
|
object_t *hasdoor(cell_t *c);
|
2011-02-16 05:21:33 +11:00
|
|
|
object_t *hasenterableobject(cell_t *c);
|
2011-06-09 18:58:35 +10:00
|
|
|
object_t *hascloseddoor(cell_t *c);
|
2012-02-05 10:26:16 +11:00
|
|
|
int hascrushableob(cell_t *c, lifeform_t *lf);
|
2011-02-01 06:16:13 +11:00
|
|
|
lifeform_t *haslf(cell_t *c);
|
* [+] need to set "needredraw" every time we exit:
- [+] make eating take longer - depends on lf size and food sizes
* [+] stop eating if something attacks you!
- [+] change spell code to cope with caster = NULL!!
- [+] why are rooms never more than 2 high
* [+] traps
* [+] eating bug again
* [+] disarm trap skill?
- [+] lots of needredraw bugs
- [+] bug with cursor jumping around lots
- [+] draw darkened visible cells in blue
* [+] shadow cloak
- [+] tree shouldn't prevent resting!
- [+] make plants not attack druids
* [+] cooking
- [+] stop eating if your eating object is no longer with you
* [+] FLAG CORRUPTION BUG
- [+] pet walking back and forth on rotted objects
- [+] purified food shouldn't decay anymore.
- [+] plants shouldn't sleep
- [+] RESTING on statbar not being cleared. the add of f_interrupted
was clearing statdirty before f_asleep got removed in killflag().
- [+] AI: don't eat if in battle
- [+] reduce projectile damage
- [+] show raceclass in statbars
- [+] smoke should make you cough.
- [+] when going up levle, only prompt for spells you can cast?? (don't
show "NOTCASTABLE")
- [+] Your young hawk dies. The stirge releases something!
- [+] sleeping thigns shoudn't follow you up/down stairs.
- [+] when throw'ng an object, don't let it stack (otherwise we might
destroy too much)
- [+] don't draw "c - " for nopickup objects.
- [+] saving throw for traps if you know about it.
- [+] druid - get xp for calming animals
- [+] rogue- get xp for picking locks, disarming traps.
- [+] metal should be immune to most damage types
* [+] make heavy blow need HEAVY weapon, not bashing.
- [+] can't rest/train while levitating!
- [+] gas traps only go off once.
- [+] bug: The goblin throws a boulder at you. A boulder misses you.
- [+] don't give short sword skill to wizard.
- [+] hearing range based on listen skill
* [+] coldness disease:
- [+] CRASH when swapping places
- [+] bug: i can teleport into an impassable object!
- [+] add: "really target (your ally)?"
- [+] give wizards school-based skill instead of manaspike + wildmagic
- [+] LevUp still not being cleared!!!
* [+] why is air wizard being prompted for call lightning at level 2???
* [+] summon weapon (summoning)
- [+] hold portal (mod)
- [+] reveal hidden
- [+] stench (death)
- [+] frostbite (minor but direct cold damage. 1dpower. maxpower 3)
- [+] grease (modific) creates oil in a circle
- [+] fear (death)
- [+] seeinvis (div)
- [+] locate obejct (div) tells you where a seen objcet is.
- [+] swap places (transl) "twiddle"
- [+] fire brand (fire, melee attaks deal fire damage)
- [+] iceedge
- [+] lore (div, temporary knowledge from a particular school?)
- [+] icicle (cold, deals cold dam and knocks enemies away)
* [+] chill (ice, 1d3 damage per exposed body part)
- [+] hail storm (ice, big damage in area)
- [+] wall of ice (creates icy wall, hp based on power)
2011-05-12 11:49:35 +10:00
|
|
|
int hasknownobject(cell_t *c);
|
2011-02-01 06:16:13 +11:00
|
|
|
int hasobject(cell_t *c);
|
- [+] announce when a web spell hits you
- [+] grammar: xxx "flys" into view. need getmoveverbplural()
- [+] make yumi's "well, that seems unfair" only work when killed by a
mosnter which didn't chase you up.
- [+] no unarmed skill descriptions!!
- [+] remove pain ability from stink beetle
- [+] cockroach - with just high armour rating (10)
- [+] bajeetle - lower armour but bite causes pain
- [+] yumi - only allow you to gain piety from letting a monster run
away ONCE per mosnter
- [+] new monster: petrifungus
- [+] give merciful fighting for novoice adanced combat
- [+] monsters should lose targets when eating
- [+] vault: window in wall
- [+] fix werewolf hiding code for Rattus (when medium sized)
- [+] "you hear a muffled slithering" - this shouldnt be loud enough to
go through walls!
- [+] selected Evil Adventurer. alignment ended up as NONE
- [+] have added debugging
- [+] wait for it to happen again
- [+] put in code to check at start of turn whethe r my alignment
just changed.
- [+] my alignment seems to have changed to NONE
- [+] POLYMORPH is causing this.
- [+] fixed
- [+] commando should have low level version of gunblade
- [+] electromachete - low pierce + low electric
- [+] gunblade - med slash + low explosive
- [+] boomstick - med bash + high explosive
- [+] commando should start with a few energy packs (need to add this
object)
- [+] l2 tech
- [+] operate it to recharge tech which has charges.
- [+] like a scroll of replenishment, but only for tech.
- [+] when monsters follow you up stairs, they should face you
- [+] jewelry store should buy watches
- [+] when exploding cells, remember who caused it
- [+] new arg: lifeform_t *causedby
- [+] use this when dealing damage, so that it counts as player
kill (etC)
- [+] explodeob
- [+] monks sohuld be very resistant to being scared
- [+] gauntlets (or other hard gloves) should increase unarmed damge by
1
- [+] seems almost impossible to break locks on chests by bashing....
check the calc.
- [+] fixed.
- [+] ekrub should accept sacrifices of plant matter
- [+] sebastian - absorbs physical damage to increase damage.
- [+] after first hit: +1dam, knockback
- [+] after 2nd: +2 dam
- [+] etc
- [+] vuln to non-physical (fire, magic, cold, elec, etc)
- [+] cockroach, plague rat should taint anything it walks on
- [+] fix up morale checks. 30 should be 100. therefore: multiply by 3
and a bit.
- [+] CRASH during wish for Power
- [+] bug:
- [+] You whack the pixie. The pixie turns to face you.
The pixie turns to flee from you!
Amberon's voice booms out from the heavens:
"You dare attack an innocent?" Amberon's voice booms out
from the heavens:
"You dare attack an innocent?" The pixie gestures at itself.
- [+] baba yaga's hut
- [+] shoudln't be able todrink potions
- [+] shouldn't take criticals
- [+] don't annoucne time during combat
- [+] bug after giving gold to a bandit:
- [+] $ - 0 gold dollars
- [+] lore: tech... every level says' no special effects'
- [+] bug: Strength: 24 (very weak, +1 dmg)*
- [+] bug in getstrdammod()
- [+] bug: A brown snake walks into view.
- [+] should be 'slithers'
- [+] mud shouldnt make shoes wet
- [+] refridgerator should only have meat in it
- [+] some jobs which have whip skills
- [+] scourge should always start with a whip.
- [+] fighter should be able to pick it
- [+] aligned temples sohuld be half price (or free if god is pleased?)
- [+] SM_DETECTCURSE
- [+] SM_PURCHASEITEMS
- [+] SM_BLESS
- [+] SM_MIRACLE
- [+] re-introduce monster zoos vault
- [+] bullwhip shouldn't be able to dull!
- [+] banana skin not slippery anoymore
- [+] slightly boost player's starting hp
- [+] why can vampire bat reach me to damage by boots/trousers?
- [+] check out canreachbp() in lf.c
- [+] maybe fixed
- [+] commando's starting gun should start with normal bullets, never
silver
- [+] klikirak should grant fire powers
- [+] cast pyromania when you pray
- [+] gift: immolate every 20 turns
- [+] fix trytokillobs() - this might fix some of the infinite loops
i'm getting during level creation.
- [+] klikirak should give slightly more xp for sacrifing objects
- [+] hawks should swoop more often
- [+] book colours are incorrect (ie. "red book" isn't red)
- [+] i saw "something burns!" while resting...
- [+] make hollow trees be green
- [+] blessed amnesia shouldn't do anything bad
- [+] armour stores shouldn't get hot!
- [+] earthworm should only divide from slash damage - not bash
- [+] queen ant shoudl be able to summon lots of soldiers
- [+] staircases should be on top of ash piles when draring them!!
- [+] in fact, staircases should be on top of _everything_
- [+] sanctuary potion should put out fires under you! (or anything
with walkdam)
- [+] shouldn't be able to smell by's hut
- [+] wood wall should be diggable with pickaxe
- [+] does shovel actually work? no, but it does now.
- [+] dungeon level name - if it has a swamp vault, level is just
called "the swamp"
- [+] fire damage to bread = toast
- [+] only say "the light here is a bit dim" etc if it's different form
your previous level
- [+] weapon stores shouldn't appear in baba yaha's hut!
- [+] i think i said "weapon" but it turned into weapon store.
- [+] works in a wish...... is this only a problem in a vault?
- [+] test agian.....
- [+] during summon mosnter, don't say 'the xxx starts to fly!' before
"the xxx appears"
- [+] when i read a create monster scroll, this _doesnt_ happen.
- [+] when i cast summon small animals and a brian bat appears, it
_doesnt_ happen
- [+] only seems to happen whan a mosnter uses a summon spell
- [+] maybe to do with finalisemonster() or "autogen" being set in
addmonster?
- [+] fixed now?
- [+] walking on water shouldn't extinguish a flaming weapon!
- [+] losehp_real needs a 'bodypart' argument
- [+] klikirak should like killing plants
- [+] do something to stop kilkirak worhipers from scarificeing the
entire forest!
- [+] if you attack a plant lf in the sylvan forest
- [+] nearby plants attack.
- [+] 33% chance of a treant:
- [+] same if you destroy a plant object
- [+] takedamage() needs a "fromlf" arg
- [+] or sacrifice one.
- [+] _warning_ if you attack a plant object or plant lf. (but
don't kill it)
- [+] WISDOM warnings:
- [+] if you are about to attack an OC_FLORA object in the
woods (and have felt the woods get angry once before)
- [+] if you are about to attack a RC_PLANT lf in the woods
- [+] if you are about to attack a CT_WALLTREE cell in the woods
- [+] remove base 'wizard' class...
2012-08-12 15:04:49 +10:00
|
|
|
vault_t *maphasvault(map_t *m, char *id);
|
2016-05-31 00:21:12 +10:00
|
|
|
object_t *hastrailof(obpile_t *op, lifeform_t *lf, int oid, flag_t **tflag, lifeform_t *viewer);
|
2011-06-22 16:01:48 +10:00
|
|
|
void initmap(void);
|
2012-02-02 10:02:18 +11:00
|
|
|
void initmaplayout(void);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isadjacent(cell_t *src, cell_t *dst);
|
2011-04-11 15:05:45 +10:00
|
|
|
int isdark(cell_t *c);
|
2012-11-23 15:54:27 +11:00
|
|
|
int isdiggable(cell_t *c, enum OBTYPE withwhat);
|
2011-02-01 06:16:13 +11:00
|
|
|
int isdoor(object_t *o, int *isopen);
|
|
|
|
int isempty(cell_t *c);
|
2011-04-01 10:54:44 +11:00
|
|
|
int isinscanrange(cell_t *c, void **thing, char *desc, glyph_t *glyph);
|
2011-02-01 06:16:13 +11:00
|
|
|
int islit(cell_t *c);
|
2010-12-02 12:17:54 +11:00
|
|
|
int isloopdirok(cell_t *cell, int dir);
|
|
|
|
int isnewcellok(cell_t *cell, char *err);
|
2012-07-06 13:54:58 +10:00
|
|
|
int isdaytime(void);
|
2011-08-06 07:34:35 +10:00
|
|
|
int isnighttime(void);
|
2010-12-02 12:17:54 +11:00
|
|
|
int isonmap(map_t *map, int x, int y);
|
2011-05-16 12:03:25 +10:00
|
|
|
int isoutdoors(map_t *m);
|
2011-06-29 18:48:48 +10:00
|
|
|
int isroom(cell_t *c);
|
2012-04-04 19:59:48 +10:00
|
|
|
int issolid(cell_t *c);
|
2010-12-02 12:17:54 +11:00
|
|
|
int iswallindir(cell_t *cell, int dir);
|
2016-07-23 11:33:18 +10:00
|
|
|
void killbranch(branch_t *b);
|
2016-05-31 00:21:12 +10:00
|
|
|
void killcell(cell_t **c);
|
2011-12-08 13:55:14 +11:00
|
|
|
void killcelltype(celltype_t *ct);
|
2011-09-28 04:56:58 +10:00
|
|
|
void killfakes(map_t *map, cell_t *cell);
|
2016-07-23 11:33:18 +10:00
|
|
|
void killhabitat(habitat_t *h);
|
2011-12-08 13:55:14 +11:00
|
|
|
void killmap(map_t *m);
|
2012-02-07 13:50:17 +11:00
|
|
|
void killregion(region_t *r);
|
2011-08-25 09:48:29 +10:00
|
|
|
int linkexit(cell_t *c, int wantfilled, int *ncellsadded);
|
2011-08-24 18:15:09 +10:00
|
|
|
int linkexits(map_t *m, int roomid);
|
* [+] make vending machines use this container code instead.
- [+] don't say "you see a few things" if one of them is footsteps
* [+] IFMONSTER code failing....because flags are now SORTED!!!
- [+] tumble - askcoords is letting us pick a cell we don't have lof to.
* [+] assign a name to lfs once you hire them
* [+] coloured msgtext
- [+] make min dam reduction from AR be AR/5.
- [+] safebox
- [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with
no getsweaker (val1)
* [+] make fire / ice damage mor elike netheck
- [+] towns should have gates on EVERY side
- [+] forest cells outside town gates need to be CLEARED. (maybe turn
to dirt)
- [+] fix up knock targetting to include magical barriers
- [+] say "open a bag?" not "operate a bag?"
* [+] implement immunetodisease
- [+] sort known skills in @s.
- [+] better damage bonus when attacking someone who is asleep
- [+] practive firearms/throwing
* [+] need objecttype->size
* [+] containers
* [+] change guns so you have to reload them. ("operate")
- [+] crash when loading map with water
- [+] SAVE OBJECT CONTENTSk
- [+] monsters with jobs aren't getting start items
- [+] shopkeeper has shotgun
- [+] bug: monster keeps swapping between shotgun and flail
- [+] when hiring, remember failure.
* [+] Inn
- [+] bug: pets fighting!!! then they all turn on you. never make
allies get angry unless the attacker is the player
* [+] hiring npcs
- [+] chat to pet: "stay close" or "keep your distance"
- [+] new 'furniture' obclass
- [+] allow for 'randomshop' regiontype
* [+] add enchantment school
- [+] cast a scroll of mending on itself. CRASH.
* [+] lessengravity should make you jump better and get knocked back
further
- [+] boostgrav/lessengrav cancel out each other.
* [+] CRASH when you fall down a hole and die.
- [+] problem: master gravitation doesn't let us cast levitat.
getspellschoolknown() should return the HIGHEST known skill, not
the first.
* [+] bug: dregion is null?!??!
* [+] dig a pit, if you cleared out land below, you just stay down
there.
- [+] potion of leveitation
- [+] warning msg when levitate is about to expire
* [+] if you fall upwards to the surface...
* [+] if you are ever on the surface while levitating....
- [+] BUG: cna't go up stairs to surface anymore!!!!!
- [+] get hungry LOTS more quickly when you start sprinting
* [+] monk slow metabolism psionic pell.
- [+] fix buf with lore giving LESS accuracy instead of more.
- [+] food shop
- [+] wand of digging not identified if you dig upwards
* [+] when you make ah ole in the roof, objects above should fall
through right away
* [+] all towns should have:
- [+] give monks more psionics spells.
- [+] sk_throwing skill
- [+] make calm animals use spellpower
* [+] add wisdom
* [+] need to save region data along with maps
* [+] COMBINE armour evasion and accuracy penalty!!!
* [+] make armour reduce accuracy as well (unless you have 'armour'
skill)
- [+] landmine trap
* [+] make friendly monsters of same raceclass swap ammo
- [+] rename 'pull' to 'suck' to avoid confusion with pull metal
* [+] food to fix blindness
- [+] potion of coffee
* [+] genericise statbrackets
* [+] tumble ability
* [+] simplify spell power
* [+] shopkeeprs should be allowed to pursue targets outside of the
shop.
- [+] give shopkeepers a shotgun
* [+] make F_RNDHOSTILE be able to ahve a random chance.
* [+] if you randomly generate food in a shop, still give it a price.
- [+] if peaceful humanoid walks into you, "sorry!"
- [+] sayphrase(lf, SP_SORRY, vol)
- [+] only let you recruit jobs with j_recruitable
- [+] CRASH - summon "monk"
- [+] dogs,
- [+] chickens,
- [+] drunks,
* [+] village objects
- [+] change armourrating AGAIN. instead of a percentage, make it a
number.
- [+] rename inn to "pub", since you can't sleep there.
* [+] random speech code
* [+] genericise sayphrase text based on lf's job
* [+] monks - add rest of abliities
- [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
|
|
|
int linkholes(map_t *map);
|
2012-11-09 22:50:52 +11:00
|
|
|
object_t *linkportaltodepth(object_t *srcportal, int wantdepth);
|
|
|
|
int linkportals(object_t *srcportal, object_t *dstportal);
|
2011-06-29 18:48:48 +10:00
|
|
|
int linkstairs(object_t *o, object_t *o2);
|
2011-06-22 16:01:48 +10:00
|
|
|
void makedoor(cell_t *cell, int openchance);
|
2012-08-02 14:08:27 +10:00
|
|
|
void makelit(cell_t *c, enum OBTYPE how, int howlong, int power);
|
|
|
|
void makelitradius(cell_t *c, int radius, enum OBTYPE how, int howlong, int power);
|
2012-01-09 15:02:26 +11:00
|
|
|
void markroomwalls(map_t *m, room_t *r);
|
* [+] make vending machines use this container code instead.
- [+] don't say "you see a few things" if one of them is footsteps
* [+] IFMONSTER code failing....because flags are now SORTED!!!
- [+] tumble - askcoords is letting us pick a cell we don't have lof to.
* [+] assign a name to lfs once you hire them
* [+] coloured msgtext
- [+] make min dam reduction from AR be AR/5.
- [+] safebox
- [+] if intelligent, prompt before walking into RESTRICTMOVEMENT with
no getsweaker (val1)
* [+] make fire / ice damage mor elike netheck
- [+] towns should have gates on EVERY side
- [+] forest cells outside town gates need to be CLEARED. (maybe turn
to dirt)
- [+] fix up knock targetting to include magical barriers
- [+] say "open a bag?" not "operate a bag?"
* [+] implement immunetodisease
- [+] sort known skills in @s.
- [+] better damage bonus when attacking someone who is asleep
- [+] practive firearms/throwing
* [+] need objecttype->size
* [+] containers
* [+] change guns so you have to reload them. ("operate")
- [+] crash when loading map with water
- [+] SAVE OBJECT CONTENTSk
- [+] monsters with jobs aren't getting start items
- [+] shopkeeper has shotgun
- [+] bug: monster keeps swapping between shotgun and flail
- [+] when hiring, remember failure.
* [+] Inn
- [+] bug: pets fighting!!! then they all turn on you. never make
allies get angry unless the attacker is the player
* [+] hiring npcs
- [+] chat to pet: "stay close" or "keep your distance"
- [+] new 'furniture' obclass
- [+] allow for 'randomshop' regiontype
* [+] add enchantment school
- [+] cast a scroll of mending on itself. CRASH.
* [+] lessengravity should make you jump better and get knocked back
further
- [+] boostgrav/lessengrav cancel out each other.
* [+] CRASH when you fall down a hole and die.
- [+] problem: master gravitation doesn't let us cast levitat.
getspellschoolknown() should return the HIGHEST known skill, not
the first.
* [+] bug: dregion is null?!??!
* [+] dig a pit, if you cleared out land below, you just stay down
there.
- [+] potion of leveitation
- [+] warning msg when levitate is about to expire
* [+] if you fall upwards to the surface...
* [+] if you are ever on the surface while levitating....
- [+] BUG: cna't go up stairs to surface anymore!!!!!
- [+] get hungry LOTS more quickly when you start sprinting
* [+] monk slow metabolism psionic pell.
- [+] fix buf with lore giving LESS accuracy instead of more.
- [+] food shop
- [+] wand of digging not identified if you dig upwards
* [+] when you make ah ole in the roof, objects above should fall
through right away
* [+] all towns should have:
- [+] give monks more psionics spells.
- [+] sk_throwing skill
- [+] make calm animals use spellpower
* [+] add wisdom
* [+] need to save region data along with maps
* [+] COMBINE armour evasion and accuracy penalty!!!
* [+] make armour reduce accuracy as well (unless you have 'armour'
skill)
- [+] landmine trap
* [+] make friendly monsters of same raceclass swap ammo
- [+] rename 'pull' to 'suck' to avoid confusion with pull metal
* [+] food to fix blindness
- [+] potion of coffee
* [+] genericise statbrackets
* [+] tumble ability
* [+] simplify spell power
* [+] shopkeeprs should be allowed to pursue targets outside of the
shop.
- [+] give shopkeepers a shotgun
* [+] make F_RNDHOSTILE be able to ahve a random chance.
* [+] if you randomly generate food in a shop, still give it a price.
- [+] if peaceful humanoid walks into you, "sorry!"
- [+] sayphrase(lf, SP_SORRY, vol)
- [+] only let you recruit jobs with j_recruitable
- [+] CRASH - summon "monk"
- [+] dogs,
- [+] chickens,
- [+] drunks,
* [+] village objects
- [+] change armourrating AGAIN. instead of a percentage, make it a
number.
- [+] rename inn to "pub", since you can't sleep there.
* [+] random speech code
* [+] genericise sayphrase text based on lf's job
* [+] monks - add rest of abliities
- [+] add fiengdeath ability to some monsters
2011-07-14 07:40:28 +10:00
|
|
|
void mapentereffects(map_t *m);
|
2012-11-27 21:27:54 +11:00
|
|
|
void modcelltemp(cell_t *c, int howmuch);
|
2012-08-02 14:08:27 +10:00
|
|
|
void modillumination(map_t *m, int dir);
|
2011-10-07 07:12:13 +11:00
|
|
|
void moveobtoclearcell(object_t *o);
|
- [+] 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 17:44:12 +11:00
|
|
|
int orthdir(int compassdir);
|
- [+] vault:pub
- [+] has lots of recruitable people
- [+] plants, magic creatures, etc shoudl have infinite staina
- [+] severed fingers/heads are no longer considered "corpses".
- [+] new kind of bed: pile of straw
- [+] closed shops now work properly.
- [+] stench skillcheck (in makenauseated) - announce this differenlty
to 'nothing happen's
- [+] monsters won't turn to face sounds when fleeing.
- [+] increase accuracy for spear, but reduce accuracy when adjacent
- [+] why didn't cyborg warrior start with bullwhip equiped??
- [+] isbetterwepthan() should take EXTRADAM flag into account
- [+] monster starting skill levels should depend on iq
- [+] no sprinting with injured legs
- [+] more restructions when stunned:
- [+] no throwing
- [+] no operating
- [+] no firearms
- [+] tombstone text: Eaten by a snow troll's halberd
- [+] bug: ekrub gained MASSIVE piety when i sacrificed a soldier ant
corpse! reduced.
- [+] learning certain lore skills should please gods
- [+] repairing should take a lot longer. ie. shoudlbn't be able to do
it during a fight.
- [+] workhelpobs (spanner/needle) should have F_HELPSREPAIR,
v0=material, v1=howmuch
- [+] continuerepairing() should only fix <skill + helpsrepair> hp
per turn.
- [+] announce helpsrepair in obdesc
- [+] coldroom vault:
- [+] ice floor
- [+] ice walls
- [+] ice pillar
- [+] frozen corpses
- [+] new job: gladiator
- [+] sword
- [+] shield
- [+] high shield skill
- [+] high evasion skill
- [+] limited armour skill
- [+] net
- [+] war cry fairly early on
- [+] gust of wind and airblast should drop flying creatures
- [+] fall_from_air().
- [+] trigger then when wind-based effects hit.
- [+] chance of falling depends on size.
- [+] if you polymorph a monster, it should NOT turn back to its
original form!
- [+] criticals dont seem to be happening any more... fixed
- [+] when picking first askcoords target lf, pick the closest
- [+] sakcs etc should contain rarer objects.
- [+] intelligent ai: if exhausted and in battle, and faster than
opponent, flee.???
- [+] easy way to fix reachability:
- [+] is there a solid cell which is:
- [+] adjacent to both a filled and an unfilled area?
- [+] not a fixed vault wall?
- [+] if so, just clear it.
- [+] genericise getrandomrace flags
- [+] some containers should have mini/tiny monsters inside!
- [+] f_hashidinglf, v0=rid
- [+] if you loot it, monster jumps out
- [+] ...and gets a free hit!
- [+] perception lets you see the container moving (only if it
weighs less than what is inside it)
- [+] genericise getrandomcell() with conditionsets.
* [+] condset_t
- [+] then replace all getrandomadjcell() calls...
- [+] remove getrandomroomcells
- [+] then remove WE_xxx
2012-11-13 16:04:30 +11:00
|
|
|
enum RACE parserace(char *name, flagpile_t *wantflags, condset_t *cs, enum JOB *wantjob, enum BEHAVIOUR *wantbehaviour);
|
2011-08-25 09:48:29 +10:00
|
|
|
int remove_deadends(map_t *m, int howmuch);
|
2012-11-09 22:50:52 +11:00
|
|
|
int remove_baddoors(map_t *m);
|
2012-11-14 15:59:18 +11:00
|
|
|
int remove_smallrooms(map_t *m);
|
2012-12-01 16:26:23 +11:00
|
|
|
void selectcelltypes(map_t *map, int solchance, int empchance, enum CELLTYPE *sol, enum CELLTYPE *emp);
|
2011-09-13 09:52:21 +10:00
|
|
|
void set_scanned_glyph(int targettype, void *what, char *descappend, char *desc, glyph_t *glyph);
|
2016-06-06 17:22:16 +10:00
|
|
|
void setcellknown_fake(cell_t *cell, enum CELLTYPE ctid);
|
2011-05-20 06:30:58 +10:00
|
|
|
void setcellknown(cell_t *cell, int forcelev);
|
2011-07-01 13:34:41 +10:00
|
|
|
void setcellknownradius(cell_t *centre, int forcelev, int radius, int dirtype);
|
2012-11-19 15:57:48 +11:00
|
|
|
void setcelllocked(cell_t *c, char *why, ...);
|
- [+] glorana doesn't like you attacking during Glorana's Peace
- [+] make more shops let you donate
- [+] bookstore
- [+] jewellery store
- [+] rename blood hawk to hunting hawk
- [+] offering a bribe to creatures should make them move likely to
helkp you, AND reset the "auto don't help' flag
- [+] change "get lost " message to "get lost, <racename>" if your race
is different.
- [+] sayphrase() needs a new arg: lifeform_t *talkingto
- [+] colours for spell effect.
- [+] eg. "the flame dart hits xxx" should use CC_BAD
- [+] muddy room - mud should be immutable.
- [+] maybe change rage - you lose control totally and just attack
anything in sight?
- [+] do it.
- [+] don't train when enraged
- [+] don't hear sounds when enraged
- [+] RAGE effects: strength bonus, accuracy bonus, infinite
stamina, never flee,
- [+] fix bug in skill point calculation
- [+] CRASH - someone got their turn BEFORE the player!
- [+] new poisontype field - contracttext
- [+] hecta's pray effect not working.
- [+] adjust food poisioning check difficulty based on food age
- [+] check OBHP percentage of max.
- [+] >= 80% obhp means -30% difficulty check
- [+] ring of unholiness should confer dtvuln holy.
- [+] fix colour on spellclouds
- [+] fix bug with spellclouds not affecting centre cell.
- [+] if you are frozen, heat does extra damage and cold does none.
- [+] when frozen, lessen chance of melting.
- [+] reduce bite damage of snakes
- [+] balaclava should protect from gas
- [+] make some floor types (like carpet) be multicoloured
- [+] celltype->altcolour
- [+] if altcolour is not C_NONE then use it where (x + y) % 2 is
true.
- [+] don't regain stamina while training
- [+] random text in shops - sayphrase needs to cope with lf == null
- [+] done
- [+] fixed - hecta gifted me with a bamboo staff, but i'm inept with
staves!
- [+] BUG: in vault.vlt.
- [+] "30% chance of door" really means "otherwise empty cell"
- [+] need to be able to say "else put a wall here"
- [+] so change:
- [+] c:type:what[:pct]
- [+] to this:
- [+] c:type:what[:pct][:alttype:altwhat]
- [+] vlegend_t needs
- [+] enum VAULTTHING tt2
- [+] char *what2
- [+] they default to VT_NONE, NULL
- [+] secret doors should take their fake wall type from the vault spec
- [+] vaults need f_celltypeempty/solid flags
- [+] add via: solid:xxx in vault def
- [+] recycler
- [+] donate anything
2012-07-15 15:01:58 +10:00
|
|
|
void setcellreason(cell_t *c, char *why, ...);
|
2011-06-22 16:01:48 +10:00
|
|
|
void setcelltype(cell_t *cell, enum CELLTYPE id);
|
|
|
|
int shattercell(cell_t *c, lifeform_t *fromlf, char *damstring);
|
2012-11-10 15:06:45 +11:00
|
|
|
int shuffledown(map_t *map);
|
2012-11-14 15:59:18 +11:00
|
|
|
int smallroomat(cell_t *where);
|
2011-09-28 04:56:58 +10:00
|
|
|
int unlinkstairsto(map_t *unlinkmap);
|
2012-04-05 19:28:20 +10:00
|
|
|
void unmakemap(map_t *map);
|
2010-12-07 18:34:26 +11:00
|
|
|
void updateknowncells(void);
|
2011-06-22 16:01:48 +10:00
|
|
|
int validateregions(void);
|
|
|
|
int validateregionthing(regionthing_t *thing);
|
VAULTS
* [+] vaiultlegend_t
* [+] vaultdef_t
- [+] implement addlegend()
- [+] implement addvault()
- [+] function to read in a vault from a data file
- [+] vs_noid
- [+] vs_loadingmap
- [+] vs_loadinglegend
- [+] vs_loadingflags
- [+] vs_loading
- [+] load all vaultdefs in at start
- [+] change createroom to calculate the posistion
- [+] for each room, give a %chance of haivng a vault. (based on
habitat?)
* [+] createvault(map_t, roomid?, char *vaultid)
- [+] mapdata with letters
* [+] MSG up vault errors on load.
- [+] Select job _before_ generating first map.
* [+] make addob() handle door flags:
* [+] addob() improvements
* [+] wish bug: first object goes in pack, rest on ground.
- [+] genericise getroomedge()
- [+] finish 'autodoors' (at the end, add doors if none already done)
- [+] at(x,y):type:what:pct -> f_vaultob / vaultlf / vaultcell, v0=x,
v1=y, v2=pct text=what
* [+] "what" can be:
* [+] scatter:y1:x2:y2:what:chance%:howmany
* [+] some way to make the @map bit just say 'random room at least 2x4'
- [+] make "scatter" able to take range instead of count.
- [+] make "scatter"able to take x% instead of count.
- [+] upsidedown chars no longer working with winch()
- [+] ensure no DUPE ids
- [+] make legend take percentages (optional)
- [+] make "at" take negative values...
OPTIONS
- [+] autodoors - put doors on edges like with normal dungeon rooms.
* [+] autopop - fill with obs/monsters like normal rooms
VAULT FILES
- [+] flooded room
- [+] labyrinth
- [+] vault (lots of money, locked secret doors)
- [+] monster zoos (money and monsters)
- [+] diningroom - lots of tables and chairs
- [+] circleroom
- [+] pillared room
- [+] glass pillared room
- [+] cockatrice lair (statues)
- [+] traproom - need "random trap". need OC_TRAP.
- [+] BUG: piranhas walking out of water sometimes.......
- [+] add startatt x-y rather than just a bracket. use text field.
- [+] make teleport auto move away form lfs
- [+] add minotaur
2011-06-02 18:34:44 +10:00
|
|
|
int wallstoleftright(cell_t *c, int dir);
|
2011-11-02 07:35:50 +11:00
|
|
|
void writetextonground(lifeform_t *lf, cell_t *c, char *buf, int howlong);
|