From f5ecdf95ee8b9bb98f8a4cdea49a05cf5ecbaaf0 Mon Sep 17 00:00:00 2001 From: haranp Date: Sat, 14 Feb 2009 19:26:16 +0000 Subject: 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 --- crawl-ref/source/abl-show.cc | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) (limited to 'crawl-ref/source/abl-show.cc') 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 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 ); } -- cgit v1.2.3-54-g00ecf