From 44f1fca4a27cda2105a8e7e91be030bb9a21dc7b Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Wed, 27 Jun 2012 23:05:31 +0000
Subject: [PATCH] Summoner's summons are now based on mindpower, can crit and
 melee ones have dexterity increases for accuracy

git-svn-id: http://svn.net-core.org/repos/t-engine4@5310 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../data/talents/gifts/summon-distance.lua    | 45 ++++++++++------
 .../tome/data/talents/gifts/summon-melee.lua  | 53 ++++++++++++-------
 .../data/talents/gifts/summon-utility.lua     | 21 +++++---
 3 files changed, 80 insertions(+), 39 deletions(-)

diff --git a/game/modules/tome/data/talents/gifts/summon-distance.lua b/game/modules/tome/data/talents/gifts/summon-distance.lua
index 93b66bf17c..35eb40b44c 100644
--- a/game/modules/tome/data/talents/gifts/summon-distance.lua
+++ b/game/modules/tome/data/talents/gifts/summon-distance.lua
@@ -258,7 +258,10 @@ newTalent{
 			ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, ally_compassion=10},
 			ai_tactic = resolvers.tactic"ranged",
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { wil=15 + self:getWil() * self:getTalentLevel(t) / 5, cun=10 + self:getTalentLevel(t) * 2, con=10+ self:getTalentLevelRaw(self.T_RESILIENCE)*2, },
+			inc_stats = {
+				wil=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5),
+				cun=15 + (self:mindCrit(self:combatMindpower(1.7)) * self:getTalentLevel(t) / 5),
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 
 			max_life = resolvers.rngavg(5,10),
@@ -293,10 +296,10 @@ newTalent{
 		return ([[Summon a Ritch Flamespitter for %d turns to burn your foes to death. Flamespitters are really weak in melee and die easily, but they can burn your foes from afar.
 		It will get %d willpower, %d cunning and %d constitution.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Willpower stat will increase with your Willpower stat.]])
+		Willpower stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5,
-		10 + self:getTalentLevel(t) * 2,
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5),
+		15 + (self:combatMindpower(1.7) * self:getTalentLevel(t) / 5),
 		10 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
 	end,
 }
@@ -358,7 +361,11 @@ newTalent{
 			ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, ally_compassion=10},
 
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { wil=15 + self:getWil() * self:getTalentLevel(t) / 5, str=18, con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2},
+			inc_stats = {
+				wil=15 + (self:mindCrit(self:combatMindpower(1.6)) * self:getTalentLevel(t) / 5),
+				str=18,
+				con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 
 			max_life = resolvers.rngavg(5,10),
@@ -394,9 +401,9 @@ newTalent{
 		return ([[Summon a 3-headed Hydra for %d turns to destroy your foes. 3-headed hydras are able to breathe poison, acid and lightning.
 		It will get %d willpower and %d constitution and 18 strength.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Willpower stat will increase with your Willpower stat.]])
+		Willpower stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5,
+		15 + (self:combatMindpower(1.6) * self:getTalentLevel(t) / 5),
 		10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
 	end,
 }
@@ -453,7 +460,11 @@ newTalent{
 			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=1, ally_compassion=10},
 			ai_tactic = resolvers.tactic"ranged",
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { wil=15 + self:getWil() * self:getTalentLevel(t) / 5, cun=10 + self:getTalentLevel(t) * 2, con=10+self:getTalentLevelRaw(self.T_RESILIENCE) * 2, },
+			inc_stats = {
+				wil=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5),
+				cun=15 + (self:mindCrit(self:combatMindpower(1.6)) * self:getTalentLevel(t) / 5),
+				con=10+self:getTalentLevelRaw(self.T_RESILIENCE) * 2,
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 			never_move = 1,
 
@@ -488,10 +499,10 @@ newTalent{
 		return ([[Summon a Rimebark for %d turns to harass your foes. Rimebarks can not move but they have a permanent ice storm around them, damaging and freezing anything coming close in a radius of 3.
 		It will get %d willpower, %d cunning and %d constitution.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Willpower stat will increase with your Willpower stat.]])
+		Willpower stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5,
-		10 + self:getTalentLevel(t) * 2,
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5),
+		15 + (self:combatMindpower(1.6) * self:getTalentLevel(t) / 5),
 		10 + self:getTalentLevelRaw(self.T_RESILIENCE) * 2)
 	end,
 }
