mirror of
https://github.com/AndorsTrailRelease/andors-trail.git
synced 2026-02-13 21:28:10 +01:00
Added an animation when an attack misses
This commit is contained in:
Binary file not shown.
BIN
AndorsTrail/res/drawable/effect_miss1.png
Normal file
BIN
AndorsTrail/res/drawable/effect_miss1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
@@ -173,7 +173,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
startAttackEffect(attack, attackPosition, this, CALLBACK_PLAYERATTACK);
|
||||
} else {
|
||||
combatActionListeners.onPlayerAttackMissed(target, attack);
|
||||
playerAttackCompleted();
|
||||
startMissedEffect(attack, attackPosition, this, CALLBACK_PLAYERATTACK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -393,7 +393,8 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
startAttackEffect(attack, world.model.player.position, this, CALLBACK_MONSTERATTACK);
|
||||
} else {
|
||||
combatActionListeners.onMonsterAttackMissed(currentActiveMonster, attack);
|
||||
|
||||
startMissedEffect(attack, world.model.player.position, this, CALLBACK_PLAYERATTACK);
|
||||
|
||||
waitForNextMonsterAction();
|
||||
}
|
||||
}
|
||||
@@ -431,6 +432,20 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
||||
, callback
|
||||
, callbackValue);
|
||||
}
|
||||
|
||||
private void startMissedEffect(AttackResult attack, final Coord position, VisualEffectCompletedCallback callback, int callbackValue) {
|
||||
if (controllers.preferences.attackspeed_milliseconds <= 0) {
|
||||
callback.onVisualEffectCompleted(callbackValue);
|
||||
return;
|
||||
}
|
||||
controllers.effectController.startEffect(
|
||||
position
|
||||
, VisualEffectCollection.VisualEffectID.miss
|
||||
, attack.damage
|
||||
, callback
|
||||
, callbackValue);
|
||||
}
|
||||
|
||||
private void endMonsterTurn() {
|
||||
currentActiveMonster = null;
|
||||
newPlayerTurn(false);
|
||||
|
||||
@@ -373,5 +373,6 @@ public final class ResourceLoader {
|
||||
loader.prepareTileset(R.drawable.effect_blood4, "effect_blood4", new Size(7, 2), defaultTileSize);
|
||||
loader.prepareTileset(R.drawable.effect_heal2, "effect_heal2", new Size(8, 2), defaultTileSize);
|
||||
loader.prepareTileset(R.drawable.effect_poison1, "effect_poison1", new Size(8, 2), defaultTileSize);
|
||||
loader.prepareTileset(R.drawable.effect_miss1, "effect_miss1", new Size(8, 2), defaultTileSize);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,8 @@ public final class VisualEffectCollection {
|
||||
public static enum VisualEffectID {
|
||||
redSplash
|
||||
,blueSwirl
|
||||
,greenSplash;
|
||||
,greenSplash
|
||||
,miss;;
|
||||
|
||||
public static VisualEffectID fromString(String s, VisualEffectID default_) {
|
||||
if (s == null) return default_;
|
||||
@@ -23,6 +24,7 @@ public final class VisualEffectCollection {
|
||||
effects[VisualEffectID.redSplash.ordinal()] = createEffect(loader, R.drawable.effect_blood4, new ConstRange(14, 0), 400, Color.RED);
|
||||
effects[VisualEffectID.blueSwirl.ordinal()] = createEffect(loader, R.drawable.effect_heal2, new ConstRange(16, 0), 400, Color.rgb(150, 150, 255));
|
||||
effects[VisualEffectID.greenSplash.ordinal()] = createEffect(loader, R.drawable.effect_poison1, new ConstRange(16, 0), 400, Color.GREEN);
|
||||
effects[VisualEffectID.miss.ordinal()] = createEffect(loader, R.drawable.effect_miss1, new ConstRange(16, 0), 400, Color.GRAY);
|
||||
}
|
||||
|
||||
public VisualEffect getVisualEffect(VisualEffectID effectID) {
|
||||
|
||||
@@ -57,7 +57,7 @@ public final class TileManager {
|
||||
|
||||
|
||||
public final TileCache tileCache = new TileCache();
|
||||
public final TileCollection preloadedTiles = new TileCollection(97);
|
||||
public final TileCollection preloadedTiles = new TileCollection(113);
|
||||
public TileCollection currentMapTiles;
|
||||
public TileCollection adjacentMapTiles;
|
||||
private final HashSet<Integer> preloadedTileIDs = new HashSet<Integer>();
|
||||
|
||||
Reference in New Issue
Block a user