diff options
-rw-r--r-- | crawl-ref/source/makeitem.cc | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc index af3997b067..98bc1b0278 100644 --- a/crawl-ref/source/makeitem.cc +++ b/crawl-ref/source/makeitem.cc @@ -4122,7 +4122,7 @@ void give_armour(monsters *mon, int level) case MONS_RUPERT: case MONS_WAYNE: item.base_type = OBJ_ARMOUR; - item.sub_type = ARM_LEATHER_ARMOUR + random2(4); + item.sub_type = ARM_LEATHER_ARMOUR + random2(4); // up to chain mail break; case MONS_ORC_WARLORD: @@ -4145,7 +4145,7 @@ void give_armour(monsters *mon, int level) case MONS_VAMPIRE_KNIGHT: case MONS_VAULT_GUARD: item.base_type = OBJ_ARMOUR; - item.sub_type = ARM_CHAIN_MAIL + random2(4); + item.sub_type = ARM_CHAIN_MAIL + random2(4); // up to plate mail break; case MONS_ANGEL: @@ -4347,20 +4347,13 @@ armour_type get_random_body_armour_type(int item_level) // FIXME: Need to clean up this mess. armour_type get_random_armour_type(int item_level) { - // Default (lowest-level) armours. - const armour_type defarmours[] = { ARM_ROBE, ARM_LEATHER_ARMOUR, - ARM_RING_MAIL }; - - int armtype = RANDOM_ELEMENT(defarmours); + // Default (lowest-level) armours, up to ring mail. + int armtype = ARM_ROBE + random2(3); if (x_chance_in_y(11 + item_level, 35)) { - // Low-level armours. - const armour_type lowarmours[] = { ARM_ROBE, ARM_LEATHER_ARMOUR, - ARM_RING_MAIL, ARM_SCALE_MAIL, - ARM_CHAIN_MAIL }; - - armtype = RANDOM_ELEMENT(lowarmours); + // Low-level armours, up to chain mail. + armtype = ARM_ROBE + random2(5); if (one_chance_in(4)) armtype = ARM_ANIMAL_SKIN; @@ -4368,13 +4361,8 @@ armour_type get_random_armour_type(int item_level) if (x_chance_in_y(11 + item_level, 60)) { - // Medium-level armours. - const armour_type medarmours[] = { ARM_ROBE, ARM_LEATHER_ARMOUR, - ARM_RING_MAIL, ARM_SCALE_MAIL, - ARM_CHAIN_MAIL, ARM_SPLINT_MAIL, - ARM_BANDED_MAIL, ARM_PLATE_MAIL }; - - armtype = RANDOM_ELEMENT(medarmours); + // Medium-level armours, up to plate mail. + armtype = ARM_ROBE + random2(8); } if (one_chance_in(20) && x_chance_in_y(11 + item_level, 400)) |