@@ -582,7 +593,11 @@ newTalent{
 			autolevel = "none",
 			ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, ally_compassion=10},
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { str=15 + self:getWil() * self:getTalentLevel(t) / 5, wil=38, con=20 + self:getTalentLevel(t) * 3 + self:getTalentLevelRaw(self.T_RESILIENCE) * 2, },
+			inc_stats = {
+				str=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5),
+				wil=38,
+				con=20 + (self:mindCrit(self:combatMindpower(1.5)) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE) * 2,
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 
 			max_life = resolvers.rngavg(100, 150),
@@ -621,9 +636,9 @@ newTalent{
 		return ([[Summon a Fire Drake for %d turns to burn and crush your foes to death. Fire Drakes are behemoths that can burn your foes from afar with their fiery breath.
 		It will get %d strength, %d constitution and 38 willpower.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Strength stat will increase with your Willpower stat.]])
+		Strength stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 2 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5,
-		20 + self:getTalentLevel(t) * 3 + self:getTalentLevelRaw(self.T_RESILIENCE) * 2)
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5),
+		20 + (self:combatMindpower(1.5) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE) * 2)
 	end,
 }
diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua
index b12fe6ec6b..5d72c9eaac 100644
--- a/game/modules/tome/data/talents/gifts/summon-melee.lua
+++ b/game/modules/tome/data/talents/gifts/summon-melee.lua
@@ -66,7 +66,11 @@ newTalent{
 			autolevel = "none",
 			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=5, },
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { str=15 + (self:getWil(130, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2), dex=10 + self:getTalentLevel(t) * 2, mag=5, con=15 + self:getTalentLevelRaw(self.T_RESILIENCE)*2 },
+			inc_stats = {
+				str=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				dex=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				con=15 + self:getTalentLevelRaw(self.T_RESILIENCE)*2
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 			global_speed_base = 1.2,
 
@@ -95,12 +99,12 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[Summon a War Hound for %d turns to attack your foes. War hounds are good basic melee attackers.
-		It will get %d strength, %d dexterity, 5 magic and %d constitution.
+		It will get %d strength, %d dexterity and %d constitution.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Strength stat will increase with your Willpower stat.]])
+		Strength stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + (self:getWil(130, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
-		10 + self:getTalentLevel(t) * 2,
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
 		15 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
 	end,
 }
@@ -153,7 +157,10 @@ newTalent{
 			name = "black jelly",
 			autolevel = "none", faction=self.faction,
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { con=10 + self:getWil() * self:getTalentLevel(t) / 5 + self:getTalentLevelRaw(self.T_RESILIENCE) * 3, str=10 + self:getTalentLevel(t) * 2 },
+			inc_stats = {
+				con=10 + (self:mindCrit(self:combatMindpower(1.8)) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE) * 3,
+				str=10 + self:getTalentLevel(t) * 2
+			},
 			resists = { [DamageType.LIGHT] = -50 },
 			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=5, },
 			level_range = {self.level, self.level}, exp_worth = 0,
@@ -196,9 +203,9 @@ newTalent{
 		return ([[Summon a Jelly for %d turns to attack your foes. Jellies do not move, but your equilibrium will be reduced by 10%% of all damage received by the jelly.
 		It will get %d constitution and %d strength.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Constitution stat will increase with your Willpower stat.]])
+		Constitution stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		10 + self:getWil() * self:getTalentLevel(t) / 5 + self:getTalentLevelRaw(self.T_RESILIENCE) * 3,
+		10 + (self:combatMindpower(1.8) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE) * 3,
 		10 + self:getTalentLevel(t) * 2)
        end,
 }
