// Handle player input bool _Battle::ClientHandleInput(size_t Action) { switch(Action) { case Action::GAME_SKILL1: case Action::GAME_SKILL2: case Action::GAME_SKILL3: case Action::GAME_SKILL4: case Action::GAME_SKILL5: case Action::GAME_SKILL6: case Action::GAME_SKILL7: case Action::GAME_SKILL8: ClientSetAction((uint8_t)(Action - Action::GAME_SKILL1)); break; case Action::GAME_UP: ChangeTarget(-1, 0); break; case Action::GAME_DOWN: ChangeTarget(1, 0); break; case Action::GAME_LEFT: case Action::GAME_RIGHT: ChangeTarget(0, true); break; default: return false; break; } return true; }
void MCAndroidPlayerControl::HandlePropertyAvailableEvent(const char *p_property) { MCObject *t_target; t_target = GetOwner(); if (t_target != nil) { MCNativeControl *t_old_target; t_old_target = ChangeTarget(this); t_target -> message_with_args(MCM_player_property_available, p_property); ChangeTarget(t_old_target); } }
bool CAIContainer::Internal_Engage(uint16 targetid) { //#TODO: pet engage/disengage auto PTarget {dynamic_cast<CBattleEntity*>(PEntity->GetEntity(targetid))}; auto entity {dynamic_cast<CBattleEntity*>(PEntity)}; if (entity && entity->PAI->IsEngaged() && entity->GetBattleTargetID() != targetid) { ChangeTarget(targetid); return true; } //#TODO: use valid target stuff from spell if (entity && PTarget && !PTarget->isDead()) { //#TODO: remove m_battleTarget if possible (need to check disengage) entity->SetBattleTargetID(targetid); entity->SetBattleStartTime(server_clock::now()); if (CanChangeState() || (GetCurrentState() && GetCurrentState()->IsCompleted())) { ForceChangeState<CAttackState>(entity, targetid); } return true; } return false; }
bool CAIContainer::Internal_Engage(uint16 targetid) { //#TODO: pet engage/disengage auto entity {dynamic_cast<CBattleEntity*>(PEntity)}; if (entity && entity->PAI->IsEngaged()) { if (entity->GetBattleTargetID() != targetid) { ChangeTarget(targetid); return true; } return false; } //#TODO: use valid target stuff from spell if (entity) { //#TODO: remove m_battleTarget if possible (need to check disengage) if (CanChangeState() || (GetCurrentState() && GetCurrentState()->IsCompleted())) { if (ForceChangeState<CAttackState>(entity, targetid)) { entity->OnEngage(*static_cast<CAttackState*>(m_stateStack.top().get())); } } return true; } return false; }
void MCAndroidScrollerControl::HandleScrollEvent(void) { MCObject *t_target; t_target = GetOwner(); int32_t t_x, t_y; SetCanPostScrollEvent(true); if (t_target != nil && MCScrollViewGetContentOffset(GetView(), t_x, t_y)) { MCNativeControl *t_old_target; t_old_target = ChangeTarget(this); // PM-2016-01-14: [[Bug 16705]] Pass the correct offset - relative to the contentRect t_target->message_with_args(MCM_scroller_did_scroll, t_x, t_y); ChangeTarget(t_old_target); } }
void CMobController::HandleEnmity() { PMob->PEnmityContainer->DecayEnmity(); if (PMob->getMobMod(MOBMOD_SHARE_TARGET) > 0 && PMob->GetEntity(PMob->getMobMod(MOBMOD_SHARE_TARGET), TYPE_MOB)) { ChangeTarget(static_cast<CMobEntity*>(PMob->GetEntity(PMob->getMobMod(MOBMOD_SHARE_TARGET), TYPE_MOB))->GetBattleTargetID()); if (!PMob->GetBattleTargetID()) { auto PTarget {PMob->PEnmityContainer->GetHighestEnmity()}; ChangeTarget(PTarget ? PTarget->targid : 0); } } else { auto PTarget {PMob->PEnmityContainer->GetHighestEnmity()}; if (PTarget) ChangeTarget(PTarget->targid); } }