Commit 68f079fe6e6ac2d268133ba26e22d234bfdb2d2d
1 parent
7c5adab1
Damage penalty on rares stretches up until level 20
git-svn-id: http://svn.net-core.org/repos/t-engine4@5156 51575b47-30f0-44d4-a5cc-537603b46e54
Showing
5 changed files
with
15 additions
and
7 deletions
... | ... | @@ -111,7 +111,7 @@ function _M:resolveLevelTalents() |
111 | 111 | end |
112 | 112 | |
113 | 113 | --- Make the actor use the talent |
114 | -function _M:useTalent(id, who, force_level, ignore_cd, force_target) | |
114 | +function _M:useTalent(id, who, force_level, ignore_cd, force_target, silent) | |
115 | 115 | who = who or self |
116 | 116 | local ab = _M.talents_def[id] |
117 | 117 | assert(ab, "trying to cast talent "..tostring(id).." but it is not defined") |
... | ... | @@ -121,7 +121,7 @@ function _M:useTalent(id, who, force_level, ignore_cd, force_target) |
121 | 121 | game.logPlayer(who, "%s is still on cooldown for %d turns.", ab.name:capitalize(), self.talents_cd[ab.id]) |
122 | 122 | return |
123 | 123 | end |
124 | - if not self:preUseTalent(ab) then return end | |
124 | + if not self:preUseTalent(ab, silent) then return end | |
125 | 125 | local co = coroutine.create(function() |
126 | 126 | local old_level |
127 | 127 | local old_target |
... | ... | @@ -145,7 +145,7 @@ function _M:useTalent(id, who, force_level, ignore_cd, force_target) |
145 | 145 | game.logPlayer(who, "%s is still on cooldown for %d turns.", ab.name:capitalize(), self.talents_cd[ab.id]) |
146 | 146 | return |
147 | 147 | end |
148 | - if not self:preUseTalent(ab) then return end | |
148 | + if not self:preUseTalent(ab, silent) then return end | |
149 | 149 | local co = coroutine.create(function() |
150 | 150 | if not self.sustain_talents[id] then |
151 | 151 | local old_level |
... | ... | @@ -220,7 +220,7 @@ function _M:forceUseTalent(t, def) |
220 | 220 | if def.ignore_energy then self.energy.value = 10000 end |
221 | 221 | |
222 | 222 | if def.ignore_ressources then self:attr("force_talent_ignore_ressources", 1) end |
223 | - local ret = {self:useTalent(t, def.force_who, def.force_level, def.ignore_cd, def.force_target)} | |
223 | + local ret = {self:useTalent(t, def.force_who, def.force_level, def.ignore_cd, def.force_target, def.silent)} | |
224 | 224 | if def.ignore_ressources then self:attr("force_talent_ignore_ressources", -1) end |
225 | 225 | |
226 | 226 | if def.ignore_energy then | ... | ... |
... | ... | @@ -255,7 +255,7 @@ function _M:stripForExport() |
255 | 255 | for tid, act in pairs(self.sustain_talents) do if act then list[#list+1] = tid end end |
256 | 256 | while #list > 0 do |
257 | 257 | local eff = rng.tableRemove(list) |
258 | - self:forceUseTalent(eff, {ignore_energy=true, no_equilibrium_fail=true, no_paradox_fail=true}) | |
258 | + self:forceUseTalent(eff, {silent=true, ignore_energy=true, no_equilibrium_fail=true, no_paradox_fail=true, save_cleanup=true}) | |
259 | 259 | end |
260 | 260 | end |
261 | 261 | |
... | ... | @@ -3219,10 +3219,12 @@ function _M:forceUseTalent(t, def) |
3219 | 3219 | if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", 1) end |
3220 | 3220 | if def.no_paradox_fail then self:attr("no_paradox_fail", 1) end |
3221 | 3221 | if def.talent_reuse then self:attr("talent_reuse", 1) end |
3222 | + if def.save_cleanup then self:attr("save_cleanup", 1) end | |
3222 | 3223 | local ret = {engine.interface.ActorTalents.forceUseTalent(self, t, def)} |
3223 | 3224 | if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", -1) end |
3224 | 3225 | if def.no_paradox_fail then self:attr("no_paradox_fail", -1) end |
3225 | 3226 | if def.talent_reuse then self:attr("talent_reuse", -1) end |
3227 | + if def.save_cleanup then self:attr("save_cleanup", -1) end | |
3226 | 3228 | return unpack(ret) |
3227 | 3229 | end |
3228 | 3230 | ... | ... |
... | ... | @@ -1118,9 +1118,9 @@ function _M:entityFilterPost(zone, level, type, e, filter) |
1118 | 1118 | level = filter.random_elite.level or zone:level_adjust_level(level, zone, type), |
1119 | 1119 | check_talents_level = true, |
1120 | 1120 | post = function(b, data) |
1121 | - if data.level <= 12 then | |
1121 | + if data.level <= 20 then | |
1122 | 1122 | b.inc_damage = b.inc_damage or {} |
1123 | - b.inc_damage.all = (b.inc_damage.all or 0) - 40 * (12 - data.level + 1) / 12 | |
1123 | + b.inc_damage.all = (b.inc_damage.all or 0) - 40 * (20 - data.level + 1) / 20 | |
1124 | 1124 | end |
1125 | 1125 | end, |
1126 | 1126 | } | ... | ... |
... | ... | @@ -90,6 +90,7 @@ newTalent{ |
90 | 90 | deactivate = function(self, t, p) |
91 | 91 | local spike_str = getSpikeStrength(self, t) |
92 | 92 | self:removeTemporaryValue("kinetic_shield", p.am) |
93 | + if self:attr("save_cleanup") then return true end | |
93 | 94 | self:setEffect(self.EFF_KINSPIKE_SHIELD, 5, {power=spike_str}) |
94 | 95 | return true |
95 | 96 | end, |
... | ... | @@ -193,6 +194,7 @@ newTalent{ |
193 | 194 | deactivate = function(self, t, p) |
194 | 195 | local spike_str = getSpikeStrength(self, t) |
195 | 196 | self:removeTemporaryValue("thermal_shield", p.am) |
197 | + if self:attr("save_cleanup") then return true end | |
196 | 198 | self:setEffect(self.EFF_THERMSPIKE_SHIELD, 5, {power=spike_str}) |
197 | 199 | return true |
198 | 200 | end, |
... | ... | @@ -293,6 +295,7 @@ newTalent{ |
293 | 295 | deactivate = function(self, t, p) |
294 | 296 | local spike_str = getSpikeStrength(self, t) |
295 | 297 | self:removeTemporaryValue("charged_shield", p.am) |
298 | + if self:attr("save_cleanup") then return true end | |
296 | 299 | self:setEffect(self.EFF_CHARGESPIKE_SHIELD, 5, {power=spike_str}) |
297 | 300 | return true |
298 | 301 | end, | ... | ... |
... | ... | @@ -154,6 +154,7 @@ newTalent{ |
154 | 154 | return true |
155 | 155 | end, |
156 | 156 | deactivate = function(self, t, p) |
157 | + if self:attr("save_cleanup") then return true end | |
157 | 158 | local dam = t.getAuraSpikeStrength(self, t) |
158 | 159 | local cost = t.getSpikeCost(self, t) |
159 | 160 | if self:getPsi() <= cost then |
... | ... | @@ -269,6 +270,7 @@ newTalent{ |
269 | 270 | return true |
270 | 271 | end, |
271 | 272 | deactivate = function(self, t, p) |
273 | + if self:attr("save_cleanup") then return true end | |
272 | 274 | local dam = t.getAuraSpikeStrength(self, t) |
273 | 275 | local cost = t.getSpikeCost(self, t) |
274 | 276 | --if self:isTalentActive(self.T_CONDUIT) then return true end |
... | ... | @@ -390,6 +392,7 @@ newTalent{ |
390 | 392 | return true |
391 | 393 | end, |
392 | 394 | deactivate = function(self, t, p) |
395 | + if self:attr("save_cleanup") then return true end | |
393 | 396 | local dam = t.getAuraSpikeStrength(self, t) |
394 | 397 | local cost = t.getSpikeCost(self, t) |
395 | 398 | --if self:isTalentActive(self.T_CONDUIT) then return true end | ... | ... |
-
Please register or login to post a comment