break;
case MS_DRAIN_MANA:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_DRAIN_MANA, dir, randint1(plev*3)+plev, 0);
+ fire_ball_hide(caster_ptr, GF_DRAIN_MANA, dir, randint1(plev*3)+plev, 0);
break;
case MS_MIND_BLAST:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_MIND_BLAST, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_MIND_BLAST, dir, damage, 0);
break;
case MS_BRAIN_SMASH:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_BRAIN_SMASH, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_BRAIN_SMASH, dir, damage, 0);
break;
case MS_CAUSE_1:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_CAUSE_1, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_CAUSE_1, dir, damage, 0);
break;
case MS_CAUSE_2:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_CAUSE_2, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_CAUSE_2, dir, damage, 0);
break;
case MS_CAUSE_3:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_CAUSE_3, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_CAUSE_3, dir, damage, 0);
break;
case MS_CAUSE_4:
if (!get_aim_dir(&dir)) return FALSE;
- fire_ball_hide(GF_CAUSE_4, dir, damage, 0);
+ fire_ball_hide(caster_ptr, GF_CAUSE_4, dir, damage, 0);
break;
case MS_BOLT_ACID:
if (!get_aim_dir(&dir)) return FALSE;
if (!get_aim_dir(&dir)) return FALSE;
else msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
- fire_ball_hide(GF_HAND_DOOM, dir, 200, 0);
+ fire_ball_hide(caster_ptr, GF_HAND_DOOM, dir, 200, 0);
break;
}
case MS_HEAL:
case SV_WAND_GENOCIDE:
{
- fire_ball_hide(GF_GENOCIDE, dir, magic ? lev + 50 : 250, 0);
+ fire_ball_hide(creature_ptr, GF_GENOCIDE, dir, magic ? lev + 50 : 250, 0);
ident = TRUE;
break;
}
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_DRAIN_MANA), plev, DAM_ROLL);
- fire_ball_hide(GF_DRAIN_MANA, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_DRAIN_MANA, dir, damage, 0);
break;
case MS_MIND_BLAST:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_MIND_BLAST), plev, DAM_ROLL);
- fire_ball_hide(GF_MIND_BLAST, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_MIND_BLAST, dir, damage, 0);
break;
case MS_BRAIN_SMASH:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_BRAIN_SMASH), plev, DAM_ROLL);
- fire_ball_hide(GF_BRAIN_SMASH, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_BRAIN_SMASH, dir, damage, 0);
break;
case MS_CAUSE_1:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_CAUSE_1), plev, DAM_ROLL);
- fire_ball_hide(GF_CAUSE_1, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_CAUSE_1, dir, damage, 0);
break;
case MS_CAUSE_2:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_CAUSE_2), plev, DAM_ROLL);
- fire_ball_hide(GF_CAUSE_2, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_CAUSE_2, dir, damage, 0);
break;
case MS_CAUSE_3:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_CAUSE_3), plev, DAM_ROLL);
- fire_ball_hide(GF_CAUSE_3, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_CAUSE_3, dir, damage, 0);
break;
case MS_CAUSE_4:
if (!get_aim_dir(&dir)) return FALSE;
damage = monspell_bluemage_damage((MS_CAUSE_4), plev, DAM_ROLL);
- fire_ball_hide(GF_CAUSE_4, dir, damage, 0);
+ fire_ball_hide(p_ptr, GF_CAUSE_4, dir, damage, 0);
break;
case MS_BOLT_ACID:
if (!get_aim_dir(&dir)) return FALSE;
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
- fire_ball_hide(GF_HAND_DOOM, dir, plev * 3, 0);
+ fire_ball_hide(p_ptr, GF_HAND_DOOM, dir, plev * 3, 0);
break;
}
case MS_HEAL:
TARGET_TYPE);
if(mon_to_player)
- fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
+ fire_ball_hide(p_ptr, GF_WATER_FLOW, 0, 3, 8);
else if(mon_to_mon)
project(p_ptr, t_idx, 8, y, x, 3, GF_WATER_FLOW, PROJECT_GRID | PROJECT_HIDE, -1);
}
if (command == -3)
{
if (!get_aim_dir(&dir)) return FALSE;
- (void)fire_ball_hide(GF_CHARM_LIVING, dir, creature_ptr->lev, 0);
+ (void)fire_ball_hide(creature_ptr, GF_CHARM_LIVING, dir, creature_ptr->lev, 0);
}
else if (command == -4)
{
if (cast)
{
fire_ball(caster_ptr, GF_FIRE, 0, dam, rad);
- fire_ball_hide(GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
+ fire_ball_hide(caster_ptr, GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
}
}
break;
else
msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
- fire_ball_hide(GF_HAND_DOOM, dir, plev * 2, 0);
+ fire_ball_hide(caster_ptr, GF_HAND_DOOM, dir, plev * 2, 0);
}
}
break;
{
if (!get_aim_dir(&dir)) return NULL;
- fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
+ fire_ball_hide(caster_ptr, GF_BLOOD_CURSE, dir, dam, rad);
take_hit(caster_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("血の呪い", "Blood curse"), -1);
}
}
int effect = randint1(1000);
if (effect == 666)
- fire_ball_hide(GF_DEATH_RAY, dir, plev * 200, 0);
+ fire_ball_hide(caster_ptr, GF_DEATH_RAY, dir, plev * 200, 0);
else if (effect < 500)
- fire_ball_hide(GF_TURN_ALL, dir, plev, 0);
+ fire_ball_hide(caster_ptr, GF_TURN_ALL, dir, plev, 0);
else if (effect < 800)
- fire_ball_hide(GF_OLD_CONF, dir, plev, 0);
+ fire_ball_hide(caster_ptr, GF_OLD_CONF, dir, plev, 0);
else
- fire_ball_hide(GF_STUN, dir, plev, 0);
+ fire_ball_hide(caster_ptr, GF_STUN, dir, plev, 0);
}
}
}
{
if (!get_aim_dir(&dir)) return NULL;
- fire_ball_hide(GF_GENOCIDE, dir, power, 0);
+ fire_ball_hide(caster_ptr, GF_GENOCIDE, dir, power, 0);
}
}
break;
if (cast)
{
if (!get_aim_dir(&dir)) return NULL;
- fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
+ fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
break;
if (cast)
{
if (!get_aim_dir(&dir)) return NULL;
- fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
+ fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
break;
if (cast)
{
if (!get_aim_dir(&dir)) return NULL;
- fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
+ fire_ball_hide(caster_ptr, GF_WOUNDS, dir, damroll(dice, sides), 0);
}
}
break;
*/
bool stasis_monster(DIRECTION dir)
{
- return (fire_ball_hide(GF_STASIS, dir, p_ptr->lev * 2, 0));
+ return (fire_ball_hide(p_ptr, GF_STASIS, dir, p_ptr->lev * 2, 0));
}
/*!
*/
bool stasis_evil(DIRECTION dir)
{
- return (fire_ball_hide(GF_STASIS_EVIL, dir, p_ptr->lev * 2, 0));
+ return (fire_ball_hide(p_ptr, GF_STASIS_EVIL, dir, p_ptr->lev * 2, 0));
}
/*!
extern bool fire_ball(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
extern bool fire_breath(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
extern bool fire_rocket(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
-extern bool fire_ball_hide(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
+extern bool fire_ball_hide(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad);
extern bool fire_meteor(MONSTER_IDX who, EFFECT_ID typ, POSITION x, POSITION y, HIT_POINT dam, POSITION rad);
extern bool fire_bolt(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam);
extern bool fire_blast(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, DICE_NUMBER dd, DICE_SID ds, int num, int dev);
* Affect grids, objects, and monsters
* </pre>
*/
-bool fire_ball_hide(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
+bool fire_ball_hide(player_type *caster_ptr, EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, POSITION rad)
{
POSITION tx, ty;
BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_HIDE;
/* Use the given direction */
- tx = p_ptr->x + 99 * ddx[dir];
- ty = p_ptr->y + 99 * ddy[dir];
+ tx = caster_ptr->x + 99 * ddx[dir];
+ ty = caster_ptr->y + 99 * ddy[dir];
/* Hack -- Use an actual "target" */
if ((dir == 5) && target_okay())
}
/* Analyze the "dir" and the "target". Hurt items on floor. */
- return (project(p_ptr, 0, rad, ty, tx, dam, typ, flg, -1));
+ return (project(caster_ptr, 0, rad, ty, tx, dam, typ, flg, -1));
}
msg_print(_("突然壁から水が溢れ出した!ピラニアがいる!", "Suddenly, the room is filled with water with piranhas!"));
/* Water fills room */
- fire_ball_hide(GF_WATER_FLOW, 0, 1, 10);
+ fire_ball_hide(p_ptr, GF_WATER_FLOW, 0, 1, 10);
/* Summon Piranhas */
num = 1 + trapped_ptr->current_floor_ptr->dun_level / 20;