OSDN Git Service

Merge pull request #3532 from sikabane-works/release/3.0.0.87-alpha
[hengbandforosx/hengbandosx.git] / src / player-status / player-energy.cpp
1 /*
2  * @file player-energy.cpp
3  * @brief ゲームターン当たりの行動エネルギー増減処理
4  * @author Hourier
5  * @date 2021/04/29
6  */
7
8 #include "player-status/player-energy.h"
9 #include "system/player-type-definition.h"
10
11 PlayerEnergy::PlayerEnergy(PlayerType *player_ptr)
12 {
13     this->player_ptr = player_ptr;
14 }
15
16 /*
17  * @brief プレイヤーの行動エネルギーを更新する
18  * @param player_ptr プレイヤーの参照ポインタ
19  * @param need_cost 行動エネルギー
20  * @param ut_type 現在値に対する演算方法
21  */
22 void PlayerEnergy::set_player_turn_energy(ENERGY need_cost)
23 {
24     this->player_ptr->energy_use = need_cost;
25 }
26
27 void PlayerEnergy::add_player_turn_energy(ENERGY need_cost)
28 {
29     this->player_ptr->energy_use += need_cost;
30 }
31
32 void PlayerEnergy::sub_player_turn_energy(ENERGY need_cost)
33 {
34     this->player_ptr->energy_use -= need_cost;
35 }
36
37 void PlayerEnergy::mul_player_turn_energy(ENERGY need_cost)
38 {
39     this->player_ptr->energy_use *= need_cost;
40 }
41
42 void PlayerEnergy::div_player_turn_energy(ENERGY need_cost)
43 {
44     this->player_ptr->energy_use /= need_cost;
45 }
46
47 /*
48  * @brief ターン消費をなくす (主にコマンド実行に失敗した場合)
49  * @param PlayerType プレイヤーへの参照ポインタ
50  */
51 void PlayerEnergy::reset_player_turn()
52 {
53     set_player_turn_energy(0);
54 }