| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
in other ways too, we would call _maybe_init_tilenum_props, which tries to
get the basetile for the dancing weapon, which crashes because we haven't
given it the weapon yet (this was all happening in create_monster().)
This is a major hack; someone more familiar with tiles should fix this
better.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Monsters that have several variant tiles will now get a random value
written into tile_num at creation, so when their tile gets drawn one
of the set is picked, but always the same one.
In practise, this is currently only used for slaves and toadstools.
Other monsters that have variant tiles, such as ugly things, kraken
tentacles, or slimes creatures, are handled specially.
Generally, such differences should be small and flavourful. The greater
the threat of a given monster the more important it is that the player
will recognize it immediately. (Of course, this restriction does not
hold if the tile actually transport information as is the case for
ugly things' colours etc.)
|
|
|
|
| |
This should lead to a more flavourful look of Pikel's slave band.
|
| |
|
|
|
|
|
|
| |
You can override that, both the colour and the glyph. The code
is exceedingly hairy (the check is tripled!), thanks to glyphs
sometimes stored as character:colour, sometimes as type:colour.
|
|
|
|
|
| |
This keeps with the current "Greek" theme of Shoals. Single monsters are
certainly more desirable than packs in this context.
|
|
|
|
|
|
| |
Shoals, remove yaktaurs, centaurs and stone giants.
Snapping turtles get reaching attacks. Sea snakes get strong venom.
|
| |
|
| |
|
|
|
|
| |
random gen - the terrain builder will place lots of plants as scenery anyway.
|
| |
|
| |
|
|
|
|
| |
these days.
|
|
|
|
|
| |
Newly placed monsters during the mislead status are also given a
mislead_as monster type.
|
| |
|
|
|
|
| |
saving RNG state.
|
|
|
|
|
|
|
| |
Commit c2a93a39 fixed a bug where all randomly spawned monsters
were generated aware of the player. However, for the pan run
demons, having them seek the player is probably a good idea,
so I'm reactivating this explicitly.
|
|
|
|
|
|
|
| |
Randomly spawned monsters were previously being alerted to the
player position on generation, by code that was apparently
intended to make summons aware of the player. Those will still
attack the player if in view however by the ME_EVAL.
|
|
|
|
|
|
| |
Previously, only the band leader was placed away from the player
with PROX_AWAY_FROM_PLAYER. The solution isn't too elegant,
but works for now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Rebranded monsters (ie, "kobold name:Durwent name_replace") who are
created with Lua and dgn.create_monster while the player is resting will
generate a "XYZ comes into view" warning message.
However, as this message is triggered by handle_seen_interrupt, which is
triggered before the additional flags are applied, it will disregard
MF_NAME_SUFFIX, MF_NAME_REPLACE, MF_NAME_ADJECTIVE, etc. Applying these
flags earlier fixes this.
|
|
|
|
|
|
|
|
|
| |
A blood-sucking amphibious 'w'-glyph. It also submerges, much like swamp
worms, but will follow you onto dry land.
It has a tile, but after a quick play through of Swamp and using wizard
mode to create some, it's quite difficult to see. Hopefully someone can
improve the tile for me!
|
|
|
|
|
|
| |
This brings it in line with all the other "drake" monsters: "swamp
drake", "death drake", etc. I don't believe this change is contentious,
and I hopefully haven't broken tiles build.
|
|
|
|
|
|
|
|
| |
Removed inclusion of travel.h from most .h files to reduce the number
of .cc files dependant on it. This involved moving the level_pos
declaration to externs.h, moving the flood_find template to it's own
header file, and moving two typedefs from travel.h to travel_defs.h
because typedefs can't be forward declared (argh).
|
|
|
|
|
|
|
|
| |
When the random monster list isn't set in a portal vault, it generates
MONS_PROGRAM_BUGS. Instead of doing this, pick random monsters from
where you entered the portal vault from.
Hopefully this code doesn't cause any bugs.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Both values override the default class values. Placing "rat hd:20" will
generate a rat with a hit dice of 20, while placing "rat hp:20" will set
its hp to 20.
|
|
|
|
|
|
|
|
| |
create_monster(), when trying to avoid placing Beogh wrath dancing
weapons into dangerous clouds, would crash because the dummy dancing
weapon it created didn't have it's demon_ghost setup.
See bug #17.
|
|
|
|
|
|
|
|
|
|
| |
There was a check against you.can_see() in _place_monster_aux
which took place on the new level, while player position and
LOS were still on the old level.
Aside from possible other bugs, this was apparent in the
tutorial, which occasionally told the player about such
monsters.
|
|
|
|
|
|
|
|
| |
Move setting up of mons.ghost for pandemonium lords to define_monster(),
and also have define_monster() do some default initialization for (very)
ugly things and player ghosts, so that a simple define_monster() will
generate something valid to be displayed in the monster lookup menu
(?/M).
|
| |
|
| |
|
|
|
|
|
|
| |
This removes a couple of unnecessary includes from header files.
I may have missed adding some tiles includes.
|
| |
|
|
|
|
|
| |
Identical stats to a normal human, but start with an animal skin and a
different description. They should probably spawn with a weapon too.
|
|
|
|
|
|
| |
This counters the issue of him giving enough EXP for four humans plus
himself on death, but the possibility of as few as only one human
spawning.
|
| |
|
|
|
|
| |
... and mg.non_actor_summoner is empty.
|
|
|
|
|
|
|
|
|
|
| |
As per kilobyte's suggestion on c-r-d, Pikel's humans are named "slave"
until they are released from bondage on Pikel's death, in which case
they're called "freed slave".
Also clean up the Pikel band neutralisation code: instead of assuming
that all human monsters that are band members are Pikel's band, store a
value in monsters.props that signifies them as such.
|
|
|
|
|
|
| |
The Fire Storm spell could kill the summoner before the fire vortexes
could be placed, in which case trying to do blame annotation would cause
assertions.
|
|
|
|
|
| |
This was caused by bind_spell_flags() marking them as spellcasters when
mcls was temporarily changed to the base type to get the stats.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|