| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Reduce normal Phantom Mirror hp to 35% of the original's (to hopefully
make it more reasonable to sometimes kill them instead of the rakshasa).
Mara clones and rakshasa low-hp clones remain at 50% of their original.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rakshasa were a monster that seemed to have little purpose. They
couldn't really hurt you (barring picking up a rod or something),
yet would duplicate in large numbers and make it rather hard to
make them go away. This is aimed at turning their basic behavior
into something that can present an actual threat, while
simultaneously being less obtrusive.
Rakshasa's new spellset consists of Phantom Mirror, IMB, and (less)
blink. Phantom Mirror can be used only on other monsters - not
themselves - allowing them to perform a support role by duplicating
other threats. When they are reduced to 50% hp, as a one-time effect
they will split into 3, but cannot otherwise copy themselves or do
so continuously (they only regain this ability after recovering to
full hp, which probably means you ran away and rested for a while).
This commit also gives them actual equipment.
|
|
|
|
|
|
|
|
|
|
|
| |
Sprays clouds over a cone-shaped area in front of the caster. At low
power it gives rain, mist, or noxious fumes; mid-tier gives flames,
freezing vapour, or poison gas; high-tier gives one of three new cloud
types - acidic fog, negative energy, or storm clouds.
The targeter is from an experimental implementation of a spell called
"Scattershot", hence the name and some of the functionality it provides
which goes unused here.
|
|
|
|
|
| |
That is, unless you count the ones in ncurses' headers, which I can't
do anything except suppress.
|
|
|
|
|
|
| |
It's now 2-4, down from 3-7.
Convokers still convoke 3-7.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
These are moderately-armoured support soldiers who can cast might
other and word of recall, which requires several turns for them to
fully recite (during which time it can be interrupted by disabling
or killing them), and after which will teleport a moderate number
of I_NORMAL or better monsters to near the convoker's location.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit is only designed to implement breath-weapon timeouts for
draconians and dragons of every taste and flavour. This is slightly
problematic because it relies on mons_genus to return MONS_DRAGON, and
usees this to determine whether or not the monster should be allowed to
use the breath weapon.
The current time-out is 1d5. I had previously suggested
1+random2(10-(HD/3)) but it was suggested this might be a bit too much.
1d5 is subject to change, of course, and as this uses a function to set
the time-out, the exact value can be defined per-monster, per-genus,
etc.
Hopefully, I've caught every use of breath weapon. I need to test drakes
a little bit more extensively.
Problematically, the code currently classes a breath weapon either by a
draconian's breath weapon being cast (in mon-cast.cc:1684) and the
monster's genus being draconian, or the monster's genus being a dragon.
Abilities are handled differently.
This might thus prove problematic for monsters which have both beams for
breath weapons, as well as other auxiliary spells. These, if they exist
(and I do not think they currently do), would be unusable until the end
of the duration.
Also, it nerfs dragons a bit! Pearl dragons will no longer spam holy
breath at you, etc: this primarily is the reason for the code. If it's
found to be too much of a nerf, it maybe be adjusted to only trigger on
certain types of dragon, etc.
|
| |
|
|
|
|
|
|
|
| |
"File:" is shown in your editor's status bar.
"Written by:" was used only for the first person who changed a file. We got
git for that now, and pre-DCSS history is so woefully inaccurate it doesn't
really matter.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Should be mostly functionally equivalent to before, though
"UNSEEN BEAM" was lost.
|
|
|
|
|
|
| |
When cloning the player, Mara will now create MONS_PLAYER_ILLUSION instead of MONS_PLAYER_GHOST. Illusions are identical to ghosts, but will get the correct breath weapon (for draconian players) and the correct holiness (i.e. undead only if the player is undead).
Clones also inherit appropriate enchantments from their original, so if the player/other target is berserk, the clone will also be berserk.
|
|
|
|
|
|
|
| |
Some classes were erroneously referred to as 'struct' in forward
declarations, and vice versa.
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This re-uses several ideas from the Emerald Eye FR, and implements the
spell "Mislead": this grants the "Misled" status effect to the player,
and causes on-level monsters to appear (glyph, name and tile) to be
other monsters. Only their appearance is changed.
Healing potions and rain remove this status effect.
Mara also has a beefed-up version of the Rakshasa clone spell: it
instead creates an "exact" clone (slightly altered spells list, and
non-unique status for his clones). Only two will ever be created at
once.
Finally, he has the spell "Summon Player Ghost". This spell creates a
ghost of the player (though marked as a summon, meaning that it
(shouldn't) register a milestone, though it will be treated as a
self-ghost kill) that is hostile. Only one of these should be existant
at any one point in time.
I'm pretty sure that I haven't broken anything, but would definitely
appreciate someone sanity-checking this commit.
Known minor issue: Kirke's summon ugly things being cast while having
the Misled status causes them to show up with no glyph.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a wizard or priest is polymorphed into a monster without hands, then
when it casts a spell preserved across the polymorph (rather than any
innate ability or spell) then to avoid getting weird messages (like
"Harold breaths UNSEEN BEAM at you") the first lookup key for
dat/database/monspell.txt is "polymorphed wizard" or
"polymorphed priest."
NOTE: There should probably be a greater variety of messages depending
on shpae, like "quadruped wizard" and "blob wizard".
|
|
|
|
|
| |
is_valid_mon_spell() should now correctly return true for non-targetted
monster spells.
|
|
|
|
|
|
| |
Give an error when parsing a monster spec if it lists a spell a monster
can't cast, rather than causing an assertion when the monster tries to
cast it.
|
|
A lot of monstuff.cc was moved into mon-abil.cc (monster abilities),
mon-act.cc (the main monster loop), mon-behv.cc (monster behaviour) and
mon-cast.cc (monster spells). mstuff2.cc was completely merged into
other files.
|