void CreatureManager::ProcessSelectCreature() { if(m_nSelectNum >= 0) { Character* selectChar = GetCreature(m_nSelectNum); if((selectChar->GetCamp() == eCamp_Enemy) || (selectChar->GetCamp()==eCamp_Friend && selectChar->GetCharacterState()==eCharacterState_Stand && selectChar->GetActionStage() ==eActionStage_MoveStage)) ShowMoveRange(selectChar); if(selectChar->GetCamp() == eCamp_Enemy || (selectChar->GetCamp()==eCamp_Friend && (selectChar->GetActionStage()==eActionStage_AttackStage || selectChar->GetActionStage()==eActionStage_SkillStage))) ShowAttackRange(selectChar); } }
/*通过菜单执行各种指令*/ void BattleCharacter::ExecuteCommand(int commandFlag) { m_pMap->ViewLock(this); if(m_nForceFlag == FORCE_PLAYER) { if(m_nCommandFlag == COMM_NONE) { switch(commandFlag) { case COMM_MOVE: m_nCommandFlag = commandFlag; ShowMoveRange(); m_pMap->getParent()->addChild(new ShowRangeMenu(this,0,false),MAX_LAYER_ZORDER,LAYER_SHOWRANGE_MENU_ID); break; case COMM_STAY: SetStatus(new StayStatus(this)); EventHandler::instance()->OnCharacterActionEnd(this); //m_pMap->TimingPlayerTurn(); break; case COMM_ATK: m_nCommandFlag = commandFlag; ShowAtkRange(); m_pMap->getParent()->addChild(new ShowRangeMenu(this,0,false),MAX_LAYER_ZORDER,LAYER_SHOWRANGE_MENU_ID); break; case COMM_SKILL: m_nCommandFlag = commandFlag; BattleMenu::instance()->EnterChildMenu(m_vSkills,m_nCommandFlag); break; case COMM_Status: m_nCommandFlag = COMM_NONE; Resume(); m_pMap->getParent()->addChild(new ShowStatusMenu(this),MAX_LAYER_ZORDER,LAYER_SHOWSTATUS_MENU_ID); break; case COMM_BACK: m_nCommandFlag = COMM_NONE; if(m_bMoved ==false) { Resume(); } else { BackToStart(); } break; default: m_nCommandFlag = COMM_NONE; Resume(); break; } } else if(commandFlag==COMM_BACK) { if(m_nCommandFlag == COMM_SKILL_RANGE) { HangTouchPath(); m_nCommandFlag = COMM_SKILL; BattleMenu::instance()->EnterChildMenu(m_vSkills,m_nCommandFlag); } else if(m_nCommandFlag == COMM_SKILL) { m_nCommandFlag = COMM_NONE; BattleMenu::instance()->HangMenu(); BattleMenu::instance()->EnterTopMenu(); } else if(m_nCommandFlag ==COMM_MOVE||m_nCommandFlag == COMM_ATK) { m_nCommandFlag = COMM_NONE; HangTouchPath(); BattleMenu::instance()->EnterTopMenu(); } else { BattleMenu::instance()->Back(); } } else if(m_nCommandFlag == COMM_SKILL) { m_nOnUseID = commandFlag; m_nCommandFlag = COMM_SKILL_RANGE; ShowSkillRange(); } } }