git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3150 c06c8d41-db1a-0410-9941-cceddc491573
TVC7W7C2XKBQSD2IJFMWFVGXZAOD4EUOW43NAQTOF5KFMAUOJABQC S4W5EBZLFX3HA3JNR524LF5RJ7PAPMSMN3FVRZNLQZY4QNEILGLQC FCZSQBKDNMJZRJS2LWQQWLUFGOXSKXDJZQIHC7L5S7HXCXQPOMMAC UIRWVLX5LDNWURTZOG7EFLXE5OOEL4XBPSLSUHUQSKHC4A7WCVLQC K7SLUAS7TC2T6AG5HMZHVMD4ANGAI42FBSZTB6CTHLSGY2CRY4LQC PM65H4V4GNPVIJFUQW57DC3VDB7TRUUNXKVZONQKEFZSK3AXX5GQC AS2IQQJNNCEQNXXKTGYHLB7RO3ZKCF4F7GK6FJH66BOOKDDRGNIQC OSGS3PH2L5CBTDVZCZS6OCFQNA4A7RMEXBYJQB7DDZBYYJW7QSSAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC NFOXLH722RGWYY5D63VV6SF2XEJBEOQEFQME6FSA4HZRK3CPLSRQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC 5XSXMOBGXFLTIQE6WDXWWFVDOTUPZSIQ2FWT3YI5QMVU6D76IUYQC OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC CDKRLJIGVWQE2PMHCSLJBLYQEK7JYC4LQM7H2X3O6NMJMCCDRVIAC monsterentry *entry = get_monster_data(mon->type);dungeon_feature_type feat = grd[mon->x][mon->y];if (feat >= DNGN_LAVA && feat <= DNGN_SHALLOW_WATER&& !mon->airborne()){mon->speed_increment -= entry->energy_usage.swim;}elsemon->speed_increment -= entry->energy_usage.move;
const dungeon_feature_type feat = grd[mon->x][mon->y];// FIXME: Replace check with mons_is_swimming()?mon->lose_energy(feat >= DNGN_LAVA && feat <= DNGN_SHALLOW_WATER&& !mon->airborne() ? EUT_SWIM : EUT_MOVE );
monsterentry* entry = get_monster_data(type);int delta = speed * entry->energy_usage.pickup_percent / 100;if (speed_increment > 25 && delta < speed_increment)speed_increment -= delta;
if (const monsterentry* entry = find_monsterentry()){const int delta = speed * entry->energy_usage.pickup_percent / 100;if (speed_increment > 25 && delta < speed_increment)speed_increment -= delta;}
}const monsterentry *monsters::find_monsterentry() const{return (type == -1 || type == MONS_PROGRAM_BUG) ? NULL: get_monster_data(type);}int monsters::action_energy(energy_use_type et) const{if (const monsterentry *me = find_monsterentry()){const mon_energy_usage &mu = me->energy_usage;switch (et){case EUT_MOVE: return mu.move;case EUT_SWIM: return mu.swim;case EUT_MISSILE: return mu.missile;case EUT_ITEM: return mu.item;case EUT_SPECIAL: return mu.special;case EUT_SPELL: return mu.spell;case EUT_ATTACK: return mu.attack;case EUT_PICKUP: return mu.pickup_percent;}}return 10;
if (attacker->atype() == ACT_MONSTER){// Make sure the monster uses up some energy, even though// it didn't actually attack.monsterentry *entry = get_monster_data(atk->type);atk->speed_increment -= entry->energy_usage.attack;}
// Make sure the monster uses up some energy, even though// it didn't actually attack.attacker->lose_energy(EUT_ATTACK);