summaryrefslogtreecommitdiffstats
path: root/crawl-ref/docs/obsolete/todo.txt
blob: 6974ecff3bf7a3487ddbda6c5d02341bd66f1743 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
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.