summaryrefslogtreecommitdiffstats
path: root/crawl-ref/docs/todo.txt
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/docs/todo.txt')
-rw-r--r--crawl-ref/docs/todo.txt456
1 files changed, 456 insertions, 0 deletions
diff --git a/crawl-ref/docs/todo.txt b/crawl-ref/docs/todo.txt
new file mode 100644
index 0000000000..6974ecff3b
--- /dev/null
+++ b/crawl-ref/docs/todo.txt
@@ -0,0 +1,456 @@
+Enhancements:
+
+* make screen update correctly when player vision is <2.
+
+* Make dangerous things be shown on top of a stack. This includes traps,
+ walls of fire, etc.
+
+* Make food acquirement give you more kinds of food.
+
+* file locking for the high score file
+
+* adjust EV for low levels.
+
+* repopulate levels on the way out
+
+* should species armour bonus work on EV instead of AC?
+
+* make rings of fire/ice (and others?) auto identify with use
+
+* miscast effects too weak? Not enough of a threat, especially when used
+ by gods, Zot traps, or mummies as a form of punishment.
+
+* add toggled stealthy mode?
+
+* print out '@' status in character dumps (might be nice to have the
+ chacters status in the dump... method of death might be good as well).
+
+* fix green crystal room so its not boring (pretty vault, just no real
+ point to it currently)
+
+* fix the summoning abuse problem properly. Ideally, the player should
+ not get piety for killing things he summoned, but should get piety
+ for things that are summoned against him.
+
+* Add a wizard debugging function to output several thousand items for
+ a particular depth (should make item frequency tuning easier).
+
+* Perhaps races should be physically "described" (stucture or bit
+ fields) to keep track of their size and physical body parts that
+ interfer with armour. This could also be used in other ways...
+ small races could be harder to hit with ranged weapons
+ than larger ones, but the larger races might get a bonus
+ to carrying capacity... could also probably simplify the
+ extra unarmed combat attacks code
+
+* Speaking of the character info, I really like that Linley now displays
+ the weapon being wielded. We should think about displaying all ten
+ wielded/worn objects.
+
+* Need to make sure that ghost names will be OK when long player names
+ are used.
+
+* Blink prompt is bogus (probably also happens elsewhere). Can probably
+ fix this by adding a prompt argument to look_around.
+
+* Some of the more important messages should be in color?
+
+* The spores contaminate the food by exploding, only the
+ > explosion effect should destroy food on the ground.
+
+ Right. Maybe this should be implemented (it shouldn't be too
+ hard; fiery explosions already destroy scrolls laying on the
+ floor).
+
+ One idea I had with contaminated food was to use the it_plus2
+ variable (which IIRC is currently unused for all types of
+ food) to store the number of items in a stack of food which
+ are contaminated. Say you have a stack of 4 meat rations, if the
+ plus2 value is 1 then one is bad, 3 are good. Any operations
+ carried out on the stack (eating, dropping, picking up etc)
+ have a 1 in 4 chance of taking the bad ration and 3/4 of
+ taking the good. A quantum thing, sort of. Poisoned food could
+ be done in the same way (if there are any variables left - dam?)
+
+ This means that contaminated food doesn't just disappear, it
+ stays around to haunt you.
+
+ This could perhaps lead into a 'food' skill, which lets you
+ cook food, get the most out of corpses, separate the good
+ food from the bad etc.
+
+* Heavy armor doesn't offer enough protection?
+ >The big problem is the strange evasion modifier calculation that
+ >results in armour completely destroying your EV with the
+ >double subtraction thing.
+
+ I don't think this is so strange. It only affects chars who have
+ high dodging skills, and it makes sense to me that dodging
+ effectively and wearing heavy armour should be mutually
+ exclusive unless you're used to wearing heavy armour, in which
+ case the evasion penalty is reduced according to your armour
+ skill and the dodging skill (which can only be picked up when
+ you're wearing light or no armour) is usually ignored.
+
+ I did it this way so that the two skills (dodging and armour)
+ would rarely both be useful at the same time, so players would
+ have to choose between them. Otherwise they could just practice
+ both and everyone would end up the same.
+
+ Personally, I think the double subtraction thing should be left
+ in, but with the following changes to the way armour works:
+ - base AC should be upped considerably, as discussed
+ - the limit on the proportion of the evasion penalty removed by
+ a high armour skill could be raised or scrapped (currently only
+ half of the evasion penalty of a piece of body armour can be
+ negated by the armour skill)
+
+ I would have fixed these problems before I stopped working on the
+ code myself, except that nobody ever complained about them and I
+ didn't notice them myself.
+
+ -- EV penalty now recovered faster, Armour skill slightly easier to
+ get -- base ACs should probably still be upped (bwross)
+
+* New spell realms (Linley doesn't like these):
+ NATURE - spells connected with some nature forces, animals and plants
+e.g. summon small mammal, summon scorpions, summon elemental, passwall,
+resist <element>, create plant/fungus, charm animal/plant and so on
+
+ PROTECTION - protective spells - shield, resist sth., Fire/Ice armor,
+Deflect missiles... HEALING - Cure Light/Serious/Critical Wounds, Cure
+Disease, Neutralize/Slow Poison, Heal
+
+* DRUID class - with spells allowing him to summon animals & plants,
+charm them, also some to work with natural forces - eg. elementals,
+resist fire..., also some healing spells - neutralize poison etc...
+
+* Maybe some God of Nature, which offers to his believers some of Druid
+ ablities
+
+* "write scroll" skill
+
+* Dagger of Backstabbing - hit and Damage bonus when you are backstabbing
+
+* purify food spell
+
+* create water/lava pool spell, also some monsters creating this kind
+ of terrain
+
+* Some work needs to be done for multi-user environments.
+ -- some done, more could be useful (bwross)
+
+* Targetting isn't intuitive enough?
+ -- slightly improved (bwross)
+
+* Use gdbm to save games? However gdbm won't compensate for endian
+ differences...
+
+* Use gdmn to save bones?
+
+* Use zlib to compress saved games?
+
+* larger windows
+ -- number of lines is now handled more dynamically, but only at
+ during init or compile time (depending on NUMBER_OF_LINES) (bwross)
+
+* multiple-windows
+
+* Use XML for monster definitions
+
+* Use XML for room layout/fixed levels
+
+* Use XML for item definitions?
+
+* moves[0], beam[0] should be simplified to use pointers to structs instead.
+
+* Locking to prevent multiple game loads/save file overwrites?
+
+* Allow access to the new longer high score files... add user id field (for
+ multi-user systems).
+
+* Add DEC graphics support for non-IBM machines (like nethack).
+
+* Come up with a better save file system that will accomidate versions
+ easily and involve (hopefully) one smaller file... instead of the
+ large number of current files.
+
+* Add Food/Survival skill
+
+> (1) Cooking Food -- by far the most potential to unbalance the game.
+>
+> Cooking food should probably cost a limited resource to use (fire
+> sources? -- some like spellcasting would be very powerful). It would
+> allow anyone to eat chunks of flesh, thus removing an advantage
+> that carnivores and gourmands have... so you probably don't want
+> to add other advantages like extended shelf life. The food value
+> of chunks of flesh would probably have to be made smaller to maintain
+> the food balance.
+>
+> Maybe cooking should be an ability that's either granted by a god,
+> being a member of a race or class, or becomes available with a
+> certain (high) level of the Food skill (perhaps Survival is a better
+> encompassing name... it could potentially be used for other things
+> as well then).
+>
+> (2) Butchery -- not much of a game unbalance.
+>
+> This doesn't effect the game balance unless its made really powerful
+> (ie. I can get 6 chunks from a bat). Right now you can get a full
+> stomach off of any number of large monsters. A few extra chunks
+> doesn't count for much unless you can improve their shelf life.
+>
+> (3) Detecting Bad Food -- depends
+>
+> If Giant Spores secretly contaminate rations this could be an
+> important skill. Perhaps it could give you a slightly better
+> save on eating meat chunks (limiting the advantage of the
+> carnivore's save and to a lesser extent the "AotG). It could
+> also warn you about things like mutagenic and necrophage meat
+> (give you a yes/no prompt you wouldn't normally get).
+
+
+* New inventory/equip/drop system
+
+>>> // > Makes a certain sense, but I can drop any number of the healing potions
+>>> // > as one action that suggests a bit more care... also I could just drop
+>>> // > all of my potions and that would take an action for each stack I had,
+>>> // > whereas all it probably requires is me dropping my "potion sack" or
+>>> // > dumping it out.
+>>> // >
+>>> // How about a compromise where you can hit d% to drop all your food,
+>>> // or d! to drop all your potions, but if you want to discriminate you have
+>>> // to do them individually?
+>>>
+>>> I'm wanting something a bit more featured like the nethack system (not
+>>> the old traditional, but the newer ones). Bascia concept would be that
+>>> I could either select via inventory slot letter, or optionally pull down
+>>> an inventory browser/selector and select the items I want. Complete
+>>> with options like "select all potions", "toggle all potions", "select all",
+>>> and "unselect all" (for example).
+>>>
+>>> If you want to add aditional time for discrimination, you can do it
+>>> Ragnarok style (I like the Ragnarok armour equip system) and have a
+>>> counter on the top line (with a short list of commands) that tells the
+>>> player how many turns the action will take. There are a few problems
+>>> with calculating this value, because there are any number of ways
+>>> I can select all potions and the value should be independant of
+>>> which ever I choose to use.
+>>
+>> Well, it would seem that the time calculation should depend on the
+>>final set of selected items rather than the steps taken to select them.
+>>That would remove abiguity. We could generate a time based on the variety
+>>of things dropped. So, if you were dropping potions, swords, rings, and
+>>scrolls, it would take you much longer than to just drop your rings. It
+>>might be worth it to let weight factor into drop speed as well.
+>
+>You don't want to get too complicated. There's a limit to the
+>granularity here, as you probably don't want to have it taking a
+>couple dozen actions to drop some equipment. A simple little
+>penalty for dropping only part of a stack, or only some types
+>of potions is probably enough of a change.
+
+
+* Options files
+ -- must keep two distinct types of options and handle them separate:
+ - ones that would be loaded from a "crawlrc" file and would effect
+ the players characters in a general way.
+ - ones selected during the game and would be carried between
+ saves, but not to other characters the player is playing.
+
+* fix non-magical traps
+ -- should have some number of "charges" for those that shoot items...
+ these should be more dangerous as well.
+ -- monsters should "learn" the traps of a level.
+
+> Could be done with a bit array (if there is a limit of 32 traps on
+> a level, that would be bonus... but it could be extended to more
+> for not too much trouble). That would take up little space, and
+> testing would be by simple boolean operators (to test if the monster
+> knows about trap X, you check (monster.traps & (1 << X))). We could
+> have the code test the line of sight from a trap everytime it is
+> activated, and set the appropriate bit of the array in any monster
+> within line of sight.
+
+
+* Revert/change the Elementalist spellbooks?
+
+> // >This brings up another little problem around here. People around
+> // >here weren't entirely happy about the change to the Elemental
+> // >Spellbooks in 3.30. For the most part its considered that the
+> // >elementalists are becoming less individual in flavour and that
+> // >they're now just slight variations of Fire. In particular (and
+> // >pertaining to this discussion), was the loss of levitation from
+> // >the Air book, which was considered a useful "Tensor's Disk" for
+> // >lifting stuff up stairs.
+> //
+> // I removed levitation because it no longer fit, and I didn't
+> // want to stretch air out to three books. As for the other changes,
+> // these were made because I thought the non-fire elements were too
+> // weak by far. Which spells in particular are problematic? (I'll
+> // try to write an explanation for the differences between the
+> // elements when I have a little more time)
+>
+> Well, we didn't think the other elements were actually "weaker".
+> They're only weaker in combat potential -- Fire was all attack, the
+> others offered more utility and defensive abilities. There was
+> enough combat in the others to get you well into the midgame, at
+> which point you adapt to whatever books you find (its typically
+> quite hard to get the advanced versions of your magic discipline...
+> I remember how happy I was when I finally had a necromancer find
+> Unlife... my Paladin had a complete set of death books early on).
+>
+> The main problem is that the elements were made too similar (we
+> really liked the fact that they all played quite different, it
+> was one of the things that made crawl really popular here).
+>
+> For example, they all start with a slight variation of the same spell.
+> This means that they all start playing the same way, with the same
+> tactics. Before you could play Earth for the range attack, or Air for
+> the somewhat risky-yet-powerful Shock.
+>
+> There's still a little varity left, but certain bits are gone. You
+> can't depend on getting summoning when you start with Ice, for
+> example. The Levitation spell is now only in the Enchantment book,
+> it used to be a something you could depend on as an Air mage (now
+> you have to hope to get the book of Sky, and that gets you Fly, which
+> is better, but is also a level four spell).
+>
+> Earth had a little issue before (too many similar throwing spells),
+> but replacing Throw Pebble with Crush just makes it the same as the
+> other elements. Stone Arrow has always been better than Iron Bolt,
+> IMO... iron bolt just isn't effective enough to justify the extra
+> cost and difficulty... it requires really high skill levels to
+> be better. I would have rather seen Iron Bolt go, in favour of
+> something a bit more interesting (Earthquake, Pass Wall, Stair
+> Creation).
+
+* Improve running code
+
+* Carrion eating mutation
+ -- like vegetarian and carnivore, only gives a preference for
+ rotten meat. Progesses with level until the character
+ can only effectively eat rotten food.
+
+* Add rumours/fortune cookies?
+
+* Improvements to the character dump
+ -- is the current dump as verbose as wanted/too verbose?
+ -- add spell failures to dump?
+
+* Change character for throwing weapons to '(' and small armour to '['.
+ -- Problem: '(' is used for dancing weapons.
+
+* Put some limits of teleport/teleport control? Make it rarer?
+
+* Improve artefacts to compete better with Sword of Power? Improve
+ non-sword weapons so they become more of a choice?
+
+* Currently possible to gain 0hp when gaining a level... should
+ be safeguards added to make sure this is at least never negative,
+ if not guaranteeing 1hp / level.
+
+* should be able to see contents of books in stores?
+
+* remove possibility of teleport control with the Blink spell (require
+ the player to use the Control Blink spell instead).
+
+* merge the chardump spell listing code with the other spell listing code.
+
+* throw traces to target should coincide with line-of-sight better
+
+* item inscriptions
+
+* are crossbows correct? The other launchers seem to be adding their
+ skill bonuses twice
+
+* The Throwing skill isn't particularly useful. You could use it for
+ throwing daggers, axes, or spears but they don't stack and are
+ heavy.
+
+* add some weapons/change weapon code so that non-swords are more of
+ an option
+
+ // >I was thinking that this might be a good way to increase the value of
+ // >non-sword weapons.
+ //
+ // .. which probably needs to be done anyway. One or two
+ // suggestions for new weapons which could help:
+ //
+ // - axe (just axe, no 'hand' or 'battle' there): this would be to
+ // a hand axe what a long sword is to a short sword. Skills may
+ // need to be adjusted (a new 'great axes' skill, covering the
+ // two-handed axes? Or just condense the sword skills).
+ // - Spiked flail: like a flail, but more damage and slightly
+ // slower (heavier etc).
+ // - Great flail/mace: two-handed versions.
+
+ These would certainly help out a bit. The other weapon classes were
+ lacking good intermediates. I don't think a "great axe" skill is
+ required, removing "great swords" might be correct (although it
+ does add a limiting factor on the power of swords). Having weapon
+ skills where only one member of the class exists doesn't seem very
+ worthwhile. Maybe fighting style skills could be used instead...
+
+ - 'two handed weapons' could be a skill for all two handed weapons,
+ it would be used in conjunction with the appropriate weapon skill.
+
+ - 'shields' would cover "weapon and shield" style, maybe allowing
+ for the possibility of offensive shield bashing.
+
+ - 'unarmed combat' or 'fighting' could cover the cases where one
+ or both hands are empty. Characters not using one of the other
+ styles should be able to use unarmed strikes more often and
+ more efficiently.
+
+ Potentially, you could add a bastard sword to the game. Its hand and
+ a half nature could put it in any of the above categories (if you
+ have a shield, it would be the second... if not it could be either
+ of the other two).
+
+ Of course, adding new skills has its own problems... there is already a
+ shortage of space on the skills screen.
+
+ -- add special attacks to weapons and allow them to be accessed by the
+ player via SHIFT-<move> onto an adjacent monster.
+
+- fix monster enchantments to have proper timeouts and a better structure
+
+- score file still gets messed up from time to time... should probably
+ change the format into something that can be expanded and contains more
+ information that might be printed (user id on multiuser systems, time, etc)
+
+-- add checking for legal background colour (or just let it ignore the
+ "bold" colours like it does now?)
+
+-- change file formats and functions
+ -- change score file format (see nethack for additional fields... also
+ maybe a field for damage done by killing attack... could be used to
+ spice up the death description (use final HP?))... also a userid
+ field for MULTIUSER systems would be nice (to tell likenamed
+ charcters apart and identify the player).
+
+-- sort out spells into separate spl-* files based on type/skill
+
+-- make all this you.inv_*, mitm/itm stuff the same instead of
+ having conversions everywhere.
+
+-- differentiate the good gods more
+
+-- break up dungeon.cc more
+
+-- a check floor for lava/water function
+
+-- a simple "summon hostile unfriendly/random demon" spell with fewer params?
+
+-- centralize the elemental resistance code into a single entry point that
+ takes damage and type and does the appropriate things... some of the
+ cases are notably special, so some extra damage cateogries might have
+ to be created (ie. stepping/falling into lava is an instadeath for
+ characters with negative fire resistance, but being hit with a lava
+ bolt is only extra damage).
+
+-- functions to check for specific equipment (ie reduce checks for "!= -1")
+
+-- move ghost/demon array into a proper structure.
+