summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/artefact.cc20
-rw-r--r--crawl-ref/source/makeitem.cc15
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;
}