git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3053 c06c8d41-db1a-0410-9941-cceddc491573
O4DT3BQQ3XYPL6PQ72G6VPBAVHXZMEOLONFXNHXFMBXBVOYMB6VQC RM2JXW3ATVYRYHF3NMG5ALGI64OJ7IP2F3MDUDPUT5TBKSSN4KVQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC 2WRXQTGYDBLV46WRNVIUKGNA5QS563XZNNW3N2L6PVOCHIP2YGHQC DH3YTI6VVI727SQXO4CXSDCSBG2UN3UAWLFULBGRLBVH22ACRXIAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 2HNLFROSOZ6ROLX3Q3W5E7I4Y4ELIWSJ7EX5GDGZZOMRPTK6TBSAC 5QOOZTPUSDYZUJGFJ4BOYXEGZ7XBZZSEO7KPHENYRV465B66QSHAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 6RJVKSL7RVZIZIZIC4TWIYJQ24RUSB346ODS3NYGDHUIRTC4Z5FQC LIBWXPN6HLJAIGEFJYLOL4HLIUD236U3WM5QPHIZ3DSB4CCUJERAC QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC static bool player_is_permalevitating(){return you.duration[DUR_LEVITATION] > 1 &&((you.species == SP_KENKU && you.experience_level >= 15)|| player_equip_ego_type( EQ_BOOTS, SPARM_LEVITATION ));}
bool player::permanent_levitation() const{return airborne() &&(permanent_flight() ||// Boots of levitation keep you with DUR_LEVITATION >= 2 at// all times. This is so that you can evoke stop-levitation// in order to actually cancel levitation (by setting// DUR_LEVITATION to 1.) Note that antimagic() won't do this.(player_equip_ego_type( EQ_BOOTS, SPARM_LEVITATION ) &&you.duration[DUR_LEVITATION] > 1));}bool player::permanent_flight() const{return airborne() &&(you.species == SP_KENKU && you.experience_level >= 15);}
bool perm = (you.species == SP_KENKU && you.experience_level >= 15)|| (player_equip_ego_type( EQ_BOOTS, SPARM_LEVITATION ))|| (you.attribute[ATTR_TRANSFORMATION] == TRAN_DRAGON);
const bool perm = you.permanent_flight();
if (player_is_airborne()){if (you.duration[DUR_CONTROLLED_FLIGHT])mpr("You fly upwards.");elsempr("You float upwards... And bob straight up to the ceiling!");}
if (you.flight_mode() == FL_FLY)mpr("You fly upwards.");else if (you.flight_mode() == FL_LEVITATE)mpr("You float upwards... And bob straight up to the ceiling!");
if (player_equip_ego_type( EQ_BOOTS, SPARM_LEVITATION ))you.duration[DUR_LEVITATION] = 2;if (you.duration[DUR_LEVITATION] == 10)
if (!you.permanent_levitation()){if ( decrement_a_duration(DUR_LEVITATION,"You float gracefully downwards.",10, random2(6),"You are starting to lose your buoyancy!") )
mpr("You are starting to lose your buoyancy!", MSGCH_DURATION);you.duration[DUR_LEVITATION] -= random2(6);if (you.duration[DUR_CONTROLLED_FLIGHT] > 0)you.duration[DUR_CONTROLLED_FLIGHT] = you.duration[DUR_LEVITATION];
burden_change();// Landing kills controlled flight.you.duration[DUR_CONTROLLED_FLIGHT] = 0;// re-enter the terrain:move_player_to_grid( you.x_pos, you.y_pos, false, true, true );
else if (you.duration[DUR_LEVITATION] == 1){mpr("You float gracefully downwards.", MSGCH_DURATION);you.duration[DUR_LEVITATION] = 0;burden_change();you.duration[DUR_CONTROLLED_FLIGHT] = 0;
// re-enter the terrain:move_player_to_grid( you.x_pos, you.y_pos, false, true, true );}
if (!you.permanent_flight())if ( decrement_a_duration(DUR_CONTROLLED_FLIGHT) && you.airborne() )mpr("You lose control over your flight.", MSGCH_DURATION);