void CALifeMonsterMovementManager::update () { switch (path_type()) { case MovementManager::ePathTypeGamePath : { detail().update (); break; }; case MovementManager::ePathTypePatrolPath : { patrol().update (); detail().target ( patrol().target_game_vertex_id(), patrol().target_level_vertex_id(), patrol().target_position() ); detail().update (); break; }; case MovementManager::ePathTypeNoPath : { break; }; default : NODEFAULT; }; }
// siehe Character Klasse void Speedy::arrivedAtField() { if (state == STATE_PURSUIT) // zu Feld bewegen, das sich 4 Felder vor PacMan befindet goTo(world->getPacMan().getPosition() + getDirectionVector(world->getPacMan().getDirection()) * 4); else if (state == STATE_PATROL) patrol(); }
//--------- Begin of function FirmMonsterFortress::detect_camp_info ---------// // void FirmMonsterFortress::detect_camp_info() { if( is_own() ) { //----------- detect patrol -----------// if( button_transform_grokken.detect() ) { // ##### patch begin Gilbert 7/8 #####// se_ctrl.immediate_sound("TURN_ON"); sell_firm(COMMAND_PLAYER); return; // ##### patch end Gilbert 7/8 #####// } if( button_patrol.detect() ) { if(remote.is_enable()) { // packet structure : <firm recno> <patrol_state> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_PATROL, 2 * sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = 0; } else { patrol(); } // se_ctrl.immediate_sound("SORTIE"); if( archer_count > 0 ) { Unit *unitPtr = unit_array[archer_unit_recno[0]]; se_res.sound( center_x, center_y, 1, 'S', unitPtr->sprite_id, "ACK"); } } //----------- detect reward -----------// if( selected_archer_id > 0 && selected_archer_id <= archer_count && button_reward.detect() ) { if( !remote.is_enable() ) { unit_array[archer_unit_recno[selected_archer_id-1]]->reward(nation_array.player_recno); } else { // packet structure : <rewarding nation> <unit count> <unit recno> ... short *shortPtr = (short *)remote.new_send_queue_msg(MSG_UNIT_REWARD, 3*sizeof(short)); // reserve two short more in case selected_recno is slightly smalled then the actual selected shortPtr[0] = nation_array.player_recno; shortPtr[1] = 1; shortPtr[2] = archer_unit_recno[selected_archer_id-1]; } se_ctrl.immediate_sound("TURN_ON"); } } }
void center_defense() { CW180(); sleep(0.5); claw_down(); sleep(0.5); turnStraight(200, 100); forwardT(100, 1); CCW(); patrol(); }
void trxVehicle::isCaughtAt(ofVec3f _target){ // generate path maxSpeed = 4.0f; wanderDistance = 0.5f; if (onWay){ maxSpeed = 8.0f; } //tooCloseDist = 1.0f; int pathCircleNumber = 8; if (pathIndex >= paths.size() - 1 || circlePaths.size()==0){ circlePaths.clear(); for (int i=0; i<pathCircleNumber; i++) { ofVec3f pathPoint; float x = sin(TWO_PI/pathCircleNumber*i)*(pathRadius-pathThreshold)*ofRandom(0.3,1.0); float y = cos(TWO_PI/pathCircleNumber*i)*(pathRadius-pathThreshold)*ofRandom(0.3,1.0); pathPoint = ofVec3f(x,y,0); circlePaths.push_back(pathPoint); } } paths.clear(); for (int i=0; i<circlePaths.size(); i++) { ofVec3f pathPoint = ofVec3f(_target.x+circlePaths[i].x,_target.y+circlePaths[i].y,_target.z); paths.push_back(pathPoint); } patrol(paths); //arrive(* _target); float dist = position.distance(_target); if (dist <= pathRadius){ maxSpeed = 2.0f; wanderDistance = 0.0f; if (onWay) { dead=true; } } }
void biofuel_block() { CW(); sleep(0.5); forwardT(500, 3.2); sleep(0.5); claw_down(); sleep(0.5); turnStraight(500, 250); sleep(0.1); claw_up(); forwardT(100, 2); sleep(1); CCW(); forwardT(300, 2.5); sleep(0.1); patrol(); }
//--------- Begin of function FirmCamp::detect_camp_info ---------// // void FirmCamp::detect_camp_info() { int rc; if( is_own() ) { //----------- detect patrol -----------// if( (rc = button_patrol.detect(0, 0, 1)) ) { if (rc == 2) { patrol_state = (++patrol_state) % 3; } else if(remote.is_enable()) { // packet structure : <firm recno> <patrol_state> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_PATROL, 2 * sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = patrol_state; } else { patrol(patrol_state); } // se_ctrl.immediate_sound("SORTIE"); if( overseer_recno ) { Unit *overseer = unit_array[overseer_recno]; se_res.sound( center_x, center_y, 1, 'S', overseer->sprite_id, "ACK"); } else if( soldier_count > 0 ) { Soldier *soldierPtr = &soldier_array[0]; int unitId = soldierPtr->unit_id; UnitInfo *unitInfo = unit_res[unitId]; se_res.sound( center_x, center_y, 1, 'S', unitInfo->sprite_id, "ACK"); } } //----------- detect reward -----------// if( button_reward.detect() ) { reward(selected_soldier_id, COMMAND_PLAYER); se_ctrl.immediate_sound("TURN_ON"); } if( firm_id==FIRM_CAMP && button_camp_upgrade.detect() ) { if (!upgrading_firm_id) { se_ctrl.immediate_sound("TURN_ON"); start_upgrade(FIRM_FORT, COMMAND_PLAYER); } } //----- detect defense mode button -------// if( button_defense.detect() ) { se_ctrl.immediate_sound( !defense_flag?"TURN_ON":"TURN_OFF"); if( !remote.is_enable() ) { // update RemoteMsg::toggle_camp_patrol() defense_flag = !defense_flag; } else { // packet structure : <firm recno> <defense_flag> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_TOGGLE_PATROL, 2*sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = !defense_flag; } // button_defense.update_bitmap( defense_flag ? "DEFENSE1" : "DEFENSE0" ); } if( button_promote.detect() ) { promote_soldier( selected_soldier_id, COMMAND_PLAYER ); se_ctrl.immediate_sound("PROMOTE"); } } }
//--------- Begin of function FirmCamp::detect_info ---------// // void FirmCamp::detect_info() { if( detect_basic_info() ) return; if( !should_show_info() ) return; //------ detect the overseer button -----// int rc = mouse.single_click(INFO_X1+6, INFO_Y1+58, INFO_X1+5+UNIT_LARGE_ICON_WIDTH, INFO_Y1+57+UNIT_LARGE_ICON_HEIGHT, 2 ); if( rc==1 ) // display this overseer's info { selected_worker_id = 0; disp_camp_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //--------- detect soldier info ---------// if( detect_worker_list() ) { disp_camp_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //---------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; //------ detect the overseer button -----// if( rc==2 ) { if(remote.is_enable()) { // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_FIRM_MOBL_OVERSEER, sizeof(short)); shortPtr[0] = firm_recno; } else { assign_overseer(0); // the overseer quits the camp } } //----------- detect patrol -----------// if( button_patrol.detect() ) { if(remote.is_enable()) { // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_PATROL, sizeof(short)); shortPtr[0] = firm_recno; } else { patrol(); } } //----------- detect reward -----------// if( button_reward.detect() ) { reward(selected_worker_id, COMMAND_PLAYER); // ##### begin Gilbert 25/9 ######// se_ctrl.immediate_sound("TURN_ON"); // ##### end Gilbert 25/9 ######// } //----- detect defense mode button -------// if( button_defense.detect() ) { // ##### begin Gilbert 25/9 ######// se_ctrl.immediate_sound( !defense_flag?(char*)"TURN_ON":(char*)"TURN_OFF"); // ##### end Gilbert 25/9 ######// if( !remote.is_enable() ) { // update RemoteMsg::toggle_camp_patrol() defense_flag = !defense_flag; } else { // packet structure : <firm recno> <defense_flag> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_TOGGLE_PATROL, 2*sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = !defense_flag; } button_defense.update_bitmap( defense_flag ? (char*)"DEFENSE1" : (char*)"DEFENSE0" ); } }