OSDN Git Service

- スターダストでproject(-1, ...)で落ちてたので修正。
[hengband/hengband.git] / src / racial.c
index 033c0ca..478f7cc 100644 (file)
@@ -869,7 +869,7 @@ msg_print("
                }
                case CLASS_PRIEST:
                {
-                       if (p_ptr->realm1 == REALM_LIFE)
+                       if (is_good_realm(p_ptr->realm1))
                        {
                                if (racial_aux(35, 70, A_WIS, 50))
                                {
@@ -936,7 +936,7 @@ msg_print("Ũ
                }
                case CLASS_PALADIN:
                {
-                       if (p_ptr->realm1 == REALM_LIFE)
+                       if (is_good_realm(p_ptr->realm1))
                        {
                                if (racial_aux(30, 30, A_WIS, 20))
                                {
@@ -960,14 +960,15 @@ msg_print("Ũ
                        {
                                if (racial_aux(25, 0, A_INT, 10))
                                {
-                                       if (take_hit(DAMAGE_USELIFE, p_ptr->lev, 
+                                       int gain_sp;
+                                       if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, 
 #ifdef JP
-"£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1))
+"£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1)))
 #else
-"thoughtless convertion from HP to SP", -1))
+"thoughtless convertion from HP to SP", -1)))
 #endif
                                        {
-                                               p_ptr->csp += p_ptr->lev / 5;
+                                               p_ptr->csp += gain_sp / 5;
                                                if (p_ptr->csp > p_ptr->msp)
                                                {
                                                        p_ptr->csp = p_ptr->msp;
@@ -1461,6 +1462,15 @@ msg_format("
                        }
                        break;
                case MIMIC_VAMPIRE:
+                       if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
+                       {
+#ifdef JP
+                               msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£");
+#else
+                               msg_print("Something prevent you from attacking.");
+#endif
+                               return FALSE;
+                       }
                        if (racial_aux(2, (1 + (plev / 3)), A_CON, 9))
                        {
                                int y, x, dummy = 0;
@@ -2103,6 +2113,15 @@ msg_print("
                        break;
 
                case RACE_VAMPIRE:
+                       if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
+                       {
+#ifdef JP
+                               msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£");
+#else
+                               msg_print("Something prevent you from attacking.");
+#endif
+                               return FALSE;
+                       }
                        if (racial_aux(2, (1 + (plev / 3)), A_CON, 9))
                        {
                                int y, x, dummy = 0;
@@ -2384,7 +2403,7 @@ strcpy(power_desc[num].name, "
        }
        case CLASS_PRIEST:
        {
-               if (p_ptr->realm1 == REALM_LIFE)
+               if (is_good_realm(p_ptr->realm1))
                {
 #ifdef JP
 strcpy(power_desc[num].name, "Éð´ï½ËÊ¡");
@@ -2442,7 +2461,7 @@ strcpy(power_desc[num].name, "
        }
        case CLASS_PALADIN:
        {
-               if (p_ptr->realm1 == REALM_LIFE)
+               if (is_good_realm(p_ptr->realm1))
                {
 #ifdef JP
 strcpy(power_desc[num].name, "¥Û¡¼¥ê¡¼¡¦¥é¥ó¥¹");
@@ -2518,7 +2537,7 @@ strcpy(power_desc[num].name, "
 
                power_desc[num].level = 25;
                power_desc[num].cost = 0;
-               power_desc[num].fail = 100 - racial_chance(20, A_DEX, 0);
+               power_desc[num].fail = 100 - racial_chance(25, A_DEX, 0);
                power_desc[num++].number = -3;
 #ifdef JP
 strcpy(power_desc[num].name, "É´Îö·ý");
@@ -2528,7 +2547,7 @@ strcpy(power_desc[num].name, "ɴ
 
                power_desc[num].level = 30;
                power_desc[num].cost = 30;
-               power_desc[num].fail = 100 - racial_chance(20, A_STR, 20);
+               power_desc[num].fail = 100 - racial_chance(30, A_STR, 20);
                power_desc[num++].number = -4;
                break;
        }