From 9c82e0a0c33a6fe937a0dbc13d0fb7969f2016bb Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Mon, 8 Feb 2010 17:04:06 +0000
Subject: [PATCH] wild gifts now use equilibrium

git-svn-id: http://svn.net-core.org/repos/t-engine4@325 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Actor.lua             |  32 ++++++++++++++++++
 game/modules/tome/class/PlayerDisplay.lua     |   7 ++--
 game/modules/tome/data/talents.lua            |   3 +-
 .../modules/tome/data/talents/gifts/gifts.lua |  26 ++++++++++++++
 .../{misc/random.lua => gifts/slime.lua}      |  21 +++++-------
 game/modules/tome/data/talents/misc/misc.lua  |   8 ++++-
 .../tome/data/zones/sandworm-lair/npcs.lua    |   2 +-
 .../tome/data/zones/sandworm-lair/objects.lua |  14 ++++----
 game/modules/tome/load.lua                    |   3 +-
 ideas/gifts.ods                               | Bin 16150 -> 14738 bytes
 10 files changed, 91 insertions(+), 25 deletions(-)
 create mode 100644 game/modules/tome/data/talents/gifts/gifts.lua
 rename game/modules/tome/data/talents/{misc/random.lua => gifts/slime.lua} (83%)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 1ea24d16ed..b46c9e2dfe 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -67,6 +67,10 @@ function _M:init(t, no_default)
 	t.mana_regen = t.mana_regen or 0.5
 	t.stamina_regen = t.stamina_regen or 0.3 -- Stamina regens slower than mana
 	t.life_regen = t.life_regen or 0.25 -- Life regen real slow
+	t.equilibrium_regen = t.equilibrium_regen or -0.01 -- Equilibrium resets real slow
+
+	-- Equilibrium has a default very high max, as bad effects happen even before reaching it
+	t.max_equilibrium = t.max_equilibrium or 100000
 
 	-- Default melee barehanded damage
 	self.combat = { dam=1, atk=1, apr=0, dammod={str=1} }
@@ -280,6 +284,7 @@ function _M:levelup()
 	self.life = self.max_life
 	self.mana = self.max_mana
 	self.stamina = self.max_stamina
+	self.equilibrium = 0
 
 	-- Auto levelup ?
 	if self.autolevel then
@@ -310,6 +315,7 @@ function _M:learnTalent(t_id, force)
 	-- If we learned a spell, get mana, if you learned a technique get stamina, if we learned a wild gift, get power
 	local t = _M.talents_def[t_id]
 	if t.type[1]:find("^spell/") and not self:knowTalent(self.T_MANA_POOL) then self:learnTalent(self.T_MANA_POOL) end
+	if t.type[1]:find("^gift/") and not self:knowTalent(self.T_EQUILIBRIUM_POOL) then self:learnTalent(self.T_EQUILIBRIUM_POOL) end
 	if t.type[1]:find("^technique/") and not self:knowTalent(self.T_STAMINA_POOL) then self:learnTalent(self.T_STAMINA_POOL) end
 	return true
 end
@@ -349,6 +355,21 @@ function _M:preUseTalent(ab, silent)
 		end
 	end
 
+	-- Equilibrium is special, it has no max, but the higher it is the higher the chance of failure (and loss of the turn)
+	-- But it is not affected by fatigue
+	if ab.equilibrium or ab.sustain_equilibrium then
+		local eq = ab.equilibrium or ab.sustain_equilibrium
+		local chance = math.sqrt(eq + self:getEquilibrium()) / 60
+		-- Fail ? lose energy and 1/10 more equilibrium
+		print("[Equilibrium] Use chance: ", 100 - chance * 100)
+		if not rng.percent(100 - chance * 100) then
+			game.logPlayer(self, "You fail to use %s due to your equilibrium!", ab.name)
+			self:incEquilibrium(eq / 10)
+			self:useEnergy()
+			return false
+		end
+	end
+
 	if not silent then
 		-- Allow for silent talents
 		if ab.message ~= nil then
@@ -392,6 +413,9 @@ function _M:postUseTalent(ab, ret)
 			if ab.sustain_stamina then
 				self.max_stamina = self.max_stamina - ab.sustain_stamina
 			end
+			if ab.sustain_equilibrium then
+				self:incEquilibrium(ab.sustain_equilibrium)
+			end
 		else
 			if ab.sustain_mana then
 				self.max_mana = self.max_mana + ab.sustain_mana
@@ -399,6 +423,9 @@ function _M:postUseTalent(ab, ret)
 			if ab.sustain_stamina then
 				self.max_stamina = self.max_stamina + ab.sustain_stamina
 			end
