Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old September 3, 2018, 14:32   #11
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,190
Donated: $60
Nick is on a distinguished road
The blows table was essentially unchanged from 2.7.8 to 3.1.2, and it contained the actual number of blows (which was then reduced if it had passed the class cap). In 3.2.0 it changed to having an amount of energy per blow, and the number of blows became 100 / (value from blows table), capped again according to class. In detail, this is the table in 3.1.2:
Code:
/*
 * This table is used to help calculate the number of blows the player can
 * make in a single round of attacks (one player turn) with a normal weapon.
 *
 * This number ranges from a single blow/round for weak players to up to six
 * blows/round for powerful warriors.
 *
 * Note that certain artifacts and ego-items give "bonus" blows/round.
 *
 * First, from the player class, we extract some values:
 *
 *    Warrior --> num = 6; mul = 5; div = MAX(30, weapon_weight);
 *    Mage    --> num = 4; mul = 2; div = MAX(40, weapon_weight);
 *    Priest  --> num = 4; mul = 3; div = MAX(35, weapon_weight);
 *    Rogue   --> num = 5; mul = 4; div = MAX(30, weapon_weight);
 *    Ranger  --> num = 5; mul = 4; div = MAX(35, weapon_weight);
 *    Paladin --> num = 5; mul = 5; div = MAX(30, weapon_weight);
 * (all specified in p_class.txt now)
 *
 * To get "P", we look up the relevant "adj_str_blow[]" (see above),
 * multiply it by "mul", and then divide it by "div", rounding down.
 *
 * To get "D", we look up the relevant "adj_dex_blow[]" (see above),
 * note especially column 6 (DEX 18/101) and 11 (DEX 18/150).
 *
 * The player gets "blows_table[P][D]" blows/round, as shown below,
 * up to a maximum of "num" blows/round, plus any "bonus" blows/round.
 */
const byte blows_table[12][12] =
{
        /* P/D */
        /* 0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11+ */

        /* 0  */
        {  1,   1,   1,   1,   1,   1,   2,   2,   2,   2,   2,   3 },

        /* 1  */
        {  1,   1,   1,   1,   2,   2,   3,   3,   3,   4,   4,   4 },

        /* 2  */
        {  1,   1,   2,   2,   3,   3,   4,   4,   4,   5,   5,   5 },
        
        /* 3  */
        {  1,   2,   2,   3,   3,   4,   4,   4,   5,   5,   5,   5 },
         
        /* 4  */
        {  1,   2,   2,   3,   3,   4,   4,   5,   5,   5,   5,   5 },
          
        /* 5  */
        {  2,   2,   3,   3,   4,   4,   5,   5,   5,   5,   5,   6 },
          
        /* 6  */
        {  2,   2,   3,   3,   4,   4,   5,   5,   5,   5,   5,   6 },
          
        /* 7  */
        {  2,   3,   3,   4,   4,   4,   5,   5,   5,   5,   5,   6 },
         
        /* 8  */
        {  3,   3,   3,   4,   4,   4,   5,   5,   5,   5,   6,   6 },
         
        /* 9  */
        {  3,   3,   4,   4,   4,   4,   5,   5,   5,   5,   6,   6 },
         
        /* 10 */
        {  3,   3,   4,   4,   4,   4,   5,   5,   5,   6,   6,   6 },
         
        /* 11+ */
        {  3,   3,   4,   4,   4,   4,   5,   5,   6,   6,   6,   6 },
};
and this is the current table (essentially unchanged from 3.2.0)
Code:
/**
 * This table is used to help calculate the number of blows the player can
 * make in a single round of attacks (one player turn) with a normal weapon.
 *
 * This number ranges from a single blow/round for weak players to up to six
 * blows/round for powerful warriors.
 *
 * Note that certain artifacts and ego-items give "bonus" blows/round.
 *
 * First, from the player class, we extract some values:
 *
 *    Warrior --> num = 6; mul = 5; div = MAX(30, weapon_weight);
 *    Mage    --> num = 4; mul = 2; div = MAX(40, weapon_weight);
 *    Priest  --> num = 4; mul = 3; div = MAX(35, weapon_weight);
 *    Rogue   --> num = 5; mul = 4; div = MAX(30, weapon_weight);
 *    Ranger  --> num = 5; mul = 4; div = MAX(35, weapon_weight);
 *    Paladin --> num = 5; mul = 5; div = MAX(30, weapon_weight);
 * (all specified in class.txt now)
 *
 * To get "P", we look up the relevant "adj_str_blow[]" (see above),
 * multiply it by "mul", and then divide it by "div", rounding down.
 *
 * To get "D", we look up the relevant "adj_dex_blow[]" (see above).
 *
 * Then we look up the energy cost of each blow using "blows_table[P][D]".
 * The player gets blows/round equal to 100/this number, up to a maximum of
 * "num" blows/round, plus any "bonus" blows/round.
 */
