Disallow Zin's recite when inapplicable


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

Ziggurat Zagger

Posts: 11111

Joined: Friday, 8th February 2013, 12:00

Post Monday, 27th October 2014, 12:41

Disallow Zin's recite when inapplicable

As some of you probably know Zin's recite is almost deterministic, it compares (piety * 30/400)+(Invocations+3)/2 vs monster HD + d6 (or d5, I am not sure).
So if your piety is at ****, you have piety 100-119. We don't see accurate value of piety, so let's assume we have 119. With Invocations 10.0, you compare 119*30/400 + (10+3)/2 = 8.925 + 6.5 = 15.425.
It means recite will do nothing vs monsters with HD 16 and above in this case.
HD is not displayed anywhere in the game so only spoiled players know they should not waste a turn vs Nikola (HD 18, impossible to recite) but still have a chance to affect Frances (HD 14, about 16% chance).

Currently there is 20% chance to display a message that a monster cannot be affected but it happens when the difference is more than 5 so it is possible that it will never happen with Nikola in the above example.

For this message the author Sandman25 has received thanks: 3
and into, duvessa, Moose
User avatar

Ziggurat Zagger

Posts: 4478

Joined: Wednesday, 23rd October 2013, 07:56

Post Monday, 27th October 2014, 13:11

Re: Disallow Zin's recite when inapplicable

