via 7c96f4ae32351ddd8a955ac1e4ad59c43c03ab2c (commit) from 1b65636845c45b6149175d3b97b7397efe83ffd6 (commit)
----------------------------------------------------------------------- commit 7c96f4ae32351ddd8a955ac1e4ad59c43c03ab2c Author: Adam Borowski <kilob...@angband.pl> Date: Thu Feb 17 21:07:44 2011 +0100 Tornado+Leda -> no flying. ----------------------------------------------------------------------- Summary of changes: crawl-ref/source/spl-tornado.cc | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 deletions(-) diff --git a/crawl-ref/source/spl-tornado.cc b/crawl-ref/source/spl-tornado.cc index 86b1cd6..f41e122 100644 --- a/crawl-ref/source/spl-tornado.cc +++ b/crawl-ref/source/spl-tornado.cc @@ -2,6 +2,7 @@ #include "spl-damage.h" +#include "areas.h" #include "cloud.h" #include "coord.h" #include "coordit.h" @@ -203,24 +204,28 @@ void tornado_damage(actor *caster, int dur) if (victim->submerged()) continue; + bool leda = liquefied(victim->pos()) && victim->ground_level(); if (!victim->res_wind()) { if (victim->atype() == ACT_MONSTER) { - // levitate the monster so you get only one attempt at - // tossing them into water/lava monster *mon = victim->as_monster(); - mon_enchant ench(ENCH_LEVITATION, 0, - caster->kill_alignment(), 20); - if (mon->has_ench(ENCH_LEVITATION)) - mon->update_ench(ench); - else - mon->add_ench(ench); + if (!leda) + { + // levitate the monster so you get only one attempt + // at tossing them into water/lava + mon_enchant ench(ENCH_LEVITATION, 0, + caster->kill_alignment(), 20); + if (mon->has_ench(ENCH_LEVITATION)) + mon->update_ench(ench); + else + mon->add_ench(ench); + } behaviour_event(mon, ME_ANNOY, caster->mindex()); if (mons_is_mimic(mon->type)) mimic_alert(mon); } - else + else if (!leda) { bool standing = !you.airborne(); if (standing) @@ -242,7 +247,7 @@ void tornado_damage(actor *caster, int dur) victim->hurt(caster, dmg); } - if (victim->alive()) + if (victim->alive() && !leda) move_act.push(victim); } if ((env.cgrid(*dam_i) == EMPTY_CLOUD -- Dungeon Crawl Stone Soup ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Crawl-ref-discuss mailing list Crawl-ref-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/crawl-ref-discuss