void Animation::setupAnimations(){ switch(ani){ case 0: setupEnter(); break; case 1: setupAttack(); break; case 2: setupDefend(); break; case 3: setupVictory(); break; } }
//-------------------------------------------------------------- // 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; }