Skip to content
Snippets Groups Projects
Commit bf1388fc authored by Chris Davidson's avatar Chris Davidson
Browse files

Nerf damage on Assault

Raise damage on Shield Slam

Add scaling functions to Shield Expertise save bonuses.

Add an attack and a rush cooldown refresh to Repulsion
parent c7509a2f
No related branches found
No related tags found
1 merge request!396Nerf damage on Assault
......@@ -104,7 +104,7 @@ newTalent{
is_special_melee = true,
range = 1,
target = function(self, t) return {type="hit", range=self:getTalentRange(t)} end,
getShieldDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.1, 0.8, self:getTalentLevel(self.T_SHIELD_EXPERTISE)) end,
getShieldDamage = function(self, t) return self:combatTalentWeaponDamage(t, 0.3, 1, self:getTalentLevel(self.T_SHIELD_EXPERTISE)) end,
tactical = { ATTACK = 2}, -- is there a way to make this consider the free Block?
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,
action = function(self, t)
......@@ -161,13 +161,13 @@ newTalent{
if not target or not self:canProject(tg, x, y) then return nil end
-- First attack with shield
local speed, hit = self:attackTargetWith(target, shield_combat, nil, self:combatTalentWeaponDamage(t, 1, 1.5, self:getTalentLevel(self.T_SHIELD_EXPERTISE)))
local speed, hit = self:attackTargetWith(target, shield_combat, nil, self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)))
-- Second & third attack with weapon
if hit then
self.turn_procs.auto_phys_crit = true
self:attackTarget(target, nil, self:combatTalentWeaponDamage(t, 1, 1.5), true)
self:attackTarget(target, nil, self:combatTalentWeaponDamage(t, 1, 1.5), true)
self:attackTarget(target, nil, self:combatTalentWeaponDamage(t, 0.8, 1.3), true)
self:attackTarget(target, nil, self:combatTalentWeaponDamage(t, 0.8, 1.3), true)
self.turn_procs.auto_phys_crit = nil
end
......@@ -175,7 +175,7 @@ newTalent{
end,
info = function(self, t)
return ([[Hits the target with your shield, doing %d%% damage. If it hits, you follow up with two automatic critical hits with your weapon, doing %d%% base damage each.]]):
format(100 * self:combatTalentWeaponDamage(t, 1, 1.5, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), 100 * self:combatTalentWeaponDamage(t, 1, 1.5))
format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), 100 * self:combatTalentWeaponDamage(t, 0.8, 1.3))
end,
}
......@@ -243,7 +243,8 @@ newTalent{
points = 5,
random_ego = "attack",
cooldown = 10,
stamina = 30,
stamina = 20,
getShieldDamage = function(self, t) return self:combatTalentWeaponDamage(t, 1, 2.5, self:getTalentLevel(self.T_SHIELD_EXPERTISE)) end,
tactical = { ESCAPE = { knockback = 2 }, DEFEND = { knockback = 0.5 } },
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,
range = 0,
......@@ -265,6 +266,9 @@ newTalent{
self:project(tg, self.x, self.y, function(px, py, tg, self)
local target = game.level.map(px, py, Map.ACTOR)
if target then
local damage = t.getShieldDamage(self, t)
local speed, hit = self:attackTargetWith(target, shield_combat, nil, damage)
if hit and self:getTalentFromId(game.player.T_RUSH) then self.talents_cd["T_RUSH"] = nil end
if target:checkHit(self:combatAttack(shield_combat), target:combatPhysicalResist(), 0, 95) and target:canBe("knockback") then --Deprecated checkHit call
target:knockback(self.x, self.y, t.getDist(self, t))
if target:canBe("stun") then target:setEffect(target.EFF_DAZED, t.getDuration(self, t), {}) end
......@@ -273,15 +277,14 @@ newTalent{
end
end
end)
self:addParticles(Particles.new("meleestorm2", 1, {radius=2}))
return true
end,
info = function(self, t)
return ([[Let all your foes pile up on your shield, then put all your strength in one mighty thrust and repel them all away %d grids.
return ([[Smash your shield into the face of all adjacent foes dealing %d%% shield damage and knocking them back %d grids.
In addition, all creatures knocked back will also be dazed for %d turns.
The distance increases with your talent level, and the Daze duration with your Strength.]]):format(t.getDist(self, t), t.getDuration(self, t))
If known, activating this talent will refresh your Rush cooldown if the attack hits.
The distance increases with your talent level, and the Daze duration with your Strength.]]):format(t.getShieldDamage(self, t)*100, t.getDist(self, t), t.getDuration(self, t))
end,
}
......@@ -291,16 +294,14 @@ newTalent{
require = techs_req3,
mode = "passive",
points = 5,
on_learn = function(self, t)
self.combat_physresist = self.combat_physresist + 4
self.combat_spellresist = self.combat_spellresist + 2
end,
on_unlearn = function(self, t)
self.combat_physresist = self.combat_physresist - 4
self.combat_spellresist = self.combat_spellresist - 2
getPhysical = function(self, t) return self:combatTalentScale(t, 1, 20) end,
getSpell = function(self, t) return self:combatTalentScale(t, 1, 10) end,
passives = function(self, t, p)
self:talentTemporaryValue(p, "combat_physresist", t.getPhysical(self, t))
self:talentTemporaryValue(p, "combat_spellresist", t.getSpell(self, t))
end,
info = function(self, t)
return ([[Improves your damage and defense with shield-based skills, and increases your Spell (+%d) and Physical (+%d) Saves.]]):format(2 * self:getTalentLevelRaw(t), 4 * self:getTalentLevelRaw(t))
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))
end,
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment