them another target. This is a hack, not a good solution, and it assumes that friendlies do not want to target you with spells (I believe this is currently true, but if we implement an enslavable monster that can heal others, it won't be.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8893 c06c8d41-db1a-0410-9941-cceddc491573
EBHIJDGO5AU6UQLGJZ266V7AEVQ5A5TMHVIZSWHWWN7LT74GHOJQC
BSIG3VLGTR2XVKBNM3QGJA4WNRXCCAR5MJ7XB47SDHQCCVIAAVJAC
KSM4H3SBM6FIQTUEGHXXYATJXEOJ4EKUBAFCRMFKSHY7N2HWECRQC
N6F35CMZALDQR4LD3HP2JQZGQ4JNBATAICO7ZUCF5M2ZW5E4QYVAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
6BYKOHEMLXXUKTH56UHJ6YQ6VWQCBWSSTCXFDT33RNID4G4ZUIKQC
ADIVVYTV2MJ3XVRYDNBLPTAEACCNF27XZDCRVZFQEHRHPMZGNITQC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC
RNJX2RDBDA62DSAUIWVVPFS7YNIU3GEOXDWJUABDS5DS5QGS3LAQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
M27JU3PI7UXV4S4LTHOCGVASHX2RBXL5ZU4MLFWCQCSMGQC53IAAC
5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC
NXIVXEHVXS22UDSQL4KZQ4VHK3XTW7DAGA5LLL3EXY5MHPIUXL7AC
// Friendly monsters shouldn't be targetting you: this will happen
// often because the default behaviour for charmed monsters is to
// have you as a target. While foe_ratio will handle this, we
// don't want a situation where a friendly dragon breathes through
// you to hit other creatures...it should target the other
// creatures, and coincidentally hit you.
//
// FIXME: this can cause problems with reflection, bounces, etc.
// It would be better to have the monster fire logic never reach
// this point for friendlies.
if (!invalid_monster_index(beam.beam_source))
{
monsters& m = menv[beam.beam_source];
if (m.alive() && mons_friendly(&m) && beam.target == you.pos())
return (false);
}
mitm[o].base_type = OBJ_ARMOUR;
mitm[o].quantity = 1;
mitm[o].plus = 0;
mitm[o].plus2 = 0;
mitm[o].special = 0;
mitm[o].flags = 0;
mitm[o].colour = mons_class_colour(mons_class);
item.base_type = OBJ_ARMOUR;
item.quantity = 1;
item.plus = 0;
item.plus2 = 0;
item.special = 0;
item.flags = 0;
item.colour = mons_class_colour(mons_class);
case MONS_DRAGON:
mitm[o].sub_type = ARM_DRAGON_HIDE;
break;
case MONS_TROLL:
mitm[o].sub_type = ARM_TROLL_HIDE;
break;
case MONS_ICE_DRAGON:
mitm[o].sub_type = ARM_ICE_DRAGON_HIDE;
break;
case MONS_STEAM_DRAGON:
mitm[o].sub_type = ARM_STEAM_DRAGON_HIDE;
break;
case MONS_MOTTLED_DRAGON:
mitm[o].sub_type = ARM_MOTTLED_DRAGON_HIDE;
break;
case MONS_STORM_DRAGON:
mitm[o].sub_type = ARM_STORM_DRAGON_HIDE;
break;
case MONS_GOLDEN_DRAGON:
mitm[o].sub_type = ARM_GOLD_DRAGON_HIDE;
break;
case MONS_SWAMP_DRAGON:
mitm[o].sub_type = ARM_SWAMP_DRAGON_HIDE;
break;
case MONS_DRAGON: item.sub_type = ARM_DRAGON_HIDE; break;
case MONS_TROLL: item.sub_type = ARM_TROLL_HIDE; break;
case MONS_ICE_DRAGON: item.sub_type = ARM_ICE_DRAGON_HIDE; break;
case MONS_STEAM_DRAGON: item.sub_type = ARM_STEAM_DRAGON_HIDE; break;
case MONS_MOTTLED_DRAGON: item.sub_type = ARM_MOTTLED_DRAGON_HIDE; break;
case MONS_STORM_DRAGON: item.sub_type = ARM_STORM_DRAGON_HIDE; break;
case MONS_GOLDEN_DRAGON: item.sub_type = ARM_GOLD_DRAGON_HIDE; break;
case MONS_SWAMP_DRAGON: item.sub_type = ARM_SWAMP_DRAGON_HIDE; break;
case BRANCH_COCYTUS:
stair_find = DNGN_ENTER_COCYTUS;
break;
case BRANCH_DIS:
stair_find = DNGN_ENTER_DIS;
break;
case BRANCH_GEHENNA:
stair_find = DNGN_ENTER_GEHENNA;
break;
case BRANCH_TARTARUS:
stair_find = DNGN_ENTER_TARTARUS;
break;
default:
break;
case BRANCH_COCYTUS: stair_find = DNGN_ENTER_COCYTUS; break;
case BRANCH_DIS: stair_find = DNGN_ENTER_DIS; break;
case BRANCH_GEHENNA: stair_find = DNGN_ENTER_GEHENNA; break;
case BRANCH_TARTARUS: stair_find = DNGN_ENTER_TARTARUS; break;
default: break;