diff --git a/CivOne.csproj b/CivOne.csproj
index 2b2efa24..13a5ef73 100644
--- a/CivOne.csproj
+++ b/CivOne.csproj
@@ -29,6 +29,7 @@
+
diff --git a/src/Tiles/Arctic.cs b/src/Tiles/Arctic.cs
new file mode 100644
index 00000000..5f7ee691
--- /dev/null
+++ b/src/Tiles/Arctic.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Arctic : BaseTile
+ {
+ public Arctic(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Arctic;
+ Name = "Arctic";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Desert.cs b/src/Tiles/Desert.cs
new file mode 100644
index 00000000..7d4a7148
--- /dev/null
+++ b/src/Tiles/Desert.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Desert : BaseTile
+ {
+ public Desert(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Desert;
+ Name = "Desert";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Forest.cs b/src/Tiles/Forest.cs
new file mode 100644
index 00000000..3dfc6f0f
--- /dev/null
+++ b/src/Tiles/Forest.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Forest : BaseTile
+ {
+ public Forest(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Forest;
+ Name = "Forest";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Grassland.cs b/src/Tiles/Grassland.cs
new file mode 100644
index 00000000..b2e32037
--- /dev/null
+++ b/src/Tiles/Grassland.cs
@@ -0,0 +1,30 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Grassland : BaseTile
+ {
+ private Terrain CalculateTileType()
+ {
+ if ((((X * 7) + (Y * 11)) & 0x02) == 0)
+ return Terrain.Grassland2;
+ return Terrain.Grassland1;
+ }
+
+ public Grassland(int x, int y) : base(x, y, false)
+ {
+ Type = CalculateTileType();
+ Name = "Grassland";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Hills.cs b/src/Tiles/Hills.cs
new file mode 100644
index 00000000..323201eb
--- /dev/null
+++ b/src/Tiles/Hills.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Hills : BaseTile
+ {
+ public Hills(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Hills;
+ Name = "Hills";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Jungle.cs b/src/Tiles/Jungle.cs
new file mode 100644
index 00000000..a73077c3
--- /dev/null
+++ b/src/Tiles/Jungle.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Jungle : BaseTile
+ {
+ public Jungle(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Jungle;
+ Name = "Jungle";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Mountains.cs b/src/Tiles/Mountains.cs
new file mode 100644
index 00000000..819ba5c3
--- /dev/null
+++ b/src/Tiles/Mountains.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Mountains : BaseTile
+ {
+ public Mountains(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Mountains;
+ Name = "Mountains";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Ocean.cs b/src/Tiles/Ocean.cs
new file mode 100644
index 00000000..b5803322
--- /dev/null
+++ b/src/Tiles/Ocean.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Ocean : BaseTile
+ {
+ public Ocean(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Ocean;
+ Name = "Ocean";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Plains.cs b/src/Tiles/Plains.cs
new file mode 100644
index 00000000..1d2bc5fc
--- /dev/null
+++ b/src/Tiles/Plains.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Plains : BaseTile
+ {
+ public Plains(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Plains;
+ Name = "Plains";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/River.cs b/src/Tiles/River.cs
new file mode 100644
index 00000000..9abe5afc
--- /dev/null
+++ b/src/Tiles/River.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class River : BaseTile
+ {
+ public River(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.River;
+ Name = "River";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Swamp.cs b/src/Tiles/Swamp.cs
new file mode 100644
index 00000000..3d0e58e2
--- /dev/null
+++ b/src/Tiles/Swamp.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Swamp : BaseTile
+ {
+ public Swamp(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Swamp;
+ Name = "Swamp";
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Tiles/Tundra.cs b/src/Tiles/Tundra.cs
new file mode 100644
index 00000000..9b0775f7
--- /dev/null
+++ b/src/Tiles/Tundra.cs
@@ -0,0 +1,23 @@
+// CivOne
+//
+// To the extent possible under law, the person who associated CC0 with
+// CivOne has waived all copyright and related or neighboring rights
+// to CivOne.
+//
+// You should have received a copy of the CC0 legalcode along with this
+// work. If not, see .
+
+using CivOne.Enums;
+using CivOne.Templates;
+
+namespace CivOne.Tiles
+{
+ internal class Tundra : BaseTile
+ {
+ public Tundra(int x, int y, bool special) : base(x, y, special)
+ {
+ Type = Terrain.Tundra;
+ Name = "Tundra";
+ }
+ }
+}
\ No newline at end of file