| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
the level to use the pathfinding routines for patrolling. The monsters
still sometimes disappear when near the exit instead of on it, which
needs to be fixed, but it's vastly closer to working properly.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6186 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
monsters, or for monsters that aren't holy, natural, undead, or demonic.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6085 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5966 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
find the nearest exit, and disappear once they reach it. There's a new
travel target, MTRAV_EXIT.
Notes:
This is currently very simplistic. The monsters still don't use
pathfinding, so if they're blocked, they'll just stand there again.
With shaft traps, the monsters shouldn't try to go directly to the
target, since they can't disappear at the same time they fall through to
another level.
With teleport traps, they should only go to them when all paths to exits
are blocked, and they shouldn't disappear when they hit them. There may
also be issues if a monster hits one and reappears nearby, since it
won't be far enough outside the player's LOS to disappear.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5935 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BEH_LEAVE replaces BEH_INVESTIGATE, which wasn't being used.
Notes:
Since leaving the level is similar to fleeing in some ways, monsters
leaving the level share some behaviors with fleeing monsters: they are
less likely to shoot; they are more likely to use scrolls of blinking or
teleportation; and leaving eyeballs won't paralyze you or drain your MP.
Leaving the level is also similar to lurking in some ways, so it won't
be interrupted by noticing something, just as with lurking.
Getting far enough away from a monster will make it leave the level
(i.e., die with KILL_DISMISSED and MF_HARD_RESET, so it takes its stuff
with it), as will getting it into a grid it can submerge in, at which
time it will submerge and leave the level. Neither of these apply to
monsters that can't move, of course, except for mimics, since they can
teleport.
Incomplete things (sorry for the mess):
I still haven't figured out how to make a monster target a dungeon
feature (in this case, the nearest level exit, the nearest teleportation
or shaft trap, or the nearest submersible grid), so, currently, a
pacified monster will just go to where its last target was and stand
there until/unless one of the aforementioned level exit scenarios
occurs.
Pacified monsters can still cast summoning spells. Whatever they summon
is neutral, just as they are, but such summons can still get in the way.
(Try pacifying an orc high priest, for example.) Maybe summoning should
be disabled or have its chance lowered for neutral monsters in general,
unless something's in their way?
Speaking of targeting, the leaving-by-submerging scenario should occur
only if there's no other way to reach the target: all ways off the level
are blocked, the monster's habitat is water and it's not amphibious, the
monster's habitat is lava, or (possibly) the monster's habitat is rock.
There should be a message if the monster leaves the level, but what
about the ones that do so out of the player's LOS?
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5924 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5900 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5899 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5891 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5885 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5814 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
granted to you by that god are affected.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5803 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
player spell "Paralyse" with it, i.e. not the wand/potion/misc. effects.
Petrify is a 4th level spell of the Enchantment/Transmigrations school
(a unique combination, I believe), all other values (incl. the level)
were shamelessly stolen from Paralysis.
Anyway, it consists of two elements (so I actually added TWO new
enchantments), Petrifying and Petrified.
A monster that is petrifying cannot move around but can perform actions
like hitting adjacent monsters or casting spells at a slowed rate (1.5
of the normal cost). Once this sub-enchantment runs out (happens faster)
the monster cannot move or act anymore, so it works like Paralysis. The
damage you do during stabbing is one third of what you'd do otherwise,
for both states of enchantment, and for both stabbing counts as
unchivalric behaviour.
It has not been implemented as a monster spell, and ghosts of characters
that had it will use Paralyse instead. Consequently, the effect on the
player (in self targetting) only handles the Petrified part.
Numbers, esp. enchantment timeout, will need tweaking. They're currently
Petrifying:
cturn = 50 / _mod_speed(10, mons->speed);
Petrified:
cturn = std::max(8, 150 / (1 + modded_speed(mons, 5)))
because I wanted the first to always run out faster than the second, but
at the same time make the ratio of Petrifying/Petrified tilt in favour
of the first for powerful monsters. The numbers are more or less made
up, and tested with different monsters in wizard mode. Still, could be
anything between too weak and overpowered, though the latter is more
likely.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5761 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
| |
and make them become enraged by your lawful aura if you start
worshipping Zin.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5750 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
| |
which gift. There was an unused god parameter in the monsters struct,
which was probably intended to hold which god a monster worshipped.
I've used it as an indicator of which god sent the monster, under the
assumption that gods would send their own worshippers as gifts. (I hope
this isn't an abuse of it.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5748 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
or lava. I've added some more checks to avoid hampering performance too
much, but of course there's still space for improvement.
Once per turn check whether the player can see water and/or lava, and
only if this is the case run the additional checks (monster habitat,
grid_see_grid) when a monster tries to move.
Smart monsters that have a ranged attack won't use pathfinding either
since they can directly fire at the player. (This is identical to their
pre-pathfinding behaviour.)
Also fix butterflies really not interrupting resting. (Setting it to 0
doesn't work for some reason.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5737 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
function, as it'll be simpler in the long run.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5649 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5639 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
| |
the player (Whoops!)
Fix 1945669: Monsters attacking via reaching still getting secondary
unarmed attacks.
And... we're down to one page of bug reports, yay! :D
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5500 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
Some modifications to the pathfind travel_cost function.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5491 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
already done for vaults.
Modify monster speech to make the beast only use some selected shouts
(i.e. not "You hear an irritating whine") and NEVER do the demon taunts
since it cannot speak.
Demon lords can use almost the whole array of speaking verbs except for
"buzz" and "whine".
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5400 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5291 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5156 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
| |
Fix monsters behind glass walls being autotargetted for spells that
need a path.
Fix spacing in spl-data.h, and add some comments about commenting
to coding_conventions.txt.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5148 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and use it in the checks for monster/monster visibility.
I didn't have the time to test it but it should at least solve part of
the problem of monsters firing through walls (if monster visibility is
even checked there, which I don't know).
Also (as usually), more code cleanup.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5117 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
| |
* Reallow monster placement of bands (at least for Beogh's retribution;
it might be similarly buggy for normal generation).
* Extend documentation on orc naming, and sometimes name the band
leader of a band sent after you for retribution.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4894 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
| |
monster number. May be buggy.
Allow hydra zombies (they currently do not get the right number of heads).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4872 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
| |
Monster names are now stored in the monster struct and saved.
Changed some monster-finding functions to return monsters* instead of monster index for type-safety.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4859 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4665 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
rare and let the chance depend on max hp. Clean up naming some.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4588 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of dolorous' fabulous blessing routines.
* Allow the possibility of naming monsters:
A monster's random name seed is stored in its number property, and the
actual name gets picked from randname.txt. (Once this leaves the
experimental stage I'll move them into a file of their own.)
This means that monster types that already use number for something
else (hydras for #heads, manticores for #spikes, or zombies for
monster type) cannot be named.
Use the new functions for naming orcs blessed by Beogh. Only
non-generic orcs may get named, e.g. orcs promoted to priesthood or orc
warriors that get their weapon enchanted.
I tried to come up with a number of thematic orcish names, and if
anyone would like to contribute, they're welcome to do so.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4586 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
M_STATIONARY flag, and mark stationary monsters with it.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4553 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4552 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
| |
piety will not attack you and can swap positions with you. All other
neutral beings behave the same as before.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4119 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
| |
monsters and temporarily neutral monsters anymore.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4117 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4115 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4113 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4112 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4111 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to also saturate the blood with floor.
Add a basic blood scent effect: all hounds, vampires, and the mosquito get
M_BLOOD_SCENT which will let them wake up when blood is spilled in their
vicinity. smell_blood() is rather similar to noisy(), so monsters will try
to seek the origin of the blood spilled.
Player vampires now get a message if blood is spilled outside their LOS,
"You smell fresh blood" with a distance estimate ("near-by", "in the distance")
added for vampires that are (near) bloodless. Also, the radius a vampire will
be capable of smelling blood will increase the thirstier he is.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3936 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
| |
invalid_monster_index(), and use that where applicable. Also, put the
"god gift" flag back on orcish followers, since the Crusade card now
handles orc conversion properly for Beoghites, and so that the index
check doesn't have to be done twice for collateral kills.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3755 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3650 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3648 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1.) Vampires can only suck blood from creatures with M_COLD_BLOOD or
M_WARM_BLOOD set (no insects anymore!)
These restrictions are the same for blood spatter.
Also, the monster's corpse must be of type contaminated (e.g. gnoll)
or clean. Everything will be rejected.
2.) At xl 6 vampires gain the ability to create potions of blood from
butchered corpses. The delay is the same as for butchering, and they also
need a butchering tool (since I now think fangs don't really cut it);
only the messaging is different, and the result, of course.
If the monster doesn't meet the restrictions in (1), the corpse gets
butchered instead (important when there are necromancers roaming about)
and the resulting chunks don't get the THROWN flag set because vampires
are unlikely to want to pick them up.
3.) Potions of blood can turn bad.
They last about 1200 turns which is a rather long time, though of course
not infinite. Potions created from corpses take the corpse age into
account. From age 199 downwards potions of blood are described as
"congealed blood". The effect when quaffing is entirely the same, it's
just a warning that the potion will soon disappear.
I've moved the potion descriptions over into item.plus, so that I could
use item.special for the timer to allow for easy comparison in
update_corpses() etc.
Ideally each stack of potions of blood would have a props vector
attached (similarly to decks) with the timeout turns stored in order
oldest to newest, so that you'd always drink the oldest potion first, and
if a potion was too old it (and it's time value) would just drop out of
the stack.
Since I haven't got this to work yet, instead the weighted average age
of two substacks is calculated and used for the combined stack.
Congealed (age < 200) and comparatively fresh (age >= 200) potions of
blood will never stack.
As suggested in FR 191314, !blood are a now an additional power source for
Sublimation of Blood, and the used potion turns into decay. And speaking of
decay, I've modified the mummy curse to only affect a substack if the
to-be-decayed potions are blood because I think losing your food source that
way would be the equivalent of spores destroying all your food at the same
time.
I think that's it; might still be buggy though I *did* test with some
vampires, both wiz-mode and not, and because of the special -> plus change
for potions, existing potions will now all look alike (clear potions).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3626 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
| |
it was necessary for Glamour but even that appears to have used
another function, mons_is_humanoid(), that made checks against
monster glyph instead. Strange.
So in case anyone is badly in need of a monster flag, no. 15 is free! :)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3623 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
| |
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3621 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of these fall into the category:
- don't use struct to refer to a class, and vice versa
- msvc doesn't like unistd.h or dirent.h
Doesn't fix all the struct/class problems; I think I'll silence
those for now and move on because it's not all that important.
Tested on OS X.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3571 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FR 1870291: Give a message when gaining exp for killing monsters
outside LOS.
(This is something the player can find out by checking
their xp pool, anyway, so it's not like it gives
anything away. Currently does not happen for pet kills,
should it?)
Implement 1829910: Make Daevas fully resist negative energy, with the
reasoning that TSO will protect them.
Also, fix dragon slaying to actually have an effect on draconian
players (whoops!) as well as on characters in Dragon Form.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3282 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
| |
Added more control when specifying draconians in maps (any yellow draconian, green draconian knight, any nonbase red draconian, any base draconian, etc.).
Fixed crash when dragon or draconian breathes and the player is unarmed.
Replaced magic number 250 in monster creation with enum constant MONS_PROGRAM_BUG.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3253 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
| |
suggestions welcome.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3232 c06c8d41-db1a-0410-9941-cceddc491573
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
adjusted per monster to hand out the right resists. The current
MR_RES_FIRE gives one level of resistance only.
Added a real ghost structure, discarded the old ghost values array.
Adjusted bones file format so bones will work out-of-the-box with
Hearse. Breaks bones format, older bones will be rejected.
Fixed some maps with bad DEPTHs.
Added more safe answers in Y/N prompts, added a check to make it less
likely that Crawl will spin in a tight loop reading input from a
closed tty.
(Experimental) !a will override existing foe of friendlies in LOS.
Blademasters no longer pick up stuff to throw (Erik).
Zombies of swimming things are also swimming things. Currently applies
only to zombies explicitly placed in .des files, since fish zombies
cannot be generated otherwise (can of worms).
Morgue is now saved before showing the inventory and other boring
end-of-game stuff.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3231 c06c8d41-db1a-0410-9941-cceddc491573
|