2 #include "effect/effect-player-util.h"
3 #include "effect/effect-player-curse.h"
4 #include "player-damage.h"
6 #include "monster-spell.h"
7 #include "object-curse.h"
8 #include "player-effects.h"
10 void effect_player_curse_1(player_type *target_ptr,
11 effect_player_type *ep_ptr) {
12 if ((randint0(100 + ep_ptr->rlev / 2) < target_ptr->skill_sav) &&
13 !CHECK_MULTISHADOW(target_ptr)) {
14 msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
15 learn_spell(target_ptr, ep_ptr->monspell);
17 if (!CHECK_MULTISHADOW(target_ptr))
18 curse_equipment(target_ptr, 15, 0);
19 ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam,
20 ep_ptr->killer, ep_ptr->monspell);
24 void effect_player_curse_2(player_type *target_ptr,
25 effect_player_type *ep_ptr) {
26 if ((randint0(100 + ep_ptr->rlev / 2) < target_ptr->skill_sav) &&
27 !CHECK_MULTISHADOW(target_ptr)) {
28 msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
29 learn_spell(target_ptr, ep_ptr->monspell);
31 if (!CHECK_MULTISHADOW(target_ptr))
32 curse_equipment(target_ptr, 25, MIN(ep_ptr->rlev / 2 - 15, 5));
33 ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam,
34 ep_ptr->killer, ep_ptr->monspell);
38 void effect_player_curse_3(player_type *target_ptr,
39 effect_player_type *ep_ptr) {
40 if ((randint0(100 + ep_ptr->rlev / 2) < target_ptr->skill_sav) &&
41 !CHECK_MULTISHADOW(target_ptr)) {
42 msg_print(_("しかし効力を跳ね返した!", "You resist the effects!"));
43 learn_spell(target_ptr, ep_ptr->monspell);
45 if (!CHECK_MULTISHADOW(target_ptr))
46 curse_equipment(target_ptr, 33, MIN(ep_ptr->rlev / 2 - 15, 15));
47 ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam,
48 ep_ptr->killer, ep_ptr->monspell);
52 void effect_player_curse_4(player_type *target_ptr,
53 effect_player_type *ep_ptr) {
54 if ((randint0(100 + ep_ptr->rlev / 2) < target_ptr->skill_sav) &&
55 !(ep_ptr->m_ptr->r_idx == MON_KENSHIROU) &&
56 !CHECK_MULTISHADOW(target_ptr)) {
57 msg_print(_("しかし秘孔を跳ね返した!", "You resist the effects!"));
58 learn_spell(target_ptr, ep_ptr->monspell);
60 ep_ptr->get_damage = take_hit(target_ptr, DAMAGE_ATTACK, ep_ptr->dam,
61 ep_ptr->killer, ep_ptr->monspell);
62 if (!CHECK_MULTISHADOW(target_ptr))
63 (void)set_cut(target_ptr, target_ptr->cut + damroll(10, 10));