diff --git a/game/modules/tome/data/general/npcs/orc-vor.lua b/game/modules/tome/data/general/npcs/orc-vor.lua
new file mode 100644
index 0000000000000000000000000000000000000000..e68ba75ec73b48d8fb879a2d08eae385844e5836
--- /dev/null
+++ b/game/modules/tome/data/general/npcs/orc-vor.lua
@@ -0,0 +1,140 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+local Talents = require("engine.interface.ActorTalents")
+
+newEntity{
+	define_as = "BASE_NPC_ORC_VOR",
+	type = "humanoid", subtype = "orc",
+	display = "o", color=colors.RED,
+	faction = "orc-pride",
+
+	combat = { dam=resolvers.rngavg(5,12), atk=2, apr=6, physspeed=2 },
+
+	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 },
+	resolvers.drops{chance=20, nb=1, {} },
+	resolvers.drops{chance=10, nb=1, {type="money"} },
+	infravision = 20,
+	lite = 2,
+
+	max_mana = 400,
+	life_rating = 11,
+	rank = 2,
+	size_category = 3,
+
+	open_door = true,
+
+	autolevel = "caster",
+	ai = "dumb_talented_simple", ai_state = { talent_in=1, },
+	energy = { mod=1 },
+	stats = { str=10, dex=8, mag=20, con=16 },
+}
+
+newEntity{ base = "BASE_NPC_ORC_VOR",
+	name = "orc pyromancer", color=colors.RED,
+	desc = [[An orc dressed in bright red robes. He mumbles is a harsh tongue.]],
+	level_range = {35, nil}, exp_worth = 1,
+	rarity = 6,
+	max_life = resolvers.rngavg(100,110), life_rating = 7,
+	resolvers.equip{
+		{type="weapon", subtype="staff", autoreq=true},
+		{type="armor", subtype="cloth", autoreq=true},
+	},
+	combat_armor = 0, combat_def = 5,
+
+	resolvers.talents{
+		[Talents.T_FLAME]=4,
+		[Talents.T_FLAMESHOCK]=3,
+		[Talents.T_FIREFLASH]=3,
+		[Talents.T_SPELL_SHAPING]=3,
+		[Talents.T_PHASE_DOOR]=1,
+	},
+}
+
+newEntity{ base = "BASE_NPC_ORC_VOR",
+	name = "orc high pyromancer", color=colors.LIGHT_RED,
+	desc = [[An orc dressed in bright red robes. He mumbles is a harsh tongue.]],
+	level_range = {37, nil}, exp_worth = 1,
+	rarity = 10,
+	max_life = resolvers.rngavg(100,110), life_rating = 10,
+	resolvers.equip{
+		{type="weapon", subtype="staff", autoreq=true},
+		{type="armor", subtype="cloth", autoreq=true},
+	},
+	combat_armor = 0, combat_def = 5,
+	rank = 3,
+
+	resolvers.talents{
+		[Talents.T_FLAME]=5,
+		[Talents.T_FLAMESHOCK]=5,
+		[Talents.T_FIREFLASH]=5,
+		[Talents.T_INFERNO]=5,
+		[Talents.T_BLASTWAVE]=5,
+		[Talents.T_DANCING_FIRES]=5,
+		[Talents.T_COMBUST]=5,
+		[Talents.T_SPELL_SHAPING]=5,
+		[Talents.T_ESSENCE_OF_SPEED]=1,
+	},
+}
+
+newEntity{ base = "BASE_NPC_ORC_VOR",
+	name = "orc cryomancer", color=colors.BLUE,
+	desc = [[An orc dressed in cold blue robes. He mumbles is a harsh tongue.]],
+	level_range = {35, nil}, exp_worth = 1,
+	rarity = 7,
+	max_life = resolvers.rngavg(100,110), life_rating = 10,
+	resolvers.equip{
+		{type="weapon", subtype="staff", autoreq=true},
+		{type="armor", subtype="cloth", autoreq=true},
+	},
+	combat_armor = 0, combat_def = 5,
+
+	resolvers.talents{
+		[Talents.T_FREEZE]=4,
+		[Talents.T_ICE_STORM]=5,
+		[Talents.T_TIDAL_WAVE]=3,
+		[Talents.T_SPELL_SHAPING]=3,
+		[Talents.T_PHASE_DOOR]=1,
+	},
+}
+
+newEntity{ base = "BASE_NPC_ORC_VOR",
+	name = "orc high cryomancer", color=colors.LIGHT_BLUE,
+	desc = [[An orc dressed in cold blue robes. He mumbles is a harsh tongue.]],
+	level_range = {37, nil}, exp_worth = 1,
+	rarity = 10,
+	max_life = resolvers.rngavg(100,110), life_rating = 10,
+	resolvers.equip{
+		{type="weapon", subtype="staff", autoreq=true},
+		{type="armor", subtype="cloth", autoreq=true},
+	},
+	combat_armor = 0, combat_def = 5,
+	rank = 3,
+
+	resolvers.talents{
+		[Talents.T_FREEZE]=5,
+		[Talents.T_ICE_STORM]=5,
+		[Talents.T_TIDAL_WAVE]=5,
+		[Talents.T_ICE_SHARDS]=5,
+		[Talents.T_FROZEN_GROUND]=5,
+		[Talents.T_SPELL_SHAPING]=5,
+		[Talents.T_PHASE_DOOR]=1,
+		[Talents.T_ESSENCE_OF_SPEED]=1,
+	},
+}
diff --git a/game/modules/tome/data/talents/spells/spells.lua b/game/modules/tome/data/talents/spells/spells.lua
index 50a7eb2c122262078e2f55082bae2b6db078e5ea..a647eb7e0be025513945f93e373b043031823f02 100644
--- a/game/modules/tome/data/talents/spells/spells.lua
+++ b/game/modules/tome/data/talents/spells/spells.lua
@@ -19,10 +19,17 @@
 
 -- Archmage spells
 newTalentType{ type="spell/arcane", name = "arcane", description = "Arcane manipulates the raw magic energies to shape them into both offensive and defensive spells." }
