*/
#include "angband.h"
-#include "core.h"
+#include "core/stuff-handler.h"
#include "util.h"
#include "cmd-basic.h"
#include "cmd-pet.h"
#include "melee.h"
#include "object-hook.h"
-#include "realm-song.h"
#include "mutation.h"
#include "player-race.h"
#include "spells-status.h"
#include "spells-object.h"
#include "spells-floor.h"
-#include "spells.h"
#include "cmd-spell.h"
-#include "realm-hex.h"
+#include "realm/realm-hex.h"
#include "targeting.h"
-#include "view-mainwindow.h"
+#include "view/display-main-window.h"
#include "player-class.h"
+#include "effect/spells-effect-util.h"
+#include "spell/spells-type.h"
+#include "spell/spells2.h"
/*!
* @brief 修行僧の構え設定処理
}
prt("", 1, 0);
- prt(_(" どの構えをとりますか?", " Choose Form: "), 1, 14);
+ prt(_(" どの構えをとりますか?", " Choose Stance: "), 1, 14);
- while(1)
+ while (TRUE)
{
choice = inkey();
set_action(creature_ptr, ACTION_NONE);
}
else
- msg_print(_("もともと構えていない。", "You are not assuming a posture."));
+ msg_print(_("もともと構えていない。", "You are not in a special stance."));
screen_load();
return TRUE;
}
if (creature_ptr->special_defense & (KAMAE_GENBU << new_kamae))
{
- msg_print(_("構え直した。", "You reassume a posture."));
+ msg_print(_("構え直した。", "You reassume a stance."));
}
else
{
creature_ptr->special_defense &= ~(KAMAE_MASK);
creature_ptr->update |= (PU_BONUS);
creature_ptr->redraw |= (PR_STATE);
- msg_format(_("%sの構えをとった。", "You assume a posture of %s form."),kamae_shurui[new_kamae].desc);
+ msg_format(_("%sの構えをとった。", "You assume the %s stance."), kamae_shurui[new_kamae].desc);
creature_ptr->special_defense |= (KAMAE_GENBU << new_kamae);
}
creature_ptr->redraw |= PR_STATE;
{
if (creature_ptr->lev >= kata_shurui[i].min_level)
{
- sprintf(buf,_(" %c) %sの型 %s", " %c) Form of %-12s %s"),I2A(i+1), kata_shurui[i].desc, kata_shurui[i].info);
+ sprintf(buf,_(" %c) %sの型 %s", " %c) Stance of %-12s %s"),I2A(i+1), kata_shurui[i].desc, kata_shurui[i].info);
prt(buf, 3+i, 20);
}
}
prt("", 1, 0);
- prt(_(" どの型で構えますか?", " Choose Form: "), 1, 14);
+ prt(_(" どの型で構えますか?", " Choose Stance: "), 1, 14);
- while(1)
+ while (TRUE)
{
choice = inkey();
set_action(creature_ptr, ACTION_NONE);
}
else
- msg_print(_("もともと構えていない。", "You are not assuming posture."));
+ msg_print(_("もともと構えていない。", "You are not in a special stance."));
screen_load();
return TRUE;
}
if (creature_ptr->special_defense & (KATA_IAI << new_kata))
{
- msg_print(_("構え直した。", "You reassume a posture."));
+ msg_print(_("構え直した。", "You reassume a stance."));
}
else
{
creature_ptr->special_defense &= ~(KATA_MASK);
creature_ptr->update |= (PU_BONUS | PU_MONSTERS);
- msg_format(_("%sの型で構えた。", "You assume a posture of %s form."),kata_shurui[new_kata].desc);
+ msg_format(_("%sの型で構えた。", "You assume the %s stance."), kata_shurui[new_kata].desc);
creature_ptr->special_defense |= (KATA_IAI << new_kata);
}
creature_ptr->redraw |= (PR_STATE | PR_STATUS);
/*!
- * @brief レイシャル・パワー情報のtypedef
- */
-typedef struct power_desc_type power_desc_type;
-
-/*!
* @brief レイシャル・パワー情報の構造体定義
*/
-struct power_desc_type
+typedef struct power_desc_type
{
GAME_TEXT name[MAX_NLEN]; //!<レイシャル名
PLAYER_LEVEL level; //!<体得レベル
int stat;
PERCENTAGE fail;
int number;
-};
+} power_desc_type;
/*!
/* No chance for success */
if ((creature_ptr->lev < min_level) || creature_ptr->confused)
{
- return (0);
+ return 0;
}
if (difficulty == 0) return 100;
* 発動成功ならば1、発動失敗ならば-1、キャンセルならば0を返す。
* return value indicates that we have succesfully used the power 1: Succeeded, 0: Cancelled, -1: Failed
*/
-static int racial_aux(player_type *caster_ptr, power_desc_type *pd_ptr)
+static int racial_aux(player_type *creature_ptr, power_desc_type *pd_ptr)
{
PLAYER_LEVEL min_level = pd_ptr->level;
int use_stat = pd_ptr->stat;
racial_cost = pd_ptr->cost;
/* Not enough mana - use hp */
- if (caster_ptr->csp < racial_cost) use_hp = racial_cost - caster_ptr->csp;
+ if (creature_ptr->csp < racial_cost) use_hp = racial_cost - creature_ptr->csp;
/* Power is not available yet */
- if (caster_ptr->lev < min_level)
+ if (creature_ptr->lev < min_level)
{
msg_format(_("この能力を使用するにはレベル %d に達していなければなりません。",
"You need to attain level %d to use this power."), min_level);
- free_turn(caster_ptr);
+ free_turn(creature_ptr);
return FALSE;
}
- if (cmd_limit_confused(caster_ptr))
+ if (cmd_limit_confused(creature_ptr))
{
- free_turn(caster_ptr);
+ free_turn(creature_ptr);
return FALSE;
}
/* Risk death? */
- else if (caster_ptr->chp < use_hp)
+ else if (creature_ptr->chp < use_hp)
{
if (!get_check(_("本当に今の衰弱した状態でこの能力を使いますか?", "Really use the power in your weakened state? ")))
{
- free_turn(caster_ptr);
+ free_turn(creature_ptr);
return FALSE;
}
}
if (difficulty)
{
- if (caster_ptr->stun)
+ if (creature_ptr->stun)
{
- difficulty += caster_ptr->stun;
+ difficulty += creature_ptr->stun;
}
- else if (caster_ptr->lev > min_level)
+ else if (creature_ptr->lev > min_level)
{
- int lev_adj = ((caster_ptr->lev - min_level) / 3);
+ int lev_adj = ((creature_ptr->lev - min_level) / 3);
if (lev_adj > 10) lev_adj = 10;
difficulty -= lev_adj;
}
}
/* take time and pay the price */
- take_turn(caster_ptr, 100);
+ take_turn(creature_ptr, 100);
/* Success? */
- if (randint1(caster_ptr->stat_cur[use_stat]) >= ((difficulty / 2) + randint1(difficulty / 2)))
+ if (randint1(creature_ptr->stat_cur[use_stat]) >= ((difficulty / 2) + randint1(difficulty / 2)))
{
return 1;
}
/*!
* @brief レイシャル・パワー発動処理
+ * @param creature_ptr プレーヤーへの参照ポインタ
* @param command 発動するレイシャルのID
* @return 処理を実際に実行した場合はTRUE、キャンセルした場合FALSEを返す。
*/
case CLASS_HIGH_MAGE:
if (creature_ptr->realm1 == REALM_HEX)
{
- bool retval = stop_hex_spell();
+ bool retval = stop_hex_spell(creature_ptr);
if (retval) creature_ptr->energy_use = 10;
return (retval);
}
+ /* Fall through */
case CLASS_MAGE:
/* case CLASS_HIGH_MAGE: */
case CLASS_SORCERER:
{
if (is_good_realm(creature_ptr->realm1))
{
- if (!bless_weapon()) return FALSE;
+ if (!bless_weapon(creature_ptr)) return FALSE;
}
else
{
- (void)dispel_monsters(plev * 4);
- turn_monsters(plev * 4);
- banish_monsters(plev * 4);
+ (void)dispel_monsters(creature_ptr, plev * 4);
+ turn_monsters(creature_ptr, plev * 4);
+ banish_monsters(creature_ptr, plev * 4);
}
break;
}
case CLASS_ROGUE:
{
- if(!panic_hit()) return FALSE;
+ if(!hit_and_away(creature_ptr)) return FALSE;
break;
}
case CLASS_RANGER:
case CLASS_SNIPER:
{
msg_print(_("敵を調査した...", "You examine your foes..."));
- probing();
+ probing(creature_ptr);
break;
}
case CLASS_PALADIN:
{
- if (!get_aim_dir(&dir)) return FALSE;
- fire_beam(is_good_realm(creature_ptr->realm1) ? GF_HOLY_FIRE : GF_HELL_FIRE,
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ fire_beam(creature_ptr, is_good_realm(creature_ptr->realm1) ? GF_HOLY_FIRE : GF_HELL_FIRE,
dir, plev * 3);
break;
}
{
if (!(empty_hands(creature_ptr, TRUE) & EMPTY_HAND_RARM))
{
- msg_print(_("素手じゃないとできません。", "You need to be bare hand."));
+ msg_print(_("素手じゃないとできません。", "You need to be barehanded."));
return FALSE;
}
if (creature_ptr->riding)
{
if (command == -3)
{
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
project_length = 1;
- fire_beam(GF_PHOTO, dir, 1);
+ fire_beam(creature_ptr, GF_PHOTO, dir, 1);
}
else if (command == -4)
{
- if (!identify_fully(FALSE)) return FALSE;
+ if (!identify_fully(creature_ptr, FALSE, 0)) return FALSE;
}
break;
}
case CLASS_IMITATOR:
{
- handle_stuff();
- if (!do_cmd_mane(p_ptr, TRUE)) return FALSE;
+ handle_stuff(creature_ptr);
+ if (!do_cmd_mane(creature_ptr, TRUE)) return FALSE;
break;
}
case CLASS_BEASTMASTER:
{
if (command == -3)
{
- if (!get_aim_dir(&dir)) return FALSE;
- (void)fire_ball_hide(GF_CHARM_LIVING, dir, creature_ptr->lev, 0);
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ (void)fire_ball_hide(creature_ptr, GF_CHARM_LIVING, dir, creature_ptr->lev, 0);
}
else if (command == -4)
{
- project_all_los(GF_CHARM_LIVING, creature_ptr->lev);
+ project_all_los(creature_ptr, GF_CHARM_LIVING, creature_ptr->lev);
}
break;
}
case CLASS_RED_MAGE:
{
if (cmd_limit_cast(creature_ptr)) return FALSE;
- handle_stuff();
+ handle_stuff(creature_ptr);
do_cmd_cast(creature_ptr);
- handle_stuff();
+ handle_stuff(creature_ptr);
if (!creature_ptr->paralyzed && !cmd_limit_cast(creature_ptr))
do_cmd_cast(creature_ptr);
break;
{
if (creature_ptr->lev > 29)
{
- if (!identify_fully(TRUE)) return FALSE;
+ if (!identify_fully(creature_ptr, TRUE, 0)) return FALSE;
}
else
{
- if (!ident_spell(TRUE)) return FALSE;
+ if (!ident_spell(creature_ptr, TRUE, 0)) return FALSE;
}
break;
}
if (command == -3)
{
/* Explode all mirrors */
- remove_all_mirrors(TRUE);
+ remove_all_mirrors(creature_ptr, TRUE);
}
else if (command == -4)
{
{
case RACE_DWARF:
msg_print(_("周囲を調べた。", "You examine your surroundings."));
- (void)detect_traps(DETECT_RAD_DEFAULT, TRUE);
- (void)detect_doors(DETECT_RAD_DEFAULT);
- (void)detect_stairs(DETECT_RAD_DEFAULT);
+ (void)detect_traps(creature_ptr, DETECT_RAD_DEFAULT, TRUE);
+ (void)detect_doors(creature_ptr, DETECT_RAD_DEFAULT);
+ (void)detect_stairs(creature_ptr, DETECT_RAD_DEFAULT);
break;
case RACE_HOBBIT:
case RACE_GNOME:
msg_print(_("パッ!", "Blink!"));
- teleport_player(10, 0L);
+ teleport_player(creature_ptr, 10, TELEPORT_SPONTANEOUS);
break;
case RACE_HALF_ORC:
case RACE_HALF_TROLL:
msg_print(_("うがぁぁ!", "RAAAGH!"));
- (void)berserk(p_ptr, 10 + randint1(plev));
+ (void)berserk(creature_ptr, 10 + randint1(plev));
break;
case RACE_AMBERITE:
if (command == -1)
{
msg_print(_("あなたは歩き周り始めた。", "You start walking around. "));
- alter_reality();
+ reserve_alter_reality(creature_ptr);
}
else if (command == -2)
{
case RACE_BARBARIAN:
msg_print(_("うぉぉおお!", "Raaagh!"));
- (void)berserk(p_ptr, 10 + randint1(plev));
+ (void)berserk(creature_ptr, 10 + randint1(plev));
break;
case RACE_HALF_OGRE:
msg_print(_("爆発のルーンを慎重に仕掛けた...", "You carefully set an explosive rune..."));
- explosive_rune(creature_ptr->current_floor_ptr, creature_ptr->y, creature_ptr->x);
+ explosive_rune(creature_ptr, creature_ptr->y, creature_ptr->x);
break;
case RACE_HALF_GIANT:
- if (!get_aim_dir(&dir)) return FALSE;
- (void)wall_to_mud(dir, 20 + randint1(30));
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ (void)wall_to_mud(creature_ptr, dir, 20 + randint1(30));
break;
case RACE_HALF_TITAN:
msg_print(_("敵を調査した...", "You examine your foes..."));
- probing();
+ probing(creature_ptr);
break;
case RACE_CYCLOPS:
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
msg_print(_("巨大な岩を投げた。", "You throw a huge boulder."));
- fire_bolt(GF_MISSILE, dir, (3 * plev) / 2);
+ fire_bolt(creature_ptr, GF_MISSILE, dir, (3 * plev) / 2);
break;
case RACE_YEEK:
- if (!get_aim_dir(&dir)) return FALSE;
- stop_mouth();
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ stop_mouth(creature_ptr);
msg_print(_("身の毛もよだつ叫び声を上げた!", "You make a horrible scream!"));
- (void)fear_monster(dir, plev);
+ (void)fear_monster(creature_ptr, dir, plev);
break;
case RACE_KLACKON:
- if (!get_aim_dir(&dir)) return FALSE;
- stop_mouth();
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ stop_mouth(creature_ptr);
msg_print(_("酸を吐いた。", "You spit acid."));
- if (plev < 25) fire_bolt(GF_ACID, dir, plev);
- else fire_ball(GF_ACID, dir, plev, 2);
+ if (plev < 25) fire_bolt(creature_ptr, GF_ACID, dir, plev);
+ else fire_ball(creature_ptr, GF_ACID, dir, plev, 2);
break;
case RACE_KOBOLD:
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
msg_print(_("毒のダーツを投げた。", "You throw a dart of poison."));
- fire_bolt(GF_POIS, dir, plev);
+ fire_bolt(creature_ptr, GF_POIS, dir, plev);
break;
case RACE_NIBELUNG:
msg_print(_("周囲を調査した。", "You examine your surroundings."));
- (void)detect_traps(DETECT_RAD_DEFAULT, TRUE);
- (void)detect_doors(DETECT_RAD_DEFAULT);
- (void)detect_stairs(DETECT_RAD_DEFAULT);
+ (void)detect_traps(creature_ptr, DETECT_RAD_DEFAULT, TRUE);
+ (void)detect_doors(creature_ptr, DETECT_RAD_DEFAULT);
+ (void)detect_stairs(creature_ptr, DETECT_RAD_DEFAULT);
break;
case RACE_DARK_ELF:
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
msg_print(_("マジック・ミサイルを放った。", "You cast a magic missile."));
- fire_bolt_or_beam(10, GF_MISSILE, dir, damroll(3 + ((plev - 1) / 5), 4));
+ fire_bolt_or_beam(creature_ptr, 10, GF_MISSILE, dir, damroll(3 + ((plev - 1) / 5), 4));
break;
case RACE_DRACONIAN:
break;
case RACE_MIND_FLAYER:
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
msg_print(_("あなたは集中し、目が赤く輝いた...", "You concentrate and your eyes glow red..."));
- fire_bolt(GF_PSI, dir, plev);
+ fire_bolt(creature_ptr, GF_PSI, dir, plev);
break;
case RACE_IMP:
- if (!get_aim_dir(&dir)) return FALSE;
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
if (plev >= 30)
{
msg_print(_("ファイア・ボールを放った。", "You cast a ball of fire."));
- fire_ball(GF_FIRE, dir, plev, 2);
+ fire_ball(creature_ptr, GF_FIRE, dir, plev, 2);
}
else
{
msg_print(_("ファイア・ボルトを放った。", "You cast a bolt of fire."));
- fire_bolt(GF_FIRE, dir, plev);
+ fire_bolt(creature_ptr, GF_FIRE, dir, plev);
}
break;
break;
case RACE_SPECTRE:
- if (!get_aim_dir(&dir)) return FALSE;
- stop_mouth();
+ if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+ stop_mouth(creature_ptr);
msg_print(_("あなたはおどろおどろしい叫び声をあげた!", "You emit an eldritch howl!"));
- (void)fear_monster(dir, plev);
+ (void)fear_monster(creature_ptr, dir, plev);
break;
case RACE_SPRITE:
msg_print(_("あなたは魔法の粉を投げつけた...", "You throw some magic dust..."));
- if (plev < 25) sleep_monsters_touch();
- else (void)sleep_monsters(plev);
+ if (plev < 25) sleep_monsters_touch(creature_ptr);
+ else (void)sleep_monsters(creature_ptr, plev);
break;
case RACE_DEMON:
free_turn(creature_ptr);
}
}
+
return TRUE;
}
+
/*!
* @brief レイシャル・パワーコマンドのメインルーチン / Allow user to choose a power (racial / mutation) to activate
* @return なし
case CLASS_HIGH_MAGE:
if (creature_ptr->realm1 == REALM_HEX)
{
- strcpy(power_desc[num].name, _("詠唱をやめる", "Stop spelling"));
+ strcpy(power_desc[num].name, _("詠唱をやめる", "Stop spell casting"));
power_desc[num].level = 1;
power_desc[num].cost = 0;
power_desc[num].stat = A_INT;
power_desc[num++].number = -3;
break;
}
+ /* Fall through */
case CLASS_MAGE:
/* case CLASS_HIGH_MAGE: */
case CLASS_SORCERER:
}
case CLASS_MONK:
{
- strcpy(power_desc[num].name, _("構える", "Assume a Posture"));
+ strcpy(power_desc[num].name, _("構える", "Assume a Stance"));
power_desc[num].level = 25;
power_desc[num].cost = 0;
power_desc[num].stat = A_DEX;
power_desc[num].fail = 0;
power_desc[num++].number = -3;
- strcpy(power_desc[num].name, _("型", "Assume a Posture"));
+ strcpy(power_desc[num].name, _("型", "Assume a Stance"));
power_desc[num].level = 25;
power_desc[num].cost = 0;
power_desc[num].stat = A_DEX;
power_desc[num++].number = MUT1_STERILITY;
}
- if (creature_ptr->muta1 & MUT1_PANIC_HIT)
+ if (creature_ptr->muta1 & MUT1_HIT_AND_AWAY)
{
strcpy(power_desc[num].name, _("ヒット&アウェイ", "Panic Hit"));
power_desc[num].level = 10;
power_desc[num].cost = 12;
power_desc[num].stat = A_DEX;
power_desc[num].fail = 14;
- power_desc[num++].number = MUT1_PANIC_HIT;
+ power_desc[num++].number = MUT1_HIT_AND_AWAY;
}
if (creature_ptr->muta1 & MUT1_DAZZLE)