static const int blows_table[12][12] =
{
	/* P */
   /* D:   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11+ */
   /* DEX: 3,   10,  17,  /20, /40, /60, /80, /100,/120,/150,/180,/200 */

	/* 0  */
	{  100, 100, 95,  85,  75,  60,  50,  42,  35,  30,  25,  23 },

	/* 1  */
	{  100, 95,  85,  75,  60,  50,  42,  35,  30,  25,  23,  21 },

	/* 2  */
	{  95,  85,  75,  60,  50,  42,  35,  30,  26,  23,  21,  20 },

	/* 3  */
	{  85,  75,  60,  50,  42,  36,  32,  28,  25,  22,  20,  19 },

	/* 4  */
	{  75,  60,  50,  42,  36,  33,  28,  25,  23,  21,  19,  18 },

	/* 5  */
	{  60,  50,  42,  36,  33,  30,  27,  24,  22,  21,  19,  17 },

	/* 6  */
	{  50,  42,  36,  33,  30,  27,  25,  23,  21,  20,  18,  17 },

	/* 7  */
	{  42,  36,  33,  30,  28,  26,  24,  22,  20,  19,  18,  17 },

	/* 8  */
	{  36,  33,  30,  28,  26,  24,  22,  21,  20,  19,  17,  16 },

	/* 9  */
	{  35,  32,  29,  26,  24,  22,  21,  20,  19,  18,  17,  16 },

	/* 10 */
	{  34,  30,  27,  25,  23,  22,  21,  20,  19,  18,  17,  16 },

	/* 11+ */
	{  33,  29,  26,  24,  22,  21,  20,  19,  18,  17,  16,  15 },
   /* DEX: 3,   10,  17,  /20, /40, /60, /80, /100,/120,/150,/180,/200 */
};
Note that from 3.2.0 on it was harder for warriors to get 6 blows, but fractional blows were now possible and there were more entries which resulted in more than 5 blows.

I can find no evidence that warriors ever got an extra blow, or that it was taken away. In the absence of specific evidence, I'm going to assume that the change in the blows tables above tell the whole story.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old September 3, 2018, 15:21   #12
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 4,992
Donated: $40
Pete Mack is on a distinguished road
Got it. I guess the difference is that the DEX table topped out at 18/150, so getting max blows was so much easier.
Pete Mack is offline   Reply With Quote
Old September 3, 2018, 19:43   #13
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,504
Derakon is on a distinguished road
I always took it as hyperbole when Pete said warriors lost their extra blow. They've been able to achieve 6 blows always. It's possible that changes to the table made it harder/impossible to get max blows with the heaviest weapons, but that's not the same thing as warriors losing their extra blow.
Derakon is offline   Reply With Quote
Old September 5, 2018, 02:56   #14
luneya
Adept
 
Join Date: Aug 2015
Posts: 234
luneya is on a distinguished road
Quote:
Originally Posted by Derakon View Post
I always took it as hyperbole when Pete said warriors lost their extra blow. They've been able to achieve 6 blows always. It's possible that changes to the table made it harder/impossible to get max blows with the heaviest weapons, but that's not the same thing as warriors losing their extra blow.
Which is not to say that explicitly giving warriors +1 blows to all weapons after a certain CL wouldn't be an appropriate balance change, but it's still a new innovation, not a restoration of how it was in old versions.
luneya is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[PosChengband] World Map Mordling Variants 9 March 28, 2017 22:47
Map scroll distance t4nk Vanilla 11 October 14, 2016 07:53
Wilderness map generator. LostTemplar Variants 0 December 28, 2013 01:54
Random map generator. LostTemplar Development 0 May 16, 2013 22:05
upside to becoming an evil overlord PowerDiver Idle chatter 2 March 2, 2011 06:46


All times are GMT +1. The time now is 01:28.


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