package org.drooms.impl.logic.commands; import org.drooms.api.GameProgressListener; import org.drooms.impl.GameController; import org.drooms.impl.logic.CommandDistributor; import org.drooms.impl.logic.PlayerLogic; /** * Represents a game state change to be sent from {@link GameController} to * {@link CommandDistributor} and further passed to the strategies. */ public interface Command { /** * Perform the state change on the strategy. * * @param logic * Player's strategy in action. */ void perform(PlayerLogic logic); /** * Report the state change to a listener. * * @param report * The listener. */ void report(GameProgressListener report); }