package vooga.towerdefense.factories.actionfactories; import vooga.towerdefense.action.Action; import vooga.towerdefense.action.movement.FollowPath; import vooga.towerdefense.gameelements.GameElement; /** * Factory for creating FollowPath action, to create followPath actions of different path * need different instances of this factory. * * Design tradeoff: seems bad to need different followpath factory for different paths * however, we don't pass in Path in run time because we need to override buildAction method * * @author Zhen Gou * */ public class FollowPathFactory extends ActionFactory{ public FollowPathFactory(){ super(); } @Override protected Action buildAction(GameElement elementToMove) { return new FollowPath(elementToMove,getMap().getShortestPath(elementToMove.getCenter(), getMap().getEndLocation())); } }