void GodLike_Beast ::Update(float _Time, int** _Terrain,float _MaxWidth,float _MaxHeight)
{
	if(getLife() == false)
	{
		EffectLeonDie *_EffectDie = new EffectLeonDie (m_X,m_Y);
		ManagerObject::Instance()->getListEffect()->push_back(_EffectDie);
		return ;
	}

	int random ;
	random = rand() % 4;	
	m_TimeUpdate+=_Time ;

	if(m_TimeUpdate > 2)
	{
		switch (random)
		{
		case 0:
			if(	m_skillManager->getSkill(1)->getSTT()!=ACTIVE  && m_skillManager->getSkill(2)->getSTT()!=ACTIVE && m_skillManager->getSkill(3)->getSTT()!=ACTIVE&& m_skillManager->getSkill(4)->getSTT()!=ACTIVE )
				ActiveSkill(0);
			m_TimeUpdate= 0 ;
			break;
		case 1:
			if(	m_skillManager->getSkill(0)->getSTT()!=ACTIVE  && m_skillManager->getSkill(2)->getSTT()!=ACTIVE && m_skillManager->getSkill(3)->getSTT()!=ACTIVE && m_skillManager->getSkill(4)->getSTT()!=ACTIVE  )
				ActiveSkill(1);
			m_TimeUpdate = 0 ;
			break ;
		case 2:
			if(	m_skillManager->getSkill(0)->getSTT()!=ACTIVE  && m_skillManager->getSkill(1)->getSTT()!=ACTIVE && m_skillManager->getSkill(3)->getSTT()!=ACTIVE && m_skillManager->getSkill(4)->getSTT()!=ACTIVE )
				ActiveSkill(2);
			m_TimeUpdate = 0 ;
			break ;
		case 3:
			if(	m_skillManager->getSkill(0)->getSTT()!=ACTIVE  && m_skillManager->getSkill(1)->getSTT()!=ACTIVE && m_skillManager->getSkill(2)->getSTT()!=ACTIVE && m_skillManager->getSkill(4)->getSTT()!=ACTIVE  )
				ActiveSkill(3) ;
			m_TimeUpdate = 0 ;
			break ;

		}
	}
	if(	m_skillManager->getSkill(0)->getSTT()!=ACTIVE  && m_skillManager->getSkill(1)->getSTT()!=ACTIVE && m_skillManager->getSkill(2)->getSTT()!=ACTIVE && m_skillManager->getSkill(3)->getSTT()!=ACTIVE && m_skillManager->getSkill(4)->getSTT()!=ACTIVE   )
	{
		Animation(_Time);
		Move(_Time,_Terrain,_MaxWidth,_MaxHeight);
	}
	m_skillManager->Update(_Time,_Terrain,_MaxWidth,_MaxHeight) ;
	UpdateStatus(_Time);
}
Beispiel #2
0
void KHeroSkillMgr::onTurnBegin(KBattleCtrlBase* ctrl)
{
	m_bDone = false;
	int rndVal = g_rnd.GetRandom(0,100);
	if(rndVal>50){
		CheckLuckyStone(ctrl);
	}else{
		ActiveSkill(ctrl,KAbilityStatic::when_turn_begin);
	}
}
Beispiel #3
0
void Bear ::ProcessCollision(MyObject* _Obj)
{
	m_skillManager->ProcessCollision(_Obj);
	if(!getRect().iCollision(_Obj->getRect()))
	{
		if(abs(_Obj->getX() - m_X ) < 500 ) 
		{
			if(_Obj->getX() > m_X )
			{
				m_Direct =1 ;
			}
			if(_Obj->getX() < m_X)
			{
				m_Direct = -1 ;
			}
		}
	}
	if(abs(_Obj->getX() - m_X ) < 250) 
	{
		ActiveSkill(0);		
	}
}
Beispiel #4
0
void KHeroSkillMgr::onTurnEnd(KBattleCtrlBase* ctrl)
{
	if(g_rnd.GetRandom(0,100)<50){
		ActiveSkill(ctrl,KAbilityStatic::when_turn_end);
	}
}