From c0a621ad0841ccce45a4e2b727aad5051144b3d2 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 8 Jul 2010 23:53:00 +0000
Subject: [PATCH] PlayerRest interface can now be used to rest for various
 events continue golemancy

git-svn-id: http://svn.net-core.org/repos/t-engine4@893 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engine/interface/ActorTalents.lua        |   4 +-
 game/engine/interface/PlayerRest.lua          |  17 +-
 game/modules/tome/class/Actor.lua             |   7 +-
 game/modules/tome/class/Game.lua              |   8 +-
 game/modules/tome/class/Player.lua            |  12 +-
 game/modules/tome/data/birth/classes/mage.lua |   6 +
 .../gfx/terrain/underground_tree_alpha1.png   | Bin 0 -> 765 bytes
 .../gfx/terrain/underground_tree_alpha2.png   | Bin 0 -> 828 bytes
 .../gfx/terrain/underground_tree_alpha3.png   | Bin 0 -> 951 bytes
 .../gfx/terrain/underground_tree_alpha4.png   | Bin 0 -> 1163 bytes
 .../gfx/terrain/underground_tree_alpha5.png   | Bin 0 -> 1362 bytes
 .../gfx/terrain/underground_tree_alpha6.png   | Bin 0 -> 914 bytes
 .../gfx/terrain/underground_tree_alpha7.png   | Bin 0 -> 1052 bytes
 .../tome/data/talents/spells/alchemy.lua      |   2 +
 .../tome/data/talents/spells/golemancy.lua    | 197 ++++++++++++------
 .../tome/data/talents/spells/infusion.lua     |   6 +-
 .../tome/data/talents/spells/spells.lua       |   1 +
 ideas/crafting.ods                            | Bin 21707 -> 27869 bytes
 18 files changed, 176 insertions(+), 84 deletions(-)
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha1.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha2.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha3.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha4.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha5.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha6.png
 create mode 100644 game/modules/tome/data/gfx/terrain/underground_tree_alpha7.png

diff --git a/game/engine/interface/ActorTalents.lua b/game/engine/interface/ActorTalents.lua
index 489afb4bef..fe935ee245 100644
--- a/game/engine/interface/ActorTalents.lua
+++ b/game/engine/interface/ActorTalents.lua
@@ -433,7 +433,9 @@ end
 -- @param t the talent to cooldown
 function _M:startTalentCooldown(t)
 	if not t.cooldown then return end
-	self.talents_cd[t.id] = t.cooldown
+	local cd = t.cooldown
+	if type(cd) == "function" then cd = cd(self, t) end
+	self.talents_cd[t.id] = cd
 	self.changed = true
 end
 
diff --git a/game/engine/interface/PlayerRest.lua b/game/engine/interface/PlayerRest.lua
index c1bf7ed4e5..0cec59a69e 100644
--- a/game/engine/interface/PlayerRest.lua
+++ b/game/engine/interface/PlayerRest.lua
@@ -24,15 +24,20 @@ local Dialog = require "engine.Dialog"
 module(..., package.seeall, class.make)
 
 --- Initializes resting
