@@ -0,0 +1,1501 @@
+package net.alcuria.umbracraft.definitions.skill.actions;%0A%0Aimport net.alcuria.umbracraft.Game;%0Aimport net.alcuria.umbracraft.Listener;%0Aimport net.alcuria.umbracraft.engine.entities.Entity;%0A%0Aimport com.badlogic.gdx.math.Vector3;%0A%0Apublic class CameraChangeDefinition extends SkillActionDefinition %7B%0A%09public static enum CameraDirection %7B%0A%09%09CENTER(CENTER_POS, CENTER_POS), FAR(CENTER_POS - OFFSET, CENTER_POS + OFFSET), NEAR(CENTER_POS + OFFSET, CENTER_POS - OFFSET);%0A%0A%09%09private int friendly, nonFriendly;%0A%0A%09%09CameraDirection(int friendly, int nonFriendly) %7B%0A%09%09%09this.friendly = friendly;%0A%09%09%09this.nonFriendly = nonFriendly;%0A%09%09%7D%0A%0A%09%09public int getPosition(final boolean isFriendly) %7B%0A%09%09%09return isFriendly ? friendly : nonFriendly;%0A%09%09%7D%0A%09%7D%0A%0A%09private static final int CENTER_POS = 290; // center of the battle map%0A%09private static final int OFFSET = 40; // offset for the left/right grid focus%0A%09private final Entity cameraTarget;%0A%09private final CameraDirection direction;%0A%09private final boolean isFriendly;%0A%0A%09public CameraChangeDefinition(CameraDirection direction, boolean isFriendly, Entity cameraTarget) %7B%0A%09%09this.direction = direction;%0A%09%09this.cameraTarget = cameraTarget;%0A%09%09this.isFriendly = isFriendly;%0A%09%7D%0A%0A%09@Override%0A%09public void start(Entity entity, Vector3 start, Vector3 target) %7B%0A%09%09Game.view().setTarget(cameraTarget);%0A%09%09cameraTarget.position.x = direction.getPosition(isFriendly);%0A%09%7D%0A%0A%09@Override%0A%09public void update(Entity entity, Listener stepCompleteListener) %7B%0A%09%09stepCompleteListener.invoke();%0A%09%7D%0A%0A%7D%0A

Add a definition to handle camera changes