1 #include "player-ability/player-dexterity.h"
2 #include "mutation/mutation-flag-types.h"
3 #include "object/object-flags.h"
4 #include "player-base/player-class.h"
5 #include "player-base/player-race.h"
6 #include "player-info/class-info.h"
7 #include "player-info/monk-data-type.h"
8 #include "player-info/samurai-data-type.h"
9 #include "player/player-personality.h"
10 #include "player/race-info-table.h"
11 #include "player/special-defense-types.h"
12 #include "realm/realm-hex-numbers.h"
13 #include "spell-realm/spells-hex.h"
14 #include "system/player-type-definition.h"
15 #include "util/bit-flags-calculator.h"
17 void PlayerDexterity::set_locals()
19 this->max_value = +99;
20 this->min_value = -99;
21 this->ability_type = A_DEX;
22 this->tr_flag = TR_DEX;
23 this->tr_bad_flag = TR_DEX;
31 * * エントは別途レベル26,41,46到達ごとに減算(-1)
33 int16_t PlayerDexterity::race_value()
35 int16_t result = PlayerBasicStatistics::race_value();
37 if (PlayerRace(this->player_ptr).equals(player_race_type::ENT)) {
38 if (this->player_ptr->lev > 25)
40 if (this->player_ptr->lev > 40)
42 if (this->player_ptr->lev > 45)
50 * @brief 器用さ補正計算 - 一時効果
56 int16_t PlayerDexterity::time_effect_value()
60 if (this->player_ptr->realm1 == REALM_HEX) {
61 if (SpellHex(this->player_ptr).is_spelling_specific(HEX_BUILDING)) {
79 int16_t PlayerDexterity::battleform_value()
83 PlayerClass pc(player_ptr);
84 if (pc.samurai_stance_is(SamuraiStance::KOUKIJIN)) {
88 if (pc.monk_stance_is(MonkStance::BYAKKO)) {
90 } else if (pc.monk_stance_is(MonkStance::GENBU)) {
92 } else if (pc.monk_stance_is(MonkStance::SUZAKU)) {
100 * @brief 器用さ腕力補正計算 - 変異
104 * * 変異MUT3_IRON_SKINで減算(-1)
105 * * 変異MUT3_LIMBERで加算(+3)
106 * * 変異MUT3_ARTHRITISで減算(-3)
108 int16_t PlayerDexterity::mutation_value()
112 if (this->player_ptr->muta.has(MUTA::IRON_SKIN)) {
116 if (this->player_ptr->muta.has(MUTA::LIMBER)) {
120 if (this->player_ptr->muta.has(MUTA::ARTHRITIS)) {