-function _M:restInit()
+function _M:restInit(turns, what, past, on_end)
+	what = what or "resting"
+	past = past or "rested"
 	self.resting = {
+		rest_turns = turns,
+		past = past,
+		on_end = on_end,
 		cnt = 1,
-		dialog = Dialog:simplePopup("Resting...", "You are resting, press any key to stop.", function()
+		dialog = Dialog:simplePopup(what:capitalize().."...", "You are "..what..", press any key to stop.", function()
 			self:restStop()
 		end),
 	}
 	self:useEnergy()
-	game.log("Resting starts...")
+	game.log(what:capitalize().." starts...")
 end
 
 --- Rest a turn
@@ -45,6 +50,7 @@ function _M:restStep()
 	if not self.resting then return false end
 
 	local ret, msg = self:restCheck()
+	if ret and self.resting and self.resting.rest_turns and self.resting.cnt > self.resting.rest_turns then ret = false msg = nil end
 	if not ret then
 		self:restStop(msg)
 		return false
@@ -69,11 +75,12 @@ function _M:restStop(msg)
 	game:unregisterDialog(self.resting.dialog)
 
 	if msg then
-		game.log("Rested for %d turns (stop reason: %s).", self.resting.cnt, msg)
+		game.log(self.resting.past:capitalize().." for %d turns (stop reason: %s).", self.resting.cnt, msg)
 	else
-		game.log("Rested for %d turns.", self.resting.cnt)
+		game.log(self.resting.past:capitalize().." for %d turns.", self.resting.cnt)
 	end
 
+	if self.resting.on_end then self.resting.on_end(self.resting.cnt, self.resting.rest_turns) end
 	self.resting = nil
 	return true
 end
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 084df44242..4a0a7604fb 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -248,7 +248,7 @@ function _M:getPathString()
 		ps = ps .. what.."="..check..","
 	end
 	ps = ps.."}}"
-	print("[PATH STRING] for", self.name, " :=: ", ps)
+--	print("[PATH STRING] for", self.name, " :=: ", ps)
 	return ps
 end
 
@@ -647,6 +647,9 @@ function _M:levelup()
 	if self.autolevel then
 		engine.Autolevel:autoLevel(self)
 	end
+
+	-- Force levelup of the golem
+	if self.alchemy_golem then self.alchemy_golem:forceLevelup(self.level) end
 end
 
 --- Notifies a change of stat value
@@ -966,7 +969,7 @@ function _M:getTalentFullDescription(t, addlevel)
 	if self:getTalentRange(t) > 1 then d[#d+1] = "#6fff83#Range: #FFFFFF#"..self:getTalentRange(t)
 	else d[#d+1] = "#6fff83#Range: #FFFFFF#melee/personal"
 	end
-	if t.cooldown then d[#d+1] = "#6fff83#Cooldown: #FFFFFF#"..t.cooldown end
+	if t.cooldown then d[#d+1] = "#6fff83#Cooldown: #FFFFFF#"..util.getval(t.cooldown, self, t) end
 
 	local ret = table.concat(d, "\n").."\n#6fff83#Description: #FFFFFF#"..t.info(self, t)
 
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index e1f0b28fd6..96a784d870 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -143,9 +143,11 @@ function _M:newGame()
 		Map:setViewerFaction(self.player.faction)
 		self.paused = true
 		print("[PLAYER BIRTH] resolved!")
-		self.player:grantQuest(self.player.starting_quest)
-		self:registerDialog(require("mod.dialogs.IntroDialog").new(self.player))
-		self.player:resetToFull()
+		self.player:playerLevelup(function()
+			self.player:grantQuest(self.player.starting_quest)
+			self:registerDialog(require("mod.dialogs.IntroDialog").new(self.player))
+			self.player:resetToFull()
+		end)
 	end, quickbirth)
 	self:registerDialog(birth)
 end
diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index 76318efa8c..c64c54bbab 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -328,10 +328,14 @@ function _M:restCheck()
 	if spotted then return false, ("hostile spotted (%s%s)"):format(spotted.actor.name, game.level.map:isOnScreen(spotted.x, spotted.y) and "" or " - offscreen") end
 
 	-- Check ressources, make sure they CAN go up, otherwise we will never stop
-	if self.air_regen < 0 then return false, "loosing breath!" end
-	if self:getMana() < self:getMaxMana() and self.mana_regen > 0 then return true end
-	if self:getStamina() < self:getMaxStamina() and self.stamina_regen > 0 then return true end
-	if self.life < self.max_life and self.life_regen> 0 then return true end
+	if not self.resting.rest_turns then
+		if self.air_regen < 0 then return false, "loosing breath!" end
+		if self:getMana() < self:getMaxMana() and self.mana_regen > 0 then return true end
+		if self:getStamina() < self:getMaxStamina() and self.stamina_regen > 0 then return true end
+		if self.life < self.max_life and self.life_regen> 0 then return true end
+	else
+		return true
+	end
 
 	return false, "all resources and life at maximum"
 end
diff --git a/game/modules/tome/data/birth/classes/mage.lua b/game/modules/tome/data/birth/classes/mage.lua
index 32744e744b..a8ce556c13 100644
--- a/game/modules/tome/data/birth/classes/mage.lua
+++ b/game/modules/tome/data/birth/classes/mage.lua
@@ -112,8 +112,10 @@ newBirthDescriptor{
 	},
 	talents = {
 		[ActorTalents.T_CREATE_ALCHEMIST_GEMS] = 1,
+		[ActorTalents.T_REFIT_GOLEM] = 1,
 		[ActorTalents.T_THROW_BOMB] = 1,
 		[ActorTalents.T_FIRE_INFUSION] = 1,
+		[ActorTalents.T_GOLEM_TAUNT] = 1,
 	},
 	copy = {
 		max_life = 90,
@@ -129,5 +131,9 @@ newBirthDescriptor{
 			{type="potion", subtype="potion", name="potion of lesser mana", ego_chance=-1000},
 			{type="potion", subtype="potion", name="potion of lesser mana", ego_chance=-1000},
 		},
+		resolvers.generic(function(self)
+			local t = self:getTalentFromId(self.T_REFIT_GOLEM)
+			t.action(self, t)
+		end),
 	},
 }
diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha1.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha1.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd63192911727f855c368f30aec2bbd7d6a7cdcf
GIT binary patch
literal 765
zcmV<Z0s{SsP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6$>oGB(<dg000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}00075Nkl<Z
zSi|j>F>ljA6vzK}b`oE3RT8y<NGzohRH{U$ZVV_)lpzBWd<nh+6JLSPz`(-B1T6Fm
zK-Ga3sEDdY38+bGH)qF*%~08#&(75jDng=v>16qy-@V`ey&DW%>Qa~b-$mw0GD_tj
zZQpT6<U#?$!q-d}hL((fAC_{1kUWJeb&8_JF<xL`riMb#PJHXtOdRcdnL$XF!dI@I
zy%!mcVnvHXtDDh#p=ZOZnX&v3L^UF!D!f>7000wa#Nr}|C}wIAjI5I~L%-uEK#0n*
z&YjpH6J|i?PAX8*;;}ugZpOO8?P&yfwC_a_L@XW_79~TZ0U3qgKE?|yc28t+dy0O?
z&ki6ubi5!cDvDOii7|);MTy1F9f4}@p-b6qT0zxCq;jy?YT$H$#2RxyT4AfhCo?q+
ze|S-Q#no&z&}=oLvt^}T=P)5ma@-M7!Ek$u)4`crqfAk$vB=PySD#{zpFX=EC;{XI
zxph?cW1R_|8f6Nq`*21+`aO;`w*c_s`8%QnkO=``>+zi+gt+(c794j(9z0pY=GJxG
zeRKo$hJiufj$)2GA~$a@Ba1nD9-*o$D#_=h8Jl?rW+jMw+wVVT&YNXS36Pc`?wO0F
z%z3H~rUHlw@+`$ziRma5$sdhst{;+>^=h!Xv4pQ5e`0NO8TQb_;oblTyT`fDqw^Mb
z`2=DoRyUTgvR(}?8~^~iZ3`b>e<J{J_~iuMwgmulLD0PJ%}Vm}*?kvpU+$4^+sX~0
v=K(m_JtnHdceXoZ2c5tBTRqR*|0(?f7{*!6Z%qlJ00000NkvXXu0mjfkB>$G

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha2.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha2.png
new file mode 100644
index 0000000000000000000000000000000000000000..888123ebf18f780b7ed58c58a86a66382be53608
GIT binary patch
literal 828
zcmV-C1H=4@P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6$}N=*Sih?000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0007)Nkl<Z
zSi|j?O=}ZT6o#M4lp#rn!4}#g0l`9gK^GF-bZ>W6a3yuqEVLVU{(zR0ECu}m6~S&4
zmr8cUbvM#gD^sOi1#Jqp3}Z%OLtHfH_U5ZirY$0PHo0?h?|I+z@!m|}zx}trY*yTZ
zbGP3;HlN>qdhjw%oT0ej8{y(gn=cj_D^A86;o^#No=~d?*p>sp*P~Z@Z_X_)^h?4T
z1XR`;W*K*<snr9H>OUE>hjDBVfJ(SdnNr^*tkZx^(41SO60QR<?oR8ywR)hz#Ref^
zodztKN>DE~1wasOGwx1P3D;Z52thA3#pmb+Ik&iQ)=XI41}o<lbwCq9>{tB<LA2fB
zHwgliDV;eJ9V#$OZCbVVP4_x!k3wpSAllZTz_A}l3hB@oTBTOH5$PZx{nHl0mDCN=
z&efKlC+*P_pr*f85A?Il#eQ{{OnSC8reTRT?cOU>BEziSP^QFTw56-!*j@{efXjD|
z?Qs}wu~~V;es!0z^!1+LT~(lzS_YPcgn8H`)~<$bZR=+ay2?-~br<+xf_BToB-Ad=
z&FGm1K1~TdFQO(1gotzsn46iH2ViY)^`z&Fl1)9*7t{COAGwyiKiECcgUE7oDdRqu
z&lZlW671-GLdM}(2{+xR@o&OD2rWq!GTtPwzZ9f80QkQD@KS${l~RqFiFq>KBnQ=i
z_vPpKz8@=ABF>>(!*}$0B<-E+g(MLt`!P48vp=sT&U1Jq?Qu{I$Y%>Er5cw`!0df<
z@N^5}l1K~!p3fF^>GRowCLy13Nc3|LGyp_)qWOHbKsnf9ZEuyCiTMs+Q;yb!$<WNq
z_kBw$BH4?tU*Lh?ihBi>><0zD5K~Gu;!gjC5%}l-n*9L_mqeI*jrxKB0000<MNUMn
GLSTZnf^W_M

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha3.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha3.png
new file mode 100644
index 0000000000000000000000000000000000000000..80270ab09d07ae2be3e33ed9c75dd534517aed4a
GIT binary patch
literal 951
zcmV;o14#UdP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6%7=<e5$<w000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009LNkl<Z
zSi|jB$xjnu6#vcEma^D|afa5WK|u^@1Y;m6Ws}4hAyIF}_&?|c4<0>wGyW6m%@|2M
z5CTCfX%m;AghYW5X#fjFLQ9ufJ`Z&!U7=H`df;8=n|a&sE#I35oX`pVW1@^I^zZ@!
z0Geh%0U#hyRW(m09NnzgE^E-abPJ~JOTJGGb@?#!`AhbN7f7WbDn=R*Tx3*bDhB%!
z895x?<PMXg4-@F+MKb1XQ}3D@u^rtgin@@tqZ_bWtQd&K*a4v>dZY~W@*=qjPB+}<
zIg9T<mf_^Zl8&9csDsqbb3!u-Zm!dYGQjhE!`1e-jOKi(%LgYf>dv(&bDy~&H5n%_
zVoYTzt#K>PKtOQqj;c&kIi<o<Xc3of%4|=Ryd6ciz$=KRCW>k}$oWAf&?wirp(gZk
z96$(N*kszdRHTL9bM-`<!*~;3Io(1!6hb^SSHv$&?O`;p#<4`3$_}TJO{fqe?;`V6
zv^k0*(41?$LK*F>eZPOnZ+sG719#(<nx5$Ny2~ma#1m}}oj?9DjPQ1pGCT*ydEvoq
zCi(bDProj+uo}?~-wV#<$v^EIDzfotE(j3W`6dyMRXvLRPM$P6r03GUe3@cRE_GkE
zrqeR`i><ouRzd;2wFf9F*^S3BNSoIgijGZW5)YRWd#{iDFVF@F1)>08*fUNv*Rx1x
zBnTc6KX;Od&98u=StzOu0EkMNQ|6QuUrZ&`WBncX_4`Sam4fer3jk1WwP0#?5emg2
z`1U;o0O#CpW+@U;j(s2K>-Up7=@(i%JYXn*VQ4fqSOEYGYr%AAMF&wS(ME*5ZU>T_
z4GYVAPzaEbRY<ae*$?ZO4z0lJcGP|&x^sJs0KjS_mIn*~p1qhbY>zdnuo{VhGMV$D
zJ>P1_WN5ASJ7HjCnD~9oe>Spg_3ACz6^*8W$<P|!O-<LP2LdC*q`Tc-mcO-=!1cjS
z1V)BQ&6*GZlIi^0l}x4n-de6j*WGSMotY^D_37J=;Sx~Qpe|L8YMfUMAU7KtRpb1>
Zpx<>cJc$t2RvG{R002ovPDHLkV1jErntlKP

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha4.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha4.png
new file mode 100644
index 0000000000000000000000000000000000000000..242bd309c6ba3bd07f6bf4bf641a2c65178b841b
GIT binary patch
literal 1163
zcmV;61a$j}P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6%84~&DH<_000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000B#Nkl<Z
zSi|L4O=uit7=FI_pV`U&B%81%HfXa3j7mJ{p;ECIHHSpeLy>|YVhEJ7C={g?5$T~I
zg0MnC>OqKzc&OOZdXkD4n}Zf>{K<xPlWn`r?k1U?*`2?g`8;g1*-f&Vjk71e%M9=P
z&OFcezR&l4?+5(f2k9pG!s}O+%RhWkZMCK6KS+!piQVlvfvIGQo<5V>)A!N&G&0#V
zIS2u+8}N7Ee`lBPk>RIt`b-Kq587(qFCng5#-?pF-(^w7iMeU4<a0Rw>Wl4x^Pm?m
zpBp$d5m^t6Kr1)^n1+p&d=8&pys#^FZuTT*UwE&ql^it^7pe!=Kw;S+uRVX(k4g!=
z@z(J+UnlTZ5?{}M`;X=L*9;`aR63PRp<pcG;}1W9>pM`nIHq4Y)&{;aJF=)EPz_jh
z9h$WUkGcp+YXFXQ1n*?qYcTsI5E5djIvc3Eo2c3ql$Kn~&7SNC^yaCzar?R%%sw!c
zOi|b0{#mxXfXT#ji1!WS=*(k#ezW-FZOZW+;mx>w?)zu0|6BsY-he8`002I9@k`-5
z+-E$5KR^2kES12s5(p^5YCr0}gMMX%6to-2WYbn48rT8{fbsZKSSnwIZWjRn0;j-t
zeTb|KZQ~BA&L)5bj7BGe(Lg4fCOjkWvWr{@0N~VXsC!mJBhDrOU_dz(tOz>^b4Wc5
zo|O<1V+cz_h{y@3;s8`34gk3JjS&fSD{dW>Qm}+aJT%(0@r(?a4}&8Dbf<*LmsBmV
z4Ah*;_VOVFtCiotvr-dyyG%Z0F%*0WL{4d$sR#fl)^1>@J{-@2EGWSe$Yj$*;`&<i
z->4xG;CS0-jq97Bz7J91dMm=M)Qg;gid|~+u`Cadv3pB^A#5|<AtAOyoF0~Qf9<O&
z>6(D)HunBRU$SvXxjL%OMq5nXukU{%-GFDZX%ZF(+iU`_fMM7+o5DwWLtw8m6!hh0
z+FjoS&&cSLqbQqsJUQ|*4ZJ5@EM9>sL@7g9!V(TX^%`lXPSd|w1kz`}S}d2!5qt@{
zaO)BYgurNIl1>ahgLNxUOt%7wQ{g%dwdb|pVb*m#Ja`lj-ak&oxI4kRR`6YMv*qH$
z4N=xB_ntZu>KJOShCgopOz=62#~*#7Hw22tO$@3J+*7=Zg1(GI-xw(MVS6={s;kiL
zGA*p#A<5{G{)JnYg1MS)mBI09j>Lt8A@wkdMh-HsLKO#4_Z(F0qHcS&`l|M8e@|Ay
zigu02T=)v56s2m8vJ3~;vr(~%v{YLu=}vis1veb%)ogeD)f1YvHcbdK<9NmlA%tID
dzkZ-4{Wm*goPzjf*ERqE002ovPDHLkV1gw=4e$T}

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha5.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha5.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3fcce7d2c1bec14dc0ae583f1e7fb495661f03b
GIT binary patch
literal 1362
zcmV-Y1+DstP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6%8LMu5&d2000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000E7Nkl<Z
zSi|j>ZERCj7{`CNYwhmZ6?R$orekc@5D9T4z+#uJybQBZiV&l5Y(T|NBnD8FC?P>V
zsE~*xYE%+GkZCaE6GP^*D;ddNLUHh6I3keXbPg6_*@$cDI@;~{0q^Bf?_Mf?G2uy?
zo_p^(&+~u&=l`7Nz$5!Vn@?4RPgR9Be(%yHk*W_%DwFrNY!?7E?d`&+s$z|!4UeMW
zQ&r(n6wchZ!G8`w3kq<+e?$U^#$pH|n4G(nEk#AVkk!eSq9Qzsf*A`&A1MPk;6EZ6
z9r#pLB%)Cqvdr&eWAtDDlF|h`>5D{oMx1<r1#O)MeAWPx5gQ#OqETwxA^ls&gr9Hv
z`x%Hv0eIDYPG`Xg-ssafmXZTchZdmx#0ilm%Q$42^0e<cJF$*slP9@g*+4WFy9cVe
zT6$=OSGKl_cRTlp4P9L#8GtJg6qT*5`p=BLH+y>Y3Yks|7PAkU)9mzgUUZzn2x5g@
z1z=)q41ms>8VO*3Z?D+j+bfik*ZJtm6;bSPusk;xBM6P%DYrlizS_}7N5YTGW+Pvg
zDU@ZpM@BeVQ6T}i0zom_+#qGu?-l?hs}>>W=d)5ijWb=QTLdVRnt9Uc;M`<@rhX^C
zZ19+Fi!>GeE9^h;>BqwW?0jP`?^k^yX&P|_f+B6sJZ>L5EV%+f0r1quN&p?m=|9Q<
z__3~TT0KZ+;xj&L!2oU_JFL$!1M!k~fS%ks033ydx)|TNcu^cIEtPz#DhgaK7Gz{_
zu(VW~u?mbC10(~{-fQMr_bkqm61@_%^|hgp02mw{MFa3#G)kk_E9t?MSKbzjH?5}U
zvu|gt5M$=rc&bEdLm@F3iLh1a;_HzLHWe4sJ~RYyAAnJ*<HN(`&!0~?kpSTQp`!ql
zzE(@;+O?7^5EPF+QG$_?yVv`;eeAH5ymgvS|Gw?_D#-1|<8*Q@5}|!)h(@nhdf+6q
z+3f&?6A2b(W^(?}QI@~8jU_wkkSzD6TC?+*j73Rbv<zo?4g0ojLId>q7h~*g*)Cjx
zps;4=v1Hd~09rmc!ctDrJ~YI&NCc15$qKid+E7SH#xs7kqm9mlpR#BpmtC7FkYxa_
zhQnl9tuz_R(3+ixEw>Qc<Hf{&zQEn<eL5omlFi2A`ZWL)IGrrz6ad2+FLU<REq3K~
z(-*me)tLR6J5|{1(4A3BCNTK-VY4tZlbo^R(A6b05CHL;1H^9*AmVY%DkZjRk*Hqq
z6YY^2aIObnY4kV+&h_*~?y$%Ep`-(7Te(v5sj4XFJI?Yv;Y5N;YYUwTKUc$HE{#{w
zQGGwSh{yG8lSOE>iC7FQFc^tYG1<f^%SJk$^Gc1$2a!=gnka2{JMr=He>50lSxy%m
zpsb-m08}Ym99aLAG~1^4z;(;4nYaQ$kyXE2xOW^(=>jt29J3E*?~DMF52UHqnfaOV
zC^j=KpuPBM5+k>;Dmje*dYRGYhLrCC7PB^K);7(816Y+DwCAk)-KK1q-G;RPSs_mD
zf>tF*&)mp>(MFpaq}hmV)|8oLrftE*pTqx({*(Zi0ZN-Q@1cS}v`wY{N0y5H1)djh
UP&3?_xc~qF07*qoM6N<$f=v%@#Q*>R

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha6.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha6.png
new file mode 100644
index 0000000000000000000000000000000000000000..30da23348fc380c9f30605a5721e426eaccd70eb
GIT binary patch
literal 914
zcmV;D18w|?P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6%8btrJ4}{000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0008*Nkl<Z
zSi|j>!D|yi6vn?PrQIod*gdp3N(mY$UJTKYQ>Fd^=3-%Qp(qr=ODR2gj@X08JqV$K
zVacr^l;+Swd+^|?q)4UEOT~?BgYmFSQ!oqCjt8A#H`(m2v04v(Fc4m5=lji@_udR}
zVFOw%mEumN!vDE&j#7SZ;@uGE3h>`Rh<xaV$x+H})BHPt^P0w!9EAV`0NXUV7-t%V
zs0BroqJ)RToKB^}KP@i<0PY+dkU_uzV69vR09>1!OTLCvsql=V$gz`7OLBuT{%m4`
zhgE}Zn!J`u@iPx~7=*!?%mITjF2sdD&iwO8Qixs8BmM=BPEN4iZlkEGa^6C-NxBpD
zmE(|powQ(CBsP2fQSf&^aYW6fCEh*XFA`Qke*aLC2<&<ud1TwYK23}L_F!g)+os9=
z!t3pJ4@gf0KCi6wG!}y~o>7!QK4cW7Zv=$MyrzXFrZ}d)_1h032|$igxoeT6VOpU_
zQ15gI06bV&Kv-rAkk^g_aSQ@lj4Y)9fNZIRW6MIpvWS53uSMb-N>Nn<*)4#ou8X3o
zVtQ;0j}H&ARxV@g^c3HQf_o}0E(R*WV2oE?S8kFdsZ~*8BGg4yMb&lXe?t6tV*}q?
zEdaoNqk;8yyQd7h0Yb~KJDeiq24k}98oJIKx-NUY|8|VpRBVUrw~&CSrBV`NC!OZD
zX-beB)X2pL7l+DUUdhNuh{2frEyNqT&Yz64Scu3fsCPOf^lX0Fn?eEm+9gz*9iXE~
zfBv$H+0{)vy*G{gIK}Tk#CF0QRQ~YFB<|mx!tCm1<XizUa0J4{i;M<*tNS0J-@Xb^
z54ZApym<Q#+h04#kJEu}+eCN4<meGTY;Ob93*3GHWY_@!)Wh?wt+NHVJ~HyNp|o1a
zQi?s#!{`?W`pp}dt<~hbso}xi8<C&Y;gXUCp4AAll**<uuW1}sGa$a_dB{?V_YOxL
oZsI2x!5^6aHtYBBxUe|;0cu6s&dnY%*Z=?k07*qoM6N<$g7G<^Hvj+t

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/terrain/underground_tree_alpha7.png b/game/modules/tome/data/gfx/terrain/underground_tree_alpha7.png
new file mode 100644
index 0000000000000000000000000000000000000000..03a2ffcb7f3b4ef5fb2918ab366e454cd9e7bccb
GIT binary patch
literal 1052
zcmV+%1mpXOP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igY+
z6%8tU9k&($000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000AbNkl<Z
zSi|j?O>Y`k6o#JxVq!N824Z8IU=$bH3bl?D5moW3X_98+ZoIP8-_fqyACXmlK(p;C
ziqtBt<SL7fBE?eZ2X<XE9-9F?14D}o&S<*8a|7n1e5mcBIV)!FJ?DMTd(ORQfd9Km
z<2r7BcEi#0MQUaZC2O=^s-wsAjS32&=ZoA)rm2J%saGvx_726e#ZxS&!(j+QzEQH>
z*tm<Mp1=*LnTA-OzP`xCyqB9lwVqF-J}&4lUlAHW#5WAM3+$*T0$5&+QTf)Swh|z?
zWy112Iv|&AH0qp2ecVLmH0nda=u1Qz7Cd@=g<|OlfSh)OKX*(c6`^93v9|I6RHIYq
z`C^M;*+%o$xuCxkswi2bi^M<$++a1+Kq^gRZENTePY1Yb)#y~0e;^b<wrz@KOAr}K
z0k_%iB-27}Yg?mYm^4xm0BmKiMQ$a4nkx|0n^dDy1ob8b?O4PrmMs7-z7s+&+kEx&
zK}Um1y_)Tl4?iGzJA?l0S5fndVFFOEwgPI0W*6~xU>AJ;vW#`vd!}SfDDm{z0u@PW
z2X`}0-p&B9^Nk|1cS$r-5s|%XS^E#t-Z#W=fS}$4;Fm^4?5mlz4nHMp-~qU`nQ%5X
z?jo<oy1-qNS7XeELjcSKWoCjh-po}1;;985J$goMB|tp2Ab?$PxomfVyXNV|tXMkg
z0te6|9snAt2zta3O{nGyBtCkZt^41h<_ZA3<)1|^+pThW>wO#D3vjr5^2MI|;&a_J
zSx(H0MQdB5q1W(7Wpdh)cyB9v_{}EGke_DAPcU)`=|_X;LWmc;zj0N%L^V3aez8dN
z&t?~>k~LVGo93`|(%FQWdtoPe?M?Cg-uv&8iY*H8_G8y^<DO*=u=9Mk=N@-nWYS@j
z$A&~42NkL3J@D|$AH+TIbsy>a)l|tEWYXa-Q1|GazZHGwodcnO*!<-CedjztCLMk?
z{rXtPbd2MSHXjE#WbTEX_Vx9(CFfdV#`)VA17dnc;ifz`hMV^zd>4%ULGtN?j~z8v
z5cA^6!+mL>s_OVy1E=M!&4e>aS$&fb_<c*m&?*y^#KV7VV=J(}w&W~dnPd6N9FTLK
z@7Kqw@x%(`4@wjHdnU=g9lYm#@J}j`KPa8a5AoRSzyHT%eQn7BP|r@mxIOUNUfW+L
WthLqX6fZ6S0000<MNUMnLSTY$&E~`a

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/talents/spells/alchemy.lua b/game/modules/tome/data/talents/spells/alchemy.lua
index 3ff6073439..88a842c4fe 100644
--- a/game/modules/tome/data/talents/spells/alchemy.lua
+++ b/game/modules/tome/data/talents/spells/alchemy.lua
@@ -25,6 +25,7 @@ newTalent{
 	range = function(self, t)
 		return math.ceil(5 + self:getDex(12))
 	end,
+	mana = 30,
 	action = function(self, t)
 		local nb = rng.range(40, 80)
 
@@ -57,6 +58,7 @@ newTalent{
 	type = {"spell/alchemy", 1},
 	require = spells_req1,
 	points = 5,
+	mana = 5,
 	range = function(self, t)
 		return math.ceil(5 + self:getDex(12))
 	end,
diff --git a/game/modules/tome/data/talents/spells/golemancy.lua b/game/modules/tome/data/talents/spells/golemancy.lua
index 2a383aacbe..b6f1c4609a 100644
--- a/game/modules/tome/data/talents/spells/golemancy.lua
+++ b/game/modules/tome/data/talents/spells/golemancy.lua
@@ -46,20 +46,38 @@ end
 
 newTalent{
 	name = "Refit Golem",
-	type = {"spell/golemancy", 1},
+	type = {"spell/golemancy-base", 1},
 	require = spells_req1,
 	points = 1,
+	cooldown = 20,
+	mana = 10,
 	action = function(self, t)
 		if not self.alchemy_golem then
 			self.alchemy_golem = game.zone:finishEntity(game.level, "actor", makeGolem())
 			if not self.alchemy_golem then return end
 			self.alchemy_golem.faction = self.faction
+			self.alchemy_golem.name = "golem (servant of "..self.name..")"
 			self.alchemy_golem.summoner = self
 			self.alchemy_golem.summoner_gain_exp = true
+		else
+			local co = coroutine.running()
+			local ok = false
+			self:restInit(20, "refitting", "refitted", function(cnt, max)
+				if cnt > max then ok = true end
+				coroutine.resume(co)
+			end)
+			coroutine.yield()
+			if not ok then
+				game.logPlayer(self, "You have been interrupted!")
+				return
+			end
 		end
 
 		if game.level:hasEntity(self.alchemy_golem) then
 		else
+			self.alchemy_golem.dead = nil
+			if self.alchemy_golem.life < 0 then self.alchemy_golem.life = self.alchemy_golem.max_life / 3 end
+
 			-- Find space
 			local x, y = util.findFreeGrid(self.x, self.y, 5, true, {[Map.ACTOR]=true})
 			if not x then
@@ -73,70 +91,41 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Carve %d to %d alchemist gems out of natural gems.
-		Alchemists gems are used for lots of other spells.]]):format(40, 80)
+		return ([[Interract with your golem, reviving it if it is dead, healing it, ...]])
 	end,
 }
 
 newTalent{
-	name = "Golem: Taunt",
+	name = "Golem: Taunt", short_name = "GOLEM_TAUNT",
 	type = {"spell/golemancy", 1},
 	require = spells_req1,
 	points = 5,
-	range = function(self, t)
-		return math.ceil(5 + self:getDex(12))
-	end,
-	computeDamage = function(self, t, ammo)
-		local inc_dam = 0
-		local damtype = DamageType.FIRE
-		local particle = "ball_fire"
-		if self:isTalentActive(self.T_ACID_INFUSION) then inc_dam = self:getTalentLevel(self.T_ACID_INFUSION) * 0.05; damtype = DamageType.ACID; particle = "ball_acid"
-		elseif self:isTalentActive(self.T_LIGHTNING_INFUSION) then inc_dam = self:getTalentLevel(self.T_LIGHTNING_INFUSION) * 0.05; damtype = DamageType.LIGHTNING; particle = "ball_lightning"
-		elseif self:isTalentActive(self.T_FROST_INFUSION) then inc_dam = self:getTalentLevel(self.T_FROST_INFUSION) * 0.05; damtype = DamageType.ICE; particle = "ball_ice"
-		else inc_dam = self:getTalentLevel(self.T_FIRE_INFUSION) * 0.05
-		end
-		local dam = self:combatTalentSpellDamage(t, 15, 150, (ammo.alchemist_power + self:combatSpellpower()) / 2)
-		dam = dam * (1 + inc_dam)
-		return dam, damtype, particle
+	cooldown = function(self, t)
+		return 20 - self:getTalentLevelRaw(t) * 2
 	end,
+	range = 10,
+	mana = 5,
 	action = function(self, t)
-		local ammo = self:hasAlchemistWeapon()
-		if not ammo then
-			game.logPlayer(self, "You need to ready alchemist gems in your quiver.")
+		if not game.level:hasEntity(self.alchemy_golem) then
+			game.logPlayer(self, "Your golem is currently inactive.")
 			return
 		end
 
-		local tg = {type="ball", range=self:getTalentRange(t), radius=self:getTalentLevelRaw(self.T_EXPLOSION_EXPERT), talent=t}
-		if tg.radius == 0 then tg.type = "hit" end
-		local x, y = self:getTarget(tg)
-		if not x or not y then return nil end
-
-		ammo = self:removeObject(self:getInven("QUIVER"), 1)
-		if not ammo then return end
-
-		local dam, damtype, particle = t.computeDamage(self, t, ammo)
-		local prot = self:getTalentLevelRaw(self.T_ALCHEMIST_PROTECTION) * 0.2
+		local tg = {type="hit", range=self:getTalentRange(t)}
+		game.target.source_actor = self.alchemy_golem
+		local x, y, target = self:getTarget(tg)
+		game.target.source_actor = self
+		if not x or not y or not target then print(1) return nil end
+		if math.floor(core.fov.distance(self.alchemy_golem.x, self.alchemy_golem.y, x, y)) > self:getTalentRange(t) then return nil end
 
-		local grids = self:project(tg, x, y, function(tx, ty)
-			-- Protect yourself
-			local d = dam
-			if tx == self.x and ty == self.y then d = dam * (1 - prot) end
-			DamageType:get(damtype).projector(self, tx, ty, damtype, self:spellCrit(d))
-		end)
+		self.alchemy_golem:setTarget(target)
+		target:setTarget(self.alchemy_golem)
+		game.logPlayer(self, "Your golem provokes %s to attack it.", target.name:capitalize())
 
-		local _ _, x, y = self:canProject(tg, x, y)
-		game.level.map:particleEmitter(x, y, tg.radius, particle, {radius=tg.radius, grids=grids, tx=x, ty=y})
-
-		game:playSoundNear(self, "talents/arcane")
 		return true
 	end,
 	info = function(self, t)
-		local ammo = self:hasAlchemistWeapon()
-		local dam, damtype = 1, DamageType.FIRE
-		if ammo then dam, damtype = t.computeDamage(self, t, ammo) end
-		return ([[Imbue an alchemist gem with an explosive charge of mana and throw it.
-		The gem will explode for %0.2f %s damage.
-		The damage will improve with better gems and Magic stat and the range with your dexterity.]]):format(dam, DamageType:get(damtype).name)
+		return ([[Orders your golem to taunt a target, forcing it to attack the golem.]]):format()
 	end,
 }
 
@@ -144,10 +133,54 @@ newTalent{
 	name = "Golem: Knockback",
 	type = {"spell/golemancy", 2},
 	require = spells_req2,
-	mode = "passive",
 	points = 5,
+	cooldown = 10,
+	range = 10,
+	mana = 5,
+	action = function(self, t)
+		if not game.level:hasEntity(self.alchemy_golem) then
+			game.logPlayer(self, "Your golem is currently inactive.")
+			return
+		end
+
+		local tg = {type="hit", range=self:getTalentRange(t)}
+		game.target.source_actor = self.alchemy_golem
+		local x, y, target = self:getTarget(tg)
+		game.target.source_actor = self
+		if not x or not y or not target then return nil end
+		if math.floor(core.fov.distance(self.alchemy_golem.x, self.alchemy_golem.y, x, y)) > self:getTalentRange(t) then return nil end
+
+		self.alchemy_golem:setTarget(target)
+
+		local l = line.new(self.alchemy_golem.x, self.alchemy_golem.y, x, y)
+		local lx, ly = l()
+		local tx, ty = self.alchemy_golem.x, self.alchemy_golem.y
+		lx, ly = l()
+		while lx and ly do
+			if game.level.map:checkAllEntities(lx, ly, "block_move", self.alchemy_golem) then break end
+			tx, ty = lx, ly
+			lx, ly = l()
+		end
+
+		self.alchemy_golem:move(tx, ty, true)
+
+		-- Attack ?
+		if math.floor(core.fov.distance(self.alchemy_golem.x, self.alchemy_golem.y, x, y)) > 1 then return true end
+		local hit = self.alchemy_golem:attackTarget(target, nil, self.alchemy_golem:combatTalentWeaponDamage(t, 0.8, 1.6), true)
+
+		-- Try to knockback !
+		if hit then
+			if target:checkHit(self.alchemy_golem:combatAttackStr(), target:combatPhysicalResist(), 0, 95, 5 - self.alchemy_golem:getTalentLevel(t) / 2) and target:canBe("knockback") then
+				target:knockback(self.alchemy_golem.x, self.alchemy_golem.y, 3)
+			else
+				game.logSeen(target, "%s resists the knockback!", target.name:capitalize())
+			end
+		end
+
+		return true
+	end,
 	info = function(self, t)
-		return ([[Your alchemist bombs now affect a radius of %d around them.]]):format(self:getTalentLevelRaw(t))
+		return ([[Your golem rushes to the target, knocking it back and doing %d%% damage.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.6))
 	end,
 }
 
@@ -155,23 +188,54 @@ newTalent{
 	name = "Golem: Crush",
 	type = {"spell/golemancy", 3},
 	require = spells_req3,
-	mode = "passive",
 	points = 5,
-	on_learn = function(self, t)
-		self.resists[DamageType.FIRE] = (self.resists[DamageType.FIRE] or 0) + 3
-		self.resists[DamageType.COLD] = (self.resists[DamageType.COLD] or 0) + 3
-		self.resists[DamageType.LIGHTNING] = (self.resists[DamageType.LIGHTNING] or 0) + 3
-		self.resists[DamageType.ACID] = (self.resists[DamageType.ACID] or 0) + 3
-	end,
-	on_unlearn = function(self, t)
-		self.resists[DamageType.FIRE] = self.resists[DamageType.FIRE] - 3
-		self.resists[DamageType.COLD] = self.resists[DamageType.COLD] - 3
-		self.resists[DamageType.LIGHTNING] = self.resists[DamageType.LIGHTNING] - 3
-		self.resists[DamageType.ACID] = self.resists[DamageType.ACID] - 3
+	cooldown = 10,
+	range = 10,
+	mana = 5,
+	action = function(self, t)
+		if not game.level:hasEntity(self.alchemy_golem) then
+			game.logPlayer(self, "Your golem is currently inactive.")
+			return
+		end
+
+		local tg = {type="hit", range=self:getTalentRange(t)}
+		game.target.source_actor = self.alchemy_golem
+		local x, y, target = self:getTarget(tg)
+		game.target.source_actor = self
+		if not x or not y or not target then return nil end
+		if math.floor(core.fov.distance(self.alchemy_golem.x, self.alchemy_golem.y, x, y)) > self:getTalentRange(t) then return nil end
+
+		self.alchemy_golem:setTarget(target)
+
+		local l = line.new(self.alchemy_golem.x, self.alchemy_golem.y, x, y)
+		local lx, ly = l()
+		local tx, ty = self.alchemy_golem.x, self.alchemy_golem.y
+		lx, ly = l()
+		while lx and ly do
+			if game.level.map:checkAllEntities(lx, ly, "block_move", self.alchemy_golem) then break end
+			tx, ty = lx, ly
+			lx, ly = l()
+		end
+
+		self.alchemy_golem:move(tx, ty, true)
+
+		-- Attack ?
+		if math.floor(core.fov.distance(self.alchemy_golem.x, self.alchemy_golem.y, x, y)) > 1 then return true end
+		local hit = self.alchemy_golem:attackTarget(target, nil, self.alchemy_golem:combatTalentWeaponDamage(t, 0.8, 1.6), true)
+
+		-- Try to knockback !
+		if hit then
+			if target:checkHit(self.alchemy_golem:combatAttackStr(), target:combatPhysicalResist(), 0, 95, 10 - self.alchemy_golem:getTalentLevel(t) / 2) and target:canBe("stun") then
+				target:setEffect(target.EFF_PINNED, 2 + self.alchemy_golem:getTalentLevel(t), {})
+			else
+				game.logSeen(target, "%s resists the crushing!", target.name:capitalize())
+			end
+		end
+
+		return true
 	end,
 	info = function(self, t)
-		return ([[Improves your resistance against your own bombs elemental damage by %d%% and against external one byt %d%%.]]):
-		format(self:getTalentLevelRaw(t) * 20, self:getTalentLevelRaw(t) * 3)
+		return ([[Your golem rushes to the target, crushing and doing %d%% damage.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.6))
 	end,
 }
 
@@ -180,12 +244,13 @@ newTalent{
 	type = {"spell/golemancy",4},
 	require = spells_req4,
 	points = 5,
+	mana = 10,
+	cooldown = 20,
 	action = function(self, t)
 		game:playSoundNear(self, "talents/arcane")
 		return true
 	end,
 	info = function(self, t)
-		return ([[Carve %d to %d alchemist gems out of muliple natural gems, combining their powers.
-		Alchemists gems are used for lots of other spells.]]):format(40, 80)
+		return ([[Imbue an alchemist gem with an explosive charge of mana and throw it.]]):format()
 	end,
 }
diff --git a/game/modules/tome/data/talents/spells/infusion.lua b/game/modules/tome/data/talents/spells/infusion.lua
index b664b2ab5d..02c29afd5c 100644
--- a/game/modules/tome/data/talents/spells/infusion.lua
+++ b/game/modules/tome/data/talents/spells/infusion.lua
@@ -45,7 +45,7 @@ newTalent{
 	type = {"spell/infusion", 2},
 	mode = "sustained",
 	require = spells_req2,
-	sustain_mana = 50,
+	sustain_mana = 30,
 	points = 5,
 	cooldown = 30,
 	activate = function(self, t)
@@ -69,7 +69,7 @@ newTalent{
 	type = {"spell/infusion", 2},
 	mode = "sustained",
 	require = spells_req2,
-	sustain_mana = 50,
+	sustain_mana = 30,
 	points = 5,
 	cooldown = 30,
 	activate = function(self, t)
@@ -93,7 +93,7 @@ newTalent{
 	type = {"spell/infusion", 2},
 	mode = "sustained",
 	require = spells_req2,
-	sustain_mana = 50,
+	sustain_mana = 30,
 	points = 5,
 	cooldown = 30,
 	activate = function(self, t)
diff --git a/game/modules/tome/data/talents/spells/spells.lua b/game/modules/tome/data/talents/spells/spells.lua
index 6e1948eb35..17ff36aca7 100644
--- a/game/modules/tome/data/talents/spells/spells.lua
+++ b/game/modules/tome/data/talents/spells/spells.lua
@@ -35,6 +35,7 @@ newTalentType{ type="spell/enhancement", name = "enhancement", description = "Ma
 newTalentType{ type="spell/alchemy-base", name = "alchemy", hide = true, description = "Manipulate gems to turn them into explosive magical bombs." }
 newTalentType{ type="spell/alchemy", name = "alchemy", description = "Manipulate gems to turn them into explosive magical bombs." }
 newTalentType{ type="spell/infusion", name = "infusion", description = "Infusion your gem bombs with the powers of the elements." }
+newTalentType{ type="spell/golemancy-base", name = "golemancy", hide = true, description = "Learn to craft and upgrade your golem." }
 newTalentType{ type="spell/golemancy", name = "golemancy", description = "Learn to craft and upgrade your golem." }
 newTalentType{ type="spell/advanced-golemancy", name = "advanced-golemancy", description = "Advanced golem operations." }
 newTalentType{ type="spell/gemology", name = "gemology", generic = true, description = "Manipulate gems, imbue their powers into other objects." }
diff --git a/ideas/crafting.ods b/ideas/crafting.ods
index 27ed731db629da07867d3fde859eeac96b0a29e9..33659f50e225d4236e7a70c07f18d7171d639d60 100644
GIT binary patch
delta 23881
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

delta 17701
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
aj0_AJ><kQ|C_1hECvV76XFDDM5(NOlRAJBn

-- 
GitLab