/*!
* @brief 仙術領域魔法の各処理を行う
+* @param caster_ptr プレーヤーへの参照ポインタ
* @param spell 魔法ID
* @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
* @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
if (cast)
{
- detect_monsters_normal(rad);
+ detect_monsters_normal(caster_ptr, rad);
}
}
break;
case 1:
if (name) return _("ショート・テレポート", "Phase Door");
- if (desc) return _("近距離のテレポートをする。", "Teleport short distance.");
+ if (desc) return _("近距離のテレポートをする。", "Teleports you a short distance.");
{
POSITION range = 10;
if (cast)
{
- teleport_player(range, 0L);
+ teleport_player(caster_ptr, range, 0L);
}
}
break;
if (cast)
{
- detect_traps(rad, TRUE);
- detect_doors(rad);
- detect_stairs(rad);
+ detect_traps(caster_ptr, rad, TRUE);
+ detect_doors(caster_ptr, rad);
+ detect_stairs(caster_ptr, rad);
}
}
break;
if (cast)
{
- lite_area(damroll(dice, sides), rad);
+ lite_area(caster_ptr, damroll(dice, sides), rad);
}
}
break;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
- confuse_monster(dir, power);
+ confuse_monster(caster_ptr, dir, power);
}
}
break;
case 5:
if (name) return _("テレポート", "Teleport");
- if (desc) return _("遠距離のテレポートをする。", "Teleport long distance.");
+ if (desc) return _("遠距離のテレポートをする。", "Teleports you a long distance.");
{
POSITION range = plev * 5;
if (cast)
{
- teleport_player(range, 0L);
+ teleport_player(caster_ptr, range, 0L);
}
}
break;
case 6:
if (name) return _("スリープ・モンスター", "Sleep Monster");
- if (desc) return _("モンスター1体を眠らせる。抵抗されると無効。", "Attempts to sleep a monster.");
+ if (desc) return _("モンスター1体を眠らせる。抵抗されると無効。", "Attempts to put a monster to sleep.");
{
int power = plev;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
- sleep_monster(dir, plev);
+ sleep_monster(caster_ptr, dir, plev);
}
}
break;
if (cast)
{
- if (!recharge(power)) return NULL;
+ if (!recharge(caster_ptr, power)) return NULL;
}
}
break;
if (cast)
{
- map_area(rad);
+ map_area(caster_ptr, rad);
}
}
break;
{
if (cast)
{
- if (!ident_spell(FALSE)) return NULL;
+ if (!ident_spell(caster_ptr, FALSE, 0)) return NULL;
}
}
break;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
- slow_monster(dir, plev);
+ slow_monster(caster_ptr, dir, plev);
}
}
break;
case 11:
if (name) return _("周辺スリープ", "Mass Sleep");
- if (desc) return _("視界内の全てのモンスターを眠らせる。抵抗されると無効。", "Attempts to sleep all monsters in sight.");
+ if (desc) return _("視界内の全てのモンスターを眠らせる。抵抗されると無効。", "Attempts to put all monsters in sight to sleep.");
{
int power = plev;
if (cast)
{
- sleep_monsters(plev);
+ sleep_monsters(caster_ptr, plev);
}
}
break;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
- fire_beam(GF_AWAY_ALL, dir, power);
+ fire_beam(caster_ptr, GF_AWAY_ALL, dir, power);
}
}
break;
if (cast)
{
- detect_all(rad);
+ detect_all(caster_ptr, rad);
}
}
break;
{
if (cast)
{
- if (!identify_fully(FALSE)) return NULL;
+ if (!identify_fully(caster_ptr, FALSE, 0)) return NULL;
}
}
break;
if (cast)
{
- detect_objects_normal(rad);
- detect_treasure(rad);
- detect_objects_gold(rad);
+ detect_objects_normal(caster_ptr, rad);
+ detect_treasure(caster_ptr, rad);
+ detect_objects_gold(caster_ptr, rad);
}
}
break;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
- charm_monster(dir, plev);
+ charm_monster(caster_ptr, dir, plev);
}
}
break;
case 19:
if (name) return _("街移動", "Teleport to town");
- if (desc) return _("街へ移動する。地上にいるときしか使えない。", "Teleport to a town which you choose in a moment. Can only be used outdoors.");
+ if (desc) return _("街へ移動する。地上にいるときしか使えない。", "Instantly teleports you to a town which you choose. Can only be used outdoors.");
{
if (cast)
{
- if (!tele_town()) return NULL;
+ if (!tele_town(caster_ptr)) return NULL;
}
}
break;
case 21:
if (name) return _("テレポート・レベル", "Teleport Level");
- if (desc) return _("瞬時に上か下の階にテレポートする。", "Teleport to up or down stairs in a moment.");
+ if (desc) return _("瞬時に上か下の階にテレポートする。", "Instantly teleports you up or down a level.");
{
if (cast)
case 22:
if (name) return _("帰還の呪文", "Word of Recall");
if (desc) return _("地上にいるときはダンジョンの最深階へ、ダンジョンにいるときは地上へと移動する。",
- "Recalls player from dungeon to town, or from town to the deepest level of dungeon.");
+ "Recalls player from dungeon to town or from town to the deepest level of dungeon.");
{
int base = 15;
case 23:
if (name) return _("次元の扉", "Dimension Door");
- if (desc) return _("短距離内の指定した場所にテレポートする。", "Teleport to given location.");
+ if (desc) return _("短距離内の指定した場所にテレポートする。", "Teleports you to a given location.");
{
POSITION range = plev / 2 + 10;
if (cast)
{
msg_print(_("次元の扉が開いた。目的地を選んで下さい。", "You open a dimensional gate. Choose a destination."));
- if (!dimension_door()) return NULL;
+ if (!dimension_door(caster_ptr)) return NULL;
}
}
break;
case 24:
if (name) return _("調査", "Probing");
if (desc) return _("モンスターの属性、残り体力、最大体力、スピード、正体を知る。",
- "Proves all monsters' alignment, HP, speed and their true character.");
+ "Probes all monsters' alignment, HP, speed and their true character.");
{
if (cast)
{
- probing();
+ probing(caster_ptr);
}
}
break;
if (cast)
{
- explosive_rune(caster_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x);
+ explosive_rune(caster_ptr, caster_ptr->y, caster_ptr->x);
}
}
break;
if (cast)
{
- if (!get_aim_dir(&dir)) return NULL;
+ if (!get_aim_dir(caster_ptr, &dir)) return NULL;
fetch(caster_ptr, dir, weight, FALSE);
}
chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
- wiz_lite(p_ptr, FALSE);
+ wiz_lite(caster_ptr, FALSE);
if (!caster_ptr->telepathy)
{
if (cast)
{
- charm_monsters(power);
+ charm_monsters(caster_ptr, power);
}
}
break;
{
if (cast)
{
- if (!alchemy()) return NULL;
+ if (!alchemy(caster_ptr)) return NULL;
}
}
break;
if (cast)
{
- banish_monsters(power);
+ banish_monsters(caster_ptr, power);
}
}
break;
case 31:
if (name) return _("無傷の球", "Globe of Invulnerability");
if (desc) return _("一定時間、ダメージを受けなくなるバリアを張る。切れた瞬間に少しターンを消費するので注意。",
- "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks or duration time is exceeded.");
+ "Generates a barrier which completely protects you from almost all damage. Takes a few of your turns when the barrier breaks or duration time is exceeded.");
{
int base = 4;