Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007702 [DCSS] Patches feature N/A 2013-11-05 21:36 2014-02-10 17:56
Reporter argonaut View Status public  
Assigned To MarvinPA
Priority normal Resolution done  
Status resolved   Product Branch 0.14 ancient branch
Summary 0007702: Don't timeout repel/deflect missiles
Description Instead they'll deflect a set (random) number when cast.

This does 2 things: prevents the tedium of recasting while travelling, and makes it more likely that you'll need to recast in combat (since that's the only time it goes away).
Additional Information
Tags No tags attached.
Attached Files ? file icon missile_deflection.patch [^] (5,115 bytes) 2013-11-05 21:36 [Show Content]
? file icon 0001-Don-t-timeout-repel-deflect-missiles.patch [^] (5,867 bytes) 2013-11-23 02:54 [Show Content]
? file icon 0002-Save-compat-scale-down-old-RD-Msl-durations.patch [^] (1,526 bytes) 2013-11-23 02:55 [Show Content]
? file icon 0003-Expire-RD-Msl-with-scroll-of-vulnerability.patch [^] (1,052 bytes) 2013-11-23 02:55 [Show Content]
? file icon 0004-missile-delection.patch [^] (10,968 bytes) 2013-12-13 20:17 [Show Content]
? file icon 0005-missile-deflection.patch [^] (7,439 bytes) 2014-01-27 19:08 [Show Content]

- Relationships

-  Notes
Bloax (reporter)
2013-11-05 21:56

This sounds like a great idea, and it'd also be a nerf to the very powerful Investment:Profit ratio of RMsl at the moment - since I take it the AMOUNT of shots the two spells affect would now depend on spell power; which at almost no investment would be very low.
elliptic (developer)
2013-11-23 02:21

My concern about this is that people will want to cast it at the end of every battle to refresh the "duration", since even if it is still up, it might have lost some. Thus it won't actually be true that players will mainly be recasting it during battles, which is the primary attraction of this sort of idea to me.

One way of fixing this (maybe there is a better solution) would be to change it so that it has no duration, but has a fixed chance (possibly depending on spell power, but not on the number of previous deflections) of breaking whenever it deflects a missile. For example, if we want a single cast to deflect 10 missiles on average, it could have a 10% chance of breaking after each one.
neil (administrator)
2013-11-23 02:48

I like the idea (or with elliptic's suggestion). From a technical point of view I see a few problems with the patch as-is:

1. Old saves will have [RD]Msl durations that are way too high under the new scale. There needs to be save compat handling to rescale leftover durations.

2. Scroll of vulnerability will need some special handling to expire them (it takes most durations down to 1 rather than 0 so they can timeout naturally).

3. More generally than both the above: I think representing the number of hits left as a duration is bad (also because of the scaling). I think it should probably be an attribute instead.

elliptic's suggestion for stochastic expiration would probably make all of these issue moot, as you'd just need a flag and not any kind of number.
neil (administrator)
2013-11-23 02:51

I updated argonaut's patch against latest trunk, and added commit metadata.

I also made patches to address technical points 1. and 2.
argonaut (reporter)
2013-11-25 16:14

Thanks for the feedback. In my testing I did end up recasting at the end of every battle but still needed to refresh it in fights with centaur/yaktaur packs.

The attribute option seems interesting - I'll take a look at that. I just used the duration to minimize changes.

I'm thinking of starting the chances to expire at Note: 0000030% at low power and going down to ~2% at max. The downside of a fixed chance is that you'll be casting a lot less frequently and so you might use wizardry/brilliance to get it going and it won't have as much hunger impact.
argonaut (reporter)
2013-12-13 20:22

A new version is up using attributes rather than durations. I kept the value a number of missiles rather than a percentage since that seemed easier to balance.

I also took a hint from the new swiftness and only allow refreshing when it's about to expire.
chris (updater)
2014-01-16 09:13

Would much rather like to see the expiry chance elliptic suggested as well. As for your concerns: hunger costs do not exist, wizardry helping spells is not a problem, and especially so for brilliance which is a consumable.
argonaut (reporter)
2014-01-27 19:18

YAVersion using attribute chances to start the duration countdown. Since durations are still used there are no old save issues - they'll timeout normally since the attribute won't be set and on the next casting things will work normally. I also reduced RMsl's max spell power to limit the expiration chance to 10% at best, DMsl can go all the way down to 2%.
MarvinPA (developer)
2014-02-09 00:58

I applied the latest patch, with a few minor tweaks. Are you in CREDITS.txt? And if not, what name would you like to be credited as?
argonaut (reporter)
2014-02-10 17:56

Thanks. I'm not in CREDITS.txt, please use Aaron Olowin.

- Issue History
Date Modified Username Field Change
2013-11-05 21:36 argonaut New Issue
2013-11-05 21:36 argonaut File Added: missile_deflection.patch
2013-11-05 21:56 Bloax Note Added: 0024307
2013-11-23 02:21 elliptic Note Added: 0024465
2013-11-23 02:48 neil Note Added: 0024467
2013-11-23 02:51 neil Note Added: 0024468
2013-11-23 02:52 neil File Added: 0001-Don-t-timeout-repel-deflect-missiles.patch
2013-11-23 02:52 neil File Added: 0002-Save-compat-scale-down-old-RD-Msl-durations.patch
2013-11-23 02:52 neil File Added: 0003-Expire-RD-Msl-with-scroll-of-vulnerability.patch
2013-11-23 02:54 neil File Deleted: 0001-Don-t-timeout-repel-deflect-missiles.patch
2013-11-23 02:54 neil File Deleted: 0002-Save-compat-scale-down-old-RD-Msl-durations.patch
2013-11-23 02:54 neil File Deleted: 0003-Expire-RD-Msl-with-scroll-of-vulnerability.patch
2013-11-23 02:54 neil File Added: 0001-Don-t-timeout-repel-deflect-missiles.patch
2013-11-23 02:55 neil File Added: 0002-Save-compat-scale-down-old-RD-Msl-durations.patch
2013-11-23 02:55 neil File Added: 0003-Expire-RD-Msl-with-scroll-of-vulnerability.patch
2013-11-25 16:14 argonaut Note Added: 0024495
2013-12-13 20:17 argonaut File Added: 0004-missile-delection.patch
2013-12-13 20:22 argonaut Note Added: 0024723
2014-01-16 09:13 chris Note Added: 0025006
2014-01-16 23:29 MarvinPA Issue Monitored: MarvinPA
2014-01-27 19:08 argonaut File Added: 0005-missile-deflection.patch
2014-01-27 19:18 argonaut Note Added: 0025114
2014-02-09 00:58 MarvinPA Note Added: 0025230
2014-02-09 00:58 MarvinPA Status new => resolved
2014-02-09 00:58 MarvinPA Fixed in Branch => 0.14 development branch
2014-02-09 00:58 MarvinPA Resolution open => done
2014-02-09 00:58 MarvinPA Assigned To => MarvinPA
2014-02-09 01:10 MarvinPA Issue End Monitor: MarvinPA
2014-02-09 20:15 MarvinPA Issue Monitored: MarvinPA
2014-02-10 17:56 argonaut Note Added: 0025273
2014-02-10 21:11 MarvinPA Issue End Monitor: MarvinPA

Mantis 1.1.8[^]
Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker