OSDN Git Service

Demon Weapon/Armor have TR_CALL_DEMON at 1/5.
authordis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 10 Jun 2013 11:12:01 +0000 (11:12 +0000)
committerdis- <dis-@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 10 Jun 2013 11:12:01 +0000 (11:12 +0000)
src/dungeon.c
src/object2.c

index ee1e482..d02e03d 100644 (file)
@@ -1519,8 +1519,20 @@ static object_type *choose_cursed_obj_name(u32b flag)
                        choices[number] = i;
                        number++;
                }
-               else if ((flag == TRC_ADD_L_CURSE) || (flag == TRC_ADD_H_CURSE) || 
-                                       (flag == TRC_DRAIN_HP) || (flag == TRC_DRAIN_MANA) )
+               else if ((flag == TRC_ADD_L_CURSE) || 
+                                       (flag == TRC_ADD_H_CURSE) || 
+                                       (flag == TRC_DRAIN_HP) || 
+                                       (flag == TRC_DRAIN_MANA) || 
+                                       (flag == TRC_CALL_ANIMAL) || 
+                                       (flag == TRC_CALL_DEMON) || 
+                                       (flag == TRC_CALL_DRAGON) || 
+                                       (flag == TRC_CALL_UNDEAD) || 
+                                       (flag == TRC_COWARDICE) || 
+                                       (flag == TRC_LOW_MELEE) || 
+                                       (flag == TRC_LOW_AC) || 
+                                       (flag == TRC_LOW_MAGIC) || 
+                                       (flag == TRC_FAST_DIGEST) || 
+                                       (flag == TRC_SLOW_REGEN) )
                {
                        u32b cf;
                        u32b flgs[4];
@@ -1530,7 +1542,18 @@ static object_type *choose_cursed_obj_name(u32b flag)
                          case TRC_ADD_L_CURSE  : cf = TR_ADD_L_CURSE; break;
                          case TRC_ADD_H_CURSE  : cf = TR_ADD_H_CURSE; break;
                          case TRC_DRAIN_HP             : cf = TR_DRAIN_HP; break;
-                         default                               : cf = TR_DRAIN_MANA; break;
+                         case TRC_DRAIN_MANA   : cf = TR_DRAIN_MANA; break;
+                         case TRC_CALL_ANIMAL  : cf = TR_CALL_ANIMAL; break;
+                         case TRC_CALL_DEMON   : cf = TR_CALL_DEMON; break;
+                         case TRC_CALL_DRAGON  : cf = TR_CALL_DRAGON; break;
+                         case TRC_CALL_UNDEAD  : cf = TR_CALL_UNDEAD; break;
+                         case TRC_COWARDICE    : cf = TR_COWARDICE; break;
+                         case TRC_LOW_MELEE    : cf = TR_LOW_MELEE; break;
+                         case TRC_LOW_AC               : cf = TR_LOW_AC; break;
+                         case TRC_LOW_MAGIC    : cf = TR_LOW_MAGIC; break;
+                         case TRC_FAST_DIGEST  : cf = TR_FAST_DIGEST; break;
+                         case TRC_SLOW_REGEN   : cf = TR_SLOW_REGEN; break;
+                         default                               : break;
                        }
                        if (have_flag(flgs, cf))
                        {
index adee127..a1a7c74 100644 (file)
@@ -2417,6 +2417,7 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                        if (one_in_(3)) add_flag(o_ptr->art_flags, TR_CHAOTIC);
                                        if (one_in_(4)) add_flag(o_ptr->art_flags, TR_BLOWS);
                                        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_CALL_DEMON);
                                        break;
                                }
 
@@ -2727,6 +2728,7 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        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);
+                                       if (one_in_(5)) add_flag(o_ptr->art_flags, TR_CALL_DEMON);
                                        break;
                                  case EGO_A_MORGUL:
                                        if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);