OSDN Git Service

fb96a2fa8eb527f3559dec15b9eaba53eb1f3d52
[hengbandforosx/hengbandosx.git] / src / spell-kind / spells-beam.cpp
1 #include "spell-kind/spells-beam.h"
2 #include "effect/effect-characteristics.h"
3 #include "effect/attribute-types.h"
4 #include "spell-kind/spells-launcher.h"
5 #include "system/player-type-definition.h"
6
7 /*!
8  * @brief 岩石溶解処理
9  * @param player_ptr プレイヤーへの参照ポインタ
10  * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
11  * @param dam 威力
12  * @return 作用が実際にあった場合TRUEを返す
13  */
14 bool wall_to_mud(PlayerType *player_ptr, DIRECTION dir, HIT_POINT dam)
15 {
16     BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
17     return project_hook(player_ptr, AttributeType::KILL_WALL, dir, dam, flg);
18 }
19
20 /*!
21  * @brief 魔法の施錠処理
22  * @param player_ptr プレイヤーへの参照ポインタ
23  * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
24  * @return 作用が実際にあった場合TRUEを返す
25  */
26 bool wizard_lock(PlayerType *player_ptr, DIRECTION dir)
27 {
28     BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
29     return project_hook(player_ptr, AttributeType::JAM_DOOR, dir, 20 + randint1(30), flg);
30 }
31
32 /*!
33  * @brief ドア破壊処理
34  * @param player_ptr プレイヤーへの参照ポインタ
35  * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
36  * @return 作用が実際にあった場合TRUEを返す
37  */
38 bool destroy_door(PlayerType *player_ptr, DIRECTION dir)
39 {
40     BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
41     return project_hook(player_ptr, AttributeType::KILL_DOOR, dir, 0, flg);
42 }
43
44 /*!
45  * @brief トラップ解除処理
46  * @param player_ptr プレイヤーへの参照ポインタ
47  * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
48  * @return 作用が実際にあった場合TRUEを返す
49  */
50 bool disarm_trap(PlayerType *player_ptr, DIRECTION dir)
51 {
52     BIT_FLAGS flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM;
53     return project_hook(player_ptr, AttributeType::KILL_TRAP, dir, 0, flg);
54 }