diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-02-14 19:26:16 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-02-14 19:26:16 +0000 |
commit | f5ecdf95ee8b9bb98f8a4cdea49a05cf5ecbaaf0 (patch) | |
tree | bc4d24ce6164c2d68bd4df393d96df0e1ad1e837 /crawl-ref/source/abl-show.cc | |
parent | 09cadff30441398df1bea28ffe712e767a002ee0 (diff) | |
download | crawl-ref-f5ecdf95ee8b9bb98f8a4cdea49a05cf5ecbaaf0.tar.gz crawl-ref-f5ecdf95ee8b9bb98f8a4cdea49a05cf5ecbaaf0.zip |
Give green draconians spit poison (a downgrade from breathe poison) in
spider form.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9077 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abl-show.cc')
-rw-r--r-- | crawl-ref/source/abl-show.cc | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc index dc3bee5714..9fb013665d 100644 --- a/crawl-ref/source/abl-show.cc +++ b/crawl-ref/source/abl-show.cc @@ -2104,20 +2104,36 @@ std::vector<talent> your_talents( bool check_confused ) _add_talent(talents, ABIL_SPIT_POISON, check_confused); } - if (player_genus(GENPC_DRACONIAN) - && you.experience_level >= 7 - && !transform_changed_physiology()) - { - const ability_type ability = ( - (you.species == SP_GREEN_DRACONIAN) ? ABIL_BREATHE_POISON : - (you.species == SP_RED_DRACONIAN) ? ABIL_BREATHE_FIRE : - (you.species == SP_WHITE_DRACONIAN) ? ABIL_BREATHE_FROST : - (you.species == SP_YELLOW_DRACONIAN) ? ABIL_SPIT_ACID : - (you.species == SP_BLACK_DRACONIAN) ? ABIL_BREATHE_LIGHTNING : - (you.species == SP_PURPLE_DRACONIAN) ? ABIL_BREATHE_POWER : - (you.species == SP_PALE_DRACONIAN) ? ABIL_BREATHE_STEAM : - (you.species == SP_MOTTLED_DRACONIAN)? ABIL_BREATHE_STICKY_FLAME - : ABIL_NON_ABILITY); + if (player_genus(GENPC_DRACONIAN) && you.experience_level >= 7) + { + ability_type ability = ABIL_NON_ABILITY; + switch (you.species) + { + case SP_GREEN_DRACONIAN: ability = ABIL_BREATHE_POISON; break; + case SP_RED_DRACONIAN: ability = ABIL_BREATHE_FIRE; break; + case SP_WHITE_DRACONIAN: ability = ABIL_BREATHE_FROST; break; + case SP_YELLOW_DRACONIAN: ability = ABIL_SPIT_ACID; break; + case SP_BLACK_DRACONIAN: ability = ABIL_BREATHE_LIGHTNING; break; + case SP_PURPLE_DRACONIAN: ability = ABIL_BREATHE_POWER; break; + case SP_PALE_DRACONIAN: ability = ABIL_BREATHE_STEAM; break; + case SP_MOTTLED_DRACONIAN: ability = ABIL_BREATHE_STICKY_FLAME; break; + default: break; + } + + // Draconians don't maintain their original breath weapons + // if shapechanged, but green draconians do get spit poison + // in spider form. + if (transform_changed_physiology()) + { + if (you.species == SP_GREEN_DRACONIAN + && you.attribute[ATTR_TRANSFORMATION] == TRAN_SPIDER) + { + ability = ABIL_SPIT_POISON; // spit, not breath + } + else + ability = ABIL_NON_ABILITY; + } + if (ability != ABIL_NON_ABILITY) _add_talent(talents, ability, check_confused ); } |