diff --git a/game/engines/default/engine/ai/simple.lua b/game/engines/default/engine/ai/simple.lua
index 6a18390b340ec498598b346187b049660ef2ccae..bf8ddaef7b5553988a0d110863b99fff9ac6d1c4 100644
--- a/game/engines/default/engine/ai/simple.lua
+++ b/game/engines/default/engine/ai/simple.lua
@@ -24,12 +24,13 @@ local Astar = require "engine.Astar"
 
 newAI("move_simple", function(self)
 	if self.ai_target.actor then
-		local tx, ty
-		-- Move towards the last seen position if we have one
-		if self.ai_state.target_last_seen and type(self.ai_state.target_last_seen) == "table" then
-			tx, ty = self.ai_state.target_last_seen.x, self.ai_state.target_last_seen.y
-		else
-			tx, ty = self:aiSeeTargetPos(self.ai_target.actor)
+		local tx, ty = self:aiSeeTargetPos(self.ai_target.actor)
+
+		if not self:hasLOS(self.ai_target.actor.x, self.ai_target.actor.y) then
+			-- Move towards the last seen position if we have one
+			if self.ai_state.target_last_seen and type(self.ai_state.target_last_seen) == "table" then
+				tx, ty = self.ai_state.target_last_seen.x, self.ai_state.target_last_seen.y
+			end
 		end
 		return self:moveDirection(tx, ty)
 	end
diff --git a/game/modules/tome/class/NicerTiles.lua b/game/modules/tome/class/NicerTiles.lua
index 51de7cd06f747e9e8ecf1e22027916ce556263cc..cbb574554db6189ce69f4ce06479dcc6a116ae92 100644
--- a/game/modules/tome/class/NicerTiles.lua
+++ b/game/modules/tome/class/NicerTiles.lua
@@ -350,20 +350,20 @@ end
 
 local defs = {
 grass = { method="borders", type="grass", forbid={lava=true, rock=true},
-	default8={add_mos={{image="terrain/grass/grass_2_%02d.png", display_y=-1}}, min=1, max=5},
-	default2={add_mos={{image="terrain/grass/grass_8_%02d.png", display_y=1}}, min=1, max=5},
-	default4={add_mos={{image="terrain/grass/grass_6_%02d.png", display_x=-1}}, min=1, max=5},
-	default6={add_mos={{image="terrain/grass/grass_4_%02d.png", display_x=1}}, min=1, max=4},
-
-	default1={add_mos={{image="terrain/grass/grass_9_%02d.png", display_x=-1, display_y=1}}, min=1, max=3},
-	default3={add_mos={{image="terrain/grass/grass_7_%02d.png", display_x=1, display_y=1}}, min=1, max=3},
-	default7={add_mos={{image="terrain/grass/grass_3_%02d.png", display_x=-1, display_y=-1}}, min=1, max=3},
-	default9={add_mos={{image="terrain/grass/grass_1_%02d.png", display_x=1, display_y=-1}}, min=1, max=3},
-
-	default1i={add_mos={{image="terrain/grass/grass_inner_1_%02d.png", display_x=-1, display_y=1}}, min=1, max=3},
-	default3i={add_mos={{image="terrain/grass/grass_inner_3_%02d.png", display_x=1, display_y=1}}, min=1, max=3},
-	default7i={add_mos={{image="terrain/grass/grass_inner_7_%02d.png", display_x=-1, display_y=-1}}, min=1, max=3},
-	default9i={add_mos={{image="terrain/grass/grass_inner_9_%02d.png", display_x=1, display_y=-1}}, min=1, max=3},
+	default8={add_mos={{image="terrain/grass/grass_2_%02d.png", display_y=-1}}, min=1, max=2},
+	default2={add_mos={{image="terrain/grass/grass_8_%02d.png", display_y=1}}, min=1, max=2},
+	default4={add_mos={{image="terrain/grass/grass_6_%02d.png", display_x=-1}}, min=1, max=2},
+	default6={add_mos={{image="terrain/grass/grass_4_%02d.png", display_x=1}}, min=1, max=2},
+
+	default1={add_mos={{image="terrain/grass/grass_9_%02d.png", display_x=-1, display_y=1}}, min=1, max=1},
+	default3={add_mos={{image="terrain/grass/grass_7_%02d.png", display_x=1, display_y=1}}, min=1, max=1},
+	default7={add_mos={{image="terrain/grass/grass_3_%02d.png", display_x=-1, display_y=-1}}, min=1, max=1},
+	default9={add_mos={{image="terrain/grass/grass_1_%02d.png", display_x=1, display_y=-1}}, min=1, max=1},
+
+	default1i={add_mos={{image="terrain/grass/grass_inner_1_%02d.png", display_x=-1, display_y=1}}, min=1, max=2},
+	default3i={add_mos={{image="terrain/grass/grass_inner_3_%02d.png", display_x=1, display_y=1}}, min=1, max=2},
+	default7i={add_mos={{image="terrain/grass/grass_inner_7_%02d.png", display_x=-1, display_y=-1}}, min=1, max=2},
+	default9i={add_mos={{image="terrain/grass/grass_inner_9_%02d.png", display_x=1, display_y=-1}}, min=1, max=2},
 
 	water8={add_mos={{image="terrain/grass/grass_2_%02d.png", display_y=-1}}, min=1, max=1},
 	water2={add_mos={{image="terrain/grass/grass_8_%02d.png", display_y=1}}, min=1, max=1},
diff --git a/game/modules/tome/data/general/grids/forest.lua b/game/modules/tome/data/general/grids/forest.lua
index caa3a0177c5abe985ea059dd5eab933582bbe538..a70ad48b7320372277dd5e51ab2da18c51e42ffd 100644
--- a/game/modules/tome/data/general/grids/forest.lua
+++ b/game/modules/tome/data/general/grids/forest.lua
@@ -25,10 +25,10 @@ newEntity{
 	name = "grass", image = "terrain/grass.png",
 	display = '.', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
 	grow = "TREE",
-	nice_tiler = { method="replace", base={"GRASS_PATCH", 70, 1, 12}},
+	nice_tiler = { method="replace", base={"GRASS_PATCH", 100, 1, 14}},
 	nice_editer = grass_editer,
 }
-for i = 1, 12 do newEntity{ base = "GRASS", define_as = "GRASS_PATCH"..i, image = "terrain/grass"..(i<7 and "" or "2")..".png" } end
+for i = 1, 14 do newEntity{ base = "GRASS", define_as = "GRASS_PATCH"..i, image = ("terrain/grass/grass_main_%02d.png"):format(i) } end
 
 newEntity{
 	define_as = "TREE",
@@ -44,7 +44,7 @@ newEntity{
 	nice_tiler = { method="replace", base={"TREE", 100, 1, 30}},
 	nice_editer = grass_editer,
 }
-for i = 1, 30 do newEntity{ base="TREE", define_as = "TREE"..i, image = "terrain/grass.png", add_displays = class:makeTrees("terrain/tree_alpha", 13, 9)} end
+for i = 1, 30 do newEntity{ base="TREE", define_as = "TREE"..i, image = "terrain/grass.png", add_displays = class:makeTrees("terrain/tree_alpha", 14, 9)} end
 
 newEntity{
 	define_as = "HARDTREE",
@@ -60,7 +60,7 @@ newEntity{
 	nice_tiler = { method="replace", base={"HARDTREE", 100, 1, 30}},
 	nice_editer = grass_editer,
 }
-for i = 1, 30 do newEntity{ base="HARDTREE", define_as = "HARDTREE"..i, image = "terrain/grass.png", add_displays = class:makeTrees("terrain/tree_alpha", 13, 9) } end
+for i = 1, 30 do newEntity{ base="HARDTREE", define_as = "HARDTREE"..i, image = "terrain/grass.png", add_displays = class:makeTrees("terrain/tree_alpha", 14, 9) } end
 
 newEntity{
 	define_as = "FLOWER",
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_1_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_1_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..e33854136e8c84827678794a7c7891e9663300fb
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_1_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..276ebb8697cf4b4f947e66a09e5ac6f1a414950f
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..a017483766aebb611844987f077982fd197617c2
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_2_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_3_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_3_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..75c4a9c7dc91ea4cc182cf29c9826d1a39a3e7c4
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_3_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..660b4c605b3b74daf408e73ec4d1e20eef046f05
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..48f70758fb9e84115ecb6da7eb9ce6b5978aab91
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_4_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d2879e22324180f9437c28d0c463e559ff00c18
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..4723d272dc602d031d761326cc9ac9f2b39ab314
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_6_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_7_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_7_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4946b2131e21db9267df3ad0dd303afc141b322
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_7_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd7baa808541734aa9190dcab45d09c8e013cba5
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2820b53785a5f22a5785c71d5696604f5d30233
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_8_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_9_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_9_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7a9568dff632ae95d55449b22f3834a4a32ee37
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_9_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..0172704dd9435e8eaf41d072851f1739c70f11ea
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..012ff81f6244059b37be2eded58277c308feca6d
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_1_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e3d521baf124e3529b7f15f81257f3e1f0d810c
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..d85ed0f5dc55f7adc7ff1a10555f328e4375fd4c
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_3_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..e797aa19afdd205193859f950215175bcd6afac3
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9e806eceaa936c6a49aff10c977c60bb72aa825
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_7_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..b590b34c5a9fd6c7e69b8c4a022e09e4648035e4
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..e22894ec745428676b153c319f1ec21c63947661
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_inner_9_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_01.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_01.png
new file mode 100644
index 0000000000000000000000000000000000000000..7902643691d825a225ff2c88b1130f4098724c28
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_01.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_02.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_02.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a0e93a527d64b385ccbe018b5ee4d54a1a81ea2
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_02.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_03.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_03.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e8faa2794081e603550128be335da991ae92ce2
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_03.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_04.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_04.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb79e2cf8360780800a7c8cc6c3e4d6950947783
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_04.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_05.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_05.png
new file mode 100644
index 0000000000000000000000000000000000000000..22dc82254bfa57703a4f05f461abd10d14cf3711
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_05.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_06.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_06.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa233b3ac23fcd1ccff7015a2602ebeda935f307
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_06.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_07.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_07.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5dc72d09bbab45a52e93e13dff67e80a73cc043
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_07.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_08.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_08.png
new file mode 100644
index 0000000000000000000000000000000000000000..547ffc94bed2cab96c6d4b960d1aba6cd8f4b1bb
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_08.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_09.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_09.png
new file mode 100644
index 0000000000000000000000000000000000000000..da5808196e89070acc9baa0d6c074d7aa5cecf70
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_09.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_10.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_10.png
new file mode 100644
index 0000000000000000000000000000000000000000..73b72406c23f7cc14ea960b6563d20374a4cd7b2
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_10.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_11.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_11.png
new file mode 100644
index 0000000000000000000000000000000000000000..171b073e7e3ee621b09d0abaa8795a78ad6bf98a
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_11.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_12.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_12.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac7f6c9a1ffbb04a39d9c367a07a306edb9f6379
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_12.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_13.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_13.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce36b71c828dc00fbd6c60dc3a70733cd8d7f1ac
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_13.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_14.png b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_14.png
new file mode 100644
index 0000000000000000000000000000000000000000..03706494495dc300aea55e31d5cb6de7bc414a6c
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/grass/grass_main_14.png differ
diff --git a/game/modules/tome/data/gfx/shockbolt/terrain/tree_alpha14.png b/game/modules/tome/data/gfx/shockbolt/terrain/tree_alpha14.png
new file mode 100644
index 0000000000000000000000000000000000000000..21faeee50061f22993f6205e37b0e6ebac6bf5eb
Binary files /dev/null and b/game/modules/tome/data/gfx/shockbolt/terrain/tree_alpha14.png differ