diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-15 18:40:14 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-15 18:40:14 +0000 |
commit | 400f2b68e5b68aae60af8465a9f5a5f07b05e714 (patch) | |
tree | bc7507cc7a8cfa5351e4569f4eb1b6236778e16d /crawl-ref/source/fight.cc | |
parent | 2b03b7a4abe79bb22c4419bce69c7135bb1f0d2b (diff) | |
download | crawl-ref-400f2b68e5b68aae60af8465a9f5a5f07b05e714.tar.gz crawl-ref-400f2b68e5b68aae60af8465a9f5a5f07b05e714.zip |
Allow vampires to mutate when Satiated or higher, and make non-physical
mutations only apply at these hunger levels, too.
Differentiated mutations into physical (affecting a character's
appearance and stuff: scales, hooves, wings, ...) and internal
(resistances etc.). I guess this is what people usually refer to as
"cosmetic", which I think is an inaccurate description since it makes
it sound like they were completely superficial and had no real effect.
Here's a list of arbitrarily chosen "physical" mutations:
* tough skin, all scales, and fur
* strong/clever/agile, and weak/dopey/clumsy
* deformed
* strong but stiff, and flexible but weak
* frail, and robust
* claws, fangs, hooves, talons, and horns
* stinger, wings
* blue/green marks
Mutations currently not applying are still listed on the 'A' screen,
though in darkgrey and in (brackets).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4246 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r-- | crawl-ref/source/fight.cc | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc index 38d5ae0717..80e10471de 100644 --- a/crawl-ref/source/fight.cc +++ b/crawl-ref/source/fight.cc @@ -802,16 +802,16 @@ bool melee_attack::player_aux_unarmed() else uattack = (coinflip() ? UNAT_HEADBUTT : UNAT_KICK); - if (you.mutation[MUT_FANGS] + if (player_mutation_level(MUT_FANGS) || you.attribute[ATTR_TRANSFORMATION] == TRAN_DRAGON) { uattack = UNAT_BITE; } if ((you.attribute[ATTR_TRANSFORMATION] == TRAN_DRAGON - || player_genus(GENPC_DRACONIAN) - || (you.species == SP_MERFOLK && player_is_swimming()) - || you.mutation[ MUT_STINGER ]) + || player_genus(GENPC_DRACONIAN) + || (you.species == SP_MERFOLK && player_is_swimming()) + || player_mutation_level( MUT_STINGER )) && one_chance_in(3)) { uattack = UNAT_TAILSLAP; @@ -838,7 +838,8 @@ bool melee_attack::player_aux_unarmed() { if (uattack != UNAT_KICK) //jmf: hooves mutation { - if (!you.mutation[MUT_HOOVES] && !you.mutation[MUT_TALONS] + if (!player_mutation_level(MUT_HOOVES) + && !player_mutation_level(MUT_TALONS) || coinflip()) { continue; @@ -855,7 +856,7 @@ bool melee_attack::player_aux_unarmed() } // Kenku have large taloned feet that do good damage. - const bool clawed_kick = you.mutation[MUT_TALONS]; + const bool clawed_kick = player_mutation_level(MUT_TALONS); if (clawed_kick) { @@ -865,15 +866,16 @@ bool melee_attack::player_aux_unarmed() else unarmed_attack = "kick"; - aux_damage = (you.mutation[MUT_HOOVES] ? 10 - : clawed_kick ? 8 : 5); + aux_damage = (player_mutation_level(MUT_HOOVES) ? 10 + : clawed_kick ? 8 : 5); break; } case 1: if (uattack != UNAT_HEADBUTT) { - if ((!you.mutation[MUT_HORNS] && you.species != SP_KENKU) + if ((!player_mutation_level(MUT_HORNS) + && you.species != SP_KENKU) || !one_chance_in(3)) { continue; @@ -892,7 +894,7 @@ bool melee_attack::player_aux_unarmed() unarmed_attack = (you.species == SP_KENKU) ? "peck" : "headbutt"; - aux_damage = 5 + you.mutation[MUT_HORNS] * 3; + aux_damage = 5 + player_mutation_level(MUT_HORNS) * 3; // minotaurs used to get +5 damage here, now they get // +6 because of the horns. @@ -918,7 +920,7 @@ bool melee_attack::player_aux_unarmed() // not draconian, and not wet merfolk if ((!player_genus(GENPC_DRACONIAN) && (!(you.species == SP_MERFOLK && player_is_swimming())) - && !you.mutation[ MUT_STINGER ]) + && !player_mutation_level( MUT_STINGER )) || (!one_chance_in(4))) { @@ -936,9 +938,9 @@ bool melee_attack::player_aux_unarmed() unarmed_attack = "tail-slap"; aux_damage = 6; - if (you.mutation[ MUT_STINGER ] > 0) + if (player_mutation_level( MUT_STINGER ) > 0) { - aux_damage += (you.mutation[ MUT_STINGER ] * 2 - 1); + aux_damage += (player_mutation_level( MUT_STINGER ) * 2 - 1); damage_brand = SPWPN_VENOM; } @@ -998,7 +1000,7 @@ bool melee_attack::player_aux_unarmed() if (uattack != UNAT_BITE) continue; - if (!you.mutation[MUT_FANGS]) + if (!player_mutation_level(MUT_FANGS)) continue; if (you.species != SP_VAMPIRE && one_chance_in(5) @@ -1009,7 +1011,8 @@ bool melee_attack::player_aux_unarmed() unarmed_attack = "bite"; simple_miss_message = true; - aux_damage += you.mutation[MUT_FANGS] * 2; + // TODO: Maybe unarmed combat factor in + aux_damage += player_mutation_level(MUT_FANGS) * 2; if (you.species == SP_VAMPIRE) { @@ -2973,7 +2976,7 @@ int melee_attack::player_calc_base_unarmed_damage() else if (you.species == SP_GHOUL) damage += 2; - damage += (you.mutation[ MUT_CLAWS ] * 2); + damage += player_mutation_level(MUT_CLAWS) * 2; } if (you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT) |