static void _seal_of_mirror_fn(int y, int x)
{
    int dam = spell_power(p_ptr->lev*4 + 100);
    if (project_m(0, 0, y, x, dam, GF_GENOCIDE, PROJECT_GRID|PROJECT_ITEM|PROJECT_KILL|PROJECT_JUMP,TRUE))
    {
        if(!cave[y][x].m_idx)
            remove_mirror(y,x);
    }
}
Beispiel #2
0
/*
 * Remove all mirrors in this floor
 */
void remove_all_mirrors(bool explode)
{
    int x, y;

    for (x = 0; x < cur_wid; x++)
    {
        for (y = 0; y < cur_hgt; y++)
        {
            if (is_mirror_grid(&cave[y][x]))
            {
                remove_mirror(y, x);
                if (explode)
                    project(0, 2, y, x, p_ptr->lev / 2 + 5, GF_SHARDS,
                            (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
            }
        }
    }
}
static void _explode_fn(int y, int x)
{
    remove_mirror(y, x);
    project(0, 2, y, x, p_ptr->lev / 2 + 5, GF_SHARDS,
            PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI, -1);
}