Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package dk.sdu.mmmi.modulemon.BattleScene;

import dk.sdu.mmmi.modulemon.common.drawing.MathUtils;

public class BattleSpeedController {

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

@Override
public String toString() {
return "Battle delay: " + speed + "ms";
return "Min. turn delay: " + speed + "ms";
}
}
38 changes: 27 additions & 11 deletions src/main/java/dk/sdu/mmmi/modulemon/BattleScene/BattleView.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ public class BattleView implements IGameViewService, IBattleView {

public Sound getAttackSound(IMonsterMove monsterMove) {
Sound returnSound = null;

try {
returnSound = loader.getSoundAsset(monsterMove.getSoundPath(), monsterMove.getClass());
} catch (GdxRuntimeException ex) {
Expand Down Expand Up @@ -252,9 +251,26 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
_battleScene.setTextBoxRectStyle(Rectangle.class);
}


updateHasRunOnce = true;

// Check the current AI is done thinking
if(_battleSimulation.hasNextBattleEvent()){
_battleScene.setShowEnemySpinner(false);
_battleScene.setShowPlayerSpinner(false);
}else{
if(_battleSimulation.isPlayerControlledByAI() && _battleSimulation.getState().isPlayersTurn()){
// there is no current event, and the player is controlled by an AI
_battleScene.setShowPlayerSpinner(true);
_battleScene.setShowEnemySpinner(false);
}else if(!_battleSimulation.getState().isPlayersTurn()){
_battleScene.setShowPlayerSpinner(false);
_battleScene.setShowEnemySpinner(true);
}else {
_battleScene.setShowEnemySpinner(false);
_battleScene.setShowPlayerSpinner(false);
}
}

//Is there any animations active?
if (!blockingAnimations.isEmpty()) {
//Set in update() because some animations depend on it.
Expand Down Expand Up @@ -295,9 +311,7 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
PlayerBattleAttackAnimation battleAnimation = new PlayerBattleAttackAnimation(_battleScene, getAttackSound(event.getMove()), settings);
if (forcedAIDelay.getSpeed() > 0) {
battleAnimation.setOnEventDone(() -> {
var anim = addEmptyAnimation(forcedAIDelay.getSpeed(), true);
anim.setOnEventDone(() -> _battleScene.setShowEnemySpinner(false));
_battleScene.setShowEnemySpinner(true);
addEmptyAnimation(forcedAIDelay.getSpeed(), true);
});
}
battleAnimation.start();
Expand All @@ -309,9 +323,7 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
battleAnimation.start();
if (_battleSimulation.isPlayerControlledByAI() && forcedAIDelay.getSpeed() > 0) {
battleAnimation.setOnEventDone(() -> {
var anim = addEmptyAnimation(forcedAIDelay.getSpeed(), true);
anim.setOnEventDone(() -> _battleScene.setShowPlayerSpinner(false));
_battleScene.setShowPlayerSpinner(true);
addEmptyAnimation(forcedAIDelay.getSpeed(), true);
});
}
blockingAnimations.add(battleAnimation);
Expand All @@ -331,14 +343,16 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
blockingAnimations.add(changeOutAnimation);
}

EmptyAnimation delay = new EmptyAnimation(1000);
EmptyAnimation delay = addEmptyAnimation(forcedAIDelay.getSpeed(), true);
delay.setOnEventDone(() -> _currentBattleState = eventState);
blockingAnimations.add(delay);

PlayerChangeInAnimation changeInAnimation = new PlayerChangeInAnimation(_battleScene);
blockingAnimations.add(changeInAnimation);

addEmptyAnimation(2000, false);
if(forcedAIDelay.getSpeed() > 0) {
addEmptyAnimation(forcedAIDelay.getSpeed(), false);
}
this._battleScene.setTextToDisplay(battleEvent.getText());
} else {
if (causedByFaintingMonster) {
Expand Down Expand Up @@ -390,7 +404,9 @@ public void update(GameData gameData, IGameViewManager gameViewManager) {
} else {
//Unknown event (Or TextEvent)
_currentBattleState = eventState;
addEmptyAnimation(2000, true);
if(forcedAIDelay.getSpeed() > 0) {
addEmptyAnimation(forcedAIDelay.getSpeed(), true);
}
this._battleScene.setTextToDisplay(battleEvent.getText());
}
}
Expand Down
Loading