OSDN Git Service

Add Shiled Ego, of Dwarven.
authordis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 22 May 2013 14:21:22 +0000 (14:21 +0000)
committerdis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 22 May 2013 14:21:22 +0000 (14:21 +0000)
lib/edit/e_info.txt
src/defines.h
src/object2.c

index 9ccc817..6c24eff 100644 (file)
@@ -200,6 +200,14 @@ W:0:18:0:600
 C:0:0:15:0
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 
 C:0:0:15:0
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 
+N:239:¥É¥ï¡¼¥Õ¤Î
+E:of Dwarven
+X:25:20
+W:0:15:0:2000
+C:0:0:8:2
+F:CON|
+F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_E_RES
+
 ### Crowns and Helms ###
 
 N:23:°Ç¤Î
 ### Crowns and Helms ###
 
 N:23:°Ç¤Î
@@ -1480,5 +1488,5 @@ W:29:0:0:0
 C:0:0:0:3
 F:WIS | CHR | CURSED | HEAVY_CURSE
 
 C:0:0:0:3
 F:WIS | CHR | CURSED | HEAVY_CURSE
 
-# MAX 238
+# MAX 239
 
 
index e75627c..6243d03 100644 (file)
 #define EGO_REFLECTION          21
 #define EGO_NIGHT_DAY           22
 #define EGO_S_PROTECTION        238
 #define EGO_REFLECTION          21
 #define EGO_NIGHT_DAY           22
 #define EGO_S_PROTECTION        238
+#define EGO_S_DWARVEN           239
 
 /* Crowns and Helms */
 #define EGO_DARK                23
 
 /* Crowns and Helms */
 #define EGO_DARK                23
 #define EGO_AMU_GREAT           235
 #define EGO_AMU_DETECTION       236
 #define EGO_AMU_NAIVETY         237
 #define EGO_AMU_GREAT           235
 #define EGO_AMU_DETECTION       236
 #define EGO_AMU_NAIVETY         237
-// MAX 238
+// MAX 239
 
 /* Activation effects for random artifacts */
 #define ACT_SUNLIGHT            1
 
 /* Activation effects for random artifacts */
 #define ACT_SUNLIGHT            1
index 454e937..a22178d 100644 (file)
@@ -2737,7 +2737,17 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        create_artifact(o_ptr, FALSE);
                                        break;
                                }
                                        create_artifact(o_ptr, FALSE);
                                        break;
                                }
-                               o_ptr->name2 = get_random_ego(INVEN_LARM, TRUE);
+                               
+                               while(1)
+                               {
+                                       o_ptr->name2 = get_random_ego(INVEN_LARM, TRUE);
+                                       if (o_ptr->sval != SV_SMALL_METAL_SHIELD && o_ptr->sval != SV_LARGE_METAL_SHIELD 
+                                                               && o_ptr->name2 == EGO_S_DWARVEN)
+                                       {
+                                               continue;
+                                       }
+                                       break;
+                               }
                                
                                switch (o_ptr->name2)
                                {
                                
                                switch (o_ptr->name2)
                                {
@@ -2749,6 +2759,11 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        if (o_ptr->sval == SV_MIRROR_SHIELD)
                                                o_ptr->name2 = 0;
                                        break;
                                        if (o_ptr->sval == SV_MIRROR_SHIELD)
                                                o_ptr->name2 = 0;
                                        break;
+                                       
+                               case EGO_S_DWARVEN:
+                                       o_ptr->weight = (2 * k_info[o_ptr->k_idx].weight / 3);
+                                       o_ptr->ac = k_info[o_ptr->k_idx].ac + 3;
+                                       break;
                                }
                        }
                        break;
                                }
                        }
                        break;