Interface proposal: auto recast


Although the central place for design discussion is ##crawl-dev on freenode, some may find it helpful to discuss requests and suggestions here first.

Tomb Titivator

Posts: 830

Joined: Wednesday, 17th April 2013, 13:28

Post Tuesday, 16th July 2013, 13:03

Interface proposal: auto recast

Or, poor man's permabuffs.

There's been a lot of discussion about changing buffs so that instead of being periodically recast, they'll be active all the time while draining off some mana. See:

https://crawl.develz.org/wiki/doku.php? ... r_duration

The rationale is that most higher level characters keep their buffs up anyway, and having to recast is tedious. However, there are many issues of game balance to consider when implementing permabuffs.

My proposal: add an auto recast menu. This can be reached from the "I" menu (spells), for example. The auto recast menu shows a list of eligible spells (that the character has memorized and can be re-cast). The player toggles the spells that he/she wants to re-cast. On expiration of the spell, a new cast of the spell is attempted. If the spell is miscast, the player will need to cast manually again to start the cycle up.

Advantages:
1) Player has fine control over which spells are to be permabuff style and which are to be manually cast. This is useful especially for higher level buffs with still high failure rates.
2) Essentially, this is the same system as before, just automated. No game rebalancing necessary.
3) Fairly simple to code. In fact, I have a pretty good idea of how to implement it already. In main.cc, in the _decrement_a_duration() function, when (you.duration[dur]==0), call a _do_cast() if the auto recast toggle is set.

Btw, this may all be possible with Lua scripting, but I don't know Lua and I have been diving into the code recently, so that's why I propose to do it in the main code.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Tuesday, 16th July 2013, 13:46

Re: Interface proposal: auto recast

There are some considerations with a proposal like this:

