git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6526 c06c8d41-db1a-0410-9941-cceddc491573
SYGI2ZUUWAD7IEJ6D6SSDEK5BD7CV4Y6XS4BP7FZJJNUJIFV5IAQC MHWSAWELF3VEV52PNGAI43GK7OGF5PTYATO4O7ERZ75O7RCRKQRQC AOAJ6D3OKSELEYKAT55XCVU5LYJ7SMCZKC6DIEGLLB3TF2LEENWQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 542UIZKI65UDRNEMGFFDBWYD5XC7AYLTZ3JZQRR2GHYJALD3YY6QC 22MF6OUN62WDBJR5QFNJTKU7Q5TIQ76XWCEIRBFWAZDMZUSKJGCAC OSGS3PH2L5CBTDVZCZS6OCFQNA4A7RMEXBYJQB7DDZBYYJW7QSSAC TVC7W7C2XKBQSD2IJFMWFVGXZAOD4EUOW43NAQTOF5KFMAUOJABQC RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC PFEJ4LMDNEKLMGRCMWQ7EIRVU4JMYGICI4G7X4WVWOROVXQCBZ7QC 3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC KR655YT3I3U5DMN5NS3FPUGMDNT4BI56K3SFF2FNJ77C45NFKL5AC int energy_gained = (monster->speed * you.time_taken) / 10;// Slow monsters might get 0 here. Maybe we should factor in// *how* slow it is...but a 10-to-1 move ratio seems more than// enough.if (energy_gained == 0 && monster->speed != 0)energy_gained = 1;monster->speed_increment += energy_gained;
if (monster->speed > 0){// Randomise to make counting off monster moves harder:const int energy_gained =std::max(1, div_rand_round(monster->speed * you.time_taken, 10));monster->speed_increment += energy_gained;}
public:mon_energy_usage(int mv = 10, int sw = 10, int att = 10, int miss = 10,int spl = 10, int spc = 10, int itm = 10, int pick = 100): move(mv), swim(sw), attack(att), missile(miss),spell(spl), special(spc), item(itm), pickup_percent(pick){}static mon_energy_usage attack_cost(int cost){mon_energy_usage me;me.attack = cost;return me;}static mon_energy_usage missile_cost(int cost){mon_energy_usage me;me.missile = cost;return me;}static mon_energy_usage move_cost(int mv, int sw = 10){const mon_energy_usage me(mv, sw);return me;}mon_energy_usage operator | (const mon_energy_usage &o) const{return mon_energy_usage( combine(move, o.move),combine(swim, o.swim),combine(attack, o.attack),combine(missile, o.missile),combine(spell, o.spell),combine(special, o.special),combine(item, o.item),combine(pickup_percent, o.pickup_percent,100) );}private:char combine(char a, char b, char def = 10) const {return (b != def? b : a);}
case EUT_SWIM: return mu.swim;
case EUT_SWIM:// [ds] Amphibious monsters get a significant speed boost// when swimming, as discussed with dpeg. We do not// distinguish between amphibians that favour land// (HT_LAND, such as hydras) and those that favour water// (HT_WATER, such as merfolk), but that's something we// can think about.if (mons_class_flag(type, M_AMPHIBIOUS))return div_rand_round(mu.swim * 7, 10);elsereturn mu.swim;
#define DEFAULT_ENERGY {10, 10, 10, 10, 10, 10, 10, 100}#define MOVE_ENERGY(x) {(x), (x), 10, 10, 10, 10, 10, 100}
static inline mon_energy_usage MOVE_ENERGY(int me){return mon_energy_usage::move_cost(me, me);}static inline mon_energy_usage ATTACK_ENERGY(int ae){return mon_energy_usage::attack_cost(ae);}static inline mon_energy_usage MISSILE_ENERGY(int ae){return mon_energy_usage::missile_cost(ae);}static monsterentry mondata[] = {
};