*/
static void bolt(int m_idx, int typ, int dam_hp, int monspell, bool learnable)
{
- int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_PLAYER | PROJECT_REFLECTABLE;
+ int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_PLAYER;
+ if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
/* Target the player with a bolt attack */
(void)project(m_idx, 0, py, px, dam_hp, typ, flg, (learnable ? monspell : -1));
*/
static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
{
- int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
-
+ int flg = PROJECT_STOP | PROJECT_KILL;
+ if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
(void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
}
*/
bool fire_bolt(int typ, int dir, int dam)
{
- int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE | PROJECT_GRID;
+ int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_GRID;
+ if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
return (project_hook(typ, dir, dam, flg));
}