+			if ab.sustain_equilibrium then
+				self:incEquilibrium(-ab.sustain_equilibrium)
+			end
 		end
 	else
 		if ab.mana then
@@ -407,8 +434,13 @@ function _M:postUseTalent(ab, ret)
 		if ab.stamina then
 			self:incStamina(-ab.stamina * (100 + self.fatigue) / 100)
 		end
+		-- Equilibrium is not affected by fatigue
+		if ab.equilibrium then
+			self:incEquilibrium(ab.equilibrium)
+		end
 	end
 
+
 	-- Cancel stealth!
 	if ab.id ~= self.T_STEALTH then self:breakStealth() end
 
diff --git a/game/modules/tome/class/PlayerDisplay.lua b/game/modules/tome/class/PlayerDisplay.lua
index 2b93165b5c..c465cd154e 100644
--- a/game/modules/tome/class/PlayerDisplay.lua
+++ b/game/modules/tome/class/PlayerDisplay.lua
@@ -41,14 +41,17 @@ function _M:display()
 	end
 
 	self.surface:drawColorString(self.font, ("#c00000#Life:    #00ff00#%d/%d"):format(game.player.life, game.player.max_life), 0, h, 255, 255, 255) h = h + self.font_h
+	if game.player:knowTalent(game.player.T_STAMINA_POOL) then
+		self.surface:drawColorString(self.font, ("#ffcc80#Stamina: #00ff00#%d/%d"):format(game.player:getStamina(), game.player.max_stamina), 0, h, 255, 255, 255) h = h + self.font_h
+	end
 	if game.player:knowTalent(game.player.T_MANA_POOL) then
 		self.surface:drawColorString(self.font, ("#7fffd4#Mana:    #00ff00#%d/%d"):format(game.player:getMana(), game.player.max_mana), 0, h, 255, 255, 255) h = h + self.font_h
 	end
 	if game.player:knowTalent(game.player.T_SOUL_POOL) then
 		self.surface:drawColorString(self.font, ("#777777#Soul:    #00ff00#%d/%d"):format(game.player:getSoul(), game.player.max_soul), 0, h, 255, 255, 255) h = h + self.font_h
 	end
-	if game.player:knowTalent(game.player.T_STAMINA_POOL) then
-		self.surface:drawColorString(self.font, ("#ffcc80#Stamina: #00ff00#%d/%d"):format(game.player:getStamina(), game.player.max_stamina), 0, h, 255, 255, 255) h = h + self.font_h
+	if game.player:knowTalent(game.player.T_EQUILIBRIUM_POOL) then
+		self.surface:drawColorString(self.font, ("#00ff74#Equi:    #00ff00#%d"):format(game.player:getEquilibrium()), 0, h, 255, 255, 255) h = h + self.font_h
 	end
 
 	h = h + self.font_h
diff --git a/game/modules/tome/data/talents.lua b/game/modules/tome/data/talents.lua
index d1706b27ea..ae1ad949ce 100644
--- a/game/modules/tome/data/talents.lua
+++ b/game/modules/tome/data/talents.lua
@@ -1,4 +1,5 @@
 load("/data/talents/misc/misc.lua")
-load("/data/talents/spells/spells.lua")
 load("/data/talents/techniques/techniques.lua")
 load("/data/talents/cunning/cunning.lua")
