case 11: sprintf(p, " %s%dd6", s_dam, plev / 2); break;
case 12: sprintf(p, " %sd%d+%d", s_dam, plev * 3, plev * 3); break;
#ifdef JP
- case 13: sprintf(p, " ¹ÔÆ°:%d²ó", (p_ptr->csp + p_ptr->energy - 50)/100); break;
+ case 13: sprintf(p, " ¹ÔÆ°:%d²ó", (p_ptr->csp + 100-p_ptr->energy_need - 50)/100); break;
#else
- case 13: sprintf(p, " %d acts.", (p_ptr->csp + p_ptr->energy - 50)/100); break;
+ case 13: sprintf(p, " %d acts.", (p_ptr->csp + 100-p_ptr->energy_need - 50)/100); break;
#endif
}
break;
if (plev < 25)
return psychometry();
else
- return ident_spell(FALSE);
+ return ident_spell(FALSE, FALSE);
break;
case 8:
/* Mindwave */
/* This is always a radius-0 ball now */
if (fire_ball(GF_PSI_DRAIN, dir, b, 0))
- p_ptr->energy -= randint1(150);
+ p_ptr->energy_need += randint1(150);
break;
case 12:
/* psycho-spear */
#endif
msg_print(NULL);
- p_ptr->energy += (p_ptr->csp + 950);
+ /* Hack */
+ p_ptr->energy_need -= 1000 + (100 + p_ptr->csp - 50)*TURNS_PER_TICK/10;
/* Redraw map */
p_ptr->redraw |= (PR_MAP);
bool success = FALSE;
for (i = 0; i < 1 + boost/100; i++)
- if (summon_specific(-1, py, px, plev, SUMMON_PHANTOM, FALSE, TRUE, TRUE, FALSE, FALSE))
+ if (summon_specific(-1, py, px, plev, SUMMON_PHANTOM, PM_FORCE_PET))
success = TRUE;
if (success)
{
int val=0;
for( x=0 ; x < cur_wid ; x++ ){
for( y=0 ; y < cur_hgt ; y++ ){
- if( cave[y][x].feat == FEAT_MIRROR )val++;
+ if( (cave[y][x].info & CAVE_IN_MIRROR) )val++;
}
}
return val;
{
/* mirror of seeing */
case 0:
- tmp = cave[py][px].feat == FEAT_MIRROR ? 4 : 0;
+ tmp = (cave[py][px].info & CAVE_IN_MIRROR) ? 4 : 0;
if( plev + tmp > 4)detect_monsters_normal(DETECT_RAD_DEFAULT);
if( plev + tmp > 18 )detect_monsters_invis(DETECT_RAD_DEFAULT);
if( plev + tmp > 28 )set_tim_esp(plev,FALSE);
break;
case 2:
if (!get_aim_dir(&dir)) return FALSE;
- if ( plev > 9 && cave[py][px].feat == FEAT_MIRROR ){
+ if ( plev > 9 && (cave[py][px].info & CAVE_IN_MIRROR) ){
fire_beam(GF_LITE, dir,damroll(3+((plev-1)/5),4));
}
else {
case 9:
for(x=0;x<cur_wid;x++){
for(y=0;y<cur_hgt;y++){
- if(cave[y][x].feat == FEAT_MIRROR){
+ if(cave[y][x].info & CAVE_IN_MIRROR){
project(0,2,y,x,plev,GF_OLD_SLEEP,(PROJECT_GRID|PROJECT_ITEM|PROJECT_KILL|PROJECT_JUMP|PROJECT_NO_REF|PROJECT_NO_HANGEKI),-1);
}
}
break;
/* illusion light */
case 14:
- tmp = cave[py][px].feat == FEAT_MIRROR ? 4 : 3;
+ tmp = (cave[py][px].feat & CAVE_IN_MIRROR) ? 4 : 3;
slow_monsters();
stun_monsters(plev*tmp);
confuse_monsters(plev*tmp);
break;
/* mirror shift */
case 15:
- if( cave[py][px].feat != FEAT_MIRROR ){
+ if( !(cave[py][px].info & CAVE_IN_MIRROR) ){
#ifdef JP
msg_print("¶À¤Î¹ñ¤Î¾ì½ê¤¬¤ï¤«¤é¤Ê¤¤¡ª");
#else
break;
}
case 7:
- return ident_spell(FALSE);
+ return ident_spell(FALSE, FALSE);
break;
case 8:
set_tim_ffall(randint1(20) + 20, FALSE);
break;
case MIND_MIRROR_MASTER:
/* Cast the spell */
- if( cave[py][px].feat == FEAT_MIRROR )on_mirror = TRUE;
+ if( (cave[py][px].info & CAVE_IN_MIRROR) )on_mirror = TRUE;
cast = cast_mirror_spell(n);
break;
case MIND_NINJUTSU: