package vooga.towerdefense.factories.actionfactories; import vooga.towerdefense.action.Action; import vooga.towerdefense.action.attack.LaunchProjectile; import vooga.towerdefense.factories.ActionAnnotation; import vooga.towerdefense.gameelements.GameElement; /** * This is an action factory that builds a LaunchProjectile action. * * @author XuRui * */ public class LaunchProjectileFactory extends ActionFactory { private String myFactoryName; /** * constructor * * @param factory */ public LaunchProjectileFactory( @ActionAnnotation(name = "projectile", value = "name") String factory) { super(); myFactoryName = factory; } /** * Builds a LaunchProjectile action with GameElementFactory already added * into corresponding attribute manager. */ @Override protected Action buildAction(GameElement e) { return new LaunchProjectile(getMap(), e.getCenter(), e .getAttributeManager().getGameElementFactory(myFactoryName)); } }