@ -850,9 +850,25 @@ goes on a very long time, I hope you can understand this is only for testing pur
//Enemy picks a random move from the movelist. And a random target.
//Enemy picks a random move from the movelist. And a random target.
BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove = BATTLE_ENCOUNTER - > objs [ i ] - > moveSet [ rand ( ) % BATTLE_ENCOUNTER - > objs [ i ] - > moveSet . size ( ) ] ;
BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove = BATTLE_ENCOUNTER - > objs [ i ] - > moveSet [ rand ( ) % BATTLE_ENCOUNTER - > objs [ i ] - > moveSet . size ( ) ] ;
BATTLE_ENCOUNTER - > objs [ i ] - > channelTimeRemaining = BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove - > channelTime ;
BATTLE_ENCOUNTER - > objs [ i ] - > channelTimeRemaining = BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove - > channelTime ;
if ( BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove - > friendly ) {
do {
do {
BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget = - rand ( ) % PARTY_MEMBER_COUNT - 1 ;
BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget = rand ( ) % BATTLE_ENCOUNTER - > objs . size ( ) ;
} while ( BATTLE_ENCOUNTER - > objs [ BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget ] - > GetHP ( ) < = 0 ) ;
} else {
bool playerAlive = false ;
for ( int i = 0 ; i < PARTY_MEMBER_COUNT ; i + + ) {
if ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ i ] ] - > GetHP ( ) > 0 ) {
playerAlive = true ;
break ;
}
}
if ( playerAlive ) {
do {
BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget = - ( rand ( ) % PARTY_MEMBER_COUNT ) - 1 ;
} while ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget - 1 ] ] - > GetHP ( ) < = 0 ) ;
} while ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget - 1 ] ] - > GetHP ( ) < = 0 ) ;
printf ( " Selected Target: %d \n " , BATTLE_ENCOUNTER - > objs [ i ] - > selectedTarget ) ;
}
}
printf ( " %s chose move %s. \n " , BATTLE_ENCOUNTER - > objs [ i ] - > obj - > name . c_str ( ) , BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove - > name . c_str ( ) ) ;
printf ( " %s chose move %s. \n " , BATTLE_ENCOUNTER - > objs [ i ] - > obj - > name . c_str ( ) , BATTLE_ENCOUNTER - > objs [ i ] - > selectedMove - > name . c_str ( ) ) ;
BATTLE_STATE = BattleState : : WAIT ;
BATTLE_STATE = BattleState : : WAIT ;
BATTLE_SELECTION_CURSOR = 0 ;
BATTLE_SELECTION_CURSOR = 0 ;
@ -867,6 +883,58 @@ goes on a very long time, I hope you can understand this is only for testing pur
} break ;
} break ;
case BattleState : : WAIT_ANIMATION : {
case BattleState : : WAIT_ANIMATION : {
BATTLE_ANIMATION_TIMER + + ;
BATTLE_ANIMATION_TIMER + + ;
if ( BATTLE_ANIMATION_TIMER = = 90 ) {
if ( CURRENT_TURN < 0 ) {
if ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > friendly ) {
if ( PARTY_MEMBER_STATS [ - PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget - 1 ] - > GetHP ( ) > 0 ) {
int healAmt = PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > baseDmg +
( ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > randomDmg > 0 ) ? rand ( ) % PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > randomDmg : 0 )
+ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > baseAtk ;
std : : cout < < PARTY_MEMBER_OBJ [ - CURRENT_TURN - 1 ] - > name < < " uses " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name < < " " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade < < " on " < < PARTY_MEMBER_OBJ [ - PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget - 1 ] - > name < < " recovering " < < healAmt < < " health. \n " ;
PARTY_MEMBER_STATS [ - PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget - 1 ] - > AddHP ( healAmt ) ;
} else {
std : : cout < < PARTY_MEMBER_OBJ [ - CURRENT_TURN - 1 ] - > name < < " uses " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name < < " " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade < < " on " < < PARTY_MEMBER_OBJ [ - PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget - 1 ] - > name < < " but it failed. \n " ;
}
} else {
if ( BATTLE_ENCOUNTER - > objs [ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget ] - > GetHP ( ) > 0 ) {
int dmgAmt = PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > baseDmg +
( ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > randomDmg > 0 ) ? rand ( ) % PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > randomDmg : 0 )
+ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > baseAtk ;
std : : cout < < PARTY_MEMBER_OBJ [ - CURRENT_TURN - 1 ] - > name < < " uses " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name < < " " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade < < " on " < < BATTLE_ENCOUNTER - > objs [ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget ] - > obj - > name < < " dealing " < < dmgAmt < < " health. \n " ;
BATTLE_ENCOUNTER - > objs [ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget ] - > _SetDirectHP (
BATTLE_ENCOUNTER - > objs [ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget ] - > GetHP ( ) - dmgAmt
) ; //Enemies have their health directly set.
} else {
std : : cout < < PARTY_MEMBER_OBJ [ - CURRENT_TURN - 1 ] - > name < < " uses " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > name < < " " < < PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedMove - > grade < < " on " < < BATTLE_ENCOUNTER - > objs [ PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - CURRENT_TURN - 1 ] ] - > selectedTarget ] - > obj - > name < < " but it failed. \n " ;
}
}
} else {
if ( BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > friendly ) {
if ( BATTLE_ENCOUNTER - > objs [ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget ] - > GetHP ( ) > 0 ) {
int healAmt = BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > baseDmg +
( ( rand ( ) % BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > randomDmg > 0 ) ? rand ( ) % BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > randomDmg : 0 )
+ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > baseAtk ;
std : : cout < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name < < " uses " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > name < < " " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade < < " on " < < BATTLE_ENCOUNTER - > objs [ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget ] - > obj - > name < < " recovering " < < healAmt < < " health. \n " ;
BATTLE_ENCOUNTER - > objs [ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget ] - > AddHP ( healAmt ) ;
} else {
std : : cout < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name < < " uses " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > name < < " " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade < < " on " < < BATTLE_ENCOUNTER - > objs [ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget ] - > obj - > name < < " but it failed. \n " ;
}
} else {
if ( PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget - 1 ] ] - > GetHP ( ) > 0 ) {
printf ( " HP check passes. \n " ) ;
int dmgAmt = BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > baseDmg +
( ( rand ( ) % BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > randomDmg > 0 ) ? rand ( ) % BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > randomDmg : 0 )
+ BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > baseAtk ;
printf ( " Damage: %d \n " , dmgAmt ) ;
std : : cout < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name < < " uses " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > name < < " " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade < < " on " < < PARTY_MEMBER_OBJ [ - BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget - 1 ] - > name < < " dealing " < < dmgAmt < < " health. \n " ;
printf ( " Now subtract. \n " ) ;
PARTY_MEMBER_STATS [ PARTY_MEMBER_ID [ - BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget - 1 ] ] - > SubtractHP ( dmgAmt ) ;
} else {
std : : cout < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > obj - > name < < " uses " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > name < < " " < < BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedMove - > grade < < " on " < < PARTY_MEMBER_OBJ [ - BATTLE_ENCOUNTER - > objs [ CURRENT_TURN ] - > selectedTarget - 1 ] - > name < < " but it failed. \n " ;
}
}
}
} else
if ( BATTLE_ANIMATION_TIMER > 120 ) {
if ( BATTLE_ANIMATION_TIMER > 120 ) {
//Turn's done!
//Turn's done!
if ( CURRENT_TURN < 0 ) {
if ( CURRENT_TURN < 0 ) {