| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
.cc, moving its contents into the new stepdown.cc and strings.cc.
(The latter also got many donations from libutil.h.)
Down with stuff! Up the new flesh!
|
|
|
|
|
|
|
|
|
|
|
|
| |
Flight gets a 11-aut respite from debuff_player(); this is... a
hack, but it's something. Forms didn't get this; this meant that
dispel-breath effects could instakill players in flying/floating
forms, or a player drinking !cancellation in the wrong place
would die instantly, without as much as a prompt.
This gives transformations the same delay as flight; all
transformations, since special-casing would confuse players.
Better solutions welcomed!
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was a very old special case preventing !cancel from
removing Slow caused by berserk. This was not only unintuitive
to players, but also inconsistent - the reasoning was that we
shouldn't affect nonmagical slowing, but what about slowing
from curare, which the potion does affect? What about slowing
which just happens to coincide with exhaust from another source?
Simpler to make it operate on a per-status-effect basis, rather
than trying to divine the original source of effects from
inadquate information.
|
| |
|
|
|
|
| |
From a comment.
|
| |
|
|
|
|
|
|
|
|
|
| |
A good deal of functions move to the two new files, mon-poly and
mon-message. Of the others, some go to where they are used, some to
mon-util, and a few are made member methods of monster.
This probably breaks Xcode compilation, and I'm not able to test
the changes I made to MSVC that will (hopefully) keep it working.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's almost never relevant (with Mennas being possibly the only edge
case), and has a number of negative effects: dungeon generation depending
on the player's god in Pan, strange interactions with getting additional
chances to convert on piety breakpoints, and generally a lot of code for
a pretty questionable gain. Flavour-wise it seems perfectly reasonable
that the holies in the dungeon just all see you as insufficiently pious,
or some kind of a heretic (as is the case for non-holy religious
monsters).
Kept some of the holy speech for the case where an Elyvilon worshipper
pacifies a holy.
|
|
|
|
|
|
|
| |
Touches a lot of files since their #includes have to be edited.
(Pushing now since it shouldn't break anything and keeping it updated
is nasty.)
|
|
|
|
|
|
|
|
|
| |
Namely, aborting out in this fashion wastes the scroll, like other means
of aborting out; this was the case with the weapon selection prompt but
not the prompts added afterwards.
Also removes a FIXME comment which prompted this; some discussion on IRC
suggests that this patch generates the desired behaviour.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It has been defaulting to `true` for a while now. That setting provides
a nicer interface overall and there is little reason to support alter-
nate input methods.
Some prompts asking for a letter have not been adjusted, for example
evoking a rod with multiple spells. Those are hopefully gone soon
anyways.
[Committer's note: The option had no known uses except by bots, and
those could work without it. And, of course, multi-spell rods are
gone.]
|
|
|
|
|
|
| |
Previously, the card's effects were more desirable the lower the
power. This removes the card-specific DUR_SLAYING and moves the
might effect to the higher powers, with agility as well at power 2.
|
| |
|
|
|
|
| |
Since Ashenzari should be the only way to get hold of them now.
|
|
|
|
|
|
| |
This includes identify, enchant armour, and recharging.
A lot of now-unnecessary code goes away with this.
|
| |
|
|
|
|
|
| |
Also expire them immediately when they fail, rather than still having a
short duration afterwards.
|
| |
|
|
|
|
|
|
|
|
| |
duration
They are kept as (short) durations but don't decrement while the corresponding
attribute is set. Each deflection has a chance to clear the attibute -
starting the duration countdown.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Weirdness and Mutations:
- Fangs II (Becomes III at xl8)
- Antimagic bite (Much stronger than standard bite, bites every turn,
applies antimagic brand, and restores your mana)
- Potions and wands cannot restore your HP
- Regen III
- Unbreathing
- Spirit shield
- HP -3
- MP +1
|
|
|
|
|
| |
I left them only where the contents is not indented, like in a namespace
or a template.
|
|
|
|
|
| |
The translation project is stalled, but this makes all of such static strings
trivially gatherable without any extra work.
|
|
|
|
|
| |
No particular reason, other than consistency. And all but two used wasteful
double-conversion, so this is not a speed regression.
|
|
|
|
|
|
|
|
|
| |
Also simplify quite a few cases.
It turns out in >90% cases of non-literals the argument had .c_str(),
which meant it was pointlessly malloc()ed and converted from and to
std::string. I believe a sprintf is faster, so even the argument of
miniscule speed-up doesn't apply.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A L2 buff that could easily be kept up permanently and gave a very powerful
effect for the entire game was problematic for a few reasons. The stealth
and trapfinding penalties were supposed to help with this, but they didn't
really succeed, so let's try something else.
Now Swiftness has two stages, of equal duration. In the first stage it
decreases movement delay by 25% and in the second stage it increases
movement delay by 50%. This has the effect that the spell is speed-neutral
over the two stages combined if you are moving the entire time, so you
cannot simply use the spell to kite monsters forever. It still provides a
powerful short-term boost to movement speed and the balance between the
two stages can be broken in a few ways, including simply taking more
non-movement actions during the second stage.
Of course, the spell cannot be recast while either stage is in effect.
The penalties to stealth and trapfinding have been removed and the spell
is now castable by Formicids.
|
|
|
|
|
|
| |
There is no point in testing the same conditional three times. This
weirdness appears to be an artefact of an earlier change: no one noticed
that the loop body had become independent of the loop index.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trog's hand was using DUR_REGENERAITON, and setting
ATTR_DIVINE_REGENERATION to true to specify it was the god ability and
not the spell.
This was silly, so this commit gives trog's hand its own duration:
DUR_TROGS_HAND.
This also fixes a very minor bug: previously if you had trog's hand
active and you tried to cast regen, you got penance but the spell was
immediately canceled. Other duration spells were not canceled.
|
|
|
|
|
| |
Can't test Android, MSVC or Mac, but a very brief glance at the diff suggests
it's unlikely they're affected.
|
| |
|
|
|
|
| |
Somehow this only worked when the scroll was not identified before.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
A warding amulet that provides you with another ring slot.
I rewrote some of the jewellery code, but never re-added the
TOUCH_UI code I removed in _prompt_ring_to_remove. Note that octopodes
never had TOUCH_UI code for their jewellery in the first place. This
should probably be looked at.
Also, the player dumps do not show the amulet
ring on the top, but I do not consider this a problem.
|
|
|
|
| |
Simplifies code in a number of places, and also fixes a few tree-moving bugs.
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's now updated every turn instead of every 20 turns and it's almost
deterministic (only the time scaling use randomized rounding).
The bad effects still happen every 20 turns though (just like hell effects and
other stuff).
It has been scaled by 1000. I tried with 100, but I still had some significant
rounding issues, especially with scaling to time_taken.
It shouldn't be possible anymore to gain yellow glow from a single cast of
invisibility even at max power. Although, in theory, it has a slight chance
of putting you just 1 point short of yellow (4999).
|
|
|
|
|
| |
Pull 'you.religion [!=]= FOO' checks into a function: you_worship(FOO).
This change is part of a large plan to clean up religion.
|
|
|
|
| |
Except for ghouls, is_player_same_species checked *genus*, not species.
|
| |
|
|
|
|
|
| |
They're too stupid to understand diplomacy. Besides, they must die.
Even PETA folks don't say they should be protected.
|
|\
| |
| |
| | |
Waiting for Grotesks and the Forest to go live!
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
mons_is_tentacle() now returns true only for actual tentacles, which
makes mons_is_tentacle_end() redundant.
mons_is_tentacle_or_tentacle_segment() does what mons_is_tentacle() used
to do, and is used properly on both sides of Mislead.
Handling of child tentacles (everything other than eldritch ones) is now
handled more generically, in case more types of them are added.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| | |
In addition to unifying code, this also has the effect of making
tombs created over shallow water restore shallow water when they
disappeared and Zin prisons restore the proper underlying feature
if the walls are forcibly destroyed instead of expiring (ie: with
LRD or shatter).
|
|/
|
|
|
|
| |
MP draining tends to be way powerful when applied to HP, thus we instead
use monster-like antimagic. This applies to antimagic weapons as well,
although those would work well even without this.
|