diff --git a/.classpath b/.classpath
index e0e6526e3ded89337a532dec843a201cb3b592bc..4697753aa55735bd8df62ca3b9580f4b96c48707 100644
--- a/.classpath
+++ b/.classpath
@@ -3,6 +3,11 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="test"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 272e3b91d2da5619281ba19d380758998935673d..c7f863b738c131ca608effecafdaa9a807dc585f 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/src/events/VillageEvent.java b/src/events/VillageEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6b24bf557155ff1938a0b37f0d629dc9bbb838b
--- /dev/null
+++ b/src/events/VillageEvent.java
@@ -0,0 +1,61 @@
+package events;
+
+import main.Case;
+import main.Joueur;
+import main.Scan;
+import main.Type;
+import units.Paysant;
+import units.Unite;
+
+public class VillageEvent implements Evenements{
+	
+	private Joueur owner = null;
+	
+	public void action(Case eventCase) {
+		Joueur visiteur = eventCase.getUnite().getJoueur();
+		Unite uniteVisiteur = eventCase.getUnite();
+		if (eventCase.getType() == Type.VILLAGE) {
+			System.out.println("1. Ne rien faire/n2. Piller village");
+			if (owner == visiteur) {
+				System.out.println("3. Enrôler paysan (5 Po)");
+			}
+			switch (Scan.readString()) {
+			case "1":
+				break;
+			case "2":
+				visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() + 10);
+				eventCase.setPillage();
+				break;
+			case "3":
+				if (uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).getType() != Type.MOUNTAIN) {
+					uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()+1).setUnite(new Paysant(eventCase.getX(), eventCase.getY()+1, uniteVisiteur.getPlateau(), visiteur));
+					visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
+				}
+				else if (uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).getType() != Type.MOUNTAIN) {
+					uniteVisiteur.getPlateau().getCase(eventCase.getX(), eventCase.getY()-1).setUnite(new Paysant(eventCase.getX(), eventCase.getY()-1, uniteVisiteur.getPlateau(), visiteur));
+					visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
+				}
+				else if (uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).getType() != Type.MOUNTAIN) {
+					uniteVisiteur.getPlateau().getCase(eventCase.getX()+1, eventCase.getY()).setUnite(new Paysant(eventCase.getX()+1, eventCase.getY(), uniteVisiteur.getPlateau(), visiteur));
+					visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
+				}
+				else if (uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).getUnite() == null && uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).getType() != Type.MOUNTAIN) {
+					uniteVisiteur.getPlateau().getCase(eventCase.getX()-1, eventCase.getY()).setUnite(new Paysant(eventCase.getX()-1, eventCase.getY(), uniteVisiteur.getPlateau(), visiteur));
+					visiteur.setBanqueJoueur(visiteur.getBanqueJoueur() -5);
+				}
+				else {
+					System.out.println("Il n'y a pas la place pour placer une unité autour ! Rendez l'argent !");
+				}
+				break;
+
+			default:
+				break;
+			}
+		}
+	}
+
+	public String getName() {
+		return "Village event";
+	}
+
+}
diff --git a/src/main/Case.java b/src/main/Case.java
index b2c7ca80c9142f44dbc2e81641c43dca45ca1653..09dceaea56680fab4ecdcda3b726526f316f1e33 100644
--- a/src/main/Case.java
+++ b/src/main/Case.java
@@ -15,7 +15,8 @@ public class Case {
 	private Unite unite;
 	private int x;
 	private int y;
-	private boolean aEteVu;
+	private boolean pille;
+	private int tempsDepuisPillage;
 	
 	public Case(Type type) {
 		this.type = type;
@@ -24,6 +25,26 @@ public class Case {
 		this.events = new ArrayList<Evenements>();
 		this.x = 0;
 		this.y = 0;
+		this.pille = false;
+		this.tempsDepuisPillage = 0;
+	}
+	public void setPillage() {
+		this.pille = true;
+		this.tempsDepuisPillage = 5;
+	}
+	public boolean getPille () {
+		return this.pille;
+	}
+	public void setPille (boolean pille) {
+		this.pille = pille;
+	}
+	public void decreaseTimePillage () {
+		if (this.tempsDepuisPillage == 0) {
+			setPille(false);
+		}
+		else {
+			this.tempsDepuisPillage--;
+		}
 	}
 	public void setX(int x) {
 		this.x = x;
@@ -78,6 +99,7 @@ public class Case {
 	}
 	
 	public String toString() {
+
 		if (!this.isDecouverte()) {
 			return "~ ";
 		}
@@ -88,14 +110,18 @@ public class Case {
 			return ". ";
 		}
 		else if (this.type == Type.MOUNTAIN) {
-			return "m ";
+			return "Ѧ ";
 		}
 		else if (this.type == Type.FORT) {
-			return "♖ ";
+			return "♜ ";
+			//return "♖ ";
 		}
 		else if (this.type == Type.CAMP) {
 			return "O ";
 		}
+		else if (this.type == Type.VILLAGE) {
+			return "V ";
+		}
 		else { return "? ";}
 	}
 }
diff --git a/src/main/Region.java b/src/main/Region.java
index b0b348ec6a0dd34d6e7e55d7ac696e86176f909a..ee476552787ee92495d8cf4a2ea587ac1663f05e 100644
--- a/src/main/Region.java
+++ b/src/main/Region.java
@@ -4,6 +4,7 @@ import java.util.Random;
 
 import events.CrownReceived;
 import events.FortEvent;
+import events.VillageEvent;
 
 public class Region {
 	public Case[][] region = new Case[5][5];
@@ -32,6 +33,13 @@ public class Region {
 		int rd2 = (int)random.nextInt(5);
 		region[rd1][rd2].addEvents(new FortEvent());
 		region[rd1][rd2].setType(Type.FORT);
+		int k = (int)random.nextInt(2);
+		for (int l = 0; l < k; l++) {
+			rd1 = (int)random.nextInt(5);
+			rd2 = (int)random.nextInt(5);
+			region[rd1][rd2].addEvents(new VillageEvent());
+			region[rd1][rd2].setType(Type.VILLAGE);
+		}
 	}
 	public void changeToCamp() {
 		for (int i = 0; i < region.length; i++) {
diff --git a/src/main/Scan.java b/src/main/Scan.java
index 4eea18fc814e90ed8d2d8c5a661dc4c49025a8e3..08a571f34d36f3de963fec2be401368ef0025739 100644
--- a/src/main/Scan.java
+++ b/src/main/Scan.java
@@ -19,5 +19,28 @@ public class Scan {
 		
 		return res;
 	}
+	
+	public static String readString() {
+		String res = "";
+		Scanner scanner = new Scanner(System.in);
+		res = scanner.nextLine();
+		scanner.close();
+		return res;
+	}
+	
+	public static String readString(String message) {
+		String res = "";
+		Scanner scanner = new Scanner(System.in);
+		System.out.println(message);
+		res = scanner.nextLine();
+		scanner.close();
+		return res;
+	}
+	
+	public static void clearScreen() {
+		for( int i = 0 ; i < 100; i++) {
+			System.out.println();
+		}
+	}
 
 }
diff --git a/src/main/Type.java b/src/main/Type.java
index bdfacc4ab2b794f54a2785d7d71be011f0b47d1e..9f0fb3e27d9a19afeccdf5a02fa53de2a056e92b 100644
--- a/src/main/Type.java
+++ b/src/main/Type.java
@@ -1,5 +1,5 @@
 package main;
 
 public enum Type {
-	UNITE,GRASS, MOUNTAIN, CAMP, FORT;
+	UNITE,GRASS, MOUNTAIN, CAMP, VILLAGE, FORT;
 }
diff --git a/src/units/Paysant.java b/src/units/Paysant.java
index f361b7e5fb16d3d4d09396d93d3af5b09304e6eb..82b305201a6e0099c31baa193785d15fe2b6dff3 100644
--- a/src/units/Paysant.java
+++ b/src/units/Paysant.java
@@ -11,7 +11,7 @@ public class Paysant extends Unite{
 	public static final int DAMAGE = 1;
 	public static final char SYMBOL = 'p';
 	public static final int PATOGIVE = 1;
-	public static final int VISION = 4;
+	public static final int VISION = 1;
 
 	public Paysant(int x, int y, Plateau plateau, Joueur joueur) {
 		super(x, y, plateau, SYMBOL, ARMOR, DAMAGE, joueur, VISION);
diff --git a/src/units/Unite.java b/src/units/Unite.java
index 5303c5c3fb742feb344015febed73c75c352f2de..bbc3ffa0ca331740df28851a88ce916958d74f77 100644
--- a/src/units/Unite.java
+++ b/src/units/Unite.java
@@ -207,6 +207,7 @@ public abstract class Unite {
 		this.plateau.getCase(x, y).setType(Type.GRASS);
 		this.x=rd1;
 		this.y=rd2;
+		updateDecouverte(this.plateau.getCase(rd1, rd2), this.vision);
 	}
 	public void updateDecouverte (Case emplacement, int vision) {
 		if (vision > -1) {
@@ -224,7 +225,7 @@ public abstract class Unite {
 			}
 			if (emplacement.getY() < 29) {
 				this.plateau.getCase(emplacement.getX(), emplacement.getY() +1).setDecouverte(true);
-				if (this.plateau.getCase(emplacement.getX()+1, emplacement.getY()+1).getType() != Type.MOUNTAIN) {
+				if (this.plateau.getCase(emplacement.getX(), emplacement.getY()+1).getType() != Type.MOUNTAIN) {
 					updateDecouverte(this.plateau.getCase(emplacement.getX(), emplacement.getY() +1), vision-1);
 				}
 			}