1 #include "combat/attack-power-table.h"
4 * @brief 修行僧のターンダメージ算出テーブル
6 const int monk_ave_damage[PY_MAX_LEVEL + 1][3] = {
62 * Stat Table (STR) -- help index into the "blow" table
64 const byte adj_str_blow[MAX_ADJ_STR] = {
88 100 /* 18/80-18/89 */,
89 110 /* 18/90-18/99 */,
90 120 /* 18/100-18/109 */,
91 130 /* 18/110-18/119 */,
92 140 /* 18/120-18/129 */,
93 150 /* 18/130-18/139 */,
94 160 /* 18/140-18/149 */,
95 170 /* 18/150-18/159 */,
96 180 /* 18/160-18/169 */,
97 190 /* 18/170-18/179 */,
98 200 /* 18/180-18/189 */,
99 210 /* 18/190-18/199 */,
100 220 /* 18/200-18/209 */,
101 230 /* 18/210-18/219 */,
106 * 器用さによる攻撃回数インデックステーブル
107 * Stat Table (DEX) -- index into the "blow" table
109 const byte adj_dex_blow[MAX_ADJ_DEX] = {
135 7 /* 18/100-18/109 */,
136 7 /* 18/110-18/119 */,
137 8 /* 18/120-18/129 */,
138 8 /* 18/130-18/139 */,
139 9 /* 18/140-18/149 */,
140 9 /* 18/150-18/159 */,
141 10 /* 18/160-18/169 */,
142 10 /* 18/170-18/179 */,
143 11 /* 18/180-18/189 */,
144 11 /* 18/190-18/199 */,
145 12 /* 18/200-18/209 */,
146 12 /* 18/210-18/219 */,
152 * 腕力、器用さに応じた攻撃回数テーブル /
153 * This table is used to help calculate the number of blows the player can
154 * make in a single round of attacks (one player turn) with a normal weapon.
157 * This number ranges from a single blow/round for weak players to up to six
158 * blows/round for powerful warriors.
160 * Note that certain artifacts and ego-items give "bonus" blows/round.
162 * First, from the player class, we extract some values:
164 * Warrior num = 6; mul = 5; div = MAX(70, weapon_weight);
165 * Berserker num = 6; mul = 7; div = MAX(70, weapon_weight);
166 * Mage num = 3; mul = 2; div = MAX(100, weapon_weight);
167 * Priest num = 5; mul = 3; div = MAX(100, weapon_weight);
168 * Mindcrafter num = 5; mul = 3; div = MAX(100, weapon_weight);
169 * Rogue num = 5; mul = 3; div = MAX(40, weapon_weight);
170 * Ranger num = 5; mul = 4; div = MAX(70, weapon_weight);
171 * Paladin num = 5; mul = 4; div = MAX(70, weapon_weight);
172 * Weaponsmith num = 5; mul = 5; div = MAX(150, weapon_weight);
173 * Warrior-Mage num = 5; mul = 3; div = MAX(70, weapon_weight);
174 * Chaos Warrior num = 5; mul = 4; div = MAX(70, weapon_weight);
175 * Monk num = 5; mul = 3; div = MAX(60, weapon_weight);
176 * Tourist num = 4; mul = 3; div = MAX(100, weapon_weight);
177 * Imitator num = 5; mul = 4; div = MAX(70, weapon_weight);
178 * Beastmaster num = 5; mul = 3; div = MAX(70, weapon_weight);
179 * Cavalry(Ride) num = 5; mul = 4; div = MAX(70, weapon_weight);
180 * Cavalry(Walk) num = 5; mul = 3; div = MAX(100, weapon_weight);
181 * Sorcerer num = 1; mul = 1; div = MAX(1, weapon_weight);
182 * Archer num = 4; mul = 2; div = MAX(70, weapon_weight);
183 * Magic eater num = 4; mul = 2; div = MAX(70, weapon_weight);
184 * ForceTrainer num = 4; mul = 2; div = MAX(60, weapon_weight);
185 * Mirror Master num = 3; mul = 3; div = MAX(100, weapon_weight);
186 * Ninja num = 4; mul = 1; div = MAX(20, weapon_weight);
188 * To get "P", we look up the relevant "adj_str_blow[]" (see above),
189 * multiply it by "mul", and then divide it by "div".
190 * Increase P by 1 if you wield a weapon two-handed.
191 * Decrease P by 1 if you are a Ninja.
193 * To get "D", we look up the relevant "adj_dex_blow[]" (see above),
195 * The player gets "blows_table[P][D]" blows/round, as shown below,
196 * up to a maximum of "num" blows/round, plus any "bonus" blows/round.
199 const byte blows_table[12][12] = {
201 /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11+ */
202 /* 3 10 15 /10 /40 /60 /80 /100 /120 /140 /160 /180 */
203 /* 0 */ { 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4 },
204 /* 1 */ { 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 },
205 /* 2 */ { 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5 },
206 /* 3 */ { 1, 1, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5 },
207 /* 4 */ { 1, 1, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5 },
208 /* 5 */ { 1, 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
209 /* 6 */ { 1, 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
210 /* 7 */ { 1, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6 },
211 /* 8 */ { 1, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6 },
212 /* 9 */ { 1, 2, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6 },
213 /* 10*/ { 2, 2, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6 },
214 /*11+*/ { 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 6 },