• R/O
  • HTTP
  • SSH
  • HTTPS

hengband: Commit

変愚蛮怒のメインリポジトリです


Commit MetaInfo

Revision316d30d402d899081a1383ff202ba9d5caa73c15 (tree)
Time2014-02-25 19:31:55
Authordis- <dis.rogue@gmai...>
Commiterdis-

Log Message

refactor: share monspell_damage in cast_learned_spell

Change Summary

Incremental Difference

--- a/src/externs.h
+++ b/src/externs.h
@@ -1600,6 +1600,7 @@ extern int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx);
16001600 extern int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx);
16011601 extern int monspell_damage(int SPELL_NUM, int m_idx, int TYPE);
16021602 extern int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE);
1603+extern int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE);
16031604
16041605 /* hissatsu.c */
16051606 extern void hissatsu_info(char *p, int power);
--- a/src/mspells3.c
+++ b/src/mspells3.c
@@ -724,12 +724,7 @@ static bool cast_learned_spell(int spell, bool success)
724724 switch (spell)
725725 {
726726 case MS_SHRIEK:
727-#ifdef JP
728-msg_print("かん高い金切り声をあげた。");
729-#else
730- msg_print("You make a high pitched shriek.");
731-#endif
732-
727+ msg_print(_("かん高い金切り声をあげた。", "You make a high pitched shriek."));
733728 aggravate_monsters(0);
734729 break;
735730 case MS_XXX1:
@@ -748,38 +743,20 @@ msg_print("
748743 }
749744 case MS_ROCKET:
750745 if (!get_aim_dir(&dir)) return FALSE;
751- else
752-#ifdef JP
753-msg_print("ロケットを発射した。");
754-#else
755- msg_print("You fire a rocket.");
756-#endif
757- damage = hp / 4;
758- fire_rocket(GF_ROCKET, dir, damage, 2);
746+
747+ msg_print(_("ロケットを発射した。", "You fire a rocket."));
748+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_ROCKET), plev, DAM_ROLL);
749+ fire_rocket(GF_ROCKET, dir, damage, 2);
759750 break;
760751 case MS_SHOOT:
761752 {
762753 object_type *o_ptr = NULL;
763754
764755 if (!get_aim_dir(&dir)) return FALSE;
765- else
766- {
767-#ifdef JP
768-msg_print("矢を放った。");
769-#else
770- msg_print("You fire an arrow.");
771-#endif
772- if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
773- else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
774- else
775- damage = 1;
776- if (o_ptr)
777- {
778- damage = damroll(o_ptr->dd, o_ptr->ds)+ o_ptr->to_d;
779- if (damage < 1) damage = 1;
780- }
781- fire_bolt(GF_ARROW, dir, damage);
782- }
756+
757+ msg_print(_("矢を放った。", "You fire an arrow."));
758+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_SHOOT), plev, DAM_ROLL);
759+ fire_bolt(GF_ARROW, dir, damage);
783760 break;
784761 }
785762 case MS_XXX2:
@@ -790,487 +767,358 @@ msg_print("
790767 break;
791768 case MS_BR_ACID:
792769 if (!get_aim_dir(&dir)) return FALSE;
793-#ifdef JP
794-else msg_print("酸のブレスを吐いた。");
795-#else
796- else msg_print("You breathe acid.");
797-#endif
798- damage = hp / 3;
770+
771+ msg_print(_("酸のブレスを吐いた。", "You breathe acid."));
772+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_ACID), plev, DAM_ROLL);
799773 fire_ball(GF_ACID, dir, damage, (plev > 40 ? -3 : -2));
800774 break;
801775 case MS_BR_ELEC:
802776 if (!get_aim_dir(&dir)) return FALSE;
803-#ifdef JP
804-else msg_print("稲妻のブレスを吐いた。");
805-#else
806- else msg_print("You breathe lightning.");
807-#endif
808- damage = hp / 3;
777+
778+ msg_print(_("稲妻のブレスを吐いた。", "You breathe lightning."));
779+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_ELEC), plev, DAM_ROLL);
809780 fire_ball(GF_ELEC, dir, damage, (plev > 40 ? -3 : -2));
810781 break;
811782 case MS_BR_FIRE:
812783 if (!get_aim_dir(&dir)) return FALSE;
813-#ifdef JP
814-else msg_print("火炎のブレスを吐いた。");
815-#else
816- else msg_print("You breathe fire.");
817-#endif
818- damage = hp / 3;
784+
785+ msg_print(_("火炎のブレスを吐いた。", "You breathe fire."));
786+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_FIRE), plev, DAM_ROLL);
819787 fire_ball(GF_FIRE, dir, damage, (plev > 40 ? -3 : -2));
820788 break;
821789 case MS_BR_COLD:
822- if (!get_aim_dir(&dir)) return FALSE;
823-#ifdef JP
824-else msg_print("冷気のブレスを吐いた。");
825-#else
826- else msg_print("You breathe frost.");
827-#endif
828- damage = hp / 3;
790+ if (!get_aim_dir(&dir)) return FALSE;
791+
792+ msg_print(_("冷気のブレスを吐いた。", "You breathe frost."));
793+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_COLD), plev, DAM_ROLL);
829794 fire_ball(GF_COLD, dir, damage, (plev > 40 ? -3 : -2));
830795 break;
831796 case MS_BR_POIS:
832- if (!get_aim_dir(&dir)) return FALSE;
833-#ifdef JP
834-else msg_print("ガスのブレスを吐いた。");
835-#else
836- else msg_print("You breathe gas.");
837-#endif
838- damage = hp / 3;
797+ if (!get_aim_dir(&dir)) return FALSE;
798+
799+ msg_print(_("ガスのブレスを吐いた。", "You breathe gas."));
800+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_POIS), plev, DAM_ROLL);
839801 fire_ball(GF_POIS, dir, damage, (plev > 40 ? -3 : -2));
840802 break;
841803 case MS_BR_NETHER:
842- if (!get_aim_dir(&dir)) return FALSE;
843-#ifdef JP
844-else msg_print("地獄のブレスを吐いた。");
845-#else
846- else msg_print("You breathe nether.");
847-#endif
848- damage = hp / 6;
804+ if (!get_aim_dir(&dir)) return FALSE;
805+
806+ msg_print(_("地獄のブレスを吐いた。", "You breathe nether."));
807+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NETH), plev, DAM_ROLL);
849808 fire_ball(GF_NETHER, dir, damage, (plev > 40 ? -3 : -2));
850809 break;
851810 case MS_BR_LITE:
852811 if (!get_aim_dir(&dir)) return FALSE;
853-#ifdef JP
854-else msg_print("閃光のブレスを吐いた。");
855-#else
856- else msg_print("You breathe light.");
857-#endif
858- damage = hp / 6;
812+
813+ msg_print(_("閃光のブレスを吐いた。", "You breathe light."));
814+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_LITE), plev, DAM_ROLL);
859815 fire_ball(GF_LITE, dir, damage, (plev > 40 ? -3 : -2));
860816 break;
861817 case MS_BR_DARK:
862818 if (!get_aim_dir(&dir)) return FALSE;
863-#ifdef JP
864-else msg_print("暗黒のブレスを吐いた。");
865-#else
866- else msg_print("You breathe darkness.");
867-#endif
868- damage = hp / 6;
819+
820+ msg_print(_("暗黒のブレスを吐いた。", "You breathe darkness."));
821+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DARK), plev, DAM_ROLL);
869822 fire_ball(GF_DARK, dir, damage, (plev > 40 ? -3 : -2));
870823 break;
871824 case MS_BR_CONF:
872825 if (!get_aim_dir(&dir)) return FALSE;
873-#ifdef JP
874-else msg_print("混乱のブレスを吐いた。");
875-#else
876- else msg_print("You breathe confusion.");
877-#endif
878- damage = hp / 6;
826+
827+ msg_print(_("混乱のブレスを吐いた。", "You breathe confusion."));
828+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_CONF), plev, DAM_ROLL);
879829 fire_ball(GF_CONFUSION, dir, damage, (plev > 40 ? -3 : -2));
880830 break;
881831 case MS_BR_SOUND:
882832 if (!get_aim_dir(&dir)) return FALSE;
883-#ifdef JP
884-else msg_print("轟音のブレスを吐いた。");
885-#else
886- else msg_print("You breathe sound.");
887-#endif
888- damage = hp / 6;
833+
834+ msg_print(_("轟音のブレスを吐いた。", "You breathe sound."));
835+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_SOUN), plev, DAM_ROLL);
889836 fire_ball(GF_SOUND, dir, damage, (plev > 40 ? -3 : -2));
890837 break;
891838 case MS_BR_CHAOS:
892839 if (!get_aim_dir(&dir)) return FALSE;
893-#ifdef JP
894-else msg_print("カオスのブレスを吐いた。");
895-#else
896- else msg_print("You breathe chaos.");
897-#endif
898- damage = hp / 6;
840+
841+ msg_print(_("カオスのブレスを吐いた。", "You breathe chaos."));
842+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_CHAO), plev, DAM_ROLL);
899843 fire_ball(GF_CHAOS, dir, damage, (plev > 40 ? -3 : -2));
900844 break;
901845 case MS_BR_DISEN:
902846 if (!get_aim_dir(&dir)) return FALSE;
903-#ifdef JP
904-else msg_print("劣化のブレスを吐いた。");
905-#else
906- else msg_print("You breathe disenchantment.");
907-#endif
908- damage = hp / 6;
847+
848+ msg_print(_("劣化のブレスを吐いた。", "You breathe disenchantment."));
849+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISE), plev, DAM_ROLL);
909850 fire_ball(GF_DISENCHANT, dir, damage, (plev > 40 ? -3 : -2));
910851 break;
911852 case MS_BR_NEXUS:
912853 if (!get_aim_dir(&dir)) return FALSE;
913-#ifdef JP
914-else msg_print("因果混乱のブレスを吐いた。");
915-#else
916- else msg_print("You breathe nexus.");
917-#endif
918- damage = MIN(hp / 3, 250);
854+
855+ msg_print(_("因果混乱のブレスを吐いた。", "You breathe nexus."));
856+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NEXU), plev, DAM_ROLL);
919857 fire_ball(GF_NEXUS, dir, damage, (plev > 40 ? -3 : -2));
920858 break;
921859 case MS_BR_TIME:
922860 if (!get_aim_dir(&dir)) return FALSE;
923-#ifdef JP
924-else msg_print("時間逆転のブレスを吐いた。");
925-#else
926- else msg_print("You breathe time.");
927-#endif
928- damage = MIN(hp / 3, 150);
861+
862+ msg_print(_("時間逆転のブレスを吐いた。", "You breathe time."));
863+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_TIME), plev, DAM_ROLL);
929864 fire_ball(GF_TIME, dir, damage, (plev > 40 ? -3 : -2));
930865 break;
931866 case MS_BR_INERTIA:
932867 if (!get_aim_dir(&dir)) return FALSE;
933-#ifdef JP
934-else msg_print("遅鈍のブレスを吐いた。");
935-#else
936- else msg_print("You breathe inertia.");
937-#endif
938- damage = MIN(hp / 6, 200);
868+
869+ msg_print(_("遅鈍のブレスを吐いた。", "You breathe inertia."));
870+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_INER), plev, DAM_ROLL);
939871 fire_ball(GF_INERTIA, dir, damage, (plev > 40 ? -3 : -2));
940872 break;
941873 case MS_BR_GRAVITY:
942874 if (!get_aim_dir(&dir)) return FALSE;
943-#ifdef JP
944-else msg_print("重力のブレスを吐いた。");
945-#else
946- else msg_print("You breathe gravity.");
947-#endif
948- damage = MIN(hp / 3, 200);
875+
876+ msg_print(_("重力のブレスを吐いた。", "You breathe gravity."));
877+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_GRAV), plev, DAM_ROLL);
949878 fire_ball(GF_GRAVITY, dir, damage, (plev > 40 ? -3 : -2));
950879 break;
951880 case MS_BR_SHARDS:
952- if (!get_aim_dir(&dir)) return FALSE;
953-#ifdef JP
954-else msg_print("破片のブレスを吐いた。");
955-#else
956- else msg_print("You breathe shards.");
957-#endif
958- damage = hp / 6;
881+ if (!get_aim_dir(&dir)) return FALSE;
882+
883+ msg_print(_("破片のブレスを吐いた。", "You breathe shards."));
884+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_SHAR), plev, DAM_ROLL);
959885 fire_ball(GF_SHARDS, dir, damage, (plev > 40 ? -3 : -2));
960886 break;
961887 case MS_BR_PLASMA:
962- if (!get_aim_dir(&dir)) return FALSE;
963-#ifdef JP
964-else msg_print("プラズマのブレスを吐いた。");
965-#else
966- else msg_print("You breathe plasma.");
967-#endif
968- damage = MIN(hp / 6, 150);
888+ if (!get_aim_dir(&dir)) return FALSE;
889+
890+ msg_print(_("プラズマのブレスを吐いた。", "You breathe plasma."));
891+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_PLAS), plev, DAM_ROLL);
969892 fire_ball(GF_PLASMA, dir, damage, (plev > 40 ? -3 : -2));
970893 break;
971894 case MS_BR_FORCE:
972- if (!get_aim_dir(&dir)) return FALSE;
973-#ifdef JP
974-else msg_print("フォースのブレスを吐いた。");
975-#else
976- else msg_print("You breathe force.");
977-#endif
978- damage = MIN(hp / 6, 200);
895+ if (!get_aim_dir(&dir)) return FALSE;
896+
897+ msg_print(_("フォースのブレスを吐いた。", "You breathe force."));
898+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_WALL), plev, DAM_ROLL);
979899 fire_ball(GF_FORCE, dir, damage, (plev > 40 ? -3 : -2));
980900 break;
981901 case MS_BR_MANA:
982902 if (!get_aim_dir(&dir)) return FALSE;
983-#ifdef JP
984-else msg_print("魔力のブレスを吐いた。");
985-#else
986- else msg_print("You breathe mana.");
987-#endif
988-
989- damage = MIN(hp / 3, 250);
903+
904+ msg_print(_("魔力のブレスを吐いた。", "You breathe mana."));
905+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_MANA), plev, DAM_ROLL);
990906 fire_ball(GF_MANA, dir, damage, (plev > 40 ? -3 : -2));
991907 break;
992908 case MS_BALL_NUKE:
993909 if (!get_aim_dir(&dir)) return FALSE;
994-#ifdef JP
995-else msg_print("放射能球を放った。");
996-#else
997- else msg_print("You cast a ball of radiation.");
998-#endif
999- damage = plev * 2 + damroll(10, 6);
910+
911+ msg_print(_("放射能球を放った。", "You cast a ball of radiation."));
912+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BA_NUKE), plev, DAM_ROLL);
1000913 fire_ball(GF_NUKE, dir, damage, 2);
1001914 break;
1002915 case MS_BR_NUKE:
1003916 if (!get_aim_dir(&dir)) return FALSE;
1004-#ifdef JP
1005-else msg_print("放射性廃棄物のブレスを吐いた。");
1006-#else
1007- else msg_print("You breathe toxic waste.");
1008-#endif
1009- damage = hp / 3;
917+
918+ msg_print(_("放射性廃棄物のブレスを吐いた。", "You breathe toxic waste."));
919+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NUKE), plev, DAM_ROLL);
1010920 fire_ball(GF_NUKE, dir, damage, (plev > 40 ? -3 : -2));
1011921 break;
1012922 case MS_BALL_CHAOS:
1013923 if (!get_aim_dir(&dir)) return FALSE;
1014-#ifdef JP
1015-else msg_print("純ログルスを放った。");
1016-#else
1017- else msg_print("You invoke a raw Logrus.");
1018-#endif
1019- damage = plev * 4 + damroll(10, 10);
924+
925+ msg_print(_("純ログルスを放った。", "You invoke a raw Logrus."));
926+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BA_CHAO), plev, DAM_ROLL);
1020927 fire_ball(GF_CHAOS, dir, damage, 4);
1021928 break;
1022929 case MS_BR_DISI:
1023930 if (!get_aim_dir(&dir)) return FALSE;
1024-#ifdef JP
1025-else msg_print("分解のブレスを吐いた。");
1026-#else
1027- else msg_print("You breathe disintegration.");
1028-#endif
1029- damage = MIN(hp / 6, 150);
931+
932+ msg_print(_("分解のブレスを吐いた。", "You breathe disintegration."));
933+ damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISI), plev, DAM_ROLL);
1030934 fire_ball(GF_DISINTEGRATE, dir, damage, (plev > 40 ? -3 : -2));
1031935 break;
1032936 case MS_BALL_ACID:
1033937 if (!get_aim_dir(&dir)) return FALSE;
1034-#ifdef JP
1035-else msg_print("アシッド・ボールの呪文を唱えた。");
1036-#else
1037- else msg_print("You cast an acid ball.");
1038-#endif
1039- damage = randint1(plev * 6) + 15;
938+
939+ msg_print(_("アシッド・ボールの呪文を唱えた。", "You cast an acid ball."));
940+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_ACID), plev, DAM_ROLL);
1040941 fire_ball(GF_ACID, dir, damage, 2);
1041942 break;
1042943 case MS_BALL_ELEC:
1043- if (!get_aim_dir(&dir)) return FALSE;
1044-#ifdef JP
1045-else msg_print("サンダー・ボールの呪文を唱えた。");
1046-#else
1047- else msg_print("You cast a lightning ball.");
1048-#endif
1049- damage = randint1(plev * 3) + 8;
944+ if (!get_aim_dir(&dir)) return FALSE;
945+
946+ msg_print(_("サンダー・ボールの呪文を唱えた。", "You cast a lightning ball."));
947+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_ELEC), plev, DAM_ROLL);
1050948 fire_ball(GF_ELEC, dir, damage, 2);
1051949 break;
1052950 case MS_BALL_FIRE:
1053951 if (!get_aim_dir(&dir)) return FALSE;
1054-#ifdef JP
1055-else msg_print("ファイア・ボールの呪文を唱えた。");
1056-#else
1057- else msg_print("You cast a fire ball.");
1058-#endif
1059- damage = randint1(plev * 7) + 10;
952+
953+ msg_print(_("ファイア・ボールの呪文を唱えた。", "You cast a fire ball."));
954+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_FIRE), plev, DAM_ROLL);
1060955 fire_ball(GF_FIRE, dir, damage, 2);
1061956 break;
1062957 case MS_BALL_COLD:
1063- if (!get_aim_dir(&dir)) return FALSE;
1064-#ifdef JP
1065-else msg_print("アイス・ボールの呪文を唱えた。");
1066-#else
1067- else msg_print("You cast a frost ball.");
1068-#endif
1069- damage = randint1(plev * 3) + 10;
958+ if (!get_aim_dir(&dir)) return FALSE;
959+
960+ msg_print(_("アイス・ボールの呪文を唱えた。", "You cast a frost ball."));
961+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_COLD), plev, DAM_ROLL);
1070962 fire_ball(GF_COLD, dir, damage, 2);
1071963 break;
1072964 case MS_BALL_POIS:
1073965 if (!get_aim_dir(&dir)) return FALSE;
1074-#ifdef JP
1075-else msg_print("悪臭雲の呪文を唱えた。");
1076-#else
1077- else msg_print("You cast a stinking cloud.");
1078-#endif
1079- damage = damroll(12,2);
966+
967+ msg_print(_("悪臭雲の呪文を唱えた。", "You cast a stinking cloud."));
968+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_POIS), plev, DAM_ROLL);
1080969 fire_ball(GF_POIS, dir, damage, 2);
1081970 break;
1082971 case MS_BALL_NETHER:
1083- if (!get_aim_dir(&dir)) return FALSE;
1084-#ifdef JP
1085-else msg_print("地獄球の呪文を唱えた。");
1086-#else
1087- else msg_print("You cast a nether ball.");
1088-#endif
1089- damage = plev * 2 + 50 + damroll(10, 10);
972+ if (!get_aim_dir(&dir)) return FALSE;
973+
974+ msg_print(_("地獄球の呪文を唱えた。", "You cast a nether ball."));
975+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_NETH), plev, DAM_ROLL);
1090976 fire_ball(GF_NETHER, dir, damage, 2);
1091977 break;
1092978 case MS_BALL_WATER:
1093979 if (!get_aim_dir(&dir)) return FALSE;
1094-#ifdef JP
1095-else msg_print("流れるような身振りをした。");
1096-#else
1097- else msg_print("You gesture fluidly.");
1098-#endif
1099- damage = randint1(plev * 4) + 50;
980+
981+ msg_print(_("流れるような身振りをした。", "You gesture fluidly."));
982+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_WATE), plev, DAM_ROLL);
1100983 fire_ball(GF_WATER, dir, damage, 4);
1101984 break;
1102985 case MS_BALL_MANA:
1103- if (!get_aim_dir(&dir)) return FALSE;
1104-#ifdef JP
1105-else msg_print("魔力の嵐の呪文を念じた。");
1106-#else
1107- else msg_print("You invoke a mana storm.");
1108-#endif
1109- damage = plev * 8 + 50 + damroll(10, 10);
986+ if (!get_aim_dir(&dir)) return FALSE;
987+
988+ msg_print(_("魔力の嵐の呪文を念じた。", "You invoke a mana storm."));
989+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_MANA), plev, DAM_ROLL);
1110990 fire_ball(GF_MANA, dir, damage, 4);
1111991 break;
1112992 case MS_BALL_DARK:
1113993 if (!get_aim_dir(&dir)) return FALSE;
1114-#ifdef JP
1115-else msg_print("暗黒の嵐の呪文を念じた。");
1116-#else
1117- else msg_print("You invoke a darkness storm.");
1118-#endif
1119- damage = plev * 8 + 50 + damroll(10, 10);
994+
995+ msg_print(_("暗黒の嵐の呪文を念じた。", "You invoke a darkness storm."));
996+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_DARK), plev, DAM_ROLL);
1120997 fire_ball(GF_DARK, dir, damage, 4);
1121998 break;
1122999 case MS_DRAIN_MANA:
11231000 if (!get_aim_dir(&dir)) return FALSE;
1124- fire_ball_hide(GF_DRAIN_MANA, dir, randint1(plev)+plev, 0);
1001+
1002+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_DRAIN_MANA), plev, DAM_ROLL);
1003+ fire_ball_hide(GF_DRAIN_MANA, dir, damage, 0);
11251004 break;
11261005 case MS_MIND_BLAST:
11271006 if (!get_aim_dir(&dir)) return FALSE;
1128- damage = damroll(7, 7);
1007+
1008+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_MIND_BLAST), plev, DAM_ROLL);
11291009 fire_ball_hide(GF_MIND_BLAST, dir, damage, 0);
11301010 break;
11311011 case MS_BRAIN_SMASH:
1132- if (!get_aim_dir(&dir)) return FALSE;
1133- damage = damroll(12, 12);
1012+ if (!get_aim_dir(&dir)) return FALSE;
1013+
1014+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BRAIN_SMASH), plev, DAM_ROLL);
11341015 fire_ball_hide(GF_BRAIN_SMASH, dir, damage, 0);
11351016 break;
11361017 case MS_CAUSE_1:
11371018 if (!get_aim_dir(&dir)) return FALSE;
1138- damage = damroll(3, 8);
1019+
1020+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_1), plev, DAM_ROLL);
11391021 fire_ball_hide(GF_CAUSE_1, dir, damage, 0);
11401022 break;
11411023 case MS_CAUSE_2:
11421024 if (!get_aim_dir(&dir)) return FALSE;
1143- damage = damroll(8, 8);
1025+
1026+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_2), plev, DAM_ROLL);
11441027 fire_ball_hide(GF_CAUSE_2, dir, damage, 0);
11451028 break;
11461029 case MS_CAUSE_3:
11471030 if (!get_aim_dir(&dir)) return FALSE;
1148- damage = damroll(10, 15);
1031+
1032+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_3), plev, DAM_ROLL);
11491033 fire_ball_hide(GF_CAUSE_3, dir, damage, 0);
11501034 break;
11511035 case MS_CAUSE_4:
11521036 if (!get_aim_dir(&dir)) return FALSE;
1153- damage = damroll(15, 15);
1037+
1038+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_4), plev, DAM_ROLL);
11541039 fire_ball_hide(GF_CAUSE_4, dir, damage, 0);
11551040 break;
11561041 case MS_BOLT_ACID:
11571042 if (!get_aim_dir(&dir)) return FALSE;
1158-#ifdef JP
1159-else msg_print("アシッド・ボルトの呪文を唱えた。");
1160-#else
1161- else msg_print("You cast an acid bolt.");
1162-#endif
1163- damage = damroll(7, 8) + plev * 2 / 3;
1164- fire_bolt(GF_ACID, dir, damage);
1043+
1044+ msg_print(_("アシッド・ボルトの呪文を唱えた。", "You cast an acid bolt."));
1045+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ACID), plev, DAM_ROLL);
1046+ fire_bolt(GF_ACID, dir, damage);
11651047 break;
11661048 case MS_BOLT_ELEC:
11671049 if (!get_aim_dir(&dir)) return FALSE;
1168-#ifdef JP
1169-else msg_print("サンダー・ボルトの呪文を唱えた。");
1170-#else
1171- else msg_print("You cast a lightning bolt.");
1172-#endif
1173- damage = damroll(4, 8) + plev * 2 / 3;
1050+
1051+ msg_print(_("サンダー・ボルトの呪文を唱えた。", "You cast a lightning bolt."));
1052+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ELEC), plev, DAM_ROLL);
11741053 fire_bolt(GF_ELEC, dir, damage);
11751054 break;
11761055 case MS_BOLT_FIRE:
11771056 if (!get_aim_dir(&dir)) return FALSE;
1178-#ifdef JP
1179-else msg_print("ファイア・ボルトの呪文を唱えた。");
1180-#else
1181- else msg_print("You cast a fire bolt.");
1182-#endif
1183- damage = damroll(9, 8) + plev * 2 / 3;
1057+
1058+ msg_print(_("ファイア・ボルトの呪文を唱えた。", "You cast a fire bolt."));
1059+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_FIRE), plev, DAM_ROLL);
11841060 fire_bolt(GF_FIRE, dir, damage);
11851061 break;
11861062 case MS_BOLT_COLD:
11871063 if (!get_aim_dir(&dir)) return FALSE;
1188-#ifdef JP
1189-else msg_print("アイス・ボルトの呪文を唱えた。");
1190-#else
1191- else msg_print("You cast a frost bolt.");
1192-#endif
1193- damage = damroll(6, 8) + plev * 2 / 3;
1064+
1065+ msg_print(_("アイス・ボルトの呪文を唱えた。", "You cast a frost bolt."));
1066+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_COLD), plev, DAM_ROLL);
11941067 fire_bolt(GF_COLD, dir, damage);
11951068 break;
11961069 case MS_STARBURST:
11971070 if (!get_aim_dir(&dir)) return FALSE;
1198- else
1199-#ifdef JP
1200-msg_print("スターバーストの呪文を念じた。");
1201-#else
1202- msg_print("You invoke a starburst.");
1203-#endif
1204- damage = plev * 8 + 50 + damroll(10, 10);
1071+
1072+ msg_print(_("スターバーストの呪文を念じた。", "You invoke a starburst."));
1073+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_LITE), plev, DAM_ROLL);
12051074 fire_ball(GF_LITE, dir, damage, 4);
12061075 break;
12071076 case MS_BOLT_NETHER:
12081077 if (!get_aim_dir(&dir)) return FALSE;
1209-#ifdef JP
1210-else msg_print("地獄の矢の呪文を唱えた。");
1211-#else
1212- else msg_print("You cast a nether bolt.");
1213-#endif
1214- damage = 30 + damroll(5, 5) + plev * 8 / 3;
1078+
1079+ msg_print(_("地獄の矢の呪文を唱えた。", "You cast a nether bolt."));
1080+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_NETH), plev, DAM_ROLL);
12151081 fire_bolt(GF_NETHER, dir, damage);
12161082 break;
12171083 case MS_BOLT_WATER:
12181084 if (!get_aim_dir(&dir)) return FALSE;
1219-#ifdef JP
1220-else msg_print("ウォーター・ボルトの呪文を唱えた。");
1221-#else
1222- else msg_print("You cast a water bolt.");
1223-#endif
1224- damage = damroll(10, 10) + plev * 2;
1085+
1086+ msg_print(_("ウォーター・ボルトの呪文を唱えた。", "You cast a water bolt."));
1087+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_WATE), plev, DAM_ROLL);
12251088 fire_bolt(GF_WATER, dir, damage);
12261089 break;
12271090 case MS_BOLT_MANA:
12281091 if (!get_aim_dir(&dir)) return FALSE;
1229-#ifdef JP
1230-else msg_print("魔力の矢の呪文を唱えた。");
1231-#else
1232- else msg_print("You cast a mana bolt.");
1233-#endif
1234- damage = randint1(plev * 7) + 50;
1092+
1093+ msg_print(_("魔力の矢の呪文を唱えた。", "You cast a mana bolt."));
1094+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_MANA), plev, DAM_ROLL);
12351095 fire_bolt(GF_MANA, dir, damage);
12361096 break;
12371097 case MS_BOLT_PLASMA:
12381098 if (!get_aim_dir(&dir)) return FALSE;
1239-#ifdef JP
1240-else msg_print("プラズマ・ボルトの呪文を唱えた。");
1241-#else
1242- else msg_print("You cast a plasma bolt.");
1243-#endif
1244- damage = 10 + damroll(8, 7) + plev * 2;
1099+
1100+ msg_print(_("プラズマ・ボルトの呪文を唱えた。", "You cast a plasma bolt."));
1101+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_PLAS), plev, DAM_ROLL);
12451102 fire_bolt(GF_PLASMA, dir, damage);
12461103 break;
12471104 case MS_BOLT_ICE:
12481105 if (!get_aim_dir(&dir)) return FALSE;
1249-#ifdef JP
1250-else msg_print("極寒の矢の呪文を唱えた。");
1251-#else
1252- else msg_print("You cast a ice bolt.");
1253-#endif
1254- damage = damroll(6, 6) + plev * 2;
1106+
1107+ msg_print(_("極寒の矢の呪文を唱えた。", "You cast a ice bolt."));
1108+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ICEE), plev, DAM_ROLL);
12551109 fire_bolt(GF_ICE, dir, damage);
12561110 break;
12571111 case MS_MAGIC_MISSILE:
12581112 if (!get_aim_dir(&dir)) return FALSE;
1259-#ifdef JP
1260-else msg_print("マジック・ミサイルの呪文を唱えた。");
1261-#else
1262- else msg_print("You cast a magic missile.");
1263-#endif
1264- damage = damroll(2, 6) + plev * 2 / 3;
1113+
1114+ msg_print(_("マジック・ミサイルの呪文を唱えた。", "You cast a magic missile."));
1115+ damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_MISSILE), plev, DAM_ROLL);
12651116 fire_bolt(GF_MISSILE, dir, damage);
12661117 break;
12671118 case MS_SCARE:
12681119 if (!get_aim_dir(&dir)) return FALSE;
1269-#ifdef JP
1270-else msg_print("恐ろしげな幻覚を作り出した。");
1271-#else
1272- else msg_print("You cast a fearful illusion.");
1273-#endif
1120+
1121+ msg_print(_("恐ろしげな幻覚を作り出した。", "You cast a fearful illusion."));
12741122 fear_monster(dir, plev+10);
12751123 break;
12761124 case MS_BLIND:
@@ -1279,11 +1127,8 @@ else msg_print("
12791127 break;
12801128 case MS_CONF:
12811129 if (!get_aim_dir(&dir)) return FALSE;
1282-#ifdef JP
1283-else msg_print("誘惑的な幻覚をつくり出した。");
1284-#else
1285- else msg_print("You cast a mesmerizing illusion.");
1286-#endif
1130+
1131+ msg_print(_("誘惑的な幻覚をつくり出した。", "You cast a mesmerizing illusion."));
12871132 confuse_monster(dir, plev * 2);
12881133 break;
12891134 case MS_SLOW:
@@ -1300,31 +1145,19 @@ else msg_print("誘
13001145 case MS_HAND_DOOM:
13011146 {
13021147 if (!get_aim_dir(&dir)) return FALSE;
1303-#ifdef JP
1304-else msg_print("<破滅の手>を放った!");
1305-#else
1306- else msg_print("You invoke the Hand of Doom!");
1307-#endif
13081148
1149+ msg_print(_("<破滅の手>を放った!", "You invoke the Hand of Doom!"));
13091150 fire_ball_hide(GF_HAND_DOOM, dir, plev * 3, 0);
13101151 break;
13111152 }
13121153 case MS_HEAL:
1313-#ifdef JP
1314-msg_print("自分の傷に念を集中した。");
1315-#else
1316- msg_print("You concentrate on your wounds!");
1317-#endif
1154+ msg_print(_("自分の傷に念を集中した。", "You concentrate on your wounds!"));
13181155 (void)hp_player(plev*4);
13191156 (void)set_stun(0);
13201157 (void)set_cut(0);
13211158 break;
13221159 case MS_INVULNER:
1323-#ifdef JP
1324-msg_print("無傷の球の呪文を唱えた。");
1325-#else
1326- msg_print("You cast a Globe of Invulnerability.");
1327-#endif
1160+ msg_print(_("無傷の球の呪文を唱えた。", "You cast a Globe of Invulnerability."));
13281161 (void)set_invuln(randint1(4) + 4, FALSE);
13291162 break;
13301163 case MS_BLINK:
@@ -1334,12 +1167,8 @@ msg_print("無
13341167 teleport_player(plev * 5, 0L);
13351168 break;
13361169 case MS_WORLD:
1337- world_player = TRUE;
1338-#ifdef JP
1339- msg_print("「時よ!」");
1340-#else
1341- msg_print("'Time!'");
1342-#endif
1170+ world_player = TRUE;
1171+ msg_print(_("「時よ!」", "'Time!'"));
13431172 msg_print(NULL);
13441173
13451174 /* Hack */
@@ -1376,32 +1205,17 @@ msg_print("無
13761205 if ((r_ptr->flags1 & (RF1_UNIQUE)) || (r_ptr->flagsr & RFR_RES_ALL))
13771206 {
13781207 if (is_original_ap_and_seen(m_ptr)) r_ptr->r_flagsr |= RFR_RES_TELE;
1379-#ifdef JP
1380- msg_format("%sには効果がなかった!", m_name);
1381-#else
1382- msg_format("%s is unaffected!", m_name);
1383-#endif
1384-
1208+ msg_format(_("%sには効果がなかった!", "%s is unaffected!"), m_name);
13851209 break;
13861210 }
13871211 else if (r_ptr->level > randint1(100))
13881212 {
13891213 if (is_original_ap_and_seen(m_ptr)) r_ptr->r_flagsr |= RFR_RES_TELE;
1390-#ifdef JP
1391- msg_format("%sには耐性がある!", m_name);
1392-#else
1393- msg_format("%s resists!", m_name);
1394-#endif
1395-
1214+ msg_format(_("%sには耐性がある!", "%s resists!"), m_name);
13961215 break;
13971216 }
13981217 }
1399-#ifdef JP
1400-msg_format("%sを引き戻した。", m_name);
1401-#else
1402- msg_format("You command %s to return.", m_name);
1403-#endif
1404-
1218+ msg_format(_("%sを引き戻した。", "You command %s to return."), m_name);
14051219 teleport_monster_to(cave[target_row][target_col].m_idx, py, px, 100, TELEPORT_PASSIVE);
14061220 break;
14071221 }
@@ -1425,20 +1239,12 @@ msg_format("%s
14251239 m_ptr = &m_list[target_m_idx];
14261240 r_ptr = &r_info[m_ptr->r_idx];
14271241 monster_desc(m_name, m_ptr, 0);
1428-#ifdef JP
1429- msg_format("%^sの足を指さした。", m_name);
1430-#else
1431- msg_format("You gesture at %^s's feet.", m_name);
1432-#endif
1242+ msg_format(_("%^sの足を指さした。", "You gesture at %^s's feet."), m_name);
14331243
14341244 if ((r_ptr->flagsr & (RFR_EFF_RES_NEXU_MASK | RFR_RES_TELE)) ||
14351245 (r_ptr->flags1 & RF1_QUESTOR) || (r_ptr->level + randint1(50) > plev + randint1(60)))
14361246 {
1437-#ifdef JP
1438- msg_print("しかし効果がなかった!");
1439-#else
1440- msg_format("%^s is unaffected!", m_name);
1441-#endif
1247+ msg_print(_("しかし効果がなかった!", "%^s is unaffected!"), m_name);
14421248 }
14431249 else teleport_level(target_m_idx);
14441250 break;
@@ -1446,64 +1252,38 @@ msg_format("%s
14461252 case MS_PSY_SPEAR:
14471253 if (!get_aim_dir(&dir)) return FALSE;
14481254
1449-#ifdef JP
1450-else msg_print("光の剣を放った。");
1451-#else
1452- else msg_print("You throw a psycho-spear.");
1453-#endif
1454- damage = randint1(plev * 3) + 100;
1255+ msg_print(_("光の剣を放った。", "You throw a psycho-spear."));
1256+ damage = monspell_bluemage_damage(monspell_num(RF6_SPELL_START, RF6_PSY_SPEAR), plev, DAM_ROLL);
14551257 (void)fire_beam(GF_PSY_SPEAR, dir, damage);
14561258 break;
14571259 case MS_DARKNESS:
1458-#ifdef JP
1459-msg_print("暗闇の中で手を振った。");
1460-#else
1461- msg_print("You gesture in shadow.");
1462-#endif
1260+
1261+ msg_print(_("暗闇の中で手を振った。", "You gesture in shadow."));
14631262 (void)unlite_area(10, 3);
14641263 break;
14651264 case MS_MAKE_TRAP:
14661265 if (!target_set(TARGET_KILL)) return FALSE;
1467-#ifdef JP
1468-msg_print("呪文を唱えて邪悪に微笑んだ。");
1469-#else
1470- msg_print("You cast a spell and cackle evilly.");
1471-#endif
1266+
1267+ msg_print(_("呪文を唱えて邪悪に微笑んだ。", "You cast a spell and cackle evilly."));
14721268 trap_creation(target_row, target_col);
14731269 break;
14741270 case MS_FORGET:
1475-#ifdef JP
1476-msg_print("しかし何も起きなかった。");
1477-#else
1478- msg_print("Nothing happen.");
1479-#endif
1271+ msg_print(_("しかし何も起きなかった。", "Nothing happen."));
14801272 break;
1481- case MS_RAISE_DEAD:
1482-#ifdef JP
1483-msg_print("死者復活の呪文を唱えた。");
1484-#else
1485- msg_print("You cast a animate dead.");
1486-#endif
1273+ case MS_RAISE_DEAD:
1274+ msg_print(_("死者復活の呪文を唱えた。", "You cast a animate dead."));
14871275 (void)animate_dead(0, py, px);
14881276 break;
14891277 case MS_S_KIN:
14901278 {
14911279 int k;
1492-#ifdef JP
1493-msg_print("援軍を召喚した。");
1494-#else
1495- msg_print("You summon minions.");
1496-#endif
1280+
1281+ msg_print(_("援軍を召喚した。", "You summon minions."));
14971282 for (k = 0;k < 1; k++)
14981283 {
14991284 if (summon_kin_player(summon_lev, py, px, (pet ? PM_FORCE_PET : 0L)))
15001285 {
1501- if (!pet)
1502-#ifdef JP
1503-msg_print("召喚された仲間は怒っている!");
1504-#else
1505-msg_print("Summoned fellows are angry!");
1506-#endif
1286+ if (!pet) msg_print(_("召喚された仲間は怒っている!", "Summoned fellows are angry!"));
15071287 }
15081288 else
15091289 {
@@ -1515,20 +1295,13 @@ msg_print("Summoned fellows are angry!");
15151295 case MS_S_CYBER:
15161296 {
15171297 int k;
1518-#ifdef JP
1519-msg_print("サイバーデーモンを召喚した!");
1520-#else
1521- msg_print("You summon a Cyberdemon!");
1522-#endif
1298+
1299+ msg_print(_("サイバーデーモンを召喚した!", "You summon a Cyberdemon!"));
15231300 for (k = 0 ;k < 1 ; k++)
15241301 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, p_mode))
15251302 {
1526- if (!pet)
1527-#ifdef JP
1528-msg_print("召喚されたサイバーデーモンは怒っている!");
1529-#else
1530-msg_print("The summoned Cyberdemon are angry!");
1531-#endif
1303+ if (!pet)
1304+ msg_print(_("召喚されたサイバーデーモンは怒っている!", "The summoned Cyberdemon are angry!"));
15321305 }
15331306 else
15341307 {
@@ -1539,20 +1312,12 @@ msg_print("The summoned Cyberdemon are angry!");
15391312 case MS_S_MONSTER:
15401313 {
15411314 int k;
1542-#ifdef JP
1543-msg_print("仲間を召喚した。");
1544-#else
1545- msg_print("You summon help.");
1546-#endif
1315+ msg_print(_("仲間を召喚した。", "You summon help."));
15471316 for (k = 0;k < 1; k++)
15481317 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, p_mode))
15491318 {
1550- if (!pet)
1551-#ifdef JP
1552-msg_print("召喚されたモンスターは怒っている!");
1553-#else
1554-msg_print("The summoned monster is angry!");
1555-#endif
1319+ if (!pet)
1320+ msg_print(_("召喚されたモンスターは怒っている!", "The summoned monster is angry!"));
15561321 }
15571322 else
15581323 {
@@ -1563,20 +1328,12 @@ msg_print("The summoned monster is angry!");
15631328 case MS_S_MONSTERS:
15641329 {
15651330 int k;
1566-#ifdef JP
1567-msg_print("モンスターを召喚した!");
1568-#else
1569- msg_print("You summon monsters!");
1570-#endif
1331+ msg_print(_("モンスターを召喚した!", "You summon monsters!"));
15711332 for (k = 0;k < plev / 15 + 2; k++)
15721333 if(summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, (p_mode | u_mode)))
15731334 {
1574- if (!pet)
1575-#ifdef JP
1576-msg_print("召喚されたモンスターは怒っている!");
1577-#else
1578-msg_print("Summoned monsters are angry!");
1579-#endif
1335+ if (!pet)
1336+ msg_print(_("召喚されたモンスターは怒っている!", "The summoned monsters are angry!"));
15801337 }
15811338 else
15821339 {
@@ -1587,20 +1344,12 @@ msg_print("Summoned monsters are angry!");
15871344 case MS_S_ANT:
15881345 {
15891346 int k;
1590-#ifdef JP
1591-msg_print("アリを召喚した。");
1592-#else
1593- msg_print("You summon ants.");
1594-#endif
1347+ msg_print(_("アリを召喚した。", "You summon ants."));
15951348 for (k = 0;k < 1; k++)
15961349 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANT, (PM_ALLOW_GROUP | p_mode)))
15971350 {
1598- if (!pet)
1599-#ifdef JP
1600-msg_print("召喚されたアリは怒っている!");
1601-#else
1602-msg_print("Summoned ants are angry!");
1603-#endif
1351+ if (!pet)
1352+ msg_print(_("召喚されたアリは怒っている!", "The summoned ants are angry!"));
16041353 }
16051354 else
16061355 {
@@ -1611,20 +1360,12 @@ msg_print("Summoned ants are angry!");
16111360 case MS_S_SPIDER:
16121361 {
16131362 int k;
1614-#ifdef JP
1615-msg_print("蜘蛛を召喚した。");
1616-#else
1617- msg_print("You summon spiders.");
1618-#endif
1363+ msg_print(_("蜘蛛を召喚した。", "You summon spiders."));
16191364 for (k = 0;k < 1; k++)
16201365 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, (PM_ALLOW_GROUP | p_mode)))
16211366 {
1622- if (!pet)
1623-#ifdef JP
1624-msg_print("召喚された蜘蛛は怒っている!");
1625-#else
1626-msg_print("Summoned spiders are angry!");
1627-#endif
1367+ if (!pet)
1368+ msg_print(_("召喚された蜘蛛は怒っている!", "Summoned spiders are angry!"));
16281369 }
16291370 else
16301371 {
@@ -1635,20 +1376,12 @@ msg_print("Summoned spiders are angry!");
16351376 case MS_S_HOUND:
16361377 {
16371378 int k;
1638-#ifdef JP
1639-msg_print("ハウンドを召喚した。");
1640-#else
1641- msg_print("You summon hounds.");
1642-#endif
1379+ msg_print(_("ハウンドを召喚した。", "You summon hounds."));
16431380 for (k = 0;k < 1; k++)
16441381 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, (PM_ALLOW_GROUP | p_mode)))
16451382 {
1646- if (!pet)
1647-#ifdef JP
1648-msg_print("召喚されたハウンドは怒っている!");
1649-#else
1650-msg_print("Summoned hounds are angry!");
1651-#endif
1383+ if (!pet)
1384+ msg_print(_("召喚されたハウンドは怒っている!", "Summoned hounds are angry!"));
16521385 }
16531386 else
16541387 {
@@ -1659,20 +1392,12 @@ msg_print("Summoned hounds are angry!");
16591392 case MS_S_HYDRA:
16601393 {
16611394 int k;
1662-#ifdef JP
1663-msg_print("ヒドラを召喚した。");
1664-#else
1665- msg_print("You summon a hydras.");
1666-#endif
1395+ msg_print(_("ヒドラを召喚した。", "You summon a hydras."));
16671396 for (k = 0;k < 1; k++)
16681397 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, (g_mode | p_mode)))
16691398 {
1670- if (!pet)
1671-#ifdef JP
1672-msg_print("召喚されたヒドラは怒っている!");
1673-#else
1674-msg_print("Summoned hydras are angry!");
1675-#endif
1399+ if (!pet)
1400+ msg_print(_("召喚されたヒドラは怒っている!", "Summoned hydras are angry!"));
16761401 }
16771402 else
16781403 {
@@ -1683,20 +1408,12 @@ msg_print("Summoned hydras are angry!");
16831408 case MS_S_ANGEL:
16841409 {
16851410 int k;
1686-#ifdef JP
1687-msg_print("天使を召喚した!");
1688-#else
1689- msg_print("You summon an angel!");
1690-#endif
1411+ msg_print(_("天使を召喚した!", "You summon an angel!"));
16911412 for (k = 0;k < 1; k++)
16921413 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANGEL, (g_mode | p_mode)))
16931414 {
1694- if (!pet)
1695-#ifdef JP
1696-msg_print("召喚された天使は怒っている!");
1697-#else
1698-msg_print("Summoned angels are angry!");
1699-#endif
1415+ if (!pet)
1416+ msg_print(_("召喚された天使は怒っている!", "Summoned angels are angry!"));
17001417 }
17011418 else
17021419 {
@@ -1707,20 +1424,12 @@ msg_print("Summoned angels are angry!");
17071424 case MS_S_DEMON:
17081425 {
17091426 int k;
1710-#ifdef JP
1711-msg_print("混沌の宮廷から悪魔を召喚した!");
1712-#else
1713- msg_print("You summon a demon from the Courts of Chaos!");
1714-#endif
1427+ msg_print(_("混沌の宮廷から悪魔を召喚した!", "You summon a demon from the Courts of Chaos!"));
17151428 for (k = 0;k < 1; k++)
17161429 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, (g_mode | p_mode)))
17171430 {
1718- if (!pet)
1719-#ifdef JP
1720-msg_print("召喚されたデーモンは怒っている!");
1721-#else
1722-msg_print("Summoned demons are angry!");
1723-#endif
1431+ if (!pet)
1432+ msg_print(_("召喚されたデーモンは怒っている!", "Summoned demons are angry!"));
17241433 }
17251434 else
17261435 {
@@ -1731,20 +1440,12 @@ msg_print("Summoned demons are angry!");
17311440 case MS_S_UNDEAD:
17321441 {
17331442 int k;
1734-#ifdef JP
1735-msg_print("アンデッドの強敵を召喚した!");
1736-#else
1737- msg_print("You summon an undead adversary!");
1738-#endif
1443+ msg_print(_("アンデッドの強敵を召喚した!", "You summon an undead adversary!"));
17391444 for (k = 0;k < 1; k++)
17401445 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, (g_mode | p_mode)))
17411446 {
1742- if (!pet)
1743-#ifdef JP
1744-msg_print("召喚されたアンデッドは怒っている!");
1745-#else
1746-msg_print("Summoned undeads are angry!");
1747-#endif
1447+ if (!pet)
1448+ msg_print(_("召喚されたアンデッドは怒っている!", "Summoned undeads are angry!"));
17481449 }
17491450 else
17501451 {
@@ -1755,20 +1456,12 @@ msg_print("Summoned undeads are angry!");
17551456 case MS_S_DRAGON:
17561457 {
17571458 int k;
1758-#ifdef JP
1759-msg_print("ドラゴンを召喚した!");
1760-#else
1761- msg_print("You summon a dragon!");
1762-#endif
1459+ msg_print(_("ドラゴンを召喚した!", "You summon a dragon!"));
17631460 for (k = 0;k < 1; k++)
17641461 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, (g_mode | p_mode)))
17651462 {
1766- if (!pet)
1767-#ifdef JP
1768-msg_print("召喚されたドラゴンは怒っている!");
1769-#else
1770-msg_print("Summoned dragons are angry!");
1771-#endif
1463+ if (!pet)
1464+ msg_print(_("召喚されたドラゴンは怒っている!", "Summoned dragons are angry!"));
17721465 }
17731466 else
17741467 {
@@ -1779,20 +1472,12 @@ msg_print("Summoned dragons are angry!");
17791472 case MS_S_HI_UNDEAD:
17801473 {
17811474 int k;
1782-#ifdef JP
1783-msg_print("強力なアンデッドを召喚した!");
1784-#else
1785- msg_print("You summon a greater undead!");
1786-#endif
1475+ msg_print(_("強力なアンデッドを召喚した!", "You summon a greater undead!"));
17871476 for (k = 0;k < 1; k++)
17881477 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | u_mode)))
17891478 {
1790- if (!pet)
1791-#ifdef JP
1792-msg_print("召喚された上級アンデッドは怒っている!");
1793-#else
1794-msg_print("Summoned greater undeads are angry!");
1795-#endif
1479+ if (!pet)
1480+ msg_print(_("召喚された上級アンデッドは怒っている!", "Summoned greater undeads are angry!"));
17961481 }
17971482 else
17981483 {
@@ -1803,20 +1488,12 @@ msg_print("Summoned greater undeads are angry!");
18031488 case MS_S_HI_DRAGON:
18041489 {
18051490 int k;
1806-#ifdef JP
1807-msg_print("古代ドラゴンを召喚した!");
1808-#else
1809- msg_print("You summon an ancient dragon!");
1810-#endif
1491+ msg_print(_("古代ドラゴンを召喚した!", "You summon an ancient dragon!"));
18111492 for (k = 0;k < 1; k++)
18121493 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_DRAGON, (g_mode | p_mode | u_mode)))
18131494 {
1814- if (!pet)
1815-#ifdef JP
1816-msg_print("召喚された古代ドラゴンは怒っている!");
1817-#else
1818-msg_print("Summoned ancient dragons are angry!");
1819-#endif
1495+ if (!pet)
1496+ msg_print(_("召喚された古代ドラゴンは怒っている!", "Summoned ancient dragons are angry!"));
18201497 }
18211498 else
18221499 {
@@ -1827,20 +1504,12 @@ msg_print("Summoned ancient dragons are angry!");
18271504 case MS_S_AMBERITE:
18281505 {
18291506 int k;
1830-#ifdef JP
1831-msg_print("アンバーの王族を召喚した!");
1832-#else
1833- msg_print("You summon a Lord of Amber!");
1834-#endif
1507+ msg_print(_("アンバーの王族を召喚した!", "You summon a Lord of Amber!"));
18351508 for (k = 0;k < 1; k++)
18361509 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_AMBERITES, (g_mode | p_mode | u_mode)))
18371510 {
1838- if (!pet)
1839-#ifdef JP
1840-msg_print("召喚されたアンバーの王族は怒っている!");
1841-#else
1842-msg_print("Summoned Lords of Amber are angry!");
1843-#endif
1511+ if (!pet)
1512+ msg_print(_("召喚されたアンバーの王族は怒っている!", "Summoned Lords of Amber are angry!"));
18441513 }
18451514 else
18461515 {
@@ -1851,32 +1520,20 @@ msg_print("Summoned Lords of Amber are angry!");
18511520 case MS_S_UNIQUE:
18521521 {
18531522 int k, count = 0;
1854-#ifdef JP
1855-msg_print("特別な強敵を召喚した!");
1856-#else
1857- msg_print("You summon a special opponent!");
1858-#endif
1523+ msg_print(_("特別な強敵を召喚した!", "You summon a special opponent!"));
18591524 for (k = 0;k < 1; k++)
18601525 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNIQUE, (g_mode | p_mode | PM_ALLOW_UNIQUE)))
18611526 {
18621527 count++;
1863- if (!pet)
1864-#ifdef JP
1865-msg_print("召喚されたユニーク・モンスターは怒っている!");
1866-#else
1867-msg_print("Summoned special opponents are angry!");
1868-#endif
1528+ if (!pet)
1529+ msg_print(_("召喚されたユニーク・モンスターは怒っている!", "Summoned special opponents are angry!"));
18691530 }
18701531 for (k = count;k < 1; k++)
18711532 if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, (g_mode | p_mode | PM_ALLOW_UNIQUE)))
18721533 {
18731534 count++;
1874- if (!pet)
1875-#ifdef JP
1876-msg_print("召喚された上級アンデッドは怒っている!");
1877-#else
1878-msg_print("Summoned greater undeads are angry!");
1879-#endif
1535+ if (!pet)
1536+ msg_print(_("召喚された上級アンデッドは怒っている!", "Summoned greater undeads are angry!"));
18801537 }
18811538 if (!count)
18821539 {
@@ -1888,12 +1545,8 @@ msg_print("Summoned greater undeads are angry!");
18881545 msg_print("hoge?");
18891546 }
18901547 if (no_trump)
1891- {
1892-#ifdef JP
1893-msg_print("何も現れなかった。");
1894-#else
1895-msg_print("No one have appeared.");
1896-#endif
1548+ {
1549+ msg_print(_("何も現れなかった。", "No one have appeared."));
18971550 }
18981551
18991552 return TRUE;
--- a/src/mspells4.c
+++ b/src/mspells4.c
@@ -3682,11 +3682,12 @@ int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx)
36823682 * @param hp 呪文を唱えるモンスターの体力
36833683 * @param rlev 呪文を唱えるモンスターのレベル
36843684 * @param powerful 呪文を唱えるモンスターのpowerfulフラグ
3685-* @param r_ptr 呪文を唱えるモンスターの種族ポインタ
3685+* @param shoot_dd 射撃のダイス数
3686+* @param shoot_ds 射撃のダイス面
36863687 * @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
36873688 * @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
36883689 */
3689-int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, monster_race* r_ptr, int TYPE)
3690+int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, int shoot_dd, int shoot_ds, int shoot_base, int TYPE)
36903691 {
36913692 int dam = 0, dice_num = 0, dice_side = 0, mult = 1, div = 1;
36923693
@@ -3703,8 +3704,9 @@ int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, monster
37033704
37043705 /* RF4_SHOOT */
37053706 case RF4_SPELL_START + 4:
3706- dice_num = r_ptr->blow[0].d_dice;
3707- dice_side = r_ptr->blow[0].d_side;
3707+ dice_num = shoot_dd;
3708+ dice_side = shoot_ds;
3709+ dam = shoot_base;
37083710 break;
37093711 case RF4_SPELL_START + 5: return -1; /* RF4_XXX2 */
37103712 case RF4_SPELL_START + 6: return -1; /* RF4_XXX3 */
@@ -4097,7 +4099,7 @@ int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, monster
40974099 case DAM_MIN: dam += dice_num * 1 * mult / div; break;
40984100 case DAM_ROLL: dam += damroll(dice_num, dice_side) * mult / div; break;
40994101 }
4100-
4102+ if (dam < 1) dam = 1;
41014103 return dam;
41024104 }
41034105
@@ -4115,6 +4117,8 @@ int monspell_damage(int SPELL_NUM, int m_idx, int TYPE)
41154117 monster_race *r_ptr = &r_info[m_ptr->r_idx];
41164118 int hp;
41174119 int rlev = monster_level_idx(m_idx);
4120+ int shoot_dd = r_ptr->blow[0].d_dice;
4121+ int shoot_ds = r_ptr->blow[0].d_side;
41184122
41194123 if (TYPE == DAM_MAX)
41204124 {
@@ -4124,7 +4128,7 @@ int monspell_damage(int SPELL_NUM, int m_idx, int TYPE)
41244128 {
41254129 hp = m_ptr->hp;
41264130 }
4127- return monspell_damage_base(SPELL_NUM, hp, rlev, monster_is_powerful(m_idx), r_ptr, TYPE);
4131+ return monspell_damage_base(SPELL_NUM, hp, rlev, monster_is_powerful(m_idx), shoot_dd, shoot_ds, 0, TYPE);
41284132 }
41294133
41304134 /*!
@@ -4140,6 +4144,33 @@ int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE)
41404144 int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
41414145 bool powerful = r_ptr->flags2 & RF2_POWERFUL;
41424146 u32b hp = r_ptr->hdice * (ironman_nightmare ? 2 : 1) * r_ptr->hside;
4147+ int shoot_dd = r_ptr->blow[0].d_dice;
4148+ int shoot_ds = r_ptr->blow[0].d_side;
4149+
4150+ return monspell_damage_base(SPELL_NUM, MIN(30000, hp), rlev, powerful, shoot_dd, shoot_ds, 0, TYPE);
4151+}
41434152
4144- return monspell_damage_base(SPELL_NUM, MIN(30000, hp), rlev, powerful, r_ptr, TYPE);
4153+/*!
4154+* @brief 青魔導師の使う呪文の威力を返す /
4155+* @param SPELL_NUM 呪文番号
4156+* @param plev 使用するレベル。2倍して扱う。
4157+* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
4158+* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
4159+*/
4160+int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE)
4161+{
4162+ int hp = p_ptr->chp;
4163+ int shoot_dd = 1, shoot_ds = 1, shoot_base = 0;
4164+ object_type *o_ptr = NULL;
4165+
4166+ if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
4167+ else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
4168+
4169+ if (o_ptr)
4170+ {
4171+ shoot_dd = o_ptr->dd;
4172+ shoot_ds = o_ptr->ds;
4173+ shoot_base = o_ptr->to_d;
4174+ }
4175+ return monspell_damage_base(SPELL_NUM, hp, plev * 2, FALSE, shoot_dd, shoot_ds, shoot_base, TYPE);
41454176 }
\ No newline at end of file
Show on old repository browser