// Path: src/model/Card.java
// public enum Card {
// 
// 	KNIGHT(CardType.UNIT), 
// 	ARCHER(CardType.UNIT), 
// 	CLERIC(CardType.UNIT), 
// 	WIZARD(CardType.UNIT), 
// 	NINJA(CardType.UNIT),
// 	INFERNO(CardType.SPELL), 
// 	REVIVE_POTION(CardType.ITEM), 
// 	RUNEMETAL(CardType.ITEM), 
// 	SCROLL(CardType.ITEM), 
// 	DRAGONSCALE(CardType.ITEM), 
// 	SHINING_HELM(CardType.ITEM), 
// 	CRYSTAL(CardType.UNIT);
// 	
// 	public final CardType type;
// 	
// 	Card(CardType type) {
// 		this.type = type;
// 	}
// 	
// }
// 
// Path: src/model/Position.java
// public class Position {
// 
// 	public int x;
// 	public int y;
// 
// 	public Position(int x, int y) {
// 		super();
// 		this.x = x;
// 		this.y = y;
// 	}
// 
// 	public Position() {
// 		super();
// 		x = 0;
// 		y = 0;
// 	}
// 
// 	public Direction getDirection(Position pos) {
// 		if (pos == null)
// 			return null;
// 		return Direction.direction(pos.x - x, pos.y - y);
// 	}
// 
// 	public int hashCode() {
// 		int result = 1;
// 		result = 5 * result + x;
// 		result = 5 * result + y;
// 		return result;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "(" + x + "," + y + ")";
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		final Position other = (Position) obj;
// 		if (x != other.x)
// 			return false;
// 		if (y != other.y)
// 			return false;
// 		return true;
// 	}
// 
// 	public int distance(Position to) {
// 		int xx = x - to.x;
// 		if (xx < 0)
// 			xx = xx * (-1);
// 		int yy = y - to.y;
// 		if (yy < 0)
// 			yy = yy * (-1);
// 		return xx + yy;
// 	}
// 
// }


import model.Card;
import model.Position;
package action;


public class DropAction extends Action {

	public Card type;
	public Position to;

// Path: src/model/Card.java
// public enum Card {
// 
// 	KNIGHT(CardType.UNIT), 
// 	ARCHER(CardType.UNIT), 
// 	CLERIC(CardType.UNIT), 
// 	WIZARD(CardType.UNIT), 
// 	NINJA(CardType.UNIT),
// 	INFERNO(CardType.SPELL), 
// 	REVIVE_POTION(CardType.ITEM), 
// 	RUNEMETAL(CardType.ITEM), 
// 	SCROLL(CardType.ITEM), 
// 	DRAGONSCALE(CardType.ITEM), 
// 	SHINING_HELM(CardType.ITEM), 
// 	CRYSTAL(CardType.UNIT);
// 	
// 	public final CardType type;
// 	
// 	Card(CardType type) {
// 		this.type = type;
// 	}
// 	
// }
// 
// Path: src/model/Position.java
// public class Position {
// 
// 	public int x;
// 	public int y;
// 
// 	public Position(int x, int y) {
// 		super();
// 		this.x = x;
// 		this.y = y;
// 	}
// 
// 	public Position() {
// 		super();
// 		x = 0;
// 		y = 0;
// 	}
// 
// 	public Direction getDirection(Position pos) {
// 		if (pos == null)
// 			return null;
// 		return Direction.direction(pos.x - x, pos.y - y);
// 	}
// 
// 	public int hashCode() {
// 		int result = 1;
// 		result = 5 * result + x;
// 		result = 5 * result + y;
// 		return result;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "(" + x + "," + y + ")";
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		final Position other = (Position) obj;
// 		if (x != other.x)
// 			return false;
// 		if (y != other.y)
// 			return false;
// 		return true;
// 	}
// 
// 	public int distance(Position to) {
// 		int xx = x - to.x;
// 		if (xx < 0)
// 			xx = xx * (-1);
// 		int yy = y - to.y;
// 		if (yy < 0)
// 			yy = yy * (-1);
// 		return xx + yy;
// 	}
// 
// }


// Path: src/action/DropAction.java
import model.Card;
import model.Position;

package action;


public class DropAction extends Action {

	public Card type;
	public Position to;

	public DropAction(Card type, Position to) {