diff options
-rw-r--r-- | crawl-ref/source/artefact.cc | 20 | ||||
-rw-r--r-- | crawl-ref/source/makeitem.cc | 15 |
2 files changed, 20 insertions, 15 deletions
diff --git a/crawl-ref/source/artefact.cc b/crawl-ref/source/artefact.cc index 228dc51339..cb9e135e63 100644 --- a/crawl-ref/source/artefact.cc +++ b/crawl-ref/source/artefact.cc @@ -767,14 +767,24 @@ void static _get_randart_properties(const item_def &item, proprt[ARTP_BRAND] = SPWPN_NORMAL; } - if (atype == WPN_SLING - && proprt[ARTP_BRAND] == SPWPN_VENOM) - { - proprt[ARTP_BRAND] = SPWPN_NORMAL; - } + // Removed slings from getting the venom attribute: they can + // be branded with it now using Poison Weapon, and perma-branded + // via vorpalise weapon. if (atype == WPN_CROSSBOW && one_chance_in(5)) proprt[ARTP_BRAND] = SPWPN_ELECTROCUTION; + + // XXX: Penetration is only allowed on crossbows. This may change + // in future. + if (atype != WPN_CROSSBOW && proprt[ARTP_BRAND] == SPWPN_PENETRATION) + proprt[ARTP_BRAND] = SPWPN_NORMAL; + + // XXX: Only allow reaping brand on bows. This may change. + if (atype != WPN_BOW && atype != WPN_LONGBOW + && proprt[ARTP_BRAND] == SPWPN_REAPING) + { + proprt[ARTP_BRAND] = SPWPN_NORMAL; + } } } diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc index 600952d684..82a0160978 100644 --- a/crawl-ref/source/makeitem.cc +++ b/crawl-ref/source/makeitem.cc @@ -1412,22 +1412,17 @@ static brand_type _determine_weapon_brand(const item_def& item, int item_level) case WPN_CROSSBOW: { const int tmp = random2(1000); - if (tmp < 250) + if (tmp < 480) rc = SPWPN_FLAME; - else if (tmp < 500) + else if (tmp < 730) rc = SPWPN_FROST; - else if (tmp < 650) - rc = SPWPN_PENETRATION; - else if (tmp < 800) + else if (tmp < 880 && (item.sub_type == WPN_BOW || item.sub_type == WPN_LONGBOW)) rc = SPWPN_REAPING; - else if (tmp < 920) + else if (tmp < 880) rc = SPWPN_PROTECTION; - else if (tmp < 980) + else if (tmp < 990) rc = SPWPN_VORPAL; - if (item.sub_type == WPN_CROSSBOW && one_chance_in(5)) - rc = SPWPN_ELECTROCUTION; - break; } |