static void calc_constitution_addition(player_type *creature_ptr);
static void calc_charisma_addition(player_type *creature_ptr);
static void calc_to_magic_chance(player_type *creature_ptr);
+static void calc_base_ac(player_type *creature_ptr);
/*!
* @brief 能力値テーブル / Abbreviations of healthy stats
*/
static void clear_creature_bonuses(player_type *creature_ptr)
{
- creature_ptr->dis_ac = creature_ptr->ac = 0;
+ creature_ptr->dis_ac = 0;
creature_ptr->dis_to_h[0] = creature_ptr->to_h[0] = 0;
creature_ptr->dis_to_h[1] = creature_ptr->to_h[1] = 0;
creature_ptr->dis_to_d[0] = creature_ptr->to_d[0] = 0;
if (object_is_armour(&creature_ptr->inventory_list[INVEN_RARM]) || object_is_armour(&creature_ptr->inventory_list[INVEN_LARM]))
{
- creature_ptr->ac += creature_ptr->skill_exp[GINOU_SHIELD] * (1 + creature_ptr->lev / 22) / 2000;
creature_ptr->dis_ac += creature_ptr->skill_exp[GINOU_SHIELD] * (1 + creature_ptr->lev / 22) / 2000;
}
calc_constitution_addition(creature_ptr);
calc_charisma_addition(creature_ptr);
calc_to_magic_chance(creature_ptr);
-
+ calc_base_ac(creature_ptr);
int count = 0;
for (int i = 0; i < A_MAX; i++)
}
+static void calc_base_ac(player_type *creature_ptr)
+{
+ creature_ptr->ac = 0;
+
+ for (int i = INVEN_RARM; i < INVEN_TOTAL; i++) {
+ object_type *o_ptr;
+ o_ptr = &creature_ptr->inventory_list[i];
+ if (!o_ptr->k_idx)
+ continue;
+ creature_ptr->ac += o_ptr->ac;
+ }
+ if (object_is_armour(&creature_ptr->inventory_list[INVEN_RARM]) || object_is_armour(&creature_ptr->inventory_list[INVEN_LARM])) {
+ creature_ptr->ac += creature_ptr->skill_exp[GINOU_SHIELD] * (1 + creature_ptr->lev / 22) / 2000;
+ }
+}
+
+
/*!
* @brief プレイヤーの所持重量制限を計算する /
* Computes current weight limit.