This was on d_m's list of desired changes in generate, and it's been banging around in the back of my head for a while as well.
Here's the idea: certain monsters will generate specific junk around them that will give indications of what monsters are lurking around. This leads to a more interesting dungeon and a more organic method of determining danger instead of the current detection/ESP combo.
Method ideas:
The idea I had was to create a large amount of junk items. Every junk item will have a JUNK flag along with more specific indications of what can drop it. For example broken arrows might have:
F: JUNK | JUNK_AMMO
a corresponding junk flag would appear on monsters that could drop this item, e.g. kobold archers, uruks, novice rangers etc.
When the game attempts to place a monster with the junk flag, it will generate something like 3d4 junk items (or 1 if the monster has the friends tag) scattered within some reasonable range of the monster. This will not occur for spawned monsters, summoned monsters, pits, nests or vaults.
At first guess I'm thinking of keeping the junk flags specific for the items and general for monsters. For example an uruk might have the flags.
F:JUNK | JUNK_AMMO | JUNK_ARMOR | JUNK_EDGED
How will it help?
I would like junk to help with recognizing threats up to about nexus hound depth. If it works, we can see about extending it out to the next group of threats, Gravity hounds, time hounds, time vortexes, ethereal dragons etc.
Of course the difficult will be getting the right amount of junk. Enough that you have a good chance of coming across the junk (w/o detection) before coming across the monster. However, there can't be too much so that you get fed up and squelch everything immediately. This will take some trial to get right (if it's possible at all!)
ideas for junk by flag
JUNK_ARMOR
includes: broken helmets, broken shields, filthy rags
dropped by: most humans, orcs, trolls, kobolds
JUNK_AMMO
includes: broken arrows
dropped by: anything that fires missiles
JUNK_EDGED
includes: broken daggers, broken swords
dropped by: some humans, kobolds, orcs
JUNK_BLUNT
includes: broken clubs, broken maces
dropped by: priests, orcs, yeeks?
JUNK_MAGIC
includes: broken wands, broken staves, broken rods
dropped by: shamans, magical humans
JUNK_FLASK
includes: empty flasks
dropped by: humans
JUNK_BONE
includes: animal bone, human bone, skeleton
dropped by: spider groups, animal groups
JUNK_FIRE
includes: charred remains, burnt books
dropped by: fire monsters
JUNK_COLD
includes: frozen corpses
dropped by: cold monsters
JUNK_ELEC
includes: melted jewelry
dropped by: elec monsters
JUNK_ACID
includes: melted armor, melted sword
dropped by: acid monsters
JUNK_POIS
includes: poisoned rats, poisoned corpses
dropped by: poison monsters (spec air hounds, drolems, AGD, AMHD, G. Bslsks, winged horrors)
JUNK_NEXUS
includes: disfigured corpses
dropped by: nexus breathers
JUNK_SHARD
includes: glass shards, pottery shards
dropped by: sound, shard, force monsters
JUNK_DRY
includes: desiccated corpses, desiccated rats
dropped by: melee paralyzers
JUNK_NETH
includes: I'll come up with something
dropped by: reasonably powerful undead.
Here's the idea: certain monsters will generate specific junk around them that will give indications of what monsters are lurking around. This leads to a more interesting dungeon and a more organic method of determining danger instead of the current detection/ESP combo.
Method ideas:
The idea I had was to create a large amount of junk items. Every junk item will have a JUNK flag along with more specific indications of what can drop it. For example broken arrows might have:
F: JUNK | JUNK_AMMO
a corresponding junk flag would appear on monsters that could drop this item, e.g. kobold archers, uruks, novice rangers etc.
When the game attempts to place a monster with the junk flag, it will generate something like 3d4 junk items (or 1 if the monster has the friends tag) scattered within some reasonable range of the monster. This will not occur for spawned monsters, summoned monsters, pits, nests or vaults.
At first guess I'm thinking of keeping the junk flags specific for the items and general for monsters. For example an uruk might have the flags.
F:JUNK | JUNK_AMMO | JUNK_ARMOR | JUNK_EDGED
How will it help?
I would like junk to help with recognizing threats up to about nexus hound depth. If it works, we can see about extending it out to the next group of threats, Gravity hounds, time hounds, time vortexes, ethereal dragons etc.
Of course the difficult will be getting the right amount of junk. Enough that you have a good chance of coming across the junk (w/o detection) before coming across the monster. However, there can't be too much so that you get fed up and squelch everything immediately. This will take some trial to get right (if it's possible at all!)
ideas for junk by flag
JUNK_ARMOR
includes: broken helmets, broken shields, filthy rags
dropped by: most humans, orcs, trolls, kobolds
JUNK_AMMO
includes: broken arrows
dropped by: anything that fires missiles
JUNK_EDGED
includes: broken daggers, broken swords
dropped by: some humans, kobolds, orcs
JUNK_BLUNT
includes: broken clubs, broken maces
dropped by: priests, orcs, yeeks?
JUNK_MAGIC
includes: broken wands, broken staves, broken rods
dropped by: shamans, magical humans
JUNK_FLASK
includes: empty flasks
dropped by: humans
JUNK_BONE
includes: animal bone, human bone, skeleton
dropped by: spider groups, animal groups
JUNK_FIRE
includes: charred remains, burnt books
dropped by: fire monsters
JUNK_COLD
includes: frozen corpses
dropped by: cold monsters
JUNK_ELEC
includes: melted jewelry
dropped by: elec monsters
JUNK_ACID
includes: melted armor, melted sword
dropped by: acid monsters
JUNK_POIS
includes: poisoned rats, poisoned corpses
dropped by: poison monsters (spec air hounds, drolems, AGD, AMHD, G. Bslsks, winged horrors)
JUNK_NEXUS
includes: disfigured corpses
dropped by: nexus breathers
JUNK_SHARD
includes: glass shards, pottery shards
dropped by: sound, shard, force monsters
JUNK_DRY
includes: desiccated corpses, desiccated rats
dropped by: melee paralyzers
JUNK_NETH
includes: I'll come up with something
dropped by: reasonably powerful undead.
Comment