Skip to content

Commit 16ca9a5

Browse files
authored
Merge pull request #13 from AlexanderNorup/an/touchups
Added results screen to custom battle + thinking time redesign
2 parents 6259afe + 487f5cc commit 16ca9a5

File tree

9 files changed

+187
-79
lines changed

9 files changed

+187
-79
lines changed

src/main/java/dk/sdu/mmmi/modulemon/BattleScene/BattleSpeedController.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package dk.sdu.mmmi.modulemon.BattleScene;
22

3-
import dk.sdu.mmmi.modulemon.common.drawing.MathUtils;
4-
53
public class BattleSpeedController {
64

75
private static final int incrementAmount = 200;
@@ -25,6 +23,6 @@ public int getSpeed(){
2523

2624
@Override
2725
public String toString() {
28-
return "Battle delay: " + speed + "ms";
26+
return "Min. turn delay: " + speed + "ms";
2927
}
3028
}

src/main/java/dk/sdu/mmmi/modulemon/BattleScene/BattleView.java

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)