Commit 91e971d6be902cf371fbc4def39417dfe0e7b60f

Authored by Chris Davidson
1 parent 0c55be08

Revise Shield Wall

Cleaning up scaling and reinforcing Bulwark's identity being strongly based on Block.

- Now reduces Block cooldown by 2

- No longer increases defense

- Scaling on armor increased and scales equally with Dexterity and Strength

- No longer scales with Shield Expertise (this was tiny and silly anyway)
... ... @@ -194,13 +194,8 @@ newTalent{
194 194 sustain_stamina = 30,
195 195 tactical = { DEFEND = 2 },
196 196 on_pre_use = function(self, t, silent) if not self:hasShield() then if not silent then game.logPlayer(self, "You require a weapon and a shield to use this talent.") end return false end return true end,
197   - getDefense = function(self, t)
198   - return t.getDexArmor(self, t) + t.getExpertiseArmor(self,t)
199   - end,
200   - getExpertiseArmor = function(self, t) return self:combatTalentScale(self:getTalentLevel(self.T_SHIELD_EXPERTISE), 1, 5, 0.5) end,
201   - getDexArmor = function(self, t) return self:combatTalentStatDamage(t, "dex", 6, 20) end,
202   - getArmor = function(self,t) return t.getDexArmor(self, t) + t.getExpertiseArmor(self,t) end, -- Scale separately with talent level and talent level of Shield Expertise
203   - getBlock = function(self, t) return self:combatTalentStatDamage(t, "str", 40, 150) end,
  197 + getArmor = function(self,t) return self:combatTalentStatDamage(t, "str", 6, 40) + self:combatTalentStatDamage(t, "dex", 6, 40) end,
  198 + getBlock = function(self, t) return self:combatTalentStatDamage(t, "str", 20, 75) + self:combatTalentStatDamage(t, "dex", 20, 75) end,
204 199 stunKBresist = function(self, t) return self:combatTalentLimit(t, 1, 0.15, 0.50) end, -- Limit <100%
205 200 activate = function(self, t)
206 201 local shield = self:hasShield()
... ... @@ -211,10 +206,9 @@ newTalent{
211 206 local ret = {
212 207 stun = self:addTemporaryValue("stun_immune", t.stunKBresist(self, t)),
213 208 knock = self:addTemporaryValue("knockback_immune", t.stunKBresist(self, t)),
214   - def = self:addTemporaryValue("combat_def", t.getDefense(self, t)),
215 209 armor = self:addTemporaryValue("combat_armor", t.getArmor(self,t)),
216 210 block = self:addTemporaryValue("block_bonus", t.getBlock(self,t)),
217   -
  211 + block_cd = self:addTemporaryValue("talent_cd_reduction", {[self.T_BLOCK] = 2}),
218 212 }
219 213 if core.shader.active(4) then
220 214 self:talentParticles(ret, {type="shader_shield", args={toback=true, size_factor=1, img="rotating_shield"}, shader={type="rotatingshield", noup=2.0, appearTime=0.2}})
... ... @@ -223,17 +217,19 @@ newTalent{
223 217 return ret
224 218 end,
225 219 deactivate = function(self, t, p)
226   - self:removeTemporaryValue("combat_def", p.def)
227 220 self:removeTemporaryValue("combat_armor", p.armor)
228 221 self:removeTemporaryValue("stun_immune", p.stun)
229 222 self:removeTemporaryValue("knockback_immune", p.knock)
230 223 self:removeTemporaryValue("block_bonus", p.block)
  224 + self:removeTemporaryValue("talent_cd_reduction", p.block_cd)
231 225 return true
232 226 end,
233 227 info = function(self, t)
234   - return ([[Enter a protective battle stance, increasing Defense by %d, Armour by %d, and Block value by %d. The Defense and Armor increase is based on your Dexterity, the Block on your Strength.
235   - It also grants %d%% resistance to stunning and knockback.]]):
236   - format(t.getDefense(self, t), t.getArmor(self, t), t.getBlock(self, t), 100*t.stunKBresist(self, t))
  228 + return ([[Enter a protective battle stance allowing you to defend yourself more proficiently while using a shield.
  229 + Increases Armour by %d, Block value by %d, and reduces Block cooldown by 2.
  230 + Increases stun and knockback resistance by %d%%.
  231 + The Armor and Block bonuses increase equally with your Dexterity and Strength.]]):
  232 + format(t.getArmor(self, t), t.getBlock(self, t), 100*t.stunKBresist(self, t))
237 233 end,
238 234 }
239 235
... ... @@ -302,7 +298,7 @@ newTalent{
302 298 self:talentTemporaryValue(p, "combat_spellresist", t.getSpell(self, t))
303 299 end,
304 300 info = function(self, t)
305   - return ([[Improves your damage and defense with shield-based skills, and increases your Spell (+%d) and Physical (+%d) Saves.]]):format(t.getSpell(self, t), t.getPhysical(self, t))
  301 + return ([[Improves your damage with shield-based skills, and increases your Spell (+%d) and Physical (+%d) Saves.]]):format(t.getSpell(self, t), t.getPhysical(self, t))
306 302 end,
307 303 }
308 304
... ...