Beispiel #1
0
static void _summon_horde_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Summon Horde");
        break;
    case SPELL_DESC:
        var_set_string(res, "Summons Warriors of the Dawn for assistance.");
        break;
    case SPELL_CAST:
    {
        int num = 3 + randint1(3);
        int mode = PM_FORCE_PET;
        int i;

        if (p_ptr->shero)
            mode |= PM_HASTE;
            
        for (i = 0; i < num; i++)
        {
            summon_named_creature(-1, py, px, MON_DAWN, mode);
        }                
        var_set_bool(res, TRUE);
        break;
    }
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #2
0
/**********************************************************************
 * Leprechaun Spells and Abilities
 **********************************************************************/
void _fanaticism_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Fanaticism");
        break;
    case SPELL_DESC:
        var_set_string(res, "Summon many devoted leprechaun servants at chosen foe.");
        break;
    case SPELL_CAST:
    {
        int x, y, i;

        var_set_bool(res, FALSE);
        if (!target_set(TARGET_KILL)) return;
        x = target_col;
        y = target_row;

        for (i = 0; i < 8; i++)
            summon_named_creature(-1, y, x, MON_LEPRECHAUN_FANATIC, PM_FORCE_PET);

        var_set_bool(res, TRUE);
        break;
    }
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #3
0
static void _pharaohs_curse_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Pharaoh's Curse");
        break;
    case SPELL_DESC:
        var_set_string(res, "Curses all nearby monsters, doing great damage and various effects.");
        break;
    case SPELL_CAST:
        {
            int power = spell_power(p_ptr->lev * 4);
            project_hack(GF_PHARAOHS_CURSE, p_ptr->lev + randint1(p_ptr->lev));
            if (p_ptr->lev >= 46)
                confuse_monsters(power);
            if (p_ptr->lev >= 47)
                slow_monsters(power);
            if (p_ptr->lev >= 48)
                turn_monsters(power);
            if (p_ptr->lev >= 49)
                stun_monsters(power);
            if (one_in_(5))
            {
                int mode = 0;
                if (one_in_(2))
                    mode = PM_FORCE_PET;
                if (summon_named_creature(0, py, px, MON_GREATER_MUMMY, mode))
                {
                    msg_print("You have disturbed the rest of an ancient pharaoh!");
                }
            }
            take_hit(DAMAGE_USELIFE, p_ptr->lev + randint1(p_ptr->lev), "the Pharaoh's Curse", -1);
            var_set_bool(res, TRUE);
        }
        break;
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #4
0
static void _divide_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Divide");
        break;
    case SPELL_DESC:
        var_set_string(res, "Replicate yourself.");
        break;
    case SPELL_CAST:
    {
        summon_named_creature(-1, py, px, p_ptr->current_r_idx, PM_FORCE_PET);
        var_set_bool(res, TRUE);
        break;
    }
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #5
0
static void _summon_commando_team_spell(int cmd, variant *res)
{
    switch (cmd)
    {
    case SPELL_NAME:
        var_set_string(res, "Summon Commando Team");
        break;
    case SPELL_DESC:
        var_set_string(res, "Summons Grand Master Mystics for assistance.");
        break;
    case SPELL_CAST:
    {
        int num = 1 + randint1(2);
        int mode = PM_FORCE_PET;
        int i, x, y;

        var_set_bool(res, FALSE);

        if (p_ptr->shero)
            mode |= PM_HASTE;

        if (!target_set(TARGET_KILL)) return;
        x = target_col;
        y = target_row;
            
        for (i = 0; i < num; i++)
        {
            summon_named_creature(-1, y, x, MON_G_MASTER_MYS, mode);
        }                
        var_set_bool(res, TRUE);
        break;
    }
    default:
        default_spell(cmd, res);
        break;
    }
}
Beispiel #6
0
/*
 * Summon a creature of the specified type
 *
 * XXX XXX XXX This function is rather dangerous
 */
static void do_cmd_wiz_named_friendly(int r_idx, bool slp)
{
	(void)summon_named_creature(p_ptr->py, p_ptr->px, r_idx, slp, TRUE, TRUE);
}
Beispiel #7
0
/*!
 * @brief モンスターを種族IDを指定してペット召喚する /
 * Summon a creature of the specified type
 * @param r_idx モンスター種族ID
 * @return なし
 * @details
 * XXX XXX XXX This function is rather dangerous
 */
static void do_cmd_wiz_named_friendly(int r_idx)
{
	(void)summon_named_creature(0, p_ptr->y, p_ptr->x, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP | PM_FORCE_PET));
}
Beispiel #8
0
/*!
 * @brief モンスターを種族IDを指定して敵対的に召喚する /
 * Summon a creature of the specified type
 * @param r_idx モンスター種族ID
 * @return なし
 * @details
 * XXX XXX XXX This function is rather dangerous
 */
static void do_cmd_wiz_named(int r_idx)
{
	(void)summon_named_creature(0, p_ptr->y, p_ptr->x, r_idx, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP));
}