OSDN Git Service

Add new armor ego -- of Demonic. Cursed, but powerful.
authordis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 24 May 2013 15:10:04 +0000 (15:10 +0000)
committerdis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 24 May 2013 15:10:04 +0000 (15:10 +0000)
lib/edit/e_info.txt
src/defines.h
src/object2.c

index 7c89684..2b11e58 100644 (file)
@@ -72,7 +72,14 @@ F:RES_COLD | RES_POIS | RES_NETHER | SH_COLD | ESP_UNDEAD
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD |  XTRA_H_RES 
 F:CURSED | RANDOM_CURSE2 | ADD_L_CURSE | DRAIN_EXP
 
-# 5(unused)
+N:5:°­Ëâ¤Î
+E:of Demon
+X:31:30
+W:0:40:0:15000
+C:0:0:11:3
+F:STR | INT | CON |
+F:RES_FIRE | RES_NETHER | ESP_DEMON | SH_FIRE | CURSED | RANDOM_CURSE2 | POWERFUL | 
+F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_RES
 
 N:6:¥É¥ë¥¤¥É¤Î
 E:of Druid
index 50bf7ea..400fe07 100644 (file)
 
 /* Body Armor */
 #define EGO_A_MORGUL            4
-#define EGO_XXXX2               5
+#define EGO_A_DEMON             5
 #define EGO_DRUID               6
 #define EGO_OLOG                7
 #define EGO_RESISTANCE          8
index abf2f6b..e5cbb3e 100644 (file)
@@ -2402,17 +2402,12 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                case EGO_DEMON:
                                        
                                        if(one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
-                                       if (one_in_(3)){
-                                               add_flag(o_ptr->art_flags, TR_DRAIN_EXP);
-                                       }
-                                       else if(one_in_(2))
-                                       {
-                                               add_flag(o_ptr->art_flags, TR_DRAIN_HP);
-                                       }
-                                       else
-                                       {
-                                               add_flag(o_ptr->art_flags, TR_DRAIN_MANA);
-                                       }
+                                       one_in_(3) ? 
+                                               add_flag(o_ptr->art_flags, TR_DRAIN_EXP) :
+                                               one_in_(2) ?
+                                                       add_flag(o_ptr->art_flags, TR_DRAIN_HP) :
+                                                       add_flag(o_ptr->art_flags, TR_DRAIN_MANA);
+                                               
                                        
                                        if (one_in_(3)) add_flag(o_ptr->art_flags, TR_CHAOTIC);
                                        if (one_in_(4)) add_flag(o_ptr->art_flags, TR_BLOWS);
@@ -2694,6 +2689,23 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                                        okay_flag = FALSE;
                                                        break;
                                                }
+                                         case EGO_A_DEMON:
+                                               if(one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
+                                               one_in_(3) ? 
+                                                       add_flag(o_ptr->art_flags, TR_DRAIN_EXP) :
+                                                       one_in_(2) ?
+                                                               add_flag(o_ptr->art_flags, TR_DRAIN_HP) :
+                                                               add_flag(o_ptr->art_flags, TR_DRAIN_MANA);
+                                               
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_AGGRAVATE);
+                                               if (one_in_(3)) add_flag(o_ptr->art_flags, TR_ADD_L_CURSE);
+                                               if (one_in_(5)) add_flag(o_ptr->art_flags, TR_ADD_H_CURSE);
+                                               if (one_in_(5)) add_flag(o_ptr->art_flags, TR_DRAIN_HP);
+                                               if (one_in_(5)) add_flag(o_ptr->art_flags, TR_DRAIN_MANA);
+                                               if (one_in_(5)) add_flag(o_ptr->art_flags, TR_DRAIN_EXP);
+                                               if (one_in_(5)) add_flag(o_ptr->art_flags, TR_TY_CURSE);
+                                               
+                                               break;
                                          default:
                                                break;
                                        }
@@ -2712,12 +2724,12 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        o_ptr->ac = k_info[o_ptr->k_idx].ac + 5;
                                        break;
                                  case EGO_A_MORGUL:
-                                       if(one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
-                                       if(one_in_(6)) add_flag(o_ptr->art_flags, TR_TY_CURSE);
-                                       if(one_in_(4)) add_flag(o_ptr->art_flags, TR_ADD_H_CURSE);
-                                       if(one_in_(4)) add_flag(o_ptr->art_flags, TR_AGGRAVATE);
-                                       if(one_in_(6)) add_flag(o_ptr->art_flags, TR_NO_MAGIC);
-                                       if(one_in_(6)) add_flag(o_ptr->art_flags, TR_NO_TELE);
+                                       if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
+                                       if (one_in_(6)) add_flag(o_ptr->art_flags, TR_TY_CURSE);
+                                       if (one_in_(4)) add_flag(o_ptr->art_flags, TR_ADD_H_CURSE);
+                                       if (one_in_(4)) add_flag(o_ptr->art_flags, TR_AGGRAVATE);
+                                       if (one_in_(6)) add_flag(o_ptr->art_flags, TR_NO_MAGIC);
+                                       if (one_in_(6)) add_flag(o_ptr->art_flags, TR_NO_TELE);
                                        break;
                                  default:
                                        break;
@@ -4470,6 +4482,10 @@ void apply_magic(object_type *o_ptr, int lev, u32b mode)
                                        o_ptr->pval = randint1(e_ptr->max_pval);
                                        if (o_ptr->sval == SV_ELVEN_CLOAK) o_ptr->pval += randint1(2);
                                }
+                               else if (o_ptr->name2 == EGO_A_DEMON || o_ptr->name2 == EGO_DRUID || o_ptr->name2 == EGO_OLOG)
+                               {
+                                       o_ptr->pval = randint1(e_ptr->max_pval);
+                               }
                                else
                                {
                                        o_ptr->pval += randint1(e_ptr->max_pval);