1) Yes it has been discussed a lot previously - but actually on several discussions devs have concluded that permabuffs could be the wrong direction. Unfortunately people don't usually gather output from all channels of discussion onto the relevant wiki page :) The issue as I understand it is that spells should be about tactical decisions. The problem is if you can permacast e.g. swiftness or rmsl, it's a no-brainer to have them on the whole time (well, assuming you're getting any benefit from swiftness in the first place). So not only do these spells become a strategic consideration instead of tactical, but also the element of choice is removed.

2) Interface-wise, I don't think an extra menu is the right way if we were going to have this. It adds a lot of complexity for a very marginal degree of flexibility. There are further problems such as if a buff expires in a fight you probably don't want to recast, especially not with a non-zero failure rate. I would prefer to just make these spells always have a different type of casting whereby you can toggle them on and off. (Hell, it could even be worth considering making them mutually exclusive; but as was pointed out in another thread this is kind of TMut's shtick.) They would always operate at your current max spell power, and spells would need to be changed so power always improved the spell's effect, rather than just increasing duration like many (most?) do now.

Now ... as part of the ongoing summoning improvements I have been considering a permabuff-style thing of making some summons permament but reduce your MaxMP while alive. My simple approach for this would be to just use the spell's level for the MaxMP deduction, and set the spell level appropriately considering the fact that it's a semi-permanent cost. For summons I feel it's slightly different to buffs: it is a strategic consideration initially, but having a permanent ally would also change your tactical choices considerably in nearly every fight. Whereas swiftness, rmsl, necromutation ... these might change your tactics slightly in some situations but not in a significant or hugely interesting way.

However ... as it stands we do have a number of spells that are beneficial but annoying to have on all the time. And casting several buffs before a fight can be pretty annoying too. So we either need to be thinking about reworking those spells, or else provide some way of permanently activating them as a convenience.

One possibility: steal an idea from Skalds; make all (well, most) buffs mutually-exclusive "songs". Those buffs then come with a significant drawback and you won't want to use them all the time, and have to choose between different buffs for different fights instead of loading up with all of them. It may or may not still be worth making them toggled instead of duration-based, and raising the level of numerous spells to make the MaxMP cost significant.

Vestibule Violator

Posts: 1567

Joined: Friday, 21st January 2011, 22:56

Post Tuesday, 16th July 2013, 14:25

Re: Interface proposal: auto recast

Swiftness already has a disadvantage, it makes it harder to find traps.

Generally I don't think buffs should turn into mutually exclusive songs.

A major problem with toggled spells is that this just doesn't work within the existing miscast framework. For example duration based damaging spells like tornado, battlesphere, and even good old conjure flame and sticky flame prove difficult to balance, partly because they provide a lot of damage for a single cast. One chance to miscast, one time MP cost, far more total damage than other spells of the same level if you manage to take full advantage of the duration. Spell success would probably need to do something completely different for toggled spells. Random stuff happening without a player action to trigger it is Xom's domain (also hells, god wrath, monsters, and a bunch of other things, but spells don't do this so far).
User avatar

Dungeon Master

Posts: 4031

Joined: Thursday, 16th December 2010, 20:37

Location: France

Post Tuesday, 16th July 2013, 14:37

Re: Interface proposal: auto recast

mumra wrote:They would always operate at your current max spell power, and spells would need to be changed so power always improved the spell's effect, rather than just increasing duration like many (most?) do now.

Well, in my implementation proposal, increasing the power reduce the permanent cost simply by reducing the duration. The duration can really be used as a balancing lever because it directly affects permacost.

So we either need to be thinking about reworking those spells, or else provide some way of permanently activating them as a convenience.

The consensus (from devs) was on the former a while ago, and I tend to agree.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...

Tomb Titivator

Posts: 830

Joined: Wednesday, 17th April 2013, 13:28

Post Tuesday, 16th July 2013, 15:01

Re: Interface proposal: auto recast

So it's not clear to me whether anyone is actually objecting to my proposal to automate what is currently being done (manually recast buffs). IMO it is something of a feature like autotravel - imperfect, but is a great convenience when it works.

The only objection seems to be from mumra, who thinks the added complexity outweighs the benefits.

Are you guys thinking this would get in the way of the more serious overall permabuff rework? FWIW, I have no objections coding something that might be swept away in the next version (in part because I think it won't take much effort to do this), and in the mean time, this could be a feature that many players could find helpful. No offense, but it sounds like there's no consensus yet on permabuffs, so the kind of bandaid solution I'm proposing might actually hang around for a while.

Dungeon Master

Posts: 1531

Joined: Saturday, 5th March 2011, 06:29

Post Tuesday, 16th July 2013, 15:25

Re: Interface proposal: auto recast

Galefury wrote:Swiftness already has a disadvantage, it makes it harder to find traps.


Not a particularly significant drawback imo; and it has zero tactical impact. However the stealth reduction is certainly relevant.

Galefury wrote:Generally I don't think buffs should turn into mutually exclusive songs.


Nor do I really; I just mention it since it would solve most of the problems and create some new choices.

Galefury wrote:A major problem with toggled spells is that this just doesn't work within the existing miscast framework. For example duration based damaging spells like tornado, battlesphere, and even good old conjure flame and sticky flame prove difficult to balance, partly because they provide a lot of damage for a single cast. One chance to miscast, one time MP cost, far more total damage than other spells of the same level if you manage to take full advantage of the duration. Spell success would probably need to do something completely different for toggled spells. Random stuff happening without a player action to trigger it is Xom's domain (also hells, god wrath, monsters, and a bunch of other things, but spells don't do this so far).


Well, galehar's proposal did suggest one way to tackle this. But for most of the spells that people want to permabuff, miscasts are largely irrelevant. If you try to activate a buff in combat then you care about miscasts. If you already had it active before the fight then you had as many tries as you wanted anyway.

galehar wrote:
mumra wrote:They would always operate at your current max spell power, and spells would need to be changed so power always improved the spell's effect, rather than just increasing duration like many (most?) do now.

Well, in my implementation proposal, increasing the power reduce the permanent cost simply by reducing the duration. The duration can really be used as a balancing lever because it directly affects permacost.


I'm wondering if the MP costs are really all that relevant. They'd have to be significant enough to represent a meaningful choice, and early . Lowering the cost with spell power wouldn't really help this, and wouldn't really be a pressing reason to put XP into those skills either (you'd still gain way more MP by raising spellcasting). It also introduces unpleasant breakpoints. It's certainly much simpler to implement and understand with a fixed MaxMP reduction.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Tuesday, 16th July 2013, 17:09

Re: Interface proposal: auto recast

How about linking charms more strongly to contamination? There are two ways that this could be helpful in resolving (in a sense) issues with permabuffing.

1) All charms would cause contamination, so stacking charms constantly doesn't make much sense. Higher Charms skill could reduce the rate at which charms accrue contamination, but ideally no single charm would cause yellow contamination by itself under any circumstances.
2) Alternately, "permacasting" charms could (in addition to taking a chunk out of your max mp) raise your minimum contamination level, making it more likely that contaminating events would push you into yellow glow.

Either of these could resolve the current issue where charms can be stacked infinitely, and can (and must) be recast over and over to keep them on.

Vestibule Violator

Posts: 1500

Joined: Monday, 3rd January 2011, 17:47

Post Wednesday, 17th July 2013, 13:54

Re: Interface proposal: auto recast

mumra wrote:I'm wondering if the MP costs are really all that relevant. They'd have to be significant enough to represent a meaningful choice, and early . Lowering the cost with spell power wouldn't really help this, and wouldn't really be a pressing reason to put XP into those skills either (you'd still gain way more MP by raising spellcasting). It also introduces unpleasant breakpoints. It's certainly much simpler to implement and understand with a fixed MaxMP reduction.

As a support to this on an MfGl that was casting many charms per fight (rMsl, Phase shift, stoneskin, regen, swift) they would have to be significant uses of MaxMP because even doubling the MP costs of the spells would have removed 28 MP out of a pool of 42 which still would have left me with plenty of MP to cast haste, blink, apport and dig if needed. This is with 15 spell casting which I don't think is particularly out of the realm of "normal" for a fighter that uses lots of charms.

Dungeon Master

Posts: 3160

Joined: Sunday, 5th August 2012, 14:52

Post Wednesday, 17th July 2013, 14:15

Re: Interface proposal: auto recast

rebthor wrote:As a support to this on an MfGl that was casting many charms per fight (rMsl, Phase shift, stoneskin, regen, swift) they would have to be significant uses of MaxMP because even doubling the MP costs of the spells would have removed 28 MP out of a pool of 42 which still would have left me with plenty of MP to cast haste, blink, apport and dig if needed. This is with 15 spell casting which I don't think is particularly out of the realm of "normal" for a fighter that uses lots of charms.


Perhaps the amount of spell levels of charms that could be simultaneously maintained could be based on Charms skill.

For this message the author Lasty has received thanks:
bobross419

Return to Game Design Discussion

Who is online

Users browsing this forum: Google [Bot] and 5 guests

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.