From 1d08a82c51aefbd0f90748bb9d1abf1d1363c29a Mon Sep 17 00:00:00 2001 From: dis- Date: Thu, 23 May 2013 14:23:21 +0000 Subject: [PATCH] add cursed armor ego -- of Morgul --- lib/edit/e_info.txt | 16 +++++++++++++--- src/defines.h | 2 +- src/object2.c | 47 ++++++++++++++++++++++++++++------------------- 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/lib/edit/e_info.txt b/lib/edit/e_info.txt index 16db9914a..63ed4c64b 100644 --- a/lib/edit/e_info.txt +++ b/lib/edit/e_info.txt @@ -61,8 +61,18 @@ V:2.8.1 # Single - Elemental Ego remaked as of Dwarven / of Olog -# 4 (unused) -# 5 (unused) + +N:4:¥â¥ë¥°¥ë¤Î +E:of Morgul +X:31:30 +W:0:30:0:10000 +C:0:0:10:3 +F:INT | WIS | +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:6:¥É¥ë¥¤¥É¤Î E:of Druid @@ -794,7 +804,7 @@ E:of Morgul X:24:0 W:0:36:0:0 C:20:20:10:0 -F:SEE_INVIS | AGGRAVATE | HEAVY_CURSE | CURSED | SH_COLD | +F:SEE_INVIS | AGGRAVATE | CURSED | SH_COLD | F:SLAY_UNDEAD | SLAY_HUMAN | BRAND_POIS | ESP_UNDEAD | F:RES_COLD | RES_NETHER | F:RANDOM_CURSE2 | XTRA_DICE diff --git a/src/defines.h b/src/defines.h index 6243d0353..58ca6b32b 100644 --- a/src/defines.h +++ b/src/defines.h @@ -1552,7 +1552,7 @@ /* xxx */ /* Body Armor */ -#define EGO_XXXX1 4 +#define EGO_A_MORGUL 4 #define EGO_XXXX2 5 #define EGO_DRUID 6 #define EGO_OLOG 7 diff --git a/src/object2.c b/src/object2.c index 3b2d80b32..e528d62ed 100644 --- a/src/object2.c +++ b/src/object2.c @@ -2447,6 +2447,7 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power) { case EGO_MORGUL: if (one_in_(6)) add_flag(o_ptr->art_flags, TR_TY_CURSE); + if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE); case EGO_WEIRD: if (one_in_(4)) add_flag(o_ptr->art_flags, TR_BRAND_POIS); if (one_in_(4)) add_flag(o_ptr->art_flags, TR_RES_NETHER); @@ -2679,40 +2680,46 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power) switch (o_ptr->name2) { - case EGO_RESISTANCE: - if (one_in_(4)) - add_flag(o_ptr->art_flags, TR_RES_POIS); - break; - case EGO_ELVENKIND: - case EGO_URUKISH: - break; - case EGO_DWARVEN: + case EGO_DWARVEN: if (o_ptr->tval != TV_HARD_ARMOR) { okay_flag = FALSE; break; } - else - { - o_ptr->weight = (2 * k_info[o_ptr->k_idx].weight / 3); - o_ptr->ac = k_info[o_ptr->k_idx].ac + 5; - break; - } - case EGO_DRUID: + case EGO_DRUID: if (o_ptr->tval != TV_SOFT_ARMOR) { okay_flag = FALSE; break; } - else - { - break; - } + default: + break; } if (okay_flag) break; } + switch (o_ptr->name2) + { + case EGO_RESISTANCE: + if (one_in_(4)) + add_flag(o_ptr->art_flags, TR_RES_POIS); + break; + case EGO_DWARVEN: + o_ptr->weight = (2 * k_info[o_ptr->k_idx].weight / 3); + 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); + break; + default: + break; + } } break; @@ -4467,6 +4474,8 @@ void apply_magic(object_type *o_ptr, int lev, u32b mode) { o_ptr->pval += randint1(e_ptr->max_pval); } + + } if ((o_ptr->name2 == EGO_SPEED) && (lev < 50)) { -- 2.11.0