From 366acc70ddcb7f5a5a5554cfb7799a3a378481ab Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Thu, 9 Apr 2020 16:53:18 +0200
Subject: [PATCH] Archmage's Wildfire, Storm, Ice and Stone trees are now
 available without an unlock (they still require a category point)

---
 game/modules/tome/class/Game.lua              |  4 ----
 game/modules/tome/data/achievements/kills.lua |  2 +-
 .../tome/data/achievements/talents.lua        | 20 -------------------
 game/modules/tome/data/birth/classes/mage.lua | 10 ++++------
 .../tome/data/birth/classes/warrior.lua       |  4 +---
 game/modules/tome/data/general/npcs/xorn.lua  | 12 +----------
 .../tome/data/quests/lightning-overload.lua   |  1 -
 7 files changed, 7 insertions(+), 46 deletions(-)

diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 5181e16040..d6d8f443da 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -2901,10 +2901,6 @@ unlocks_list = {
 	race_ogre = "Race: Ogre",
 
 	mage = "Class: Archmage",
-	mage_tempest = "Class tree: Storm",
-	mage_geomancer = "Class tree: Stone",
-	mage_pyromancer = "Class tree: Wildfire",
-	mage_cryomancer = "Class tree: Uttercold",
 	mage_necromancer = "Class: Necromancer",
 	cosmetic_class_alchemist_drolem = "Class feature: Alchemist's Drolem",
 
diff --git a/game/modules/tome/data/achievements/kills.lua b/game/modules/tome/data/achievements/kills.lua
index a99b9495aa..b4a382fa90 100644
--- a/game/modules/tome/data/achievements/kills.lua
+++ b/game/modules/tome/data/achievements/kills.lua
@@ -130,7 +130,7 @@ newAchievement{
 newAchievement{
 	name = "Earth Master", id = "GEOMANCER",
 	show = "name",
-	desc = _t[[Killed Harkor'Zun and unlocked Stone magic.]],
+	desc = _t[[Killed Harkor'Zun.]],
 	mode = "player",
 }
 
diff --git a/game/modules/tome/data/achievements/talents.lua b/game/modules/tome/data/achievements/talents.lua
index 3ee8097382..bf914ad084 100644
--- a/game/modules/tome/data/achievements/talents.lua
+++ b/game/modules/tome/data/achievements/talents.lua
@@ -27,16 +27,6 @@ newAchievement{
 		return self.nb > 1000000 and profile.mod.allow_build.mage
 	end,
 	track = function(self) return tstring{tostring(math.floor(self.nb or 0))," / 1000000"} end,
-	on_gain = function(_, src, personal)
-		game:setAllowedBuild("mage_pyromancer", true)
-		local p = game.party:findMember{main=true}
-		if p.descriptor.subclass == "Archmage"  then
-			if p:knowTalentType("spell/wildfire") == nil then
-				p:learnTalentType("spell/wildfire", false)
-				p:setTalentTypeMastery("spell/wildfire", 1.3)
-			end
-		end
-	end,
 }
 newAchievement{
 	name = "Cryomancer",
@@ -48,16 +38,6 @@ newAchievement{
 		return self.nb > 1000000 and profile.mod.allow_build.mage
 	end,
 	track = function(self) return tstring{tostring(math.floor(self.nb or 0))," / 1000000"} end,
-	on_gain = function(_, src, personal)
-		game:setAllowedBuild("mage_cryomancer", true)
-		local p = game.party:findMember{main=true}
-		if p.descriptor.subclass == "Archmage"  then
-			if p:knowTalentType("spell/ice") == nil then
-				p:learnTalentType("spell/ice", false)
-				p:setTalentTypeMastery("spell/ice", 1.3)
-			end
-		end
-	end,
 }
 newAchievement{
 	name = "Lichform",
diff --git a/game/modules/tome/data/birth/classes/mage.lua b/game/modules/tome/data/birth/classes/mage.lua
index c7448cca45..e59263825c 100644
--- a/game/modules/tome/data/birth/classes/mage.lua
+++ b/game/modules/tome/data/birth/classes/mage.lua
@@ -188,9 +188,13 @@ newBirthDescriptor{
 		["spell/arcane"]={true, 0.3},
 		["spell/aether"]={false, 0.3},
 		["spell/fire"]={true, 0.3},
+		["spell/wildfire"]={false, 0.3},
 		["spell/earth"]={true, 0.3},
+		["spell/stone"]={false, 0.3},
 		["spell/water"]={true, 0.3},
+		["spell/ice"]={false, 0.3},
 		["spell/air"]={true, 0.3},
+		["spell/storm"]={false, 0.3},
 		["spell/phantasm"]={true, 0.3},
 		["spell/temporal"]={true, 0.3},
 		["spell/meta"]={false, 0.3},
@@ -199,12 +203,6 @@ newBirthDescriptor{
 		["spell/aegis"]={true, 0.3},
 		["cunning/survival"]={false, 0.0},
 	},
-	unlockable_talents_types = {
-		["spell/wildfire"]={false, 0.3, "mage_pyromancer"},
-		["spell/ice"]={false, 0.3, "mage_cryomancer"},
-		["spell/stone"]={false, 0.3, "mage_geomancer"},
-		["spell/storm"]={false, 0.3, "mage_tempest"},
-	},
 	talents = {
 		[ActorTalents.T_MANATHRUST] = 1,
 		[ActorTalents.T_FLAME] = 1,
diff --git a/game/modules/tome/data/birth/classes/warrior.lua b/game/modules/tome/data/birth/classes/warrior.lua
index 39e5c8d52c..ffd80486f6 100644
--- a/game/modules/tome/data/birth/classes/warrior.lua
+++ b/game/modules/tome/data/birth/classes/warrior.lua
@@ -274,6 +274,7 @@ newBirthDescriptor{
 		["spell/fire"]={true, 0.3},
 		["spell/air"]={true, 0.3},
 		["spell/earth"]={true, 0.3},
+		["spell/stone"]={false, 0.3},
 		["spell/conveyance"]={true, 0.0},
 		["spell/aegis"]={true, 0.0},
 		["spell/enhancement"]={true, 0.3},
@@ -288,9 +289,6 @@ newBirthDescriptor{
 		["cunning/survival"]={true, 0.0},
 		["cunning/dirty"]={true, 0.3},
 	},
-	unlockable_talents_types = {
-		["spell/stone"]={false, 0.3, "mage_geomancer"},
-	},
 	birth_example_particles = {
 		function(actor) if core.shader.active(4) then
 			local slow = rng.percent(50)
diff --git a/game/modules/tome/data/general/npcs/xorn.lua b/game/modules/tome/data/general/npcs/xorn.lua
index b78a540d8c..637045d486 100644
--- a/game/modules/tome/data/general/npcs/xorn.lua
+++ b/game/modules/tome/data/general/npcs/xorn.lua
@@ -204,16 +204,6 @@ newEntity{ base = "BASE_NPC_XORN", define_as = "FULL_HARKOR_ZUN",
 	resolvers.sustains_at_birth(),
 
 	on_die = function(self)
-		if profile.mod.allow_build.mage then
-			game:setAllowedBuild("mage_geomancer", true)
-			world:gainAchievement("GEOMANCER", game.player)
-			local p = game.party:findMember{main=true}
-			if p.descriptor.subclass == "Archmage" or p.descriptor.subclass == "Arcane Blade" then
-				if p:knowTalentType("spell/stone") == nil then
-					p:learnTalentType("spell/stone", false)
-					p:setTalentTypeMastery("spell/stone", p.descriptor.subclass == "Archmage" and 1.3 or 1.1)
-				end
-			end
-		end
+		world:gainAchievement("GEOMANCER", game.player)
 	end,
 }
diff --git a/game/modules/tome/data/quests/lightning-overload.lua b/game/modules/tome/data/quests/lightning-overload.lua
index d2d45bf2a6..938b7d23f6 100644
--- a/game/modules/tome/data/quests/lightning-overload.lua
+++ b/game/modules/tome/data/quests/lightning-overload.lua
@@ -60,7 +60,6 @@ end
 on_status_change = function(self, who, status, sub)
 	if self:isCompleted() then
 		who:setQuestStatus(self.id, engine.Quest.DONE)
-		game:setAllowedBuild("mage_tempest", true)
 		world:gainAchievement("EYE_OF_THE_STORM", game.player:resolveSource())
 		game:unlockBackground("derth", "Derth")
 		local p = game.party:findMember{main=true}
-- 
GitLab