| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
But still allow x* to cycle through all object stacks. For now * and +
do the same thing when targetting apportation, but maybe it makes sense
to have * keep the old behaviour.
Note that SPFLAG_TARG_OBJ now uses the new DIR_MOVABLE_OBJECT
targeting_type. If we add a new object-targetting spell that *can*
affect corpses, we'll have to separate SPFLAG_TARG_OBJ into two flags.
|
| |
|
|
|
|
|
|
| |
With 4ad890b14, check_range was unused again. It can easily
be re-added with needed, though I'm not fond of the duplication
with the checks in cast_a_spell().
|
|
|
|
|
|
|
| |
This information was much more likely to just be confusing than to ever be
helpful, with spells above 100% fail rate being so far away from being usable.
This reverts commit d8f276cafa12f398840a0ddaa43c9495a76d16e5.
|
| |
|
|
|
|
| |
Which is currently just Dig, out of the previous set of mimicable spells.
|
|
|
|
|
| |
Sometimes, they're there to emphasize a break between two sections of code,
which is good. In a majority of cases, though, they're just inconsistent.
|
|
|
|
| |
See Mantis for discussion.
|
| |
|
|
|
|
|
|
|
| |
When adjusting or forgetting spells, remind the user in the title why
they're there. This is especially important now that Amnesia brings
up the spell list by default: the player won't see the amnesia prompt
first, so won't know why they're looking at a spell menu.
|
| |
|
|
|
|
|
|
| |
So long as the spell can be cast, memorisation will now always succeed,
with a warning prompt for spells with high miscast rates. Patch by
elliott.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I had to rename distance() (in coord.h) to distance2() because it conflicts
with the STL function to compare 2 iterators. Not a bad change given how it
returns the square of the distance anyway.
I also had to rename the message global variable (in message.cc) to buffer.
I tried to fix and improve the coding style has much as I could, but I
probably missed a few given how huge and tedious it is.
I also didn't touch crawl-gdb.py, and the stuff in prebuilt, rltiles/tool
and util/levcomp.*, because I have no clue about those.
|
|
|
|
|
|
| |
This fixes a bug related to non-beam spells such as Vampiric Draining
wherein they would never show up as being in range, and removes a now-unused
function argument.
|
| |
|
|
|
|
|
|
| |
The food type actually meant "casting this spell fives times costs at
most one <foodtype>" which was very unintuitive, and food types also
change in value depending on herbivore/carnivore mutations.
|
| |
|
|
|
|
| |
Its only use was incorrect: Disintegrate is a wand/monster spell, not a card.
|
|
|
|
|
| |
This mostly reverts 78d8ab06 which replaced Commonwealth "targetting" with US
"targeting", although there's also "cancelLing", "levelLing", "travelLing".
|
|
|
|
|
|
|
|
|
|
|
| |
miscast effect.
In the casting and memorization list, "12%" is now coloured one of four colours
based on the chance that casting the spell will cause a severity 2 or 3
miscast. This does not take into account Sif or Kiku's protection or penance.
The cutoff points are currently at 0.001, 0.005, and 0.025, and the colours
used are lightgrey, yellow, lightred, and red.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is slightly modified from the patch submitted here:
https://crawl.develz.org/mantis/view.php?id=5179
The original patch uses fractions instead of percentages, but I found this
to be quite visually cluttered and unhelpful.
After much fretting about the best way to implement this, I settled on
rounding up to 1% if your failure rate is below 1% but above 0. I tried some
alternatives, but I find this way to be the easiest for me to visually parse
at a quick glance at my spell list. If this is unideal, it's very easy to
change.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's no more restriction on training unknown skills. By default, they are
disabled in manual mode and enabled in auto mode, but they can be freely
toggled if restrictions are met.
A skill can be trained if there's any available mean of exercising it.
Fighting, throwing, dodging, stealth, stabbing, T&D, UC and spellcasting can
always be trained.
Weapon skills require carrying a weapon of the type.
Armour requires wearing an armour with an evasion penalty.
Shields needs either wearing a shield, knowing condensation shield or being able
to cast it from a rod of warding or having the divine shield ability.
Evocations requires carrying an evocable item, or having a Nemelex ability.
Spell schools require knowing a spell of the school (Necromancy can be trained
with having a Kiku ability).
Invocations requires having any divine ability that exercises it.
For edge cases, requirements are a bit loose. No need to carry missiles to
train throwing (or it disables itself when you run out), no minimum spell
success, no cap on skill level with buckler and leather for example.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a significant refactoring. All the spells now return a spret_type and
take a boolean which tells if the spell has actually failed.
Also some code clean up in _do_cast(). All spells have their own function now.
Also fix the following bugs:
* Properly abort fire storm if forced casting on a wall with '!'.
Also put a message for forced out of range casting (like cloud spells).
* Casting summon elemental on an invisible monster aborted with no cost.
* if a summoning spell aborts because create_monster fails, you don't lose a
turn. You still get a chance of miscast in this rare case.
* s2s, tukima and branding spells abort properly instead of consuming turn and
MP when player is not wielding appropriate object.
* s2s abort message when wielding a non-snakable.
|
|
|
|
|
|
| |
No more randomized power.
Wand: 15 + evoc * 2.5
Rod : 5 + evoc * 3
|
|
|
|
|
|
|
| |
"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.
|
|
|
|
|
| |
This fixes inconsistencies with TSO warning you about necro and poison
on un-ided staves. It's not like you won't get that Spellcasting 1 anyway...
|
|
|
|
| |
That's just a recipe for disaster.
|
|
|
|
|
|
|
| |
It's a matter of casting any spell twenty times or so at most.
Staves of channeling can be evoked with no spellcasting skills too (useful
for invocations/rods/guardian spirit).
|
|
|
|
|
|
| |
I did review it manually to find places where they made sense (like some
tables), but for a massive sed job like this there might be places that
I missed.
|
|
|
|
|
|
|
| |
Remove schools and spell success (irrelevant for rods)
Real hunger cost is displayed
Average power is displayed (5+2*evoc) but real power is still randomized
Range use average power
|
| |
|
|
|
|
|
|
| |
This reverts commit cb7513472897b423502a5d5be05daaebf9695782.
Pushed accidentally.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
There was a "really target self" prompt that was entirely
independent of player state, which is clearly wrong. Instead,
that should be handled by proper cloud tracers.
There's now an extra spell flag that allows bypassing that
prompt, applied to mephitic cloud, poisonous cloud and
evaporate for now.
|
| |
|
|
|
|
|
|
|
| |
You can now use "Z" to cast Fulsome Distillation despite there being no
corpses in view. It's rather hacky, as I've just passed the Z/z variable
down the spellcasting chain until it gets to the Fulsome code. There's
probably a better way to do this, but it seems to work properly for now.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
When spells can't be cast or memorised, display a better reason why.
Also, add more cases where spells can't be cast or memorised.
|
|
|
|
|
| |
And take care of capital letters. This seems to be problematic,
bit I learned that it's "targeting" from Darshan :)
|
| |
|
|
|
|
|
| |
Alter Fedhas' necromancy conduct, now Fedhas only cares about a
necromancy effects that involve corpses or chunks.
|
|
|
|
|
| |
Also make apportation use this. Apportation now doesn't target
out-of-sight objects anymore.
|
|
|
|
| |
Also, spell_list() now always displays in tiles mode for tiles builds.
|
|
|
|
|
|
|
|
|
|
| |
Chaotic things are now shapeshifters, mutators, etc., while unclean
things are diseasing things, rotting things, etc.
Zin still hates both. As good gods treat both unholy and evil monsters
as evil, he'll treat both unclean and chaotic monsters as chaotic.
Note that silver will only do extra damage to chaotics, as before.
|
|
|
|
|
|
|
|
| |
The list_spells() menu can now optionally be a tiles menu, and it can be
passed a callback to select which spells to list or not (and to select
which spells should be greyed-out).
Also made _calc_spell_range() a globally available function.
|
| |
|