Likewise for Lugonu's banishment, I'd like to be informed if banishing someone is impossible. Now I have to look at spoilers.
DCSS: 97:...MfCj}SpNeBaEEGrFE{HaAKTrCK}DsFESpHu{FoArNaBe}
FeEE{HOIEMiAE}GrGlHuWrGnWrNaAKBaFi{MiDeMfDe}{DrAKTrAMGhEnGnWz}
{PaBeDjFi}OgAKPaCAGnCjOgCKMfAEAtCKSpCjDEEE{HOSu
Bloat: 17: RaRoPrPh{GuStGnCa}{ArEtZoNb}KiPaAnDrBXDBQOApDaMeAGBiOCNKAsFnFlUs{RoBoNeWi

Vaults Vanquisher

Posts: 428

Joined: Friday, 17th December 2010, 22:07

Post Monday, 27th October 2014, 15:05

Re: Disallow Zin's recite when inapplicable

IMO, this thread is pretty important. This kind of insider knowledge makes things much more transparent for folks in the know. Others just waste time and power doing things that will never succeed.

I believe there are other examples of this kind of thing ingame, like casting LRD on walls. Until a certain hard threshold is reached, you have absolutely no chance of success, but you can keep trying till you're blue in the face.

I'd either like to see these thresholds removed, or have some sort of indicator in the UI that lets the player know their chance of success.

Snake Sneak

Posts: 107

Joined: Saturday, 25th February 2012, 10:49

Post Monday, 27th October 2014, 15:37

Re: Disallow Zin's recite when inapplicable

Moose wrote:IMO, this thread is pretty important. This kind of insider knowledge makes things much more transparent for folks in the know. Others just waste time and power doing things that will never succeed.

I believe there are other examples of this kind of thing ingame, like casting LRD on walls. Until a certain hard threshold is reached, you have absolutely no chance of success, but you can keep trying till you're blue in the face.

I'd either like to see these thresholds removed, or have some sort of indicator in the UI that lets the player know their chance of success.


The thresholds for LRD are mentioned in the spell's description in recent versions.

The effectiveness of recite is a continous function of HD, and you know which monsters are stronger, so you can "feel"/estimate the HD of the monster and this is enough to decide whether Recite is useful. There is HD limit over which Recite is useless, but near this power limit there are things like Corona with 25% chance; and these aren't too different from nothing. I think that adding something like 5% chance of corona against any monster is completely unneccessary and displaying estimated success chances for each monster is lots of complex messages.

Ziggurat Zagger

Posts: 11111

Joined: Friday, 8th February 2013, 12:00

Post Monday, 27th October 2014, 16:01

Re: Disallow Zin's recite when inapplicable

nagdon wrote:The effectiveness of recite is a continous function of HD, and you know which monsters are stronger


Unspoiled player knows nothing about HD and danger can be unrelated to HD. Also unspoiled player has no idea how strong Recitation is for specific piety and Invocations.

PS. The whole thread is inspired by my latest death to a Warmonger, I was at **** piety and Invocations 16.4. After the death I realized I still don't know if forgetting about Recite was a mistake.

Edit. Gastronok has HD 20, Cerebov 21, Margery 22.

For this message the author Sandman25 has received thanks: 2
and into, Sprucery

Dungeon Master

Posts: 3618

Joined: Thursday, 23rd December 2010, 12:43

Post Monday, 27th October 2014, 16:24

Re: Disallow Zin's recite when inapplicable

Yes, that kind of feedback would be useful.

As always, displaying the formula (or HD numbers) is not the solution: while this would make it easier for properly informed players to decide, it'd also indicate that dabbling with these numbers is crucial to everyone else. (The blanko suggestion to "just" make the mechanics simpler is empty: Crawl is too complicated for that; it has simply not been developed with that kind of clarity in mind, so we have to make do as we see fit.)

Indicating ability success in some form (say four tiers: "easy", "likely", "unlikely", "impossible") would be good, with prompt (or action prevented) for impossible. This could be either done in xv or when cycling through targets.

I am not sure if any developer would pick this up soon. I do think that a patch will be used. Do we still employ Implementables?

For this message the author dpeg has received thanks: 2
Quazifuji, Sandman25

Barkeep

Posts: 3890

Joined: Wednesday, 14th August 2013, 23:25

Location: USA

Post Monday, 27th October 2014, 16:51

Re: Disallow Zin's recite when inapplicable

nagdon wrote:I think that adding something like 5% chance of corona against any monster is completely unneccessary and displaying estimated success chances for each monster is lots of complex messages.


No one is asking for this, though. Currently the game already has a way to communicate to the player when things are *absolutely* going to be a waste of time. This is done (not with perfect consistency, but in general) when you try to apply a hex to something that is immune. In some cases you get a warning, but at the very least you should at least receive a "<foo> is unaffected" message as feedback.

Expanding this existing feature to the case of recite would be consistent with current game design, adds no additional interface burden, and does not encourage players to have a calculator program running in a different window while playing Crawl, or anything like that. A small chance of giving corona is not great, sure, but it is at least something, and there absolutely are times when one might want to shoot for even this modest effect (e.g., waiting for a pack of melee-only orcs to approach when I am already in a good position at a choke point—hey, it is better than just hitting . or s).

For this message the author and into has received thanks:
duvessa

Ziggurat Zagger

Posts: 11111

Joined: Friday, 8th February 2013, 12:00

Post Monday, 27th October 2014, 17:08

Re: Disallow Zin's recite when inapplicable

I will try to create the patch. First of all, I will change eligibility function to check HD/piety/Invocations in addition to intelligence, being chaotic etc. (it should be pretty straightforward) and then will try to change xv description.

Edit. Submitted patch https://crawl.develz.org/mantis/view.php?id=9096

For this message the author Sandman25 has received thanks:
and into

Ziggurat Zagger

Posts: 11111

Joined: Friday, 8th February 2013, 12:00

Post Friday, 31st October 2014, 12:45

Re: Disallow Zin's recite when inapplicable

While working on the patch I found that my first post is incorrect and I have no idea how Recite power is determined, it uses some non-linear function:

  Code:
skill_bump(SK_INVOCATIONS, 10) + you.piety * 3 / 2) / 20

int skill_bump(skill_type skill, int scale)
{
    int sk = you.skill_rdiv(skill, scale);
    return sk < 3 * scale ? sk * 2 : sk + 3 * scale;
}

int actor::skill_rdiv(skill_type sk, int mult, int div) const
{
    return div_rand_round(skill(sk, mult * 256), div * 256);
}


So with piety 30 and 0 Invocation I get "unlikely" for Goblin and "impossible" for Orc Priest.

Crypt Cleanser

Posts: 720

Joined: Friday, 6th September 2013, 09:17

Post Friday, 31st October 2014, 13:18

Re: Disallow Zin's recite when inapplicable

It was correct for when invo >= 3, otherwise (power from invo) = invo

For this message the author stickyfingers has received thanks:
Sandman25

Ziggurat Zagger

Posts: 6454

Joined: Tuesday, 30th October 2012, 19:06

Post Friday, 31st October 2014, 14:36

Re: Disallow Zin's recite when inapplicable

Sandman25 wrote:While working on the patch I found that my first post is incorrect and I have no idea how Recite power is determined, it uses some non-linear function:

  Code:
skill_bump(SK_INVOCATIONS, 10) + you.piety * 3 / 2) / 20

int skill_bump(skill_type skill, int scale)
{
    int sk = you.skill_rdiv(skill, scale);
    return sk < 3 * scale ? sk * 2 : sk + 3 * scale;
}

int actor::skill_rdiv(skill_type sk, int mult, int div) const
{
    return div_rand_round(skill(sk, mult * 256), div * 256);
}


So with piety 30 and 0 Invocation I get "unlikely" for Goblin and "impossible" for Orc Priest.


I've written some patches for recite in the past, the code is fairly ugly. If you encounter something that you want to ask questions about, feel free to PM me.
Spoiler: show
This high quality signature has been hidden for your protection. To unlock it's secret, send 3 easy payments of $9.99 to me, by way of your nearest theta band or ley line. Complete your transmission by midnight tonight for a special free gift!

For this message the author Siegurt has received thanks:
Sandman25

Return to Game Design Discussion

Who is online

Users browsing this forum: No registered users and 110 guests

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