Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Vanilla (http://angband.oook.cz/forum/forumdisplay.php?f=3)
-   -   Movement Speed? (http://angband.oook.cz/forum/showthread.php?t=10623)

Nick July 5, 2021 22:42

Quote:

Originally Posted by NCountr (Post 154191)
I'm still wondering what "Movement Speed" is. I've had a character with +2 Movement speed on for some time now, and I still cannot comprehend how or what it is. I've not seen a FAQ for it. No discussion of it other than in this thread here. So... what is it?

It's like extra shots, but for movement. +1 movement speed will mean that each step you walk will take 1/2 the energy it normally does; +2 will make that 1/3. Many game mechanics don't have explicit description of how they work, just a suggestive name and the rest is for the player to discover.

Nick July 6, 2021 00:07

Quote:

Originally Posted by NCountr (Post 154191)
Sure, I'm in the Peanut Gallery, but aside from Nick, who isn't?

Well, there's these people.

NCountr July 6, 2021 00:31

Quote:

Originally Posted by Nick (Post 154195)
It's like extra shots, but for movement. +1 movement speed will mean that each step you walk will take 1/2 the energy it normally does; +2 will make that 1/3. Many game mechanics don't have explicit description of how they work, just a suggestive name and the rest is for the player to discover.


½ the energy? How much "energy" does it take to take a step normally?
For all the belly-aching about Newb Traps, how about Inexplicable Senior Moments? Where is this "energy" defined?

NCountr July 6, 2021 00:33

Quote:

Originally Posted by archolewa (Post 154193)
I ask again, *why are you here*?

I could give a cryptic answer ala Nick here, but I'll give you a terse answer: to improve the game.

I don't see why being chummy is a prerequisite to that end. Seriously, how far has that gotten the game in the past few years?

Pete Mack July 6, 2021 01:09

Whatever your speed, 2 steps at +1 moves takes 1 player turn. At +2, you get 3 steps. I dont know why you find this difficult.

Nick July 6, 2021 02:08

Quote:

Originally Posted by NCountr (Post 154190)
Incorrect. I had double-resist on at the time, so the code's broken or the algorithm is.

OK, here's the code for the powerful attack side-effect:
Code:

        /* Occasional side-effects for powerful cold attacks */
        if (context->power >= 80) {
                if (randint0(context->dam) > 500) {
                        msg("The cold seeps into your bones.");
                        effect_simple(EF_DRAIN_STAT, source_none(), "0", STAT_DEX, 0, 0, 0,
                                                  0, &context->obvious);
                }

context->power is the spell power of the monster, or 80 if the monster has the POWERFUL flag. context->dam is damage after adjusting for resistance - if you have double resist, that random value can only be more than 500 if the original damage is more than 4500, which is well over the 1600 cap on cold damage.

So the other possibility is that damage isn't being adjusted correctly. I can't absolutely rule that out, but that function has been essentially unchanged for 4 years, and I would expect it would have been noticed before. I've checked where temporary resists are applied, and that also looks OK.

On the other hand, maybe your temporary resist had run out without you noticing, or maybe you had a curse giving cold vulnerability.

Has anyone else experienced this issue?

NCountr July 6, 2021 02:43

The stench sickens you.
 
Quote:

Originally Posted by Nick (Post 154202)
OK, here's the code for the powerful attack side-effect:
Code:

        /* Occasional side-effects for powerful cold attacks */
        if (context->power >= 80) {
                if (randint0(context->dam) > 500) {
                        msg("The cold seeps into your bones.");
                        effect_simple(EF_DRAIN_STAT, source_none(), "0", STAT_DEX, 0, 0, 0,
                                                  0, &context->obvious);
                }

context->power is the spell power of the monster, or 80 if the monster has the POWERFUL flag. context->dam is damage after adjusting for resistance - if you have double resist, that random value can only be more than 500 if the original damage is more than 4500, which is well over the 1600 cap on cold damage.

So the other possibility is that damage isn't being adjusted correctly. I can't absolutely rule that out, but that function has been essentially unchanged for 4 years, and I would expect it would have been noticed before. I've checked where temporary resists are applied, and that also looks OK.

On the other hand, maybe your temporary resist had run out without you noticing, or maybe you had a curse giving cold vulnerability.

Has anyone else experienced this issue?

Confirmed. Bile demon with double-resist Poison up, still losing CON on each breath. I'll look at the code in a bit. Maybe I can locate the logic-bug.

NCountr July 6, 2021 02:44

Quote:

Originally Posted by Pete Mack (Post 154201)
Whatever your speed, 2 steps at +1 moves takes 1 player turn. At +2, you get 3 steps. I dont know why you find this difficult.

So, how is that not Speed +10, then?

Nick July 6, 2021 02:59

Quote:

Originally Posted by NCountr (Post 154203)
Confirmed. Bile demon with double-resist Poison up, still losing CON on each breath. I'll look at the code in a bit. Maybe I can locate the logic-bug.

Bile demon is going to be breathing poison for 800, so single resisted would be 266 and double-resisted 88. The relevant side-effect code is
Code:

                if (randint0(context->dam) > 200) {
                        msg("The stench sickens you.");
                        effect_simple(EF_DRAIN_STAT, source_none(), "0", STAT_CON, 0, 0, 0,
                                                  0, &context->obvious);
                }

As far as I can see this means context->dam must be > 200, which makes it look like damage adjustment is not working correctly. It shouldn't be a cap not being applied issue, as uncapped the unresisted damage at full HP would be 808. I don't suppose you noticed how much damage the breath was doing?

Pete Mack July 6, 2021 03:47

Because moves are steps, and moves are applied AFTER speed, so a +1 moves player with +10 speed. can walk or run 4x faster than normal speed. This is exactly how shots work, though shots are in units of 0.1 (4.2.0 and later only.)


Quote:

Originally Posted by NCountr (Post 154204)
So, how is that not Speed +10, then?



All times are GMT +1. The time now is 12:42.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.