Index: src/com/medievaltech/unit/Artillery.java
===================================================================
--- src/com/medievaltech/unit/Artillery.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Artillery.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,50 @@
+package com.medievaltech.unit;
+
+import java.util.List;
+
+import android.graphics.Paint;
+import android.graphics.Point;
+
+public class Artillery extends Unit{
+	public Artillery(Paint p) 
+	{
+		super(p);
+		
+		move = 3;
+		
+		type = Type.LAND;
+		minAttackRange = 2;
+		maxAttackRange = 4;
+	}
+	
+	@Override
+	public void move(Point point) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void attack(Point point) {
+		// TODO Auto-generated method stub
+	
+	}
+
+	@Override
+	public List<Point> getMovementRange() {
+		return super.getMovementRange();
+	}
+
+	@Override
+	public void die() 
+	{
+		
+	}
+
+	@Override
+	public List<Point> getAttackRange() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
Index: src/com/medievaltech/unit/Mech.java
===================================================================
--- src/com/medievaltech/unit/Mech.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Mech.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,50 @@
+package com.medievaltech.unit;
+
+import java.util.List;
+
+import android.graphics.Paint;
+import android.graphics.Point;
+
+public class Mech extends Unit{
+	public Mech(Paint p) 
+	{
+		super(p);
+		
+		move = 2;
+		
+		type = Type.LAND;
+		minAttackRange = 1;
+		maxAttackRange = 1;
+	}
+	
+	@Override
+	public void move(Point point) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void attack(Point point) {
+		// TODO Auto-generated method stub
+	
+	}
+
+	@Override
+	public List<Point> getMovementRange() {
+		return super.getMovementRange();
+	}
+
+	@Override
+	public void die() 
+	{
+		
+	}
+
+	@Override
+	public List<Point> getAttackRange() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
Index: src/com/medievaltech/unit/Recon.java
===================================================================
--- src/com/medievaltech/unit/Recon.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Recon.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,50 @@
+package com.medievaltech.unit;
+
+import java.util.List;
+
+import android.graphics.Paint;
+import android.graphics.Point;
+
+public class Recon extends Unit{
+	public Recon(Paint p) 
+	{
+		super(p);
+		
+		move = 8;
+		
+		type = Type.LAND;
+		minAttackRange = 1;
+		maxAttackRange = 1;
+	}
+	
+	@Override
+	public void move(Point point) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void attack(Point point) {
+		// TODO Auto-generated method stub
+	
+	}
+
+	@Override
+	public List<Point> getMovementRange() {
+		return super.getMovementRange();
+	}
+
+	@Override
+	public void die() 
+	{
+		
+	}
+
+	@Override
+	public List<Point> getAttackRange() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
Index: src/com/medievaltech/unit/SmTank.java
===================================================================
--- src/com/medievaltech/unit/SmTank.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/SmTank.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,50 @@
+package com.medievaltech.unit;
+
+import java.util.List;
+
+import android.graphics.Paint;
+import android.graphics.Point;
+
+public class SmTank extends Unit{
+	public SmTank(Paint p) 
+	{
+		super(p);
+		
+		move = 7;
+		
+		type = Type.LAND;
+		minAttackRange = 1;
+		maxAttackRange = 1;
+	}
+	
+	@Override
+	public void move(Point point) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void attack(Point point) {
+		// TODO Auto-generated method stub
+	
+	}
+
+	@Override
+	public List<Point> getMovementRange() {
+		return super.getMovementRange();
+	}
+
+	@Override
+	public void die() 
+	{
+		
+	}
+
+	@Override
+	public List<Point> getAttackRange() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
Index: src/com/medievaltech/unit/Soldier.java
===================================================================
--- src/com/medievaltech/unit/Soldier.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Soldier.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,50 @@
+package com.medievaltech.unit;
+
+import java.util.List;
+
+import android.graphics.Paint;
+import android.graphics.Point;
+
+public class Soldier extends Unit{
+	public Soldier(Paint p) 
+	{
+		super(p);
+		
+		move = 3;
+		
+		type = Type.LAND;
+		minAttackRange = 1;
+		maxAttackRange = 1;
+	}
+	
+	@Override
+	public void move(Point point) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void attack(Point point) {
+		// TODO Auto-generated method stub
+	
+	}
+
+	@Override
+	public List<Point> getMovementRange() {
+		return super.getMovementRange();
+	}
+
+	@Override
+	public void die() 
+	{
+		
+	}
+
+	@Override
+	public List<Point> getAttackRange() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+
+}
Index: src/com/medievaltech/unit/Transport.java
===================================================================
--- src/com/medievaltech/unit/Transport.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Transport.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,11 @@
+package com.medievaltech.unit;
+
+import android.graphics.Paint;
+
+public abstract class Transport extends Unit {
+	public Unit storedUnit;
+	
+	public Transport(Paint p) {
+		super(p);
+	}
+}
Index: src/com/medievaltech/unit/Unit.java
===================================================================
--- src/com/medievaltech/unit/Unit.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
+++ src/com/medievaltech/unit/Unit.java	(revision 113d7cfbe433bf0f295c897fe301c6e7b1c3cf4e)
@@ -0,0 +1,94 @@
+package com.medievaltech.unit;
+
+import java.util.*;
+import android.graphics.*;
+
+public abstract class Unit 
+{
+	public enum Type
+	{
+		LAND,SEA,AIR
+	}
+
+	private Paint p;
+	
+	public Type type;
+	//public Player owner;
+	
+	public int maxHealth;
+	public int currentHealth;
+	
+	public int maxFuel;
+	public int currentFuel;
+	
+	public int sightRange;
+	protected int move;
+	
+	public int minAttackRange;
+	public int maxAttackRange;
+	public Point location;
+	
+	public Unit(Paint p) 
+	{
+		this.p = p;
+		maxHealth = 10;
+		currentHealth = 10;
+		
+	}
+	
+	public abstract void move(Point point);
+	public abstract void attack(Point point);
+	
+	public List<Point> getMovementRange() {
+		List<Point> l = new LinkedList<Point>();
+		List<Point> prev = new LinkedList<Point>();
+		List<Point> cur = new LinkedList<Point>();
+		boolean[][] visited = new boolean[move*2+1][move*2+1];
+		
+		for(int x=0; x<=move*2; x++)
+			for(int y=0; y<=move*2; y++)
+				visited[x][y] = false;
+		
+		prev.add(new Point(location));
+		l.addAll(prev);
+		visited[move][move] = true;
+
+		for(int dist=1; dist <= move; dist++) {
+			for(Point p : prev) {
+				if(p.x>0 && p.x>location.x-move && !visited[p.x-location.x+move-1][p.y-location.y+move]) {
+					cur.add(new Point(p.x-1, p.y));
+					visited[p.x-location.x+move-1][p.y-location.y+move] = true;
+				}
+				if(p.x<5 && p.x<location.x+move && !visited[p.x-location.x+move+1][p.y-location.y+move]) {
+					cur.add(new Point(p.x+1, p.y));
+					visited[p.x-location.x+move+1][p.y-location.y+move] = true;
+				}
+				if(p.y>0 && p.y>location.y-move && !visited[p.x-location.x+move][p.y-location.y+move-1]) {
+					cur.add(new Point(p.x, p.y-1));
+					visited[p.x-location.x+move][p.y-location.y+move-1] = true;
+				}
+				if(p.y<7 && p.y<location.y+move && !visited[p.x-location.x+move][p.y-location.y+move+1]) {
+					cur.add(new Point(p.x, p.y+1));
+					visited[p.x-location.x+move][p.y-location.y+move+1] = true;
+				}
+			}
+			
+			l.addAll(cur);
+			prev.clear();
+			prev.addAll(cur);
+			cur.clear();
+		}
+		
+		return l;
+	}
+	
+	public abstract List<Point> getAttackRange();
+	
+	public  void die() {
+		
+	}
+	
+	public void draw(Canvas c, int x, int y) {
+		c.drawCircle(x, y, 20, p);
+	}
+}
