diff -ur vanilla/src/do_wear.c cloak-of-protection-tweak/src/do_wear.c --- vanilla/src/do_wear.c 2003-12-08 00:39:13.000000000 +0100 +++ cloak-of-protection-tweak/src/do_wear.c 2008-04-25 20:10:09.000000000 +0200 @@ -201,10 +201,12 @@ switch(uarmc->otyp) { case ELVEN_CLOAK: - case CLOAK_OF_PROTECTION: case CLOAK_OF_DISPLACEMENT: makeknown(uarmc->otyp); break; + case CLOAK_OF_PROTECTION: + adj_abon(uarmc, uarmc->spe); + break; case ORCISH_CLOAK: case DWARVISH_CLOAK: case CLOAK_OF_MAGIC_RESISTANCE: @@ -1605,6 +1607,9 @@ #ifdef TOURIST if(uarmu) uac -= ARM_BONUS(uarmu); #endif + if(uarmc && uarmc->otyp == CLOAK_OF_PROTECTION) + /* enchantment counts twice for cloaks of protection */ + uac -= uarmc->spe; if(uleft && uleft->otyp == RIN_PROTECTION) uac -= uleft->spe; if(uright && uright->otyp == RIN_PROTECTION) uac -= uright->spe; if (HProtection & INTRINSIC) uac -= u.ublessed; @@ -2178,6 +2183,13 @@ } flags.botl = 1; } + if (uarmc && uarmc == otmp && otmp->otyp == CLOAK_OF_PROTECTION) { + if (delta) { + makeknown(uarmc->otyp); + /* AC is adjusted in find_ac() */ + } + flags.botl = 1; + } } #endif /* OVLB */ diff -ur vanilla/src/objects.c cloak-of-protection-tweak/src/objects.c --- vanilla/src/objects.c 2003-12-08 00:39:13.000000000 +0100 +++ cloak-of-protection-tweak/src/objects.c 2008-04-24 14:20:55.000000000 +0200 @@ -425,7 +425,7 @@ 1, 0, 0, 8, 0, 15, 40, 9, 1, LEATHER, CLR_BROWN), /* With shuffled appearances... */ CLOAK("cloak of protection", "tattered cape", - 0, 1, PROTECTION, 9, 0, 10, 50, 7, 3, CLOTH, HI_CLOTH), + 0, 1, PROTECTION, 9, 0, 10, 50, 9, 3, CLOTH, HI_CLOTH), CLOAK("cloak of invisibility", "opera cloak", 0, 1, INVIS, 10, 0, 10, 60, 9, 2, CLOTH, CLR_BRIGHT_MAGENTA), CLOAK("cloak of magic resistance", "ornamental cope",