The currently existing programming abstractions for maps in JADE are
- Tiles (the basic building blocks like walls, doors, tunnels, etc.)
- Beings (living and undead beings moving around and having an intelligence of their own - basically single entities with some kind of sentience)
- Items (or rather lists of items... basically everything you can drop)
- MapFeatures (basically things that can be grafted onto tiles like altars, statues, etc.)
Now armies do not really fit into this scheme (e.g. they are no basic building block, they are units of beings but not a single being, they definitely aren't items and they even aren't map features as those things usually are just non-sentient things). I pondered for a while whether to implement armies as map features (as they only would exist on the surface world and on the world map there are no statues, altars, etc.).
But then my stomach told me not to do so because domain driven design (IMHO) correctly teaches to use distinct abstractions for distinct concepts. And there are other concepts similar to armies (especially concerning the world map - e.g. crafts like boats). So what are the common features for armies (and similar conceptual entities)? IMHO the concept I am trying to name has the following common features:
- When you try to move into a position with such an entity you might be required to confirm your intent ("Do you really want to face the orcish army?", "Do you want to unmount your horse and enter the boat?").
- When you actually move into the given position with said entity "something" is going to happen (e.g. an encounter with the army is started or you actually enter the craft and unmount your previous craft leaving it in your old position).
- Like the other concepts mentioned in #1 to #4 there needs to be a visual representation.
- For some concepts (like crafts) there needs to be a "Something is here" type of message when entering the position (bullet #2 might account for that).
- There could be more than one of these things in a given position (e.g. two boats, a horse and a wheelcart, etc.).