@Override
	public boolean execute(Entity actor, Entity target, Parameters context) {
		String contextMinionType = context.getString(ParameterName.MINION_TYPE, "");
		EnemyType minionType = contextMinionType.length() == 0? this.minionType : EnemyType.valueOf(contextMinionType);
		for (Point summonLocation : Physics.getAdjacentLocations(actor.getLocation())) {
			if (!Map.instance().blockedForEnemy((Enemy) actor, summonLocation.x, summonLocation.y)) {
				if(((Enemy)actor).canHaveMoreMinions()){
					if(animation != null){
						GamePlayState.addSpecialEffect(new AnimationBasedVisualEffect(actor.getPixelCenterLocation(), animation));
						GamePlayState.addSpecialEffect(new AnimationBasedVisualEffect(Physics.getPixelCenterLocation(summonLocation), animation));
					}
					((Enemy)actor).receiveMinion(minionType, summonLocation);
					return true;
				}
				
			}
		}
		return false;
	}