@@ -73,7 +73,6 @@ public class BattleView implements IGameViewService, IBattleView {
7373
7474 public Sound getAttackSound (IMonsterMove monsterMove ) {
7575 Sound returnSound = null ;
76-
7776 try {
7877 returnSound = loader .getSoundAsset (monsterMove .getSoundPath (), monsterMove .getClass ());
7978 } catch (GdxRuntimeException ex ) {
@@ -252,9 +251,26 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
252251 _battleScene .setTextBoxRectStyle (Rectangle .class );
253252 }
254253
255-
256254 updateHasRunOnce = true ;
257255
256+ // Check the current AI is done thinking
257+ if (_battleSimulation .hasNextBattleEvent ()){
258+ _battleScene .setShowEnemySpinner (false );
259+ _battleScene .setShowPlayerSpinner (false );
260+ }else {
261+ if (_battleSimulation .isPlayerControlledByAI () && _battleSimulation .getState ().isPlayersTurn ()){
262+ // there is no current event, and the player is controlled by an AI
263+ _battleScene .setShowPlayerSpinner (true );
264+ _battleScene .setShowEnemySpinner (false );
265+ }else if (!_battleSimulation .getState ().isPlayersTurn ()){
266+ _battleScene .setShowPlayerSpinner (false );
267+ _battleScene .setShowEnemySpinner (true );
268+ }else {
269+ _battleScene .setShowEnemySpinner (false );
270+ _battleScene .setShowPlayerSpinner (false );
271+ }
272+ }
273+
258274 //Is there any animations active?
259275 if (!blockingAnimations .isEmpty ()) {
260276 //Set in update() because some animations depend on it.
@@ -295,9 +311,7 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
295311 PlayerBattleAttackAnimation battleAnimation = new PlayerBattleAttackAnimation (_battleScene , getAttackSound (event .getMove ()), settings );
296312 if (forcedAIDelay .getSpeed () > 0 ) {
297313 battleAnimation .setOnEventDone (() -> {
298- var anim = addEmptyAnimation (forcedAIDelay .getSpeed (), true );
299- anim .setOnEventDone (() -> _battleScene .setShowEnemySpinner (false ));
300- _battleScene .setShowEnemySpinner (true );
314+ addEmptyAnimation (forcedAIDelay .getSpeed (), true );
301315 });
302316 }
303317 battleAnimation .start ();
@@ -309,9 +323,7 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
309323 battleAnimation .start ();
310324 if (_battleSimulation .isPlayerControlledByAI () && forcedAIDelay .getSpeed () > 0 ) {
311325 battleAnimation .setOnEventDone (() -> {
312- var anim = addEmptyAnimation (forcedAIDelay .getSpeed (), true );
313- anim .setOnEventDone (() -> _battleScene .setShowPlayerSpinner (false ));
314- _battleScene .setShowPlayerSpinner (true );
326+ addEmptyAnimation (forcedAIDelay .getSpeed (), true );
315327 });
316328 }
317329 blockingAnimations .add (battleAnimation );
@@ -331,14 +343,16 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
331343 blockingAnimations .add (changeOutAnimation );
332344 }
333345
334- EmptyAnimation delay = new EmptyAnimation ( 1000 );
346+ EmptyAnimation delay = addEmptyAnimation ( forcedAIDelay . getSpeed (), true );
335347 delay .setOnEventDone (() -> _currentBattleState = eventState );
336348 blockingAnimations .add (delay );
337349
338350 PlayerChangeInAnimation changeInAnimation = new PlayerChangeInAnimation (_battleScene );
339351 blockingAnimations .add (changeInAnimation );
340352
341- addEmptyAnimation (2000 , false );
353+ if (forcedAIDelay .getSpeed () > 0 ) {
354+ addEmptyAnimation (forcedAIDelay .getSpeed (), false );
355+ }
342356 this ._battleScene .setTextToDisplay (battleEvent .getText ());
343357 } else {
344358 if (causedByFaintingMonster ) {
@@ -390,7 +404,9 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
390404 } else {
391405 //Unknown event (Or TextEvent)
392406 _currentBattleState = eventState ;
393- addEmptyAnimation (2000 , true );
407+ if (forcedAIDelay .getSpeed () > 0 ) {
408+ addEmptyAnimation (forcedAIDelay .getSpeed (), true );
409+ }
394410 this ._battleScene .setTextToDisplay (battleEvent .getText ());
395411 }
396412 }
0 commit comments