|Anonymous | Login | Signup for a new account||2019-04-24 20:41 CEST|
|Main | My View | View Issues | Change Log | Wiki | Tavern | News|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0007760||[DCSS] Patches||feature||N/A||2013-11-18 23:36||2014-03-12 18:44|
|Status||closed||Product Branch||0.14 ancient branch|
|Summary||0007760: Patch to implement Glaciate|
This patch is presently only mostly complete (No tiles done)
see https://crawl.develz.org/tavern/viewtopic.php?f=8&t=9854 [^] for the discussion
This spell is level 9, and intended to replace ice storm. Instead of firing one giant AoE effect, it fires four beams (using dazzling spray targeting) each hit does a fireball-sized blast, and is subject to AC and resistance reducing independently, and if you have less than 4 targets you'll hit the same targets again (up to 4 times on a single target) Four hits on the same target do roughly the same damage to a resistant creature as ice storm (obviously with less AOE) or less damage if the damage is spread across more creatures.
Creatures killed by Glaciate have a chance of turning into a frozen block of ice, which acts like a pillar of salt (blocks LoF, but not LoS, disappears after a short while) which can be destroyed normally before disappearing on their own.
This serves as a more extreme differentiation between ice storm and fire storm, the ice blocks in particular have a strategic value. Depending on how it's used this can either be very powerful (concentrated damage) or good at clearing out a lot of weaker monsters and less powerful.
This patch is based on master commit 07bc86d
|Tags||No tags attached.|
0001-Implementation-of-Glaciate.patch [^] (16,457 bytes) 2013-11-18 23:36 [Show Content]
0002-Glaciate-with-variable-rays.patch [^] (1,882 bytes) 2013-11-20 02:52 [Show Content]
0003-Make-glaciate-not-target-icy-statues.patch [^] (5,102 bytes) 2013-12-14 05:26 [Show Content]
0001-Glaciate.patch [^] (22,080 bytes) 2014-02-06 04:05 [Show Content]
0001-Glaciate-damage-falloff-with-distance-version.patch [^] (21,708 bytes) 2014-02-06 07:02 [Show Content]
glaciate.blocks.png [^] (4,426 bytes) 2014-02-09 21:45
|I haven't looked at this, but is there a reason it always shoots 4 beams? It might be be better if it varies a bit with randomness and spell power. Ice storm does that with its explosion radius, so maybe glaciate could have the ability to shoot 5 blasts sometimes, or as few as 3.|
|While the basic idea is good, this implementation strikes me as weird and overcomplicated. I think a regular cone, either with flat damage or one heavily biased towards places next to you like in this version, would be much better.|
edited on: 2013-11-19 17:22
I played around with varying the number of beams, the variance in damage done was too high for my tastes (in combination with rolled damage) with 5 beams the damage done to 1 critter was too high, with 3 beams too low, this could probably be managed by reducing the variance of the damage of each explosion, but keep in mind that (as currently implemented) all of the beams can hit the same target (concentrating it in one place) and I assume (perhaps incorrectly) we don't want a spell that can do around 25% more damage than ice storm on the high end. Increasing the number of beams doesn't merely increase the size of the AoE, it also increases the amount of potential damage done.
Something else I had played with was swapping the explosive blasts back and forth with non-explosive bolts randomly, based on spell power (so as to vary the area of effect without changing damage done) which I left out at the end because it seemed complicated to me, but is certainly another alternative if desired.
The implementation was actually done the way it was for two reasons, one to force you to choose a wide area of effect to hit a lot of critters or a lot of damage concentrated on a single target, and two because I didn't have to re-implement a new kind of targeting or area of effect (it was much simpler to just re-use the existing code from dazzling spray)
Obviously the numbers can be tweaked or randomized, and the actual targeting mechanism could be revamped to make it more cone-like (rather than a series of blasts exploding in a cone-shaped area) the thing I liked best about the spell when playtesting was the "become a frozen block of ice" as that came into play a number of times, multi-creature vs single-creature targeting was sometimes interesting, but less often so than using the frozen creatures as LoF blockers and movement-restrictors for enemies.
|A level 9 spell that does a ton of damage when there's only one enemy around (like IOOD) is certainly distinct from the others, so letting it vary with spellpower as evilmike suggested is probably fine.|
edited on: 2013-11-20 01:17
Well, if higher damage is not a problem than more variation of the number of beams is possible.
Targeting becomes a slight concern, if you can hit 3-5 targets, selecting 5 and only hitting 3 sucks, if it's the reverse, then you can't spread your damage out as much. You can't target as many critters as you have beams, because then you can cancel and re-cast if you get a poor roll, and if the effect is deterministic rather than random (Based on skill rather than power roll, say) then there's spoilery awkward set plateaus of damage (i.e. get X skill and you get one more beam for a significant damage bump) which I don't like design wise.
For me, I think the best option is random (based on power) extra beams with targeting the minimum number of beams (extra spellpower gets you extra shots on selected targets)
Lowering the minimum to 3 seems not too terrible, in theory spreading your damage out to 4 targets rather than 3 seems kinda cool, but in practice, finding 4 targets all in a 90 degree wedge, each 1 square or more away from each of the others isn't all that common.
(And in actual fact I originally selected 4 as a somewhat arbitrary number simply because the spray targeting accepted an argument and I wanted to see what non-3 numbers looked like)
So I've uploaded a new patch with variable number of shots, it does 3-6 beams like this:
unsigned int min_beams = 3;
unsigned int max_beams = min_beams
at spellpower 100, that's about 80% chance of 4 beams, 23% chance of 5 beams, and about 13% chance at 6 beams.
at spellpower 200 that's about 100% chance of 4 beams, 76% chance of 5 beams, 22% chance of 6 beams.
I also slightly altered the damage for each blast (made it more reliant on spellpower, and more variable)
I don't think the multibeam dazzling spray targeting is a good idea if it means that the spell does more damage when it selects fewer targets - the targeting is fiddly and finding the right angle to avoid that rat and pile as many beams as possible on Mennas sounds annoying.
I also worry a little bit about the frozen dead monsters getting in the player's way when casting the spell multiple times in a row - the reason why fire storm is smite targeted is to avoid annoyance with the vortices getting in the way, and this seems like it could be similar, though probably less bad. So maybe some sort of smite targeting is worth considering, or a cone as kilobyte suggested and make it penetrating.
|There are some concerns in ##crawl that the damage numbers may be too weak. In particular, if you target a single monster, it ought to do more damage than ice storm, since you're giving up the large AOE.|
With current code as-is
Average damage for ice storm:
Power 100: 61
Power 200: 111
Average damage for glaciate against a single target:
Power 100: 94 (25/beam: 75 for 3 beams, 80% chance of 100 (4 beams), 23% of 125, 13% of 150_
Power 200: 216 (47/beam: 188 for 4 beams, 76% of 235, 22% of 282)
That's before AC, so high AC critters will actually take less than that, but it looks to me like the numbers work out damage-wise pretty decently.
edited on: 2013-12-09 22:39
Also (For those who haven't tried it yet) each beam ends in a fireball-sized explosion, so it's not like you're giving up *all* the area of effect, just a significant chunk of it, and if you spread the attacks out completely (3 targets, with no overlap), it has about the same area as ice storm (in total) but slightly less damage.
In short more damage to a single target (or tightly packed cluster of targets) than ice storm, less damage to a fully spread-out target set (Although the targeting is a little more flexible) plus nifty ice statues that make effective short-term LOS blockers.
|Siegurt: thanks. I misunderstood "Four hits on the same target do roughly the same damage to a resistant creature as ice storm (obviously with less AOE)", or rather thought that the comment still applied to the updated patch.|
|Added a new patch which prevents glaciate's secondary rays from targeting the ice statues it creates (Actually it has a little broader impact than that, it prevents the secondary rays of any spray from targeting things that wouldn't be "targets" for the primary ray (Battlesphere and the like))|
Just for fun, here's an alternate implementation of Glaciate.
Instead of firing a variable number of beams, it affects a cone-shaped area; at short ranges it deals Ice Storm-level damage (and leaves freezing clouds that last as long), but can affect larger areas for progressively less damage and freezing cloud duration.
The block of ice effect is intact (actually, it borrows the code from the previous implementation).
Also, monsters can cast it! So if it replaces Ice Storm, Lom Lobon is all set.
|...and another version of the above where the cone is a constant size and damage falls off with distance rather than being constant over the cone.|
|A couple of tiles, admittedly obvious Simulacrum edits. These can probably be stand-in tiles until later, at least.|
After some extensive testing, Glaciate, specifically the falloff version, is now in trunk. Thanks to roctavian for the ice block tiles.
There'll probably be a point when the icicle version of the spell turns into something, but for now that's in limbo.
|Implemented (Differently than I had envisioned, but cool nonetheless)|
|2013-11-18 23:36||Siegurt||New Issue|
|2013-11-18 23:36||Siegurt||File Added: 0001-Implementation-of-Glaciate.patch|
|2013-11-19 02:02||evilmike||Note Added: 0024434|
|2013-11-19 02:14||KiloByte||Note Added: 0024435|
|2013-11-19 17:22||Siegurt||Note Added: 0024438|
|2013-11-19 17:22||Siegurt||Note Edited: 0024438|
|2013-11-19 23:10||rchandra||Note Added: 0024439|
|2013-11-20 01:15||Siegurt||Note Added: 0024440|
|2013-11-20 01:17||Siegurt||Note Edited: 0024440|
|2013-11-20 02:51||Siegurt||Note Added: 0024441|
|2013-11-20 02:52||Siegurt||File Added: 0002-Glaciate-with-variable-rays.patch|
|2013-11-23 02:01||elliptic||Note Added: 0024463|
|2013-12-07 18:20||1010011010||Issue Monitored: 1010011010|
|2013-12-07 18:21||1010011010||Issue End Monitor: 1010011010|
|2013-12-09 04:03||neil||Note Added: 0024647|
|2013-12-09 22:33||Siegurt||Note Added: 0024652|
|2013-12-09 22:38||Siegurt||Note Added: 0024653|
|2013-12-09 22:39||Siegurt||Note Edited: 0024653|
|2013-12-12 17:11||neil||Note Added: 0024719|
|2013-12-14 05:26||Siegurt||File Added: 0003-Make-glaciate-not-target-icy-statues.patch|
|2013-12-14 05:34||Siegurt||Note Added: 0024727|
|2014-02-06 04:05||sgrunt||File Added: 0001-Glaciate.patch|
|2014-02-06 04:07||sgrunt||Note Added: 0025215|
|2014-02-06 07:02||sgrunt||File Added: 0001-Glaciate-damage-falloff-with-distance-version.patch|
|2014-02-06 07:02||sgrunt||Note Added: 0025216|
|2014-02-09 21:45||roctavian||File Added: glaciate.blocks.png|
|2014-02-09 21:46||roctavian||Note Added: 0025256|
|2014-02-26 06:48||sgrunt||Note Added: 0025420|
|2014-02-26 06:48||sgrunt||Assigned To||=> sgrunt|
|2014-02-26 06:48||sgrunt||Status||new => resolved|
|2014-02-26 06:48||sgrunt||Resolution||open => done|
|2014-02-26 06:48||sgrunt||Fixed in Branch||=> 0.14 development branch|
|2014-03-12 18:44||Siegurt||Note Added: 0025579|
|2014-03-12 18:44||Siegurt||Status||resolved => closed|
|Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group|