Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: map.thoughts



+--- Mark Wedel:
| I've changed the encounter code so that random encounter maps can no
| longer happen if the source map is difficulty 1 (which most every
| town is).  That should solve problem of encoutners in towns.

NO! This is definitely the wrong thing to do - encounter maps are
meant to happen on the world overview maps, which usually have no
monsters, and hence are level 1. Your change will make encounters
happen exclusively in places like the tabb-church.

+---
| The problem this means is that you might have some path through a
| forest, and just 5 minutes later, you get encoutner maps on it as
| you re-tract your steps.

This is not a problem, IMHO this is the way it should work - remember,
these are "random encounters" - something out of the ordinary
happening as you move from one place to another.

+---
| 1) Have the monsters on the encounter map of the same difficulty as
| the map the encounter is on.  So that if the map is difficult 10 and
| a random encounter happens, there are going to be some pretty tough
| monsters.

It should still be possible to have difficult encounter maps in easy
maps (cf. mountains in world maps). Choosing and inserting appropriate
monsters into the map doesn't seem trivial to do == I wouldn't bother
implementing it :-)

+---
| 2) When loading a map for the first time, determine which hexes will
| be random encounter areas, and turn the rest into normal terrain.
| This way, once you find a path without any encoutners, it will
| remain like that until the map is reset.

Like I said, this will change the meaning of encounter maps to being
random scenery instead. Personally, I think it is a thrill to go
through jungles and the like as a low level character, wondering if I
will encounter something behind the next tree.

+---
| 3) Decrease the chance of random encounter maps.

Yeah, 25% may be a little high. On the other hand, if you stick to the
beaten path, or walk along the shore, you won't get many (any)
encounter maps.

+---
| Another thing to do would be add a field to the map structure that
| when set, means that no random encounter maps will be generated for
| that map.  This way, many old maps would not need to have all the
| terrain converted to have encoutners be disabled.

Now _this_ is what should have been done from the beginning :-) I
would invert the meaning of the flag, BTW - set the flag if you want
encounters. That way there'll be even less problems with old maps :-)

This has been brought up before in a different context. A little more
than a year ago (4 days, to be exact :-), I wrote:

+--- Kjetil T:
| Maybe we could allow the map-object (ie. the first object in the
| .oo-file) to contain modifiers. Ie., if it had no_magic, all objects
| contained in that map would get that as a default value. I know this
| might slow down map-loading, especially if we allowed general
| modifiers - but I can't think of any other attribute which would
| make sense on a global sense.

Hmm, this idea is a little different from Mark's idea, I see now.
Basically, I would implement it so that the objects would be
initialised from the map-object sans the variables which have meaning
for the map->map_object (msg, hp, x, y - more?) instead of the empty
object.

With this in place, you could make small regions in your map where the
object flag "no_encounter" was set to 0 (which, come to think of it,
would have the same effect as setting "race" to 0 - race is the string
holding the terrain name for that sort of tile).

That would mean that in this case, the flag could be in the
map-structure. Pro: slight savings of memory, although the cost of a
bit in each object is negligble in itself. Con: complicates
code. Incidentally, some obscure keyword must be chosen to represent
it to get this saving unless you change the parser. (if you add a flag
and keyword, it must be in the object structure)

I'll supply patches for the above if there's interest.

I hope my stream of conciousness mode didn't make this indecipherable.


Kjetil T.