Example #1
0
void Animation::setupAnimations(){
  switch(ani){
  case 0:
	setupEnter();
	break;
  case 1:
	setupAttack();
	break;
  case 2:
	setupDefend();
	break;
  case 3:
	setupVictory();
	break;
  }
}
Example #2
0
//--------------------------------------------------------------
// Name:        selectState()
// Class:       GeneralCombatWithMeleeWeapon
//
// Description: Selects the state for the behavior
//
// Parameters:  Actor &self
//
// Returns:     None
//--------------------------------------------------------------
void GeneralCombatWithMeleeWeapon::selectState( Actor &self )
{
	float chance;
	Entity* currentEnemy;
	currentEnemy = self.enemyManager->GetCurrentEnemy();

	// If we don't have an enemy, then let's ask our enemy manager
	// to try and find one
	if ( !currentEnemy )
		self.enemyManager->FindHighestHateEnemy();

	// If we still don't have an enemy, then we need to hold
	if ( !currentEnemy )
		{
		if ( !setupHold( self ))
			return;

		_state = GENERAL_COMBAT_MELEE_HOLD;
		return;
		}

	chance = G_Random();
	if ( self.checkincomingmeleeattack() && chance < _blockChance )
		{
		_state = GENERAL_COMBAT_MELEE_BLOCK;

		if ( !setupBlock( self ) )
			setupBlockFailed( self );
		return;
		}

	chance = G_Random();
	if ( currentEnemy && self.enemyManager->InEnemyLineOfFire() && chance < _strafeChance && self.WithinDistance( currentEnemy , _meleeDistance ) )
		{
		_state = GENERAL_COMBAT_MELEE_STRAFE;

		if ( !setupStrafe( self ) )
			strafeFailed(self);

		return;      
		}




	//
	// The Change Posture stuff is commented out because it looks really weak right now
	// I need to keep it here though, so that when the animations look better or I figure out
	// how to better utilize them it will be easy to re-enable
	//
	//if ( currentEnemy && chance < _postureChangeChance && level.time > _nextPostureChangeTime && self.WithinDistance( currentEnemy , _meleeDistance ) )
	//   {
	//   _state = GENERAL_COMBAT_MELEE_CHANGE_POSTURE;
	//
	//   if ( !_setupChangePosture(self) )
	//      _setupChangePostureFailed(self);
	//
	//   return;
	//   }

	chance = G_Random();
	if ( currentEnemy && chance < _attackChance && self.WithinDistance( currentEnemy , _meleeDistance ) )
		{
		_state = GENERAL_COMBAT_MELEE_ATTACK;

		if (!setupAttack( self ))
			setupAttackFailed( self );

		return;
		}

	setupHold( self );
	_state = GENERAL_COMBAT_MELEE_HOLD;

}