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);
	}
	
}
Exemplo n.º 2
0
/*通过菜单执行各种指令*/
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();	
		}

	}
}