Skip to content
Snippets Groups Projects
Commit 2c6d7457 authored by DarkGod's avatar DarkGod
Browse files

Merge branch 'master' of git.net-core.org:tome/t-engine4

parents 2479a072 785d8ce2
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -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