diff options
author | Chris Oelmueller <chris.oelmueller@gmail.com> | 2014-04-24 15:19:29 +0200 |
---|---|---|
committer | Shmuale Mark <shm.mark@gmail.com> | 2014-04-30 03:21:01 -0400 |
commit | f3c7235ddb147bc10b815d7cf37697925bf3725c (patch) | |
tree | 173ab34b26badbc391416880ad1bca2116207815 /crawl-ref/source/artefact.cc | |
parent | 27581562e7e0154cc7ac97af3925bc700d7d89b9 (diff) | |
download | crawl-ref-f3c7235ddb147bc10b815d7cf37697925bf3725c.tar.gz crawl-ref-f3c7235ddb147bc10b815d7cf37697925bf3725c.zip |
Replace rings of hunger/sustenance with loudness/stealth in-place
Those give one level of -50/+50 stealth each. Stealth is priced at old
sustenance level (but often comes cursed), loudness around 50-60 after curses.
Diffstat (limited to 'crawl-ref/source/artefact.cc')
-rw-r--r-- | crawl-ref/source/artefact.cc | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/crawl-ref/source/artefact.cc b/crawl-ref/source/artefact.cc index 932c13465b..56b03d1dd1 100644 --- a/crawl-ref/source/artefact.cc +++ b/crawl-ref/source/artefact.cc @@ -59,15 +59,15 @@ static bool _god_fits_artefact(const god_type which_god, const item_def &item, type_bad = true; break; - case GOD_OKAWARU: - // Precision fighter god: no inaccuracy. - if (item.base_type == OBJ_JEWELLERY && item.sub_type == AMU_INACCURACY) + case GOD_SHINING_ONE: + // Crusader god: holiness, honourable combat. + if (item.base_type == OBJ_JEWELLERY && item.sub_type == RING_STEALTH) type_bad = true; break; - case GOD_ZIN: - // Lawful god: no increased hunger. - if (item.base_type == OBJ_JEWELLERY && item.sub_type == RING_HUNGER) + case GOD_OKAWARU: + // Precision fighter god: no inaccuracy. + if (item.base_type == OBJ_JEWELLERY && item.sub_type == AMU_INACCURACY) type_bad = true; break; @@ -102,6 +102,12 @@ static bool _god_fits_artefact(const god_type which_god, const item_def &item, type_bad = true; break; + case GOD_DITHMENOS: + // Shadow god: no reducing stealth. + if (item.base_type == OBJ_JEWELLERY && item.sub_type == RING_LOUDNESS) + type_bad = true; + break; + default: break; } @@ -222,6 +228,9 @@ static bool _god_fits_artefact(const god_type which_god, const item_def &item, { return false; } + // No reducing stealth. + if (artefact_wpn_property(item, ARTP_STEALTH) < 0) + return false; break; default: @@ -520,13 +529,13 @@ void artefact_desc_properties(const item_def &item, fake_rap = ARTP_EYESIGHT; break; - case RING_HUNGER: - fake_rap = ARTP_METABOLISM; + case RING_LOUDNESS: + fake_rap = ARTP_STEALTH; + fake_plus = -1; break; - case RING_SUSTENANCE: - fake_rap = ARTP_METABOLISM; - fake_plus = -1; + case RING_STEALTH: + fake_rap = ARTP_STEALTH; break; case RING_REGENERATION: @@ -1068,6 +1077,11 @@ static void _get_randart_properties(const item_def &item, proprt[ARTP_COLD] = -1; break; case 7: // less stealthy + if (aclass == OBJ_JEWELLERY + && (atype == RING_LOUDNESS || atype == RING_STEALTH)) + { + break; + } proprt[ARTP_STEALTH] = -1 - random2(2); break; case 8: @@ -1671,8 +1685,8 @@ static bool _randart_is_redundant(const item_def &item, provides = ARTP_INVISIBLE; break; - case RING_HUNGER: - provides = ARTP_METABOLISM; + case RING_STEALTH: + provides = ARTP_STEALTH; break; case RING_TELEPORTATION: @@ -1765,8 +1779,8 @@ static bool _randart_is_conflicting(const item_def &item, switch (item.sub_type) { - case RING_SUSTENANCE: - conflicts = ARTP_METABOLISM; + case RING_LOUDNESS: + conflicts = ARTP_STEALTH; break; case RING_FIRE: @@ -1966,7 +1980,7 @@ static void _make_faerie_armour(item_def &item) static jewellery_type octoring_types[8] = { RING_REGENERATION, RING_PROTECTION_FROM_FIRE, RING_PROTECTION_FROM_COLD, - RING_SUSTAIN_ABILITIES, RING_SUSTENANCE, RING_WIZARDRY, RING_MAGICAL_POWER, + RING_SUSTAIN_ABILITIES, RING_STEALTH, RING_WIZARDRY, RING_MAGICAL_POWER, RING_LIFE_PROTECTION }; |