1 #include "status/temporary-resistance.h"
2 #include "core/disturbance.h"
3 #include "core/player-redraw-types.h"
4 #include "core/player-update-types.h"
5 #include "core/stuff-handler.h"
6 #include "game-option/disturbance-options.h"
7 #include "system/player-type-definition.h"
8 #include "view/display-messages.h"
11 * @brief 一時的浮遊の継続時間をセットする / Set "tim_levitation", notice observable changes
13 * @param do_dec 現在の継続時間より長い値のみ上書きする
14 * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。
16 bool set_tim_levitation(player_type *player_ptr, TIME_EFFECT v, bool do_dec)
19 v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
21 if (player_ptr->is_dead)
25 if (player_ptr->tim_levitation && !do_dec) {
26 if (player_ptr->tim_levitation > v)
28 } else if (!player_ptr->tim_levitation) {
29 msg_print(_("体が宙に浮き始めた。", "You begin to fly!"));
33 if (player_ptr->tim_levitation) {
34 msg_print(_("もう宙に浮かべなくなった。", "You stop flying."));
39 player_ptr->tim_levitation = v;
40 player_ptr->redraw |= (PR_STATUS);
46 disturb(player_ptr, false, false);
47 player_ptr->update |= (PU_BONUS);
48 handle_stuff(player_ptr);
52 bool set_ultimate_res(player_type *player_ptr, TIME_EFFECT v, bool do_dec)
55 v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
57 if (player_ptr->is_dead)
61 if (player_ptr->ult_res && !do_dec) {
62 if (player_ptr->ult_res > v)
64 } else if (!player_ptr->ult_res) {
65 msg_print(_("あらゆることに対して耐性がついた気がする!", "You feel resistant!"));
71 if (player_ptr->ult_res) {
72 msg_print(_("あらゆることに対する耐性が薄れた気がする。", "You feel less resistant"));
77 player_ptr->ult_res = v;
78 player_ptr->redraw |= (PR_STATUS);
84 disturb(player_ptr, false, false);
85 player_ptr->update |= (PU_BONUS);
86 handle_stuff(player_ptr);
91 bool set_tim_res_nether(player_type *player_ptr, TIME_EFFECT v, bool do_dec)
94 v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
96 if (player_ptr->is_dead)
100 if (player_ptr->tim_res_nether && !do_dec) {
101 if (player_ptr->tim_res_nether > v)
103 } else if (!player_ptr->tim_res_nether) {
104 msg_print(_("地獄の力に対して耐性がついた気がする!", "You feel nether-resistant!"));
110 if (player_ptr->tim_res_nether) {
111 msg_print(_("地獄の力に対する耐性が薄れた気がする。", "You feel less nether-resistant"));
116 player_ptr->tim_res_nether = v;
117 player_ptr->redraw |= (PR_STATUS);
123 disturb(player_ptr, false, false);
124 player_ptr->update |= (PU_BONUS);
125 handle_stuff(player_ptr);
129 bool set_tim_res_time(player_type *player_ptr, TIME_EFFECT v, bool do_dec)
132 v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
133 if (player_ptr->is_dead)
137 if (player_ptr->tim_res_time && !do_dec) {
138 if (player_ptr->tim_res_time > v)
140 } else if (!player_ptr->tim_res_time) {
141 msg_print(_("時間逆転の力に対して耐性がついた気がする!", "You feel time-resistant!"));
145 if (player_ptr->tim_res_time) {
146 msg_print(_("時間逆転の力に対する耐性が薄れた気がする。", "You feel less time-resistant"));
151 player_ptr->tim_res_time = v;
152 player_ptr->redraw |= (PR_STATUS);
157 disturb(player_ptr, false, false);
158 player_ptr->update |= (PU_BONUS);
159 handle_stuff(player_ptr);