public override bool ActionStart() { int current_tile_x = GetComponent <Movement_Action>().GetCurrentTileX(); int current_tile_y = GetComponent <Movement_Action>().GetCurrentTileY(); move = GetComponent <Movement_Action>(); move.GoTo(event_to_react.objective_tile_x, event_to_react.objective_tile_y); bool ret = move.ActionStart(); init_tile_x = current_tile_x; init_tile_y = current_tile_y; my_state = INVESTIGATESTATE.GOING_TO_INVESTIGATE; //TODO_AI:hear something audio //GetComponent<CompAudio>().PlayEvent("Dracarys"); return(ret); }
public override bool ActionStart() { Debug.Log("Going to investigate"); bool ret = GetComponent <Movement_Action>().ActionStart(); //anim.SetClipsSpeed(anim_speed); //anim.SetTransition("ToPatrol"); int current_tile_x = GetComponent <Movement_Action>().GetCurrentTileX(); int current_tile_y = GetComponent <Movement_Action>().GetCurrentTileY(); GetComponent <Movement_Action>().GoTo(event_to_react.objective_tile_x, event_to_react.objective_tile_y); init_tile_x = current_tile_x; init_tile_y = current_tile_y; my_state = INVESTIGATESTATE.GOING_TO_INVESTIGATE; return(ret); }
public override ACTION_RESULT ActionUpdate() { switch (my_state) { case INVESTIGATESTATE.GOING_TO_INVESTIGATE: if (interupt) { GetComponent <Movement_Action>().Interupt(); } ///Make Move update move_return = GetComponent <Movement_Action>().ActionUpdate(); if (move_return == ACTION_RESULT.AR_SUCCESS) { my_state = INVESTIGATESTATE.INVESTIGATE; Debug.Log("Investigate"); } if (move_return == ACTION_RESULT.AR_FAIL) { GetComponent <Movement_Action>().ActionEnd(); return(ACTION_RESULT.AR_FAIL); } break; case INVESTIGATESTATE.INVESTIGATE: //Trigger investigate animation event_to_react.start_counting = true; if (forgot_event == true) { int current_tile_x = GetComponent <Movement_Action>().GetCurrentTileX(); int current_tile_y = GetComponent <Movement_Action>().GetCurrentTileY(); GetComponent <Movement_Action>().GoTo(init_tile_x, init_tile_y); if (!GetComponent <Movement_Action>().ActionStart()) { return(ACTION_RESULT.AR_FAIL); } my_state = INVESTIGATESTATE.RETURNING_TO_START; } if (interupt) { //Need to change to add more enemies return(ACTION_RESULT.AR_FAIL); } break; case INVESTIGATESTATE.RETURNING_TO_START: if (interupt) { GetComponent <Movement_Action>().Interupt(); } move_return = GetComponent <Movement_Action>().ActionUpdate(); if (move_return == ACTION_RESULT.AR_SUCCESS) { Debug.Log("Arrived home"); return(ACTION_RESULT.AR_SUCCESS); } if (move_return == ACTION_RESULT.AR_FAIL) { GetComponent <Movement_Action>().ActionEnd(); return(ACTION_RESULT.AR_FAIL); } break; } return(ACTION_RESULT.AR_IN_PROGRESS); }
public override ACTION_RESULT ActionUpdate() { switch (my_state) { case INVESTIGATESTATE.INVESTIGATE: //Trigger investigate animation if (interupt) { interupt = false; return(ACTION_RESULT.AR_FAIL); } event_to_react.start_counting = true; if (forgot_event == true) { move.GoTo(init_tile_x, init_tile_y); //Lost something audio //TODO_AI: Ivestigation audio //GetComponent<CompAudio>().PlayEvent("Dracarys"); my_state = INVESTIGATESTATE.RETURNING_TO_START; if (move.ActionStart() == false) { return(ACTION_RESULT.AR_FAIL); } } return(ACTION_RESULT.AR_IN_PROGRESS); case INVESTIGATESTATE.GOING_TO_INVESTIGATE: case INVESTIGATESTATE.RETURNING_TO_START: if (interupt) { interupt = false; move.Interupt(); } move_return = move.ActionUpdate(); if (move_return != ACTION_RESULT.AR_IN_PROGRESS) { move.ActionEnd(); if (move_return == ACTION_RESULT.AR_FAIL) { return(move_return); } else { if (my_state == INVESTIGATESTATE.GOING_TO_INVESTIGATE) { my_state = INVESTIGATESTATE.INVESTIGATE; } else { return(move_return); } } } break; } return(ACTION_RESULT.AR_IN_PROGRESS); }