awesome tile for Kirke. Thanks, Eino, you rock!
Some modifications for Kirke:
Also, open a new category in dc-mon.txt for transformations, so specific tiles are easier to add. The player's pig form now looks subtly different from the other hogs, some greater difference would be better, though.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10076 c06c8d41-db1a-0410-9941-cceddc491573
LOAPDCDZDTOXBCNX7IQBCACP7TCMVUBNZVUTUCLX5VXM7MEFPQBQC
4EQI267TNL6F4OA3IKY5WZSWWZKSOBYFYHA7YEEOMIG6FSXBV7EAC
BNE3OKRCLL3BVGH7RSLHXU7E6IVDNII3GUCUDM6W4T7UCU6XQ7HQC
LV5VQHTUP5OPVIV6FGDX5EJTHT6UJYU7MDPNYSEWQRK3GTDIJ6MAC
3SK2OEKJBQUGGYU2PJ7BWBGMKS53K2JH6HKL65AWTFN6JVZRG2PAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
VGXHYRUOSTKGZ3IXD6YDH57J52TKLZEYZTQF75WOJN2IDKCITDCAC
3SQQ4MM6YO4I37CQ6GIBIX6BXAEVHNVNHPVMR3PPBBNO454D6XWQC
NHCEH7ZFP3IFRMZMC25ZA2X5ZSS3MOCHCYLVCSVY7RTY62WX7UAQC
7F2QWHTL5JTGONSR7M462GWRB5M7QDK6K76KZIKT3ECTVRLRHU6QC
TXVL24IFH5SK7EJAN7JAUHAZJHJV7GB364UU65P745GUBWJS6Q6AC
3XRTONH32W5DNI2V2SGAHXN3EHOZQ26ZXMVYL5TRP6HLQN7P4HNAC
N7ENLBO3YHAMO3F4OE3AOJ7UEVQP5HPMY6CNF7W457J2ARD4TPEQC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
IQSZTU2RGJGJTGGX4MFIKQD2BX5MLFI6JWMHXPELHTWEOCXPTYLAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
EJYK3CKIEMP4NMZUCMUYLHIBE7A3LPZOU7DUON5V7CPHY7QEKLEAC
LFJAIJGMBJHZQIYSLDJ57N56WFUY67LVM3GRWOPIDIVNELEQU5EAC
JWJGOMVBPZRSP2VSHLFFFDIF2CS6UPBA6AHL7DAJWGBCHAV3PJDQC
BGJ7P65JV2OFVXMGAJDHV5Y36TR7JOFDWJUZJBHUBD7SCQMDRBEAC
UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC
case 's': ch = TILEP_MONS_WOLF_SPIDER; break;
case 'I': ch = TILEP_MONS_ICE_BEAST; break;
case '8': ch = TILEP_MONS_STONE_GOLEM; break;
case 'D': ch = TILEP_MONS_DRAGON; break;
case 'L': ch = TILEP_MONS_LICH; break;
case '#': ch = TILEP_MONS_VAPOUR; break;
case 'S': ch = TILEP_MONS_LAVA_SNAKE; break;
case 'b': ch = TILEP_MONS_GIANT_BAT; break;
case 'h': ch = TILEP_MONS_HOG; break;
// animals
case TRAN_BAT: ch = TILEP_TRAN_BAT; break;
case TRAN_SPIDER: ch = TILEP_TRAN_SPIDER; break;
case TRAN_PIG: ch = TILEP_TRAN_PIG; break;
// non-animals
case TRAN_ICE_BEAST: ch = TILEP_TRAN_ICE_BEAST; break;
case TRAN_STATUE: ch = TILEP_TRAN_STATUE; break;
case TRAN_DRAGON: ch = TILEP_TRAN_DRAGON; break;
case TRAN_LICH: ch = TILEP_TRAN_LICH; break;
}
else if (spell_cast == SPELL_PORKALATOR && one_chance_in(3))
{
int target = -1;
int count = 0;
monster_type hog_type = MONS_HOG;
for (int i = 0; i < MAX_MONSTERS; i++)
{
monsters *targ = &menv[i];
if (!mon_can_see_monster(monster, targ))
continue;
hog_type = MONS_HOG;
if (mons_holiness(targ) == MH_DEMONIC)
hog_type = MONS_HELL_HOG;
else if (mons_holiness(targ) != MH_NATURAL)
continue;
if (targ->type != hog_type
&& mons_atts_aligned(monster->attitude, targ->attitude)
&& mons_power(hog_type) + random2(4) >= mons_power(targ->type)
&& (!mons_class_flag(targ->type, M_SPELLCASTER) || coinflip)
&& one_chance_in(++count))
{
target = i;
}
}
if (target != -1)
{
monsters *targ = &menv[target];
pbolt.target = targ->pos();
mprf("Porkalator: targetting %s instead",
targ->name(DESC_PLAIN).c_str());
monster_polymorph(targ, hog_type);
}
// else target remains as specified
rc = (mons_holiness(mon) == MH_NATURAL
&& mon->type != MONS_HOG) ||
(mons_holiness(mon) == MH_DEMONIC
&& mon->type != MONS_HELL_HOG);
rc = (mons_holiness(mon) == MH_DEMONIC && mon->type != MONS_HELL_HOG)
|| (mons_holiness(mon) == MH_NATURAL && mon->type != MONS_HOG);