diff options
author | Charles Otto <ottochar@gmail.com> | 2009-11-13 00:51:56 -0500 |
---|---|---|
committer | Charles Otto <ottochar@gmail.com> | 2009-11-13 00:51:56 -0500 |
commit | e7d888537c4d178a98e2ef1727a84d5132655d6c (patch) | |
tree | 79fc6a8cb3a521b7c4d6a9f8fb761a12c7d6ed23 /crawl-ref/source/beam.cc | |
parent | 4a7b398e339f0b55ae3ce579a02c81c2c281216d (diff) | |
parent | 8075717d132ff61257a8836ce7854f71f1eb05f8 (diff) | |
download | crawl-ref-e7d888537c4d178a98e2ef1727a84d5132655d6c.tar.gz crawl-ref-e7d888537c4d178a98e2ef1727a84d5132655d6c.zip |
Merge spore experiments branch.
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r-- | crawl-ref/source/beam.cc | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index b5282066f7..973962a6af 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -2555,6 +2555,11 @@ int mons_adjust_flavoured(monsters *monster, bolt &pbolt, int hurted, } break; + case BEAM_SPORE: + if (monster->type == MONS_BALLISTOMYCETE) + hurted = 0; + break; + default: break; } @@ -3101,9 +3106,30 @@ void bolt::affect_ground() && mons_class_can_pass(MONS_BALLISTOMYCETE, env.grid(pos())) && !actor_at(pos())) { + beh_type beh; // Half the fungi in arena mode are friendly. - beh_type beh = (crawl_state.arena && coinflip()) ? BEH_FRIENDLY - : BEH_HOSTILE; + if(crawl_state.arena) + { + beh = coinflip() ? BEH_FRIENDLY : BEH_HOSTILE; + } + else + { + switch(this->attitude) + { + case ATT_NEUTRAL: + beh = BEH_NEUTRAL; + break; + + case ATT_FRIENDLY: + case ATT_GOOD_NEUTRAL: + beh = BEH_GOOD_NEUTRAL; + break; + + default: + beh = BEH_HOSTILE; + break; + } + } int rc = create_monster(mgen_data(MONS_BALLISTOMYCETE, beh, |