void HydrusConsoleView::TargetingDelegate(EventData* aEventData) { EventData_Targeting* eventData = static_cast<EventData_Targeting*> (aEventData); ActorId actorId = eventData->GetActorId(); HydrusEncounter* encounter = eventData->GetEncounter(); enum ActionType action = eventData->GetActionType(); StrongActorPtr actor = p_gGame->GetActor(actorId); Brain* actorBrain = actor->GET_COMPONENT(Brain); ActorId attackTargetId = actorBrain->SelectTarget(actor->GetActorId(), encounter, action); encounter->CreateTargetedProc(actorId, attackTargetId, action); }
void HumanBrain::DetermineAction(HydrusEncounter* aEncounter) { StrongActorPtr actor = MakeStrongPointer(this->GetActor()); std::string actionType; system("cls"); std::cout << actor->GetName() << std::endl; g_pStringHandler->PrintString(READY_OPTIONS); GalaxyAlgorithms::StringInput(actionType, "a"); enum ActionType act = GalaxyAlgorithms::ConvertStringToAction(actionType); switch (act) { case ATTACK: p_gEventManager->FireEvent(StrongEventPtr(GALAXY_NEW TargetingEvent(GALAXY_NEW EventData_Targeting(actor->GetActorId(), aEncounter, ATTACK)))); break; case PASS: // Nothing? break; default: assert(0); break; } }