*/
MonsterSpellResult spell_RF4_BA_NUKE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが放射能球を放った。", "%^s casts a ball of radiation."),
- _("%^sが%sに放射能球を放った。", "%^s casts a ball of radiation at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが放射能球を放った。", "%^s casts a ball of radiation."),
+ _("%^sが%sに放射能球を放った。", "%^s casts a ball of radiation at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_NUKE, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_NUKE, dam, 2, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF4_BA_CHAO(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが恐ろしげにつぶやいた。", "%^s mumbles frighteningly."),
- _("%^sが純ログルスを放った。", "%^s invokes a raw Logrus."), _("%^sが%sに純ログルスを放った。", "%^s invokes raw Logrus upon %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが恐ろしげにつぶやいた。", "%^s mumbles frighteningly."),
+ _("%^sが純ログルスを放った。", "%^s invokes a raw Logrus."), _("%^sが%sに純ログルスを放った。", "%^s invokes raw Logrus upon %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_CHAO, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_CHAOS, dam, 4, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BA_ACID(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがアシッド・ボールの呪文を唱えた。", "%^s casts an acid ball."),
- _("%^sが%sに向かってアシッド・ボールの呪文を唱えた。", "%^s casts an acid ball at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってアシッド・ボールの呪文を唱えた。", "%^s casts an acid ball at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto rad = monster_is_powerful(player_ptr->current_floor_ptr, m_idx) ? 4 : 2;
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_ACID, m_idx, DAM_ROLL);
*/
MonsterSpellResult spell_RF5_BA_ELEC(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがサンダー・ボールの呪文を唱えた。", "%^s casts a lightning ball."),
- _("%^sが%sに向かってサンダー・ボールの呪文を唱えた。", "%^s casts a lightning ball at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってサンダー・ボールの呪文を唱えた。", "%^s casts a lightning ball at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto rad = monster_is_powerful(player_ptr->current_floor_ptr, m_idx) ? 4 : 2;
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_ELEC, m_idx, DAM_ROLL);
*/
MonsterSpellResult spell_RF5_BA_FIRE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
+ mspell_cast_msg_blind msg;
monster_type *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
if (m_ptr->r_idx == MON_ROLENTO) {
- monspell_message(player_ptr, m_idx, t_idx, _("%sが何かを投げた。", "%^s throws something."), _("%sは手榴弾を投げた。", "%^s throws a hand grenade."),
- _("%^sが%^sに向かって手榴弾を投げた。", "%^s throws a hand grenade."), TARGET_TYPE);
+ msg.blind = _("%sが何かを投げた。", "%^s throws something.");
+ msg.to_player = _("%sは手榴弾を投げた。", "%^s throws a hand grenade.");
+ msg.to_mons = _("%^sが%^sに向かって手榴弾を投げた。", "%^s throws a hand grenade.");
} else {
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sがファイア・ボールの呪文を唱えた。", "%^s casts a fire ball."),
- _("%^sが%sに向かってファイア・ボールの呪文を唱えた。", "%^s casts a fire ball at %s."), TARGET_TYPE);
+ msg.blind = _("%^sが何かをつぶやいた。", "%^s mumbles.");
+ msg.to_mons = _("%^sがファイア・ボールの呪文を唱えた。", "%^s casts a fire ball.");
+ msg.to_player = _("%^sが%sに向かってファイア・ボールの呪文を唱えた。", "%^s casts a fire ball at %s.");
}
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
+
const auto rad = monster_is_powerful(player_ptr->current_floor_ptr, m_idx) ? 4 : 2;
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_FIRE, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_FIRE, dam, rad, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BA_COLD(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがアイス・ボールの呪文を唱えた。", "%^s casts a frost ball."),
- _("%^sが%sに向かってアイス・ボールの呪文を唱えた。", "%^s casts a frost ball at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってアイス・ボールの呪文を唱えた。", "%^s casts a frost ball at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto rad = monster_is_powerful(player_ptr->current_floor_ptr, m_idx) ? 4 : 2;
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_COLD, m_idx, DAM_ROLL);
*/
MonsterSpellResult spell_RF5_BA_POIS(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが悪臭雲の呪文を唱えた。", "%^s casts a stinking cloud."),
- _("%^sが%sに向かって悪臭雲の呪文を唱えた。", "%^s casts a stinking cloud at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが悪臭雲の呪文を唱えた。", "%^s casts a stinking cloud."),
+ _("%^sが%sに向かって悪臭雲の呪文を唱えた。", "%^s casts a stinking cloud at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_POIS, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_POIS, dam, 2, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BA_NETH(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが地獄球の呪文を唱えた。", "%^s casts a nether ball."),
- _("%^sが%sに向かって地獄球の呪文を唱えた。", "%^s casts a nether ball at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが地獄球の呪文を唱えた。", "%^s casts a nether ball."),
+ _("%^sが%sに向かって地獄球の呪文を唱えた。", "%^s casts a nether ball at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_NETH, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_NETHER, dam, 2, false, TARGET_TYPE);
GAME_TEXT t_name[MAX_NLEN];
monster_name(player_ptr, t_idx, t_name);
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが流れるような身振りをした。", "%^s gestures fluidly."),
- _("%^sが%sに対して流れるような身振りをした。", "%^s gestures fluidly at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが流れるような身振りをした。", "%^s gestures fluidly."),
+ _("%^sが%sに対して流れるような身振りをした。", "%^s gestures fluidly at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
if (mon_to_player) {
msg_format(_("あなたは渦巻きに飲み込まれた。", "You are engulfed in a whirlpool."));
*/
MonsterSpellResult spell_RF5_BA_MANA(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
- _("%^sが魔力の嵐の呪文を念じた。", "%^s invokes a mana storm."), _("%^sが%sに対して魔力の嵐の呪文を念じた。", "%^s invokes a mana storm upon %s."),
- TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
+ _("%^sが魔力の嵐の呪文を念じた。", "%^s invokes a mana storm."), _("%^sが%sに対して魔力の嵐の呪文を念じた。", "%^s invokes a mana storm upon %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_MANA, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_MANA, dam, 4, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BA_DARK(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
+ mspell_cast_msg_blind msg(_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
_("%^sが暗黒の嵐の呪文を念じた。", "%^s invokes a darkness storm."),
- _("%^sが%sに対して暗黒の嵐の呪文を念じた。", "%^s invokes a darkness storm upon %s."), TARGET_TYPE);
+ _("%^sが%sに対して暗黒の嵐の呪文を念じた。", "%^s invokes a darkness storm upon %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_DARK, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_DARK, dam, 4, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BA_LITE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
+ mspell_cast_msg_blind msg(_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
_("%^sがスターバーストの呪文を念じた。", "%^s invokes a starburst."),
- _("%^sが%sに対してスターバーストの呪文を念じた。", "%^s invokes a starburst upon %s."), TARGET_TYPE);
+ _("%^sが%sに対してスターバーストの呪文を念じた。", "%^s invokes a starburst upon %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BA_LITE, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_LITE, dam, 4, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF4_SHOOT(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- bool notice = monspell_message(player_ptr, m_idx, t_idx, _("%^sが奇妙な音を発した。", "%^s makes a strange noise."),
+ mspell_cast_msg_blind msg(_("%^sが奇妙な音を発した。", "%^s makes a strange noise."),
_("%^sが矢を放った。", "%^s fires an arrow."),
- _("%^sが%sに矢を放った。", "%^s fires an arrow at %s."), TARGET_TYPE);
+ _("%^sが%sに矢を放った。", "%^s fires an arrow at %s."));
+
+ bool notice = monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
if (notice) {
sound(SOUND_SHOOT);
*/
MonsterSpellResult spell_RF5_BO_ACID(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがアシッド・ボルトの呪文を唱えた。", "%^s casts an acid bolt."),
- _("%sが%sに向かってアシッド・ボルトの呪文を唱えた。", "%^s casts an acid bolt at %s."), TARGET_TYPE);
+ _("%sが%sに向かってアシッド・ボルトの呪文を唱えた。", "%^s casts an acid bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_ACID, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_ACID, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_ELEC(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがサンダー・ボルトの呪文を唱えた。", "%^s casts a lightning bolt."),
- _("%^sが%sに向かってサンダー・ボルトの呪文を唱えた。", "%^s casts a lightning bolt at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってサンダー・ボルトの呪文を唱えた。", "%^s casts a lightning bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_ELEC, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_ELEC, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_FIRE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがファイア・ボルトの呪文を唱えた。", "%^s casts a fire bolt."),
- _("%^sが%sに向かってファイア・ボルトの呪文を唱えた。", "%^s casts a fire bolt at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってファイア・ボルトの呪文を唱えた。", "%^s casts a fire bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_FIRE, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_FIRE, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_COLD(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがアイス・ボルトの呪文を唱えた。", "%^s casts a frost bolt."),
- _("%^sが%sに向かってアイス・ボルトの呪文を唱えた。", "%^s casts a frost bolt at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってアイス・ボルトの呪文を唱えた。", "%^s casts a frost bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_COLD, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_COLD, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_NETH(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが地獄の矢の呪文を唱えた。", "%^s casts a nether bolt."),
- _("%^sが%sに向かって地獄の矢の呪文を唱えた。", "%^s casts a nether bolt at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが地獄の矢の呪文を唱えた。", "%^s casts a nether bolt."),
+ _("%^sが%sに向かって地獄の矢の呪文を唱えた。", "%^s casts a nether bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_NETH, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_NETHER, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_WATE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがウォーター・ボルトの呪文を唱えた。", "%^s casts a water bolt."),
- _("%^sが%sに向かってウォーター・ボルトの呪文を唱えた。", "%^s casts a water bolt at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってウォーター・ボルトの呪文を唱えた。", "%^s casts a water bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_WATE, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_WATER, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_MANA(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔力の矢の呪文を唱えた。", "%^s casts a mana bolt."),
- _("%^sが%sに向かって魔力の矢の呪文を唱えた。", "%^s casts a mana bolt at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔力の矢の呪文を唱えた。", "%^s casts a mana bolt."),
+ _("%^sが%sに向かって魔力の矢の呪文を唱えた。", "%^s casts a mana bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_MANA, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_MANA, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_PLAS(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがプラズマ・ボルトの呪文を唱えた。", "%^s casts a plasma bolt."),
- _("%^sが%sに向かってプラズマ・ボルトの呪文を唱えた。", "%^s casts a plasma bolt at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってプラズマ・ボルトの呪文を唱えた。", "%^s casts a plasma bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_PLAS, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_PLASMA, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_BO_ICEE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが極寒の矢の呪文を唱えた。", "%^s casts an ice bolt."),
- _("%^sが%sに向かって極寒の矢の呪文を唱えた。", "%^s casts an ice bolt at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが極寒の矢の呪文を唱えた。", "%^s casts an ice bolt."),
+ _("%^sが%sに向かって極寒の矢の呪文を唱えた。", "%^s casts an ice bolt at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::BO_ICEE, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_ICE, dam, TARGET_TYPE);
*/
MonsterSpellResult spell_RF5_MISSILE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがマジック・ミサイルの呪文を唱えた。", "%^s casts a magic missile."),
- _("%^sが%sに向かってマジック・ミサイルの呪文を唱えた。", "%^s casts a magic missile at %s."), TARGET_TYPE);
+ _("%^sが%sに向かってマジック・ミサイルの呪文を唱えた。", "%^s casts a magic missile at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::MISSILE, m_idx, DAM_ROLL);
const auto proj_res = bolt(player_ptr, m_idx, y, x, GF_MISSILE, dam, TARGET_TYPE);
monster_name(player_ptr, m_idx, m_name);
monster_name(player_ptr, t_idx, t_name);
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
- _("%^sが魔力消去の呪文を念じた。", "%^s invokes a dispel magic."), _("%^sが%sに対して魔力消去の呪文を念じた。", "%^s invokes a dispel magic at %s."),
- TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
+ _("%^sが魔力消去の呪文を念じた。", "%^s invokes a dispel magic."), _("%^sが%sに対して魔力消去の呪文を念じた。", "%^s invokes a dispel magic at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
dispel_player(player_ptr);
*/
MonsterSpellResult spell_RF6_DARKNESS(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
+ mspell_cast_msg_blind msg;
+ concptr msg_done;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
monster_type *m_ptr = &floor_ptr->m_list[m_idx];
monster_type *t_ptr = &floor_ptr->m_list[t_idx];
res.learnable = monster_to_player && !can_use_lite_area;
if (can_use_lite_area) {
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが辺りを明るく照らした。", "%^s cast a spell to light up."), _("%^sが辺りを明るく照らした。", "%^s cast a spell to light up."), TARGET_TYPE);
+ msg.blind = _("%^sが何かをつぶやいた。", "%^s mumbles.");
+ msg.to_player = _("%^sが辺りを明るく照らした。", "%^s cast a spell to light up.");
+ msg.to_mons = _("%^sが辺りを明るく照らした。", "%^s cast a spell to light up.");
- if (see_monster(player_ptr, t_idx) && monster_to_monster) {
- msg_format(_("%^sは白い光に包まれた。", "%^s is surrounded by a white light."), t_name);
- }
+ msg_done = _("%^sは白い光に包まれた。", "%^s is surrounded by a white light.");
} else {
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが暗闇の中で手を振った。", "%^s gestures in shadow."),
- _("%^sが暗闇の中で手を振った。", "%^s gestures in shadow."), TARGET_TYPE);
+ msg.blind = _("%^sが何かをつぶやいた。", "%^s mumbles.");
+ msg.to_player = _("%^sが暗闇の中で手を振った。", "%^s gestures in shadow.");
+ msg.to_mons = _("%^sが暗闇の中で手を振った。", "%^s gestures in shadow.");
- if (see_monster(player_ptr, t_idx) && monster_to_monster) {
- msg_format(_("%^sは暗闇に包まれた。", "%^s is surrounded by darkness."), t_name);
- }
+ msg_done = _("%^sは暗闇に包まれた。", "%^s is surrounded by darkness.");
+ }
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
+
+ if (see_monster(player_ptr, t_idx) && monster_to_monster) {
+ msg_format(msg_done, t_name);
}
if (monster_to_player) {
MonsterSpellResult spell_RF6_RAISE_DEAD(player_type *player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが死者復活の呪文を唱えた。", "%^s casts a spell to revive corpses."), _("%^sが死者復活の呪文を唱えた。", "%^s casts a spell to revive corpses."));
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが死者復活の呪文を唱えた。", "%^s casts a spell to revive corpses."), _("%^sが死者復活の呪文を唱えた。", "%^s casts a spell to revive corpses."),
- TARGET_TYPE);
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
animate_dead(player_ptr, m_idx, m_ptr->fy, m_ptr->fx);
*/
MonsterSpellResult spell_RF4_ROCKET(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かを射った。", "%^s shoots something."), _("%^sがロケットを発射した。", "%^s fires a rocket."),
- _("%^sが%sにロケットを発射した。", "%^s fires a rocket at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かを射った。", "%^s shoots something."), _("%^sがロケットを発射した。", "%^s fires a rocket."),
+ _("%^sが%sにロケットを発射した。", "%^s fires a rocket at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::ROCKET, m_idx, DAM_ROLL);
const auto proj_res = breath(player_ptr, y, x, m_idx, GF_ROCKET, dam, 2, false, TARGET_TYPE);
*/
MonsterSpellResult spell_RF6_PSY_SPEAR(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが光の剣を放った。", "%^s throw a Psycho-Spear."),
- _("%^sが%sに向かって光の剣を放った。", "%^s throw a Psycho-spear at %s."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが光の剣を放った。", "%^s throw a Psycho-Spear."),
+ _("%^sが%sに向かって光の剣を放った。", "%^s throw a Psycho-spear at %s."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
const auto dam = monspell_damage(player_ptr, RF_ABILITY::PSY_SPEAR, m_idx, DAM_ROLL);
const auto proj_res = beam(player_ptr, m_idx, y, x, GF_PSY_SPEAR, dam, MONSTER_TO_PLAYER);
int count = 0, k;
int num = 1 + randint1(3);
BIT_FLAGS mode = 0L;
+ mspell_cast_msg_blind msg(_("%^sが何か大量に投げた。", "%^s spreads something."),
+ _("%^sは手榴弾をばらまいた。", "%^s throws some hand grenades."), _("%^sは手榴弾をばらまいた。", "%^s throws some hand grenades."));
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何か大量に投げた。", "%^s spreads something."),
- _("%^sは手榴弾をばらまいた。", "%^s throws some hand grenades."), _("%^sは手榴弾をばらまいた。", "%^s throws some hand grenades."), TARGET_TYPE);
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
for (k = 0; k < num; k++) {
count += summon_named_creature(player_ptr, m_idx, y, x, MON_GRENADE, mode);
char m_poss[10];
monster_desc(player_ptr, m_poss, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE);
- monspell_message_base(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが自分の体に念を送った。", format("%%^s concentrates on %s body.", m_poss)),
_("%^sが自分の体に念を送った。", format("%%^s concentrates on %s body.", m_poss)),
- _("%^sが自分の体に念を送った。", format("%%^s concentrates on %s body.", m_poss)), player_ptr->blind > 0, TARGET_TYPE);
+ _("%^sが自分の体に念を送った。", format("%%^s concentrates on %s body.", m_poss)));
+
+ monspell_message_base(player_ptr, m_idx, t_idx, msg, player_ptr->blind > 0, TARGET_TYPE);
if (set_monster_fast(player_ptr, m_idx, monster_fast_remaining(m_ptr) + 100)) {
if (TARGET_TYPE == MONSTER_TO_PLAYER || (TARGET_TYPE == MONSTER_TO_MONSTER && see_m))
{
const auto res = MonsterSpellResult::make_valid();
+ mspell_cast_msg msg;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
monster_type *m_ptr = &floor_ptr->m_list[m_idx];
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
disturb(player_ptr, true, true);
- monspell_message_base(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sは自分の傷に念を集中した。", format("%%^s concentrates on %s wounds.", m_poss)),
- _("%^sが自分の傷に集中した。", format("%%^s concentrates on %s wounds.", m_poss)),
- _("%^sは自分の傷に念を集中した。", format("%%^s concentrates on %s wounds.", m_poss)), player_ptr->blind > 0, TARGET_TYPE);
+ msg.to_player_true = _("%^sが何かをつぶやいた。", "%^s mumbles.");
+ msg.to_mons_true = _("%^sは自分の傷に念を集中した。", format("%%^s concentrates on %s wounds.", m_poss));
+ msg.to_player_false = _("%^sが自分の傷に集中した。", format("%%^s concentrates on %s wounds.", m_poss));
+ msg.to_mons_false = _("%^sは自分の傷に念を集中した。", format("%%^s concentrates on %s wounds.", m_poss));
+
+ monspell_message_base(player_ptr, m_idx, t_idx, msg, player_ptr->blind > 0, TARGET_TYPE);
m_ptr->hp += (rlev * 6);
if (m_ptr->hp >= m_ptr->maxhp) {
/* Fully healed */
m_ptr->hp = m_ptr->maxhp;
- monspell_message_base(player_ptr, m_idx, t_idx, _("%^sは完全に治ったようだ!", "%^s sounds completely healed!"),
- _("%^sは完全に治ったようだ!", "%^s sounds completely healed!"), _("%^sは完全に治った!", "%^s looks completely healed!"),
- _("%^sは完全に治った!", "%^s looks completely healed!"), !seen, TARGET_TYPE);
+ msg.to_player_true = _("%^sは完全に治ったようだ!", "%^s sounds completely healed!");
+ msg.to_mons_true = _("%^sは完全に治ったようだ!", "%^s sounds completely healed!");
+ msg.to_player_false = _("%^sは完全に治った!", "%^s looks completely healed!");
+ msg.to_mons_false = _("%^sは完全に治った!", "%^s looks completely healed!");
} else {
- monspell_message_base(player_ptr, m_idx, t_idx, _("%^sは体力を回復したようだ。", "%^s sounds healthier."),
- _("%^sは体力を回復したようだ。", "%^s sounds healthier."), _("%^sは体力を回復したようだ。", "%^s looks healthier."),
- _("%^sは体力を回復したようだ。", "%^s looks healthier."), !seen, TARGET_TYPE);
+ msg.to_player_true = _("%^sは体力を回復したようだ。", "%^s sounds healthier.");
+ msg.to_mons_true = _("%^sは体力を回復したようだ。", "%^s sounds healthier.");
+ msg.to_player_false = _("%^sは体力を回復したようだ。", "%^s looks healthier.");
+ msg.to_mons_false = _("%^sは体力を回復したようだ。", "%^s looks healthier.");
}
+ monspell_message_base(player_ptr, m_idx, t_idx, msg, !seen, TARGET_TYPE);
+
if (player_ptr->health_who == m_idx)
player_ptr->redraw |= (PR_HEALTH);
if (player_ptr->riding == m_idx)
{
monster_type *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
bool seen = (!player_ptr->blind && m_ptr->ml);
-
- monspell_message_base(player_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
+ mspell_cast_msg msg(_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."), _("%sは無傷の球の呪文を唱えた。", "%^s casts a Globe of Invulnerability."),
- _("%sは無傷の球の呪文を唱えた。", "%^s casts a Globe of Invulnerability."), !seen, TARGET_TYPE);
+ _("%sは無傷の球の呪文を唱えた。", "%^s casts a Globe of Invulnerability."));
+
+ monspell_message_base(player_ptr, m_idx, t_idx, msg, !seen, TARGET_TYPE);
if (m_ptr->ml) {
MONRACE_IDX r_idx = m_ptr->r_idx;
bool see_either = see_monster(player_ptr, m_idx) || see_monster(player_ptr, t_idx);
bool mon_to_mon = target_type == MONSTER_TO_MONSTER;
bool mon_to_player = target_type == MONSTER_TO_PLAYER;
+
if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT) {
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがダンジョンの主を召喚した。", "%^s magically summons guardians of dungeons."),
- _("%^sがダンジョンの主を召喚した。", "%^s magically summons guardians of dungeons."), target_type);
+ _("%^sがダンジョンの主を召喚した。", "%^s magically summons guardians of dungeons."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, target_type);
return;
}
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
-
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがサイバーデーモンを召喚した!", "%^s magically summons Cyberdemons!"),
- _("%^sがサイバーデーモンを召喚した!", "%^s magically summons Cyberdemons!"), TARGET_TYPE);
+ _("%^sがサイバーデーモンを召喚した!", "%^s magically summons Cyberdemons!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
if (is_friendly(m_ptr) && mon_to_mon) {
count += summon_specific(player_ptr, m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP));
*/
MonsterSpellResult spell_RF6_S_MONSTER(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法で仲間を召喚した!", "%^s magically summons help!"),
- _("%^sが魔法で仲間を召喚した!", "%^s magically summons help!"), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法で仲間を召喚した!", "%^s magically summons help!"),
+ _("%^sが魔法で仲間を召喚した!", "%^s magically summons help!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
int count = 0;
*/
MonsterSpellResult spell_RF6_S_MONSTERS(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが魔法でモンスターを召喚した!", "%^s magically summons monsters!"), _("%^sが魔法でモンスターを召喚した!", "%^s magically summons monsters!"),
- TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが魔法でモンスターを召喚した!", "%^s magically summons monsters!"), _("%^sが魔法でモンスターを召喚した!", "%^s magically summons monsters!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
int count = 0;
*/
MonsterSpellResult spell_RF6_S_ANT(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法でアリを召喚した。", "%^s magically summons ants."),
- _("%^sが魔法でアリを召喚した。", "%^s magically summons ants."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法でアリを召喚した。", "%^s magically summons ants."),
+ _("%^sが魔法でアリを召喚した。", "%^s magically summons ants."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
int count = 0;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
*/
MonsterSpellResult spell_RF6_S_SPIDER(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法でクモを召喚した。", "%^s magically summons spiders."),
- _("%^sが魔法でクモを召喚した。", "%^s magically summons spiders."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."), _("%^sが魔法でクモを召喚した。", "%^s magically summons spiders."),
+ _("%^sが魔法でクモを召喚した。", "%^s magically summons spiders."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
int count = 0;
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
*/
MonsterSpellResult spell_RF6_S_HOUND(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが魔法でハウンドを召喚した。", "%^s magically summons hounds."), _("%^sが魔法でハウンドを召喚した。", "%^s magically summons hounds."),
- TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが魔法でハウンドを召喚した。", "%^s magically summons hounds."), _("%^sが魔法でハウンドを召喚した。", "%^s magically summons hounds."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
int count = 0;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
*/
MonsterSpellResult spell_RF6_S_HYDRA(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが魔法でヒドラを召喚した。", "%^s magically summons hydras."), _("%^sが魔法でヒドラを召喚した。", "%^s magically summons hydras."), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが魔法でヒドラを召喚した。", "%^s magically summons hydras."), _("%^sが魔法でヒドラを召喚した。", "%^s magically summons hydras."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
int count = 0;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
*/
MonsterSpellResult spell_RF6_S_ANGEL(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが魔法で天使を召喚した!", "%^s magically summons an angel!"), _("%^sが魔法で天使を召喚した!", "%^s magically summons an angel!"), TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが魔法で天使を召喚した!", "%^s magically summons an angel!"), _("%^sが魔法で天使を召喚した!", "%^s magically summons an angel!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
monster_type *m_ptr = &floor_ptr->m_list[m_idx];
*/
MonsterSpellResult spell_RF6_S_DEMON(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sは魔法で混沌の宮廷から悪魔を召喚した!", "%^s magically summons a demon from the Courts of Chaos!"),
- _("%^sは魔法で混沌の宮廷から悪魔を召喚した!", "%^s magically summons a demon from the Courts of Chaos!"), TARGET_TYPE);
+ _("%^sは魔法で混沌の宮廷から悪魔を召喚した!", "%^s magically summons a demon from the Courts of Chaos!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
*/
MonsterSpellResult spell_RF6_S_UNDEAD(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが魔法でアンデッドの強敵を召喚した!", "%^s magically summons an undead adversary!"),
- _("%sが魔法でアンデッドを召喚した。", "%^s magically summons undead."), TARGET_TYPE);
+ _("%sが魔法でアンデッドを召喚した。", "%^s magically summons undead."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
*/
MonsterSpellResult spell_RF6_S_DRAGON(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
- _("%^sが魔法でドラゴンを召喚した!", "%^s magically summons a dragon!"), _("%^sが魔法でドラゴンを召喚した!", "%^s magically summons a dragon!"),
- TARGET_TYPE);
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+ _("%^sが魔法でドラゴンを召喚した!", "%^s magically summons a dragon!"), _("%^sが魔法でドラゴンを召喚した!", "%^s magically summons a dragon!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
int count = 0;
- if (((m_ptr->r_idx == MON_MORGOTH) || (m_ptr->r_idx == MON_SAURON) || (m_ptr->r_idx == MON_ANGMAR))
- && ((r_info[MON_NAZGUL].cur_num + 2) < r_info[MON_NAZGUL].max_num) && mon_to_player) {
+ if (((m_ptr->r_idx == MON_MORGOTH) || (m_ptr->r_idx == MON_SAURON) || (m_ptr->r_idx == MON_ANGMAR)) && ((r_info[MON_NAZGUL].cur_num + 2) < r_info[MON_NAZGUL].max_num) && mon_to_player) {
count += summon_NAZGUL(player_ptr, y, x, m_idx);
} else {
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが魔法で強力なアンデッドを召喚した!", "%^s magically summons greater undead!"),
- _("%sが魔法でアンデッドを召喚した。", "%^s magically summons undead."), TARGET_TYPE);
+ _("%sが魔法でアンデッドを召喚した。", "%^s magically summons undead."));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
for (auto k = 0; k < S_NUM_6; k++) {
*/
MonsterSpellResult spell_RF6_S_HI_DRAGON(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが魔法で古代ドラゴンを召喚した!", "%^s magically summons ancient dragons!"),
- _("%^sが魔法で古代ドラゴンを召喚した!", "%^s magically summons ancient dragons!"), TARGET_TYPE);
+ _("%^sが魔法で古代ドラゴンを召喚した!", "%^s magically summons ancient dragons!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
*/
MonsterSpellResult spell_RF6_S_AMBERITES(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがアンバーの王族を召喚した!", "%^s magically summons Lords of Amber!"),
- _("%^sがアンバーの王族を召喚した!", "%^s magically summons Lords of Amber!"), TARGET_TYPE);
+ _("%^sがアンバーの王族を召喚した!", "%^s magically summons Lords of Amber!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
int count = 0;
floor_type *floor_ptr = player_ptr->current_floor_ptr;
*/
MonsterSpellResult spell_RF6_S_UNIQUE(player_type *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monspell_message(player_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
+ mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが魔法で特別な強敵を召喚した!", "%^s magically summons special opponents!"),
- _("%^sが魔法で特別な強敵を召喚した!", "%^s magically summons special opponents!"), TARGET_TYPE);
+ _("%^sが魔法で特別な強敵を召喚した!", "%^s magically summons special opponents!"));
+
+ monspell_message(player_ptr, m_idx, t_idx, msg, TARGET_TYPE);
floor_type *floor_ptr = player_ptr->current_floor_ptr;
monster_type *m_ptr = &floor_ptr->m_list[m_idx];
#include "system/player-type-definition.h"
#include "view/display-messages.h"
+mspell_cast_msg::mspell_cast_msg(concptr to_player_true, concptr to_mons_true, concptr to_player_false, concptr to_mons_false)
+ : to_player_true(to_player_true)
+ , to_mons_true(to_mons_true)
+ , to_player_false(to_player_false)
+ , to_mons_false(to_mons_false)
+ {}
+
+mspell_cast_msg_blind::mspell_cast_msg_blind(concptr blind, concptr to_player, concptr to_mons)
+ : blind(blind)
+ , to_player(to_player)
+ , to_mons(to_mons)
+ {}
+
/*!
* @brief プレイヤーがモンスターを見ることができるかの判定 /
* @param floor_ptr 現在フロアへの参照ポインタ
* @param player_ptr プレイヤーへの参照ポインタ
* @param m_idx 呪文を唱えるモンスターID
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
- * @param msg1 msg_flagがTRUEで、プレイヤーを対象とする場合のメッセージ
- * @param msg2 msg_flagがTRUEで、モンスターを対象とする場合のメッセージ
- * @param msg3 msg_flagがFALSEで、プレイヤーを対象とする場合のメッセージ
- * @param msg4 msg_flagがFALSEで、モンスターを対象とする場合のメッセージ
+ * @param msgs メッセージの構造体
* @param msg_flag_aux メッセージを分岐するためのフラグ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return メッセージを表示した場合trueを返す。
*/
-bool monspell_message_base(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, concptr msg4, bool msg_flag_aux, int TARGET_TYPE)
+bool monspell_message_base(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, const mspell_cast_msg &msgs, bool msg_flag_aux, int TARGET_TYPE)
{
bool notice = false;
floor_type* floor_ptr = player_ptr->current_floor_ptr;
if (msg_flag_aux) {
if (mon_to_player) {
- msg_format(msg1, m_name);
+ msg_format(msgs.to_player_true, m_name);
notice = true;
} else if (mon_to_mon && known && see_either) {
- msg_format(msg2, m_name);
+ msg_format(msgs.to_mons_true, m_name);
notice = true;
}
} else {
if (mon_to_player) {
- msg_format(msg3, m_name);
+ msg_format(msgs.to_player_false, m_name);
notice = true;
} else if (mon_to_mon && known && see_either) {
- msg_format(msg4, m_name, t_name);
+ msg_format(msgs.to_mons_false, m_name, t_name);
notice = true;
}
}
* @param player_ptr プレイヤーへの参照ポインタ
* @param m_idx 呪文を唱えるモンスターID
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
-* @param msg1 プレイヤーが盲目状態のメッセージ
-* @param msg2 プレイヤーが盲目でなく、プレイヤーを対象とする場合のメッセージ
-* @param msg3 プレイヤーが盲目でなく、モンスター対象とする場合のメッセージ
+* @param msgs メッセージの構造体
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return メッセージを表示した場合trueを返す。
*/
-bool monspell_message(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, int TARGET_TYPE)
+bool monspell_message(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, const mspell_cast_msg_blind &msgs, int TARGET_TYPE)
{
- return monspell_message_base(player_ptr, m_idx, t_idx, msg1, msg1, msg2, msg3, player_ptr->blind > 0, TARGET_TYPE);
+ return monspell_message_base(player_ptr, m_idx, t_idx, mspell_cast_msg(msgs.blind, msgs.blind, msgs.to_player, msgs.to_mons), player_ptr->blind > 0, TARGET_TYPE);
}
/*!
struct floor_type;
struct player_type;
+
+struct mspell_cast_msg {
+ mspell_cast_msg(concptr to_player_true, concptr to_mons_true, concptr to_player_false, concptr to_mons_false);
+ mspell_cast_msg() = default;
+ concptr to_player_true; /*!< msg_flagがTRUEかつプレイヤー対象*/
+ concptr to_mons_true; /*!< msg_flagがTRUEかつモンスター対象*/
+ concptr to_player_false; /*!< msg_flagがFALSEかつプレイヤー対象*/
+ concptr to_mons_false; /*!< msg_flagがFALSEかつモンスター対象*/
+};
+
+struct mspell_cast_msg_blind {
+ mspell_cast_msg_blind(concptr blind, concptr to_player, concptr to_mons);
+ mspell_cast_msg_blind() = default;
+ concptr blind; /*!< 盲目時*/
+ concptr to_player; /*!< 対プレイヤーかつ非盲目時*/
+ concptr to_mons; /*!< 対モンスター*/
+};
+
bool see_monster(player_type *player_ptr, MONSTER_IDX m_idx);
-bool monster_near_player(floor_type* floor_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx);
-bool monspell_message_base(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, concptr msg4, bool msg_flag_aux, int TARGET_TYPE);
-bool monspell_message(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, int TARGET_TYPE);
-void simple_monspell_message(player_type* player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, int TARGET_TYPE);
+bool monster_near_player(floor_type *floor_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx);
+bool monspell_message_base(player_type *player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, const mspell_cast_msg &msgs, bool msg_flag_aux, int TARGET_TYPE);
+bool monspell_message(player_type *player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, const mspell_cast_msg_blind &msgs, int TARGET_TYPE);
+void simple_monspell_message(player_type *player_ptr, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, int TARGET_TYPE);
for (auto k = 0; k < num; k++) {
count += summon_specific(player_ptr, m_idx, y, x, rlev, SUMMON_ANTI_TIGERS, PM_NONE);
}
-
+
return count;
}
for (auto k = 0; k < num; k++) {
count += summon_named_creature(player_ptr, m_idx, y, x, MON_PLASMA_VORTEX, PM_NONE);
}
-
+
msg_print(_("プーラーズーマーッ!!", "P--la--s--ma--!!"));
return count;
}