{
msg_format(_("あなたは%sに敵を締め殺すよう命じた。", "You order the %s to strangle your opponent."), name);
if (!get_aim_dir(&dir)) return FALSE;
- if (hypodynamic_bolt(dir, 100))
+ if (hypodynamic_bolt(user_ptr, dir, 100))
break;
}
{
msg_print(_("黒く輝いている...", "It glows black..."));
if (!get_aim_dir(&dir)) return FALSE;
- hypodynamic_bolt(dir, 120);
+ hypodynamic_bolt(user_ptr, dir, 120);
break;
}
if (!get_aim_dir(&dir)) return FALSE;
for (dummy = 0; dummy < 3; dummy++)
{
- if (hypodynamic_bolt(dir, 50))
+ if (hypodynamic_bolt(user_ptr, dir, 50))
hp_player(user_ptr, 50);
}
break;
if (!get_aim_dir(&dir)) return FALSE;
for (dummy = 0; dummy < 3; dummy++)
{
- if (hypodynamic_bolt(dir, 100))
+ if (hypodynamic_bolt(user_ptr, dir, 100))
hp_player(user_ptr, 100);
}
break;
case SV_ROD_HYPODYNAMIA:
{
- if (hypodynamic_bolt(dir, 70 + 3 * lev / 2)) ident = TRUE;
+ if (hypodynamic_bolt(creature_ptr, dir, 70 + 3 * lev / 2)) ident = TRUE;
break;
}
case SV_WAND_HYPODYNAMIA:
{
- if (hypodynamic_bolt(dir, 80 + lev)) ident = TRUE;
+ if (hypodynamic_bolt(creature_ptr, dir, 80 + lev)) ident = TRUE;
break;
}
if (!get_aim_dir(&dir)) return NULL;
- if (hypodynamic_bolt(dir, dam))
+ if (hypodynamic_bolt(caster_ptr, dir, dam))
{
chg_virtue(caster_ptr, V_SACRIFICE, -1);
chg_virtue(caster_ptr, V_VITALITY, -1);
for (i = 0; i < 3; i++)
{
- if (hypodynamic_bolt(dir, dam))
+ if (hypodynamic_bolt(caster_ptr, dir, dam))
hp_player(caster_ptr, dam);
}
}
extern bool fire_beam(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
extern bool fire_bolt_or_beam(player_type *caster_ptr, PERCENTAGE prob, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
extern bool lite_line(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam);
-extern bool hypodynamic_bolt(DIRECTION dir, HIT_POINT dam);
+extern bool hypodynamic_bolt(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam);
extern bool death_ray(DIRECTION dir, PLAYER_LEVEL plev);
extern bool wall_to_mud(DIRECTION dir, HIT_POINT dam);
extern bool destroy_door(DIRECTION dir);
* @param dam 威力
* @return 作用が実際にあった場合TRUEを返す
*/
-bool hypodynamic_bolt(DIRECTION dir, HIT_POINT dam)
+bool hypodynamic_bolt(player_type *caster_ptr, DIRECTION dir, HIT_POINT dam)
{
BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
- return (project_hook(p_ptr, GF_HYPODYNAMIA, dir, dam, flg));
+ return (project_hook(caster_ptr, GF_HYPODYNAMIA, dir, dam, flg));
}
else if (die < 71)
fire_bolt_or_beam(caster_ptr, beam_chance(caster_ptr), GF_FIRE, dir,
damroll(8 + ((plev - 5) / 4), 8));
- else if (die < 76) hypodynamic_bolt(dir, 75);
+ else if (die < 76) hypodynamic_bolt(caster_ptr, dir, 75);
else if (die < 81) fire_ball(caster_ptr, GF_ELEC, dir, 30 + plev / 2, 2);
else if (die < 86) fire_ball(caster_ptr, GF_ACID, dir, 40 + plev, 2);
else if (die < 91) fire_ball(caster_ptr, GF_ICE, dir, 70 + plev, 3);
else if (die < 96) fire_ball(caster_ptr, GF_FIRE, dir, 80 + plev, 3);
- else if (die < 101) hypodynamic_bolt(dir, 100 + plev);
+ else if (die < 101) hypodynamic_bolt(caster_ptr, dir, 100 + plev);
else if (die < 104)
{
earthquake(caster_ptr, caster_ptr->y, caster_ptr->x, 12, 0);
}
else if (die < 76)
{
- hypodynamic_bolt(dir, 75);
+ hypodynamic_bolt(caster_ptr, dir, 75);
}
else if (die < 81)
{
}
else if (die < 101)
{
- hypodynamic_bolt(dir, 100 + plev);
+ hypodynamic_bolt(caster_ptr, dir, 100 + plev);
}
else if (die < 104)
{
dummy = caster_ptr->lev * 2;
- if (hypodynamic_bolt(dir, dummy))
+ if (hypodynamic_bolt(caster_ptr, dir, dummy))
{
if (caster_ptr->food < PY_FOOD_FULL)
/* No heal if we are "full" */