+
+-- Elemental spells
 newTalentType{ type="spell/fire", name = "fire", description = "Harness the power of fire to burn your foes to ashes." }
+newTalentType{ type="spell/wildfire", name = "wildfire", description = "Harness the power of wildfire to burn your foes to ashes." }
 newTalentType{ type="spell/earth", name = "earth", description = "Harness the power of the earth to protect and destroy." }
 newTalentType{ type="spell/water", name = "water", description = "Harness the power of water to drown your foes." }
+newTalentType{ type="spell/ice", name = "ice", description = "Harness the power of ice to freeze and shatter your foes." }
 newTalentType{ type="spell/air", name = "air", description = "Harness the power of the air to fry your foes." }
+newTalentType{ type="spell/storm", name = "storm", description = "Harness the power of the storm to incinerate your foes." }
+
+-- Various other magic schools
 newTalentType{ type="spell/conveyance", name = "conveyance", generic = true, description = "Conveyance is the school of travel. It allows you to travel faster and to track others." }
 newTalentType{ type="spell/nature", name = "nature", generic = true, description = "Summons the power of nature to rejuvenate yourself and the world." }
 newTalentType{ type="spell/meta", name = "meta", description = "Meta spells alter the working of magic itself." }
@@ -66,9 +73,12 @@ spells_req5 = {
 
 load("/data/talents/spells/arcane.lua")
 load("/data/talents/spells/fire.lua")
+load("/data/talents/spells/wildfire.lua")
 load("/data/talents/spells/earth.lua")
 load("/data/talents/spells/water.lua")
+load("/data/talents/spells/ice.lua")
 load("/data/talents/spells/air.lua")
+load("/data/talents/spells/storm.lua")
 load("/data/talents/spells/conveyance.lua")
 load("/data/talents/spells/nature.lua")
 load("/data/talents/spells/meta.lua")
diff --git a/game/modules/tome/data/talents/spells/wildfire.lua b/game/modules/tome/data/talents/spells/wildfire.lua
new file mode 100644
index 0000000000000000000000000000000000000000..c3a923e6219fc60cf7b03405db4a4f2f3c94424a
--- /dev/null
+++ b/game/modules/tome/data/talents/spells/wildfire.lua
@@ -0,0 +1,106 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+newTalent{
+	name = "Blastwave",
+	type = {"spell/wildfire",1},
+	require = spells_req1,
+	points = 5,
+	mana = 12,
+	cooldown = 3,
+	tactical = {
+		ATTACK = 10,
+	},
+	range = 20,
+	reflectable = true,
+	action = function(self, t)
+		game:playSoundNear(self, "talents/fire")
+		return true
+	end,
+	info = function(self, t)
+		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
+		The damage will increase with the Magic stat]]):format(self:combatTalentSpellDamage(t, 25, 290))
+	end,
+}
+
+newTalent{
+	name = "Dancing Fires",
+	type = {"spell/wildfire",2},
+	require = spells_req2,
+	points = 5,
+	mana = 12,
+	cooldown = 3,
+	tactical = {
+		ATTACK = 10,
+	},
+	range = 20,
+	reflectable = true,
+	action = function(self, t)
+		game:playSoundNear(self, "talents/fire")
+		return true
+	end,
+	info = function(self, t)
+		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
+		The damage will increase with the Magic stat]]):format(self:combatTalentSpellDamage(t, 25, 290))
+	end,
+}
+
+newTalent{
+	name = "Combust",
+	type = {"spell/wildfire",3},
+	require = spells_req3,
+	points = 5,
+	mana = 12,
+	cooldown = 3,
+	tactical = {
+		ATTACK = 10,
+	},
+	range = 20,
+	reflectable = true,
+	action = function(self, t)
+		game:playSoundNear(self, "talents/fire")
+		return true
+	end,
+	info = function(self, t)
+		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
+		The damage will increase with the Magic stat]]):format(self:combatTalentSpellDamage(t, 25, 290))
+	end,
+}
+
+newTalent{
+	name = "Wildfire",
+	type = {"spell/wildfire",4},
+	require = spells_req4,
+	points = 5,
+	mana = 12,
+	cooldown = 3,
+	tactical = {
+		ATTACK = 10,
+	},
+	range = 20,
+	reflectable = true,
+	action = function(self, t)
+		game:playSoundNear(self, "talents/fire")
+		return true
+	end,
+	info = function(self, t)
+		return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns.
+		The damage will increase with the Magic stat]]):format(self:combatTalentSpellDamage(t, 25, 290))
+	end,
+}
diff --git a/game/modules/tome/data/zones/rak-shor-pride/npcs.lua b/game/modules/tome/data/zones/rak-shor-pride/npcs.lua
index 62e9151169ac98c182961dd12671f8022624912d..05f6c747c0ed9bbe238497682d56833acfced8e2 100644
--- a/game/modules/tome/data/zones/rak-shor-pride/npcs.lua
+++ b/game/modules/tome/data/zones/rak-shor-pride/npcs.lua
@@ -44,7 +44,6 @@ newEntity{ base="BASE_NPC_ORC_RAK_SHOR", define_as = "RAK_SHOR",
 	ai = "dumb_talented_simple", ai_state = { talent_in=2, ai_move="move_astar", },
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
-	resolvers.drops{chance=100, nb=3, {ego_chance=100} },
 
 	resolvers.equip{
 		{type="weapon", subtype="staff", ego_change=100, autoreq=true},
diff --git a/game/modules/tome/data/zones/vor-pride/grids.lua b/game/modules/tome/data/zones/vor-pride/grids.lua
new file mode 100644
index 0000000000000000000000000000000000000000..5451b7324d91e2649cf656ba29cdbab8d3c29d9f
--- /dev/null
+++ b/game/modules/tome/data/zones/vor-pride/grids.lua
@@ -0,0 +1,22 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+load("/data/general/grids/basic.lua")
+load("/data/general/grids/sand.lua")
+load("/data/general/grids/water.lua")
diff --git a/game/modules/tome/data/zones/vor-pride/npcs.lua b/game/modules/tome/data/zones/vor-pride/npcs.lua
new file mode 100644
index 0000000000000000000000000000000000000000..0bf4c5b7fda5da72e4bf2dedb6a9d5ea4853ba71
--- /dev/null
+++ b/game/modules/tome/data/zones/vor-pride/npcs.lua
@@ -0,0 +1,78 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+load("/data/general/npcs/orc.lua", function(e) if e.rarity then e.rarity = e.rarity * 3 end e.make_escort = nil end)
+load("/data/general/npcs/orc-vor.lua")
+
+local Talents = require("engine.interface.ActorTalents")
+
+newEntity{ base="BASE_NPC_ORC_VOR", define_as = "VOR",
+	name = "Vor, Grand Geomancer of the Pride", color=colors.VIOLET, unique = true,
+	desc = [[An old orc, wearing multi-colored robes. Ice shards fly around him, leaving a trail of fire and lightning bursts.]],
+	level_range = {40, 50}, exp_worth = 2,
+	rank = 4,
+	max_life = 250, life_rating = 19, fixed_rating = true,
+	infravision = 20,
+	stats = { str=12, dex=10, cun=12, mag=21, con=14 },
+	move_others=true,
+
+	combat_armor = 10, combat_def = 10,
+
+	open_door = true,
+
+	autolevel = "caster",
+	ai = "dumb_talented_simple", ai_state = { talent_in=1, ai_move="move_astar", },
+
+	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
+
+	resolvers.equip{
+		{type="weapon", subtype="staff", ego_change=100, autoreq=true},
+		{type="armor", subtype="cloth", ego_change=100, autoreq=true},
+	},
+	resolvers.drops{chance=100, nb=5, {ego_chance=100} },
+
+	resolvers.talents{
+		[Talents.T_FLAME]=5,
+		[Talents.T_FLAMESHOCK]=5,
+		[Talents.T_FIREFLASH]=5,
+		[Talents.T_INFERNO]=5,
+		[Talents.T_BLASTWAVE]=5,
+		[Talents.T_DANCING_FIRES]=5,
+		[Talents.T_COMBUST]=5,
+
+		[Talents.T_FREEZE]=5,
+		[Talents.T_ICE_STORM]=5,
+		[Talents.T_TIDAL_WAVE]=5,
+		[Talents.T_ICE_SHARDS]=5,
+		[Talents.T_FROZEN_GROUND]=5,
+
+		[Talents.T_LIGHTNING]=5,
+		[Talents.T_CHAIN_LIGHTNING]=5,
+
+		[Talents.T_SPELL_SHAPING]=5,
+		[Talents.T_ESSENCE_OF_SPEED]=1,
+	},
+
+	on_die = function(self, who)
+		game.player:resolveSource():setQuestStatus("orc-pride", engine.Quest.COMPLETED, "rak-shor")
+		if not game.player:hasQuest("pre-mount-doom") then
+			game.player:grantQuest("pre-mount-doom")
+		end
+	end,
+}
diff --git a/game/modules/tome/data/zones/vor-pride/objects.lua b/game/modules/tome/data/zones/vor-pride/objects.lua
new file mode 100644
index 0000000000000000000000000000000000000000..fa2a248859fd2853ba8bfb925d2ad8fda1c2e134
--- /dev/null
+++ b/game/modules/tome/data/zones/vor-pride/objects.lua
@@ -0,0 +1,38 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+load("/data/general/objects/objects.lua")
+
+local Stats = require"engine.interface.ActorStats"
+
+newEntity{ base = "BASE_CLOTH_ARMOR",
+	define_as = "BLACK_ROBE", rarity=false,
+	name = "Black Robe", unique=true,
+	unided_name = "black robe", color=colors.DARK_GREY,
+	desc = [[A silk robe, darker than the darkest night sky, it radiates power.]],
+	cost = 500,
+	wielder = {
+		inc_stats = { [Stats.STAT_MAG] = 5, [Stats.STAT_WIL] = 4, [Stats.STAT_CUN] = 3 },
+		see_invisible = 10,
+		blind_immune = 1,
+		combat_spellpower = 10,
+		combat_dam = 10,
+		combat_def = 6,
+	},
+}
diff --git a/game/modules/tome/data/zones/vor-pride/zone.lua b/game/modules/tome/data/zones/vor-pride/zone.lua
new file mode 100644
index 0000000000000000000000000000000000000000..4a78282de2ab9917690a50b7890b3d93c9d8cd8d
--- /dev/null
+++ b/game/modules/tome/data/zones/vor-pride/zone.lua
@@ -0,0 +1,66 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+return {
+	name = "Vor Pride",
+	level_range = {35, 40},
+	level_scheme = "player",
+	max_level = 5,
+	decay = {300, 800},
+	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
+	width = 50, height = 50,
+	persistent = "zone",
+--	all_remembered = true,
+	all_lited = true,
+	ambiant_music = "Bazaar of Tal-Mashad.ogg",
+	generator =  {
+		map = {
+			class = "engine.generator.map.Town",
+			building_chance = 70,
+			max_building_w = 8, max_building_h = 8,
+			edge_entrances = {6,4},
+			floor = "FLOOR",
+			external_floor = "SAND",
+			wall = "WALL",
+			up = "UP",
+			down = "DOWN",
+			door = "DOOR",
+		},
+		actor = {
+			class = "engine.generator.actor.Random",
+			nb_npc = {20, 30},
+			guardian = "VOR",
+		},
+		object = {
+			class = "engine.generator.object.Random",
+			nb_object = {3, 6},
+		},
+	},
+	post_process = function(level)
+		for uid, e in pairs(level.entities) do e.faction="orc-pride" end
+	end,
+	levels =
+	{
+		[1] = {
+			generator = { map = {
+				up = "UP_WILDERNESS_FAR_EAST",
+			}, },
+		},
+	},
+}
diff --git a/ideas/spells.ods b/ideas/spells.ods
index b9f96f06cedcec3b53a70c5b6bda8f4b5f4bc63c..cbb44d0ad3e8c04e03c027502aa913df90d59d02 100644
Binary files a/ideas/spells.ods and b/ideas/spells.ods differ