#include "view-mainwindow.h"
-
/*!
* @brief モンスター2体がプレイヤーの近くに居るかの判定 /
* @param m_idx モンスターID一体目
return (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
}
+
/*!
* @brief プレイヤーがモンスターを見ることができるかの判定 /
* @param m_idx モンスターID
return is_seen(m_ptr);
}
+
/*!
* @brief モンスターの唱えた呪文を青魔法で学習できるか判定する /
* @param m_idx モンスターID
return (seen && maneable && !current_world_ptr->timewalk_m_idx);
}
+
/*!
* @brief 特定条件のモンスター召喚のみPM_ALLOW_UNIQUEを許可する /
* @param m_idx モンスターID
return u_mode;
}
+
/*!
* @brief モンスターが呪文行使する際のメッセージを処理する汎用関数 /
* @param m_idx 呪文を唱えるモンスターID
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief モンスターが呪文行使する際のメッセージを処理する汎用関数。盲目時と通常時のメッセージを切り替える。 /
* @param m_idx 呪文を唱えるモンスターID
monspell_message_base(m_idx, t_idx, msg1, msg1, msg2, msg3, p_ptr->blind > 0, TARGET_TYPE);
}
+
/*!
* @brief モンスターが呪文行使する際のメッセージを処理する汎用関数。対モンスターと対プレイヤーのメッセージを切り替える。 /
* @param m_idx 呪文を唱えるモンスターID
monspell_message_base(m_idx, t_idx, msg1, msg2, msg1, msg2, p_ptr->blind > 0, TARGET_TYPE);
}
+
/*!
* @brief RF4_SHRIEKの処理。叫び。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF4_DISPELの処理。魔力消去。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF4_ROCKETの処理。ロケット。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF4_SHOOTの処理。射撃。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF4_BR_*の処理。各種ブレス。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF4_BA_NUKEの処理。放射能球。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF4_BA_CHAOの処理。純ログルス。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_ACIDの処理。アシッド・ボール。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_ELECの処理。サンダー・ボール。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_FIREの処理。ファイア・ボール。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_COLDの処理。アイス・ボール。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_POISの処理。悪臭雲。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_NETHの処理。地獄球。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_WATEの処理。ウォーター・ボール。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_MANAの処理。魔力の嵐。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_DARKの処理。暗黒の嵐。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_DRAIN_MANAの処理。魔力吸収。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_MIND_BLASTの処理。精神攻撃。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BRAIN_SMASHの処理。脳攻撃。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_CAUSE_*のメッセージ処理関数 /
* @param target_ptr プレーヤーへの参照ポインタ
breath(target_ptr, y, x, m_idx, GF_TYPE, dam, 0, FALSE, MS_TYPE, TARGET_TYPE);
}
+
/*!
* @brief RF5_CAUSE_1の処理。軽傷の呪い。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_CAUSE_2の処理。重傷の呪い。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_CAUSE_3の処理。致命傷の呪い。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_CAUSE_4の処理。秘孔を突く。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_ACIDの処理。アシッド・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_ELECの処理。サンダー・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_FIREの処理。ファイア・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_COLDの処理。アイス・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BA_LITEの処理。スターバースト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_NETHの処理。地獄の矢。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_WATEの処理。ウォーター・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_MANAの処理。魔力の矢。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_PLASの処理。プラズマ・ボルト。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_BO_ICEEの処理。極寒の矢。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF5_MISSILEの処理。マジック・ミサイル。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief 状態異常呪文のメッセージ処理関数。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF5_SCAREの処理。恐怖。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF5_BLINDの処理。盲目。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF5_CONFの処理。混乱。/
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF5_SLOWの処理。減速。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF5_HOLDの処理。麻痺。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_HASTEの処理。加速。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_HAND_DOOMの処理。破滅の手。 /
* @param target_ptr プレーヤーへの参照ポインタ
return dam;
}
+
/*!
* @brief RF6_HEALの処理。治癒。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_INVULNERの処理。無敵。 /
* @param m_idx 呪文を唱えるモンスターID
if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
}
+
/*!
* @brief RF6_BLINKの処理。ショート・テレポート。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_TPORTの処理。テレポート。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_WORLDの処理。時を止める。 /
* @param target_ptr プレーヤーへの参照ポインタ
return who;
}
+
/*!
* @brief バーノール・ルパートのRF6_SPECIALの処理。分裂・合体。 /
* @param player_ptr プレーヤーへの参照ポインタ
return 0;
}
+
/*!
* @brief ロレントのRF6_SPECIALの処理。手榴弾の召喚。 /
* @param y 対象の地点のy座標
return 0;
}
+
/*!
* @brief BシンボルのRF6_SPECIALの処理。投げ落とす攻撃。 /
* @param target_ptr プレーヤーへの参照ポインタ
if(monster_to_monster)
mon_take_hit_mon(t_idx, dam, &dead, &fear, extract_note_dies(real_r_idx(t_ptr)), m_idx);
}
+
return dam;
}
+
/*!
* @brief RF6_SPECIALの処理。モンスターの種類によって実処理に振り分ける。 /
* @param target_ptr プレーヤーへの参照ポインタ
}
}
+
/*!
* @brief RF6_TELE_TOの処理。テレポート・バック。 /
* @param target_ptr プレーヤーへの参照ポインタ
}
}
+
/*!
* @brief RF6_TELE_AWAYの処理。テレポート・アウェイ。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_TELE_LEVELの処理。テレポート・レベル。 /
* @param m_idx 呪文を唱えるモンスターID
}
}
+
/*!
* @brief RF6_PSY_SPEARの処理。光の剣。 /
* @param y 対象の地点のy座標
return dam;
}
+
/*!
* @brief RF6_DARKNESSの処理。暗闇or閃光。 /
* @param target_type プレーヤーへの参照ポインタ
}
}
+
/*!
* @brief RF6_TRAPSの処理。トラップ。 /
* @param y 対象の地点のy座標
(void)trap_creation(p_ptr, y, x);
}
+
/*!
* @brief RF6_FORGETの処理。記憶消去。 /
* @param m_idx 呪文を唱えるモンスターID
{
count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
}
+
return count;
}
+
/*!
* @brief インターネット・エクスプローダー召喚の処理。 /
* @param y 対象の地点のy座標
{
count += summon_named_creature(m_idx, y, x, MON_IE, mode);
}
+
return count;
}
+
/*!
* @brief ダンジョン・ガーディアン召喚の処理。 /
* @param y 対象の地点のy座標
{
count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
}
+
return count;
}
+
/*!
* @brief ロックのクローン召喚の処理。 /
* @param y 対象の地点のy座標
{
count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
}
+
return count;
}
+
/*!
* @brief シラミ召喚の処理。 /
* @param y 対象の地点のy座標
{
count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
}
+
return count;
}
+
/*!
* @brief 救援召喚の通常処理。同シンボルのモンスターを召喚する。 /
* @param y 対象の地点のy座標
{
count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
}
+
return count;
}
+
/*!
* @brief RF6_S_KINの処理。救援召喚。使用するモンスターの種類により、実処理に分岐させる。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_CYBERの処理。サイバー・デーモン召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_MONSTERSの処理。モンスター複数召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_ANTの処理。アリ召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_SPIDERの処理。クモ召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_HOUNDの処理。ハウンド召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_HYDRAの処理。ヒドラ召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_ANGELの処理。天使一体召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_DEMONの処理。デーモン一体召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_UNDEADの処理。アンデッド一体召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_DRAGONの処理。ドラゴン一体召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief ナズグル戦隊召喚の処理。 /
* @param target_ptr プレーヤーへの参照ポインタ
return count;
}
+
/*!
* @brief RF6_S_HI_UNDEADの処理。強力なアンデッド召喚。 /
* @param target_ptr プレーヤーへの参照ポインタ
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_AMBERITESの処理。アンバーの王族召喚。 /
* @param y 対象の地点のy座標
p_ptr->current_floor_ptr->monster_noise = TRUE;
}
+
/*!
* @brief RF6_S_UNIQUEの処理。ユニーク・モンスター召喚。 /
* @param y 対象の地点のy座標
}
-
/*!
* @brief モンスターからプレイヤーへの呪文の振り分け関数。 /
* @param SPELL_NUM モンスター魔法ID
case RF6_SPELL_START + 30: spell_RF6_S_AMBERITES(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_AMBERITES */
case RF6_SPELL_START + 31: spell_RF6_S_UNIQUE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_UNIQUE */
}
+
return 0;
}
+
/*!
* todo モンスターからモンスターへの呪文なのにplayer_typeが引数になり得るのは間違っている……
* @brief モンスターからモンスターへの呪文の振り分け関数。 /
return 0;
}
+
/*!
* @brief モンスターの使う呪文の威力を決定する /
* @param dam 定数値
return dam;
}
+
/*!
* @brief モンスターの使う呪文の威力を返す /
* @param SPELL_NUM 呪文番号
{
hp = m_ptr->max_maxhp;
}
+
return monspell_damage_base(SPELL_NUM, hp, rlev, monster_is_powerful(m_idx), shoot_dd, shoot_ds, 0, TYPE);
}
+
/*!
* @brief モンスターの使う呪文の威力を返す /
* @param SPELL_NUM 呪文番号
return monspell_damage_base(SPELL_NUM, MIN(30000, hp), rlev, powerful, shoot_dd, shoot_ds, 0, TYPE);
}
+
/*!
* @brief 青魔導師の使う呪文の威力を返す /
* @param SPELL_NUM 呪文番号
shoot_ds = o_ptr->ds;
shoot_base = o_ptr->to_d;
}
+
return monspell_damage_base(SPELL_NUM, hp, plev * 2, FALSE, shoot_dd, shoot_ds, shoot_base, TYPE);
}