OSDN Git Service

add crown ego -- ancient curse
authordis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 9 Jun 2013 06:51:34 +0000 (06:51 +0000)
committerdis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 9 Jun 2013 06:51:34 +0000 (06:51 +0000)
lib/edit/e_info.txt
src/defines.h
src/object1.c
src/object2.c
src/xtra1.c

index 684cc9f..ae87107 100644 (file)
@@ -340,7 +340,14 @@ C:0:0:0:8
 W:0:36:0:10000
 F:INFRA | RES_POIS | FREE_ACT
 
-#38 unused
+N:38:ÂÀ¸Å¤Î´÷¤Þ¤ï¤·¤¤
+E:of Ancient Curse
+X:33:0
+C:0:0:0:5
+W:0:36:0:0
+F:STR | INT | WIS | DEX | CON | CHR | HEAVY_CURSE | CURSED | RANDOM_CURSE2 |
+F:RES_COLD | RES_POIS | RES_NEXUS | RES_NETHER |
+F:SH_COLD | SEE_INVIS | LITE | XTRA_H_RES | XTRA_POWER | ADD_H_CURSE
 
 N:39:¼ÀɤÎ
 E:of Sickliness
index 05e6c0b..8929a60 100644 (file)
 #define EGO_TELEPORTATION       35
 #define EGO_FOOL                36
 #define EGO_BASILISK            37
-//#define EGO_UGLINESS            38
+#define EGO_ANCIENT_CURSE       38
 #define EGO_SICKLINESS          39
 
 /* Cloaks */
index e117ece..96d88a3 100644 (file)
@@ -1479,28 +1479,14 @@ info[i++] = "
        }
        if (have_flag(flgs, TR_LITE))
        {
-               if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name1 == ART_NIGHT))
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-1)¡£";
-#else
-                       info[i++] = "It decreases radius of your light source by 1.";
-#endif
+               if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT))
+                       info[i++] = _("¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-1)¡£" , "It decreases radius of your light source by 1.");
                else
-#ifdef JP
-info[i++] = "¤½¤ì¤Ï±Ê±ó¤ÎÌÀ¤«¤ê¤ò¼ø¤±¤ë(Ⱦ·Â¤Ë+1)¡£";
-#else
-                       info[i++] = "It provides permanent light. (radius +1)";
-#endif
-
+                       info[i++] = _("¤½¤ì¤Ï±Ê±ó¤ÎÌÀ¤«¤ê¤ò¼ø¤±¤ë(Ⱦ·Â¤Ë+1)¡£", "It provides permanent light. (radius +1)");
        }
        if (have_flag(flgs, TR_SEE_INVIS))
        {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò¸«¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£";
-#else
-               info[i++] = "It allows you to see invisible monsters.";
-#endif
-
+               info[i++] = _("¤½¤ì¤ÏÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò¸«¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£", "It allows you to see invisible monsters.");
        }
        if (have_flag(flgs, TR_TELEPATHY))
        {
index 1ff9986..73dee3b 100644 (file)
@@ -2901,8 +2901,26 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
 
                        /* Very cursed */
                        else if (power < -1)
-                       {
-                               o_ptr->name2 = get_random_ego(INVEN_HEAD, FALSE);
+                       {       
+                               while (1)
+                               {
+                                       bool ok_flag = TRUE;
+                                       o_ptr->name2 = get_random_ego(INVEN_HEAD, FALSE);
+
+                                       switch (o_ptr->name2)
+                                       {
+                                         case EGO_ANCIENT_CURSE:
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_NO_MAGIC);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_NO_TELE);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_TY_CURSE);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_DRAIN_EXP);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_DRAIN_HP);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_DRAIN_MANA);
+                                               break;
+                                       }
+                                       if (ok_flag)
+                                               break; /* while (1) */
+                               }
                        }
 
                        break;
@@ -2957,7 +2975,19 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                        /* Very cursed */
                        else if (power < -1)
                        {
-                               o_ptr->name2 = get_random_ego(INVEN_HEAD, FALSE);
+                               while (1)
+                               {
+                                       bool ok_flag = TRUE;
+                                       o_ptr->name2 = get_random_ego(INVEN_HEAD, FALSE);
+
+                                       switch (o_ptr->name2)
+                                       {
+                                         case EGO_ANCIENT_CURSE:
+                                               ok_flag = FALSE;
+                                       }
+                                       if (ok_flag)
+                                               break; /* while (1) */
+                               }
                        }
                        break;
                }
index 1ccad14..e3529c4 100644 (file)
@@ -3085,7 +3085,7 @@ static void calc_torch(void)
                        /* does this item glow? */
                        if (have_flag(flgs, TR_LITE))
                        {
-                               if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name1 == ART_NIGHT)) p_ptr->cur_lite--;
+                               if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT)) p_ptr->cur_lite--;
                                else p_ptr->cur_lite++;
                        }
                }