@@ -260,7 +267,11 @@ newTalent{
 			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, },
 			global_speed_base=1.2,
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { str=25 + (self:getWil(140, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2), dex=18, con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2, },
+			inc_stats = {
+				str=25 + (self:mindCrit(self:combatMindpower(2.1)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				dex=10 + (self:mindCrit(self:combatMindpower(1.8)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+			},
 
 			desc = [[It is a cross between a human and a bull.]],
 			resolvers.equip{ {type="weapon", subtype="battleaxe", auto_req=true}, },
@@ -288,12 +299,13 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[Summon a Minotaur for %d turns to attack your foes. Minotaurs cannot stay summoned for long, but they deal a lot of damage.
-		It will get %d strength, %d constitution and 18 dexterity.
+		It will get %d strength, %d constitution and %d dexterity.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Strength stat will increase with your Willpower stat.]])
+		Strength stat will increase with your Mindpower stat.]])
 		:format(self:getTalentLevel(t) + 2 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		25 + (self:getWil(140, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
-		10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
+		25 + (self:combatMindpower(2.1) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+		10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+		10 + (self:combatMindpower(1.8) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2))
 	end,
 }
 
@@ -353,7 +365,11 @@ newTalent{
 			autolevel = "none",
 			ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, },
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { str=25 + (self:getWil(120, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2), dex=18, con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2, },
+			inc_stats = {
+				str=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				dex=15 + (self:mindCrit(self:combatMindpower(1.9)) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+				con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+			},
 
 			desc = [[It is a massive animated statue.]],
 			level_range = {self.level, self.level}, exp_worth = 0,
@@ -384,11 +400,12 @@ newTalent{
 	end,
 	info = function(self, t)
 		return ([[Summon a Stone Golem for %d turns to attack your foes. Stone golems are formidable foes that can become unstoppable foes.
-		It will get %d strength, %d constitution and 18 dexterity.
+		It will get %d strength, %d constitution and %d dexterity.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Strength stat will increase with your Willpower stat.]])
+		Strength stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		25 + (self:getWil(120, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
-		10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2),
+		10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+		15 + (self:combatMindpower(1.9) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2))
 	end,
 }
diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua
index 544a24e1eb..5fa19b9b1c 100644
--- a/game/modules/tome/data/talents/gifts/summon-utility.lua
+++ b/game/modules/tome/data/talents/gifts/summon-utility.lua
@@ -143,7 +143,11 @@ newTalent{
 			ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, ally_compassion=10},
 			ai_tactic = resolvers.tactic"default",
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { con=15 + self:getWil() * self:getTalentLevel(t) / 5 + self:getTalentLevelRaw(self.T_RESILIENCE)*2, wil=18, dex=10 + self:getTalentLevel(t) * 2, },
+			inc_stats = {
+				con=15 + (self:mindCrit(self:combatMindpower(2.1)) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+				wil=18,
+				dex=10 + self:getTalentLevel(t) * 2,
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 
 			max_life = 100,
@@ -178,9 +182,9 @@ newTalent{
 		return ([[Summon a Turtle for %d turns to distract your foes. Turtles are resilient, but not very powerful. However, they will periodically force any foes to attack them and can protect themselves with their shell.
 		It will get %d constitution, %d dexterity and 18 willpower.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Constitution stat will increase with your Willpower stat.]])
+		Constitution stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5 + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
+		15 + (self:combatMindpower(2.1) * self:getTalentLevel(t) / 5) + self:getTalentLevelRaw(self.T_RESILIENCE)*2,
 		10 + self:getTalentLevel(t) * 2)
 	end,
 }
@@ -241,7 +245,12 @@ newTalent{
 			ai = "summoned", ai_real = "tactical", ai_state = { talent_in=1, ally_compassion=10},
 			ai_tactic = resolvers.tactic"ranged",
 			stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0},
-			inc_stats = { dex=15 + self:getWil() * self:getTalentLevel(t) / 5, wil=18, str=10 + self:getTalentLevel(t) * 2, con=10 + self:getTalentLevelRaw(self.T_RESILIENCE)*2 },
+			inc_stats = {
+				dex=15 + (self:mindCrit(self:combatMindpower(2)) * self:getTalentLevel(t) / 5),
+				wil=18,
+				str=10 + self:getTalentLevel(t) * 2,
+				con=10 + self:getTalentLevelRaw(self.T_RESILIENCE)*2
+			},
 			level_range = {self.level, self.level}, exp_worth = 0,
 
 			max_life = 50,
@@ -276,9 +285,9 @@ newTalent{
 		return ([[Summon a Spider for %d turns to harass your foes. Spiders can poison your foes and throw webs to pin them to the ground.
 		It will get %d dexterity, %d strength, 18 willpower and %d constitution.
 		Your summons inherit some of your stats: increased damage%%, stun/pin/confusion/blindness resistance, armour penetration.
-		Dexterity stat will increase with your Willpower stat.]])
+		Dexterity stat will increase with your Mindpower stat.]])
 		:format(math.ceil(self:getTalentLevel(t)) + 5 + self:getTalentLevelRaw(self.T_RESILIENCE),
-		15 + self:getWil() * self:getTalentLevel(t) / 5,
+		15 + (self:combatMindpower(2) * self:getTalentLevel(t) / 5),
 		10 + self:getTalentLevel(t) * 2,
 		10 + self:getTalentLevelRaw(self.T_RESILIENCE)*2)
 	end,
-- 
GitLab