From 67a5a32944f12de9a30808919a49f08c5c5ffbfa Mon Sep 17 00:00:00 2001 From: dis- Date: Fri, 24 May 2013 15:10:04 +0000 Subject: [PATCH] Add new armor ego -- of Demonic. Cursed, but powerful. --- lib/edit/e_info.txt | 9 ++++++++- src/defines.h | 2 +- src/object2.c | 50 +++++++++++++++++++++++++++++++++----------------- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/lib/edit/e_info.txt b/lib/edit/e_info.txt index 7c8968422..2b11e5846 100644 --- a/lib/edit/e_info.txt +++ b/lib/edit/e_info.txt @@ -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 diff --git a/src/defines.h b/src/defines.h index 50bf7ea1e..400fe0775 100644 --- a/src/defines.h +++ b/src/defines.h @@ -1553,7 +1553,7 @@ /* 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 diff --git a/src/object2.c b/src/object2.c index abf2f6bc8..e5cbb3e1b 100644 --- a/src/object2.c +++ b/src/object2.c @@ -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); -- 2.11.0