+load("/data/talents/spells/spells.lua")
+load("/data/talents/gifts/gifts.lua")
diff --git a/game/modules/tome/data/talents/gifts/gifts.lua b/game/modules/tome/data/talents/gifts/gifts.lua
new file mode 100644
index 0000000000..57a6735131
--- /dev/null
+++ b/game/modules/tome/data/talents/gifts/gifts.lua
@@ -0,0 +1,26 @@
+-- Wild Gifts
+newTalentType{ type="gift/slime", name = "slime powers", description = "Through dedicated consumption of slime mold juice you have gained an affinity with slime molds." }
+
+-- Generic requires for gifts based on talent level
+gifts_req1 = {
+	stat = { wil=function(level) return 12 + (level-1) * 2 end },
+	level = function(level) return 0 + (level-1)  end,
+}
+gifts_req2 = {
+	stat = { wil=function(level) return 20 + (level-1) * 2 end },
+	level = function(level) return 4 + (level-1)  end,
+}
+gifts_req3 = {
+	stat = { wil=function(level) return 28 + (level-1) * 2 end },
+	level = function(level) return 8 + (level-1)  end,
+}
+gifts_req4 = {
+	stat = { wil=function(level) return 36 + (level-1) * 2 end },
+	level = function(level) return 12 + (level-1)  end,
+}
+gifts_req5 = {
+	stat = { wil=function(level) return 44 + (level-1) * 2 end },
+	level = function(level) return 16 + (level-1)  end,
+}
+
+load("/data/talents/gifts/slime.lua")
diff --git a/game/modules/tome/data/talents/misc/random.lua b/game/modules/tome/data/talents/gifts/slime.lua
similarity index 83%
rename from game/modules/tome/data/talents/misc/random.lua
rename to game/modules/tome/data/talents/gifts/slime.lua
index bb8a58f7b6..bd7b884a39 100644
--- a/game/modules/tome/data/talents/misc/random.lua
+++ b/game/modules/tome/data/talents/gifts/slime.lua
@@ -1,18 +1,12 @@
--- Some randomly gained talents
-
-------------------------------------------------------------
--- Slime Powers!
-------------------------------------------------------------
-newTalentType{ type="gift/slime", name = "slime powers", description = "Through dedicated consumption of slime mold juice you have gained an affinity with them." }
-
 newTalent{
 	name = "Poisonous Spores",
 	type = {"gift/slime", 1},
+	require = gifts_req1,
 	points = 5,
 	message = "@Source@ releases poisonous spores at @target@.",
+	equilibrium = 2,
 	cooldown = 10,
 	range = 1,
-	require = {level = function(level) return 0 + (level-1)  end,},
 	tactical = {
 		ATTACK = 10,
 	},
@@ -34,12 +28,13 @@ newTalent{
 newTalent{
 	name = "Acidic Skin",
 	type = {"gift/slime", 2},
+	require = gifts_req2,
 	points = 5,
 	mode = "sustained",
 	message = "The skin of @Source@ starts dripping acid.",
+	sustain_equilibrium = 25,
 	cooldown = 10,
 	range = 1,
-	require = {level = function(level) return 4 + (level-1)  end,},
 	tactical = {
 		DEFEND = 10,
 	},
@@ -61,13 +56,14 @@ newTalent{
 newTalent{
 	name = "Slime Spit",
 	type = {"gift/slime", 3},
+	require = gifts_req3,
 	points = 5,
+	equilibrium = 4,
 	cooldown = 30,
 	tactical = {
 		ATTACK = 10,
 	},
 	range = 20,
-	require = {level = function(level) return 8 + (level-1)  end,},
 	action = function(self, t)
 		local tg = {type="bolt", range=self:getTalentRange(t)}
 		local x, y = self:getTarget(tg)
@@ -84,15 +80,16 @@ newTalent{
 newTalent{
 	name = "Slime Roots",
 	type = {"gift/slime", 4},
+	require = gifts_req4,
 	points = 5,
+	equilibrium = 5,
 	cooldown = 20,
 	tactical = {
 		MOVEMENT = 10,
 	},
 	range = 20,
-	require = {level = function(level) return 12 + (level-1)  end,},
 	action = function(self, t)
-		local x, y = self:getTarget{type="ball", range=20 + self:getTalentLevel(t), radius=7 - self:getTalentLevel(t)}
+		local x, y = self:getTarget{type="ball", range=20 + self:getTalentLevel(t), radius=math.min(0, 5 - self:getTalentLevel(t))}
 		if not x then return nil end
 		-- Target code doesnot restrict the self coordinates to the range, it lets the poject function do it
 		-- but we cant ...
diff --git a/game/modules/tome/data/talents/misc/misc.lua b/game/modules/tome/data/talents/misc/misc.lua
index 068b613983..89aa794c47 100644
--- a/game/modules/tome/data/talents/misc/misc.lua
+++ b/game/modules/tome/data/talents/misc/misc.lua
@@ -1,6 +1,5 @@
 -- Load other misc things
 load("/data/talents/misc/npcs.lua")
-load("/data/talents/misc/random.lua")
 
 -- race & classes
 newTalentType{ type="base/class", name = "class", hide = true, description = "The basic talents defining a class." }
@@ -27,6 +26,13 @@ newTalent{
 	mode = "passive",
 	hide = true,
 }
+newTalent{
+	name = "Equilibrium Pool",
+	type = {"base/class", 1},
+	info = "Allows you to have an equilibrium pool. Equilibrium is used to mesure your balance with nature and the use of wild gifts.",
+	mode = "passive",
+	hide = true,
+}
 
 newTalent{
 	name = "Improved Health I",
diff --git a/game/modules/tome/data/zones/sandworm-lair/npcs.lua b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
index b184061361..f69c5a33e1 100644
--- a/game/modules/tome/data/zones/sandworm-lair/npcs.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/npcs.lua
@@ -41,7 +41,7 @@ newEntity{ define_as = "SANDWORM_QUEEN",
 
 	body = { INVEN = 10, BODY=1 },
 
-	resolvers.drops{chance=100, nb=1, {defined="TOME_OF_IMPROVEMENT"}, },
+	resolvers.drops{chance=100, nb=1, {defined="SANDQUEEN_HEART"}, },
 	resolvers.drops{chance=100, nb=5, {ego_chance=100} },
 
 	talents = resolvers.talents{
diff --git a/game/modules/tome/data/zones/sandworm-lair/objects.lua b/game/modules/tome/data/zones/sandworm-lair/objects.lua
index 56b6db53d4..5f4999ab79 100644
--- a/game/modules/tome/data/zones/sandworm-lair/objects.lua
+++ b/game/modules/tome/data/zones/sandworm-lair/objects.lua
@@ -2,15 +2,15 @@ load("/data/general/objects/objects.lua")
 
 -- Artifact, droped by the sandworm queen
 newEntity{
-	define_as = "TOME_OF_IMPROVEMENT",
-	type = "scroll", subtype = "tome",
-	name = "Tome of Improvement", unique=true,
-	display = "?", color=colors.VIOLET,
-	desc = [[This very rare tome of power contains magic words that can make the user stronger, wiser, more able, ...]],
+	define_as = "SANDQUEEN_HEART",
+	type = "corpse", subtype = "heart",
+	name = "Heart of the Sandworm Queen", unique=true,
+	display = "*", color=colors.VIOLET,
+	desc = [[The heart of the Ssandworm Queen, ripped from her dead body. You could ... consume it, should you feel mad enough.]],
 	cost = 4000,
 
-	use_simple = { name="increase talent and stat points", use = function(self, who)
-		game.logPlayer(who, "#00FFFF#You read the tome alound and feel its magic changing you!")
+	use_simple = { name="consume the heart", use = function(self, who)
+		game.logPlayer(who, "#00FFFF#You consume the heart and feel the knowledge of this very old creature fill you!")
 		who.unused_stats = who.unused_stats + 3
 		who.unused_talents = who.unused_talents + 2
 		game.logPlayer(who, "You have %d stat point(s) to spend. Press G to use them.", who.unused_stats)
diff --git a/game/modules/tome/load.lua b/game/modules/tome/load.lua
index 9bdf2a6024..920208dc49 100644
--- a/game/modules/tome/load.lua
+++ b/game/modules/tome/load.lua
@@ -43,8 +43,9 @@ ActorTemporaryEffects:loadDefinition("/data/timed_effects.lua")
 
 -- Actor resources
 ActorResource:defineResource("Air", "air", nil, "air_regen", "Air capacity in your lungs. Entities that need not to breath are not affected.")
-ActorResource:defineResource("Mana", "mana", ActorTalents.T_MANA_POOL, "mana_regen", "Mana represents your reserve of magical energies. Each spell cast consumes mana and each sustained spell reduces your maximun mana.")
 ActorResource:defineResource("Stamina", "stamina", ActorTalents.T_STAMINA_POOL, "stamina_regen", "Stamina represents your physical fatigue. Each physical ability used reduces it.")
+ActorResource:defineResource("Mana", "mana", ActorTalents.T_MANA_POOL, "mana_regen", "Mana represents your reserve of magical energies. Each spell cast consumes mana and each sustained spell reduces your maximun mana.")
+ActorResource:defineResource("Equilibrium", "equilibrium", ActorTalents.T_EQUILIBRIUM_POOL, "equilibrium_regen", "Equilibrium represents your stand in the grand balance of nature. The closer it is to 0 the more inbalance you are. Higher equilibrium states will impact negatively your ability to use Wild Gifts.")
 ActorResource:defineResource("Soul", "soul", ActorTalents.T_SOUL_POOL, "soul_regen", "Soul represents the amount of life energies/souls you have stolen. Each Necromantic spell requires some.")
 
 -- Actor stats
diff --git a/ideas/gifts.ods b/ideas/gifts.ods
index 28fe0fd247a4ec278013825de9b396c82331bd3b..0be89e0a7e327e24c7954e03a70b6ed3e95b35e7 100644
GIT binary patch
delta 12157
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
QF!rQlK`N+Nj=zKc2hAK*&;S4c

delta 13563
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
F{{Zz(6-xjB

-- 
GitLab