summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/artefact.cc
diff options
context:
space:
mode:
authorChris Oelmueller <chris.oelmueller@gmail.com>2014-04-10 01:06:32 +0200
committerNicholas Feinberg <pleasingfung@gmail.com>2014-06-13 23:41:47 -0700
commit6537abdd850278128eb7b5d4954eba2d7d0a5526 (patch)
tree527c10ebda198a195aa04a4692427aec6b9d3c85 /crawl-ref/source/artefact.cc
parent1b4b79b5505598c32d5aabc183851e8b556b74dd (diff)
downloadcrawl-ref-6537abdd850278128eb7b5d4954eba2d7d0a5526.tar.gz
crawl-ref-6537abdd850278128eb7b5d4954eba2d7d0a5526.zip
Combine plus/plus2 for rings of slaying, and Acc+/Dam+ on artefacts
Phase out ARTP_ACCURACY, rename ARTP_DAMAGE to ARTP_SLAYING which now combines both Acc+ and Dam+ bonuses. Bracers of archery are +4 now instead of +5,+3. [Committer's note: fixed a description and cleaned up various other small issues.]
Diffstat (limited to 'crawl-ref/source/artefact.cc')
-rw-r--r--crawl-ref/source/artefact.cc31
1 files changed, 8 insertions, 23 deletions
diff --git a/crawl-ref/source/artefact.cc b/crawl-ref/source/artefact.cc
index ef346c1cb4..03fad8b582 100644
--- a/crawl-ref/source/artefact.cc
+++ b/crawl-ref/source/artefact.cc
@@ -519,10 +519,8 @@ void artefact_desc_properties(const item_def &item,
break;
case RING_SLAYING:
- fake_rap = ARTP_ACCURACY;
- fake_plus = item.plus;
- fake_rap2 = ARTP_DAMAGE;
- fake_plus2 = item.plus2;
+ fake_rap = ARTP_SLAYING;
+ fake_plus = item.plus;
break;
case RING_SEE_INVISIBLE:
@@ -665,7 +663,7 @@ static int _randart_add_one_property(const item_def &item,
}
// An artefact will pass this check if it has any non-stat properties, and
-// also if it has enough stat (Str, Dex, Int, Acc, Dam) properties.
+// also if it has enough stat properties (Str, Dex, Int, Slay).
// Returns how many (more) stat properties we need to add.
static int _need_bonus_stat_props(const artefact_properties_t &proprt)
{
@@ -682,7 +680,7 @@ static int _need_bonus_stat_props(const artefact_properties_t &proprt)
if (i >= ARTP_AC && i <= ARTP_DEXTERITY)
num_stats++;
- else if (i >= ARTP_ACCURACY && i <= ARTP_DAMAGE)
+ else if (i == ARTP_SLAYING)
num_acc_dam++;
else
return 0;
@@ -840,25 +838,13 @@ static void _get_randart_properties(const item_def &item,
&& (aclass != OBJ_JEWELLERY || atype != RING_SLAYING))
{
// Weapons and rings of slaying can't get these.
- if (one_chance_in(4 + power_level)) // to-hit
- {
- proprt[ARTP_ACCURACY] = 2 + random2(3) + random2(3);
- power_level++;
- if (one_chance_in(4))
- {
- proprt[ARTP_ACCURACY] -= 2 + random2(4) + random2(4)
- + random2(3);
- power_level--;
- }
- }
-
if (one_chance_in(4 + power_level)) // to-dam
{
- proprt[ARTP_DAMAGE] = 2 + random2(3) + random2(3);
+ proprt[ARTP_SLAYING] = 2 + random2(3) + random2(3);
power_level++;
if (one_chance_in(4))
{
- proprt[ARTP_DAMAGE] -= 2 + random2(4) + random2(4)
+ proprt[ARTP_SLAYING] -= 2 + random2(4) + random2(4)
+ random2(3);
power_level--;
}
@@ -1673,8 +1659,7 @@ static bool _randart_is_redundant(const item_def &item,
break;
case RING_SLAYING:
- provides = ARTP_DAMAGE;
- provides2 = ARTP_ACCURACY;
+ provides = ARTP_SLAYING;
break;
case RING_SEE_INVISIBLE:
@@ -1726,7 +1711,7 @@ static bool _randart_is_redundant(const item_def &item,
break;
case AMU_INACCURACY:
- provides = ARTP_ACCURACY;
+ provides = ARTP_SLAYING;
break;
case AMU_STASIS: