diff --git a/game/engines/default/engine/ai/talented.lua b/game/engines/default/engine/ai/talented.lua index 70aa9dd3315a2decdf23e21baf5f9315d24c2e14..08ea1eef15774b518b1fe406634b7fd8f8d6c27f 100644 --- a/game/engines/default/engine/ai/talented.lua +++ b/game/engines/default/engine/ai/talented.lua @@ -27,7 +27,7 @@ newAI("dumb_talented", function(self) for tid, _ in pairs(self.talents) do local t = self:getTalentFromId(tid) -- print(self.name, self.uid, "dumb ai talents can try use", t.name, tid, "::", t.mode, not self:isTalentCoolingDown(t), target_dist <= self:getTalentRange(t), self:preUseTalent(t, true), self:canProject({type="bolt"}, self.ai_target.actor.x, self.ai_target.actor.y)) - if t.mode == "activated" and not self:isTalentCoolingDown(t) and target_dist <= self:getTalentRange(t) and self:preUseTalent(t, true, true) and self:canProject({type="bolt"}, self.ai_target.actor.x, self.ai_target.actor.y) and self:hasLOS(self.ai_target.actor.x, self.ai_target.actor.y) then + if t.mode == "activated" and not self:isTalentCoolingDown(t) and target_dist <= self:getTalentRange(t) and self:preUseTalent(t, true, true) and self:canProject({type=t.direct_hit and "hit" or "bolt"}, self.ai_target.actor.x, self.ai_target.actor.y) and self:hasLOS(self.ai_target.actor.x, self.ai_target.actor.y) then avail[#avail+1] = tid print(self.name, self.uid, "dumb ai talents can use", t.name, tid) elseif t.mode == "sustained" and not self:isTalentCoolingDown(t) and not self:isTalentActive(t.id) and self:preUseTalent(t, true, true) then diff --git a/game/modules/tome/data/talents/corruptions/bone.lua b/game/modules/tome/data/talents/corruptions/bone.lua index 32aa99c7fe161b312905b37c2d84939b642c6cd1..0d29f143491f93c5be9b0b597482ddcafdedc10c 100644 --- a/game/modules/tome/data/talents/corruptions/bone.lua +++ b/game/modules/tome/data/talents/corruptions/bone.lua @@ -26,6 +26,7 @@ newTalent{ cooldown = 4, range = 20, random_ego = "attack", + direct_hit = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -115,6 +116,7 @@ newTalent{ tactical = { DEFEND = 10, }, + direct_hit = true, absorb = function(self, t, p) game.logPlayer(self, "Your bone shield absorbs the damage!") self:removeParticles(table.remove(p.particles)) diff --git a/game/modules/tome/data/talents/corruptions/curses.lua b/game/modules/tome/data/talents/corruptions/curses.lua index c36be2053fccbe6f650040ac5d55a8886400cef8..c160aeda69b2295cf5a2b09079b94c05eb7bf7a1 100644 --- a/game/modules/tome/data/talents/corruptions/curses.lua +++ b/game/modules/tome/data/talents/corruptions/curses.lua @@ -25,6 +25,7 @@ newTalent{ cooldown = 20, vim = 20, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -53,6 +54,7 @@ newTalent{ cooldown = 20, vim = 20, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -81,6 +83,7 @@ newTalent{ cooldown = 20, vim = 20, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -109,6 +112,7 @@ newTalent{ cooldown = 20, vim = 20, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/corruptions/hexes.lua b/game/modules/tome/data/talents/corruptions/hexes.lua index a230c0725602cba1c850160adfa1baa2a82fdc2f..4aa7df115ee1f10b1c2cb5cde890f05d28a17321 100644 --- a/game/modules/tome/data/talents/corruptions/hexes.lua +++ b/game/modules/tome/data/talents/corruptions/hexes.lua @@ -25,6 +25,7 @@ newTalent{ cooldown = 20, vim = 30, range = 30, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -53,6 +54,7 @@ newTalent{ cooldown = 20, vim = 30, range = 30, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -81,6 +83,7 @@ newTalent{ cooldown = 20, vim = 30, range = 30, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -109,6 +112,7 @@ newTalent{ cooldown = 20, vim = 30, range = 30, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/corruptions/plague.lua b/game/modules/tome/data/talents/corruptions/plague.lua index 4d0bfe819ef8bad91eb7b52d8cf543ad19afb11a..0ffce44f7e77ffb47a59808fba673cfbb9c364e2 100644 --- a/game/modules/tome/data/talents/corruptions/plague.lua +++ b/game/modules/tome/data/talents/corruptions/plague.lua @@ -122,6 +122,7 @@ newTalent{ vim = 35, cooldown = 15, range = 10, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=2} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/cunning/shadow-magic.lua b/game/modules/tome/data/talents/cunning/shadow-magic.lua index ee13dcf70af187e8568effeef8ff1e18c8d44693..852394b3ab89f7fcc4a2388c46355a2108cd8662 100644 --- a/game/modules/tome/data/talents/cunning/shadow-magic.lua +++ b/game/modules/tome/data/talents/cunning/shadow-magic.lua @@ -76,6 +76,7 @@ newTalent{ stamina = 100, require = cuns_req4, range = function(self, t) return math.floor(5 + self:getTalentLevel(t)) end, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t)} local x, y, target = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/divine/star-fury.lua b/game/modules/tome/data/talents/divine/star-fury.lua index d8eb8321f31dfebd71be72bfb06fdc4662c3b3ee..1afac7b4018e9e8715fd6ceafcdf8092c29c9bcc 100644 --- a/game/modules/tome/data/talents/divine/star-fury.lua +++ b/game/modules/tome/data/talents/divine/star-fury.lua @@ -29,6 +29,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} @@ -58,6 +59,7 @@ newTalent{ ATTACK = 10, }, range = 6, + direct_hit = true, action = function(self, t) local duration = self:getTalentLevel(t) + 2 local radius = 3 @@ -106,6 +108,7 @@ newTalent{ ATTACK = 10, }, range = 2, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=0, radius=self:getTalentRange(t), talent=t, friendlyfire=false} local grids = self:project(tg, self.x, self.y, DamageType.LIGHT, self:spellCrit(10 + self:combatSpellpower(0.2) * self:getTalentLevel(t))) @@ -139,6 +142,7 @@ newTalent{ ATTACKAREA = 10, }, range = 10, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=1 + math.floor(self:getTalentLevelRaw(t) / 3), friendlyfire=self:spellFriendlyFire(), talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/divine/sun.lua b/game/modules/tome/data/talents/divine/sun.lua index 4a7f9f442dd1df5791d2cd3f38985c86b85c21da..194c395db3d8eeb55351c8d62a49e7074a62dece 100644 --- a/game/modules/tome/data/talents/divine/sun.lua +++ b/game/modules/tome/data/talents/divine/sun.lua @@ -29,6 +29,7 @@ newTalent{ ATTACK = 10, }, range = 10, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} @@ -68,6 +69,7 @@ newTalent{ ATTACK = 10, }, range = 6, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=0, friendlyfire=true, radius=2 + self:getTalentLevel(t) / 2, talent=t} self:project(tg, self.x, self.y, DamageType.LITE, 1) @@ -102,6 +104,7 @@ newTalent{ ATTACK = 10, }, range = 10, + direct_hit = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -132,6 +135,7 @@ newTalent{ ATTACKAREA = 10, }, range = 3, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=0, radius=3, friendlyfire=false, talent=t} local grids = self:project(tg, self.x, self.y, DamageType.LIGHT, self:spellCrit(self:combatTalentSpellDamage(t, 10, 160))) diff --git a/game/modules/tome/data/talents/divine/twilight.lua b/game/modules/tome/data/talents/divine/twilight.lua index c983380212d66fcc3923e7742d0251c37b2867fc..d26a306a7221d8f828c3eebafc57f05859b5639c 100644 --- a/game/modules/tome/data/talents/divine/twilight.lua +++ b/game/modules/tome/data/talents/divine/twilight.lua @@ -126,6 +126,7 @@ newTalent{ ATTACKAREA = 10, }, range = 3, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=0, radius=self:getTalentRange(t), talent=t, friendlyfire=false} self:project(tg, self.x, self.y, DamageType.CONFUSION, { diff --git a/game/modules/tome/data/talents/gifts/cold-drake.lua b/game/modules/tome/data/talents/gifts/cold-drake.lua index a040e4d51cb7c345882b88bc236410ef9cdd3ca3..91976e3b11f1e0a879c86d4baf75b767192f8e07 100644 --- a/game/modules/tome/data/talents/gifts/cold-drake.lua +++ b/game/modules/tome/data/talents/gifts/cold-drake.lua @@ -133,6 +133,7 @@ newTalent{ ATTACKAREA = 10, }, range = function(self, t) return 4 + self:getTalentLevelRaw(t) end, + direct_hit = true, action = function(self, t) local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/gifts/fire-drake.lua b/game/modules/tome/data/talents/gifts/fire-drake.lua index d07ff40b331d66a209752375bddb578bc9539bca..146e329b40deccb7430d4ed1191a2fda99dc684e 100644 --- a/game/modules/tome/data/talents/gifts/fire-drake.lua +++ b/game/modules/tome/data/talents/gifts/fire-drake.lua @@ -49,6 +49,7 @@ newTalent{ equilibrium = 7, cooldown = 10, range = 5, + direct_hit = true, tactical = { DEFEND = 10, }, @@ -77,6 +78,7 @@ newTalent{ ATTACKAREA = 10, }, range = 20, + direct_hit = true, action = function(self, t) local duration = 2 + self:getTalentLevelRaw(t) local radius = 2 @@ -116,6 +118,7 @@ newTalent{ ATTACKAREA = 10, }, range = function(self, t) return 4 + self:getTalentLevelRaw(t) end, + direct_hit = true, action = function(self, t) local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/gifts/sand-drake.lua b/game/modules/tome/data/talents/gifts/sand-drake.lua index 380a8e2adfdeb473e18d7e9c07753def32653865..da111433c4ccd6e27b8dd00dfcf6c1bfdfb5e2e4 100644 --- a/game/modules/tome/data/talents/gifts/sand-drake.lua +++ b/game/modules/tome/data/talents/gifts/sand-drake.lua @@ -109,6 +109,7 @@ newTalent{ ATTACKAREA = 10, }, range = function(self, t) return 4 + self:getTalentLevelRaw(t) end, + direct_hit = true, action = function(self, t) local tg = {type="cone", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/gifts/slime.lua b/game/modules/tome/data/talents/gifts/slime.lua index a91cdcefeedd48b9996324befd52f57f54d79c97..a5c779b9020f5f2bbcf20c842ea5a80c71460b64 100644 --- a/game/modules/tome/data/talents/gifts/slime.lua +++ b/game/modules/tome/data/talents/gifts/slime.lua @@ -87,6 +87,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, proj_speed = 8, action = function(self, t) local tg = {type="bolt", range=self:getTalentRange(t), display={particle="bolt_arcane"}} diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua index 7eabd18d62820d8a574e01858dc915952f54b4ad..5646ee6f08854c5d24c464307f90022b7daf5b10 100644 --- a/game/modules/tome/data/talents/misc/npcs.lua +++ b/game/modules/tome/data/talents/misc/npcs.lua @@ -292,6 +292,7 @@ newTalent{ type = {"other/other", 1}, cooldown = 4, range = 20, + direct_hit = true, action = function(self, t) local filters = self.summon or {{type=self.type, subtype=self.subtype, number=1, hasxp=true, lastfor=20}} if #filters == 0 then return end @@ -425,6 +426,7 @@ newTalent{ cooldown = 10, mana = 16, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -472,6 +474,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} @@ -529,6 +532,7 @@ newTalent{ DEFEND = 5, }, range = 4, + direct_hit = true, action = function(self, t) local tg = {type="cone", range=0, radius=4 + self:getTalentLevelRaw(t), friendlyfire=false, talent=t} local x, y = self:getTarget(tg) @@ -575,6 +579,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=2} local x, y = self:getTarget(tg) @@ -640,6 +645,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=0, radius=2 + self:getTalentLevelRaw(t), talent=t} local x, y = self:getTarget(tg) @@ -670,6 +676,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=1, talent=t} local x, y = self:getTarget(tg) @@ -695,6 +702,7 @@ newTalent{ }, message = "@Source@ howls", range = 20, + direct_hit = true, action = function(self, t) local rad = self:getTalentLevel(t) + 5 for i = self.x - rad, self.x + rad do for j = self.y - rad, self.y + rad do if game.level.map:isBound(i, j) then @@ -728,6 +736,7 @@ newTalent{ }, message = "@Source@ shrieks.", range = 20, + direct_hit = true, action = function(self, t) local rad = self:getTalentLevel(t) + 5 for i = self.x - rad, self.x + rad do for j = self.y - rad, self.y + rad do if game.level.map:isBound(i, j) then @@ -793,6 +802,7 @@ newTalent{ cooldown = 2, equilibrium = 5, range = 15, + direct_hit = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -814,6 +824,7 @@ newTalent{ cooldown = 10, equilibrium = 5, range = 15, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -834,6 +845,7 @@ newTalent{ cooldown = 2, equilibrium = 5, range = 15, + direct_hit = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -877,6 +889,7 @@ newTalent{ cooldown = 13, vim = 27, range = 20, + direct_hit = true, action = function(self, t) local duration = self:getTalentLevel(t) + 2 local radius = 4 @@ -931,6 +944,7 @@ newTalent{ cooldown = 7, vim = 24, range = function(self, t) return math.ceil(3 + self:getTalentLevel(t)) end, + direct_hit = true, action = function(self, t) local tg = {type="cone", range=0, radius=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/spells/air.lua b/game/modules/tome/data/talents/spells/air.lua index 946907b4ee8cd3b01d0f6e063fa5a22a5b1c42f4..88c29bc8a8177f75444c040fe13e93387e70b0f1 100644 --- a/game/modules/tome/data/talents/spells/air.lua +++ b/game/modules/tome/data/talents/spells/air.lua @@ -29,6 +29,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t} @@ -59,6 +60,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="bolt", range=self:getTalentRange(t), talent=t} @@ -173,6 +175,7 @@ newTalent{ ATTACKAREA = 10, }, range = 5, + direct_hit = true, do_storm = function(self, t) if self:getMana() <= 0 then local old = self.energy.value diff --git a/game/modules/tome/data/talents/spells/arcane.lua b/game/modules/tome/data/talents/spells/arcane.lua index de56da559c7a6d87f1878e779b33757b669dd14a..088db362852f8ee33fac53337b49ae6c97250de6 100644 --- a/game/modules/tome/data/talents/spells/arcane.lua +++ b/game/modules/tome/data/talents/spells/arcane.lua @@ -56,6 +56,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="bolt", range=self:getTalentRange(t), talent=t} diff --git a/game/modules/tome/data/talents/spells/explosives.lua b/game/modules/tome/data/talents/spells/explosives.lua index 6df0b2006822278746fe2d9a300fc6a213b7f1a8..6cdf0da9f258f2270b1c09467742aefcd6ef4016 100644 --- a/game/modules/tome/data/talents/spells/explosives.lua +++ b/game/modules/tome/data/talents/spells/explosives.lua @@ -27,6 +27,7 @@ newTalent{ range = function(self, t) return math.ceil(5 + self:getDex(12)) end, + direct_hit = true, computeDamage = function(self, t, ammo) local inc_dam = 0 local damtype = DamageType.FIRE @@ -159,6 +160,7 @@ newTalent{ range = function(self, t) return math.ceil(5 + self:getDex(12)) end, + direct_hit = true, computeDamage = function(self, t, ammo) local inc_dam = 0 local damtype = DamageType.SPELLKNOCKBACK diff --git a/game/modules/tome/data/talents/spells/fire-alchemy.lua b/game/modules/tome/data/talents/spells/fire-alchemy.lua index 48e995d5ef942b3090c8ea3eddc82f34ac66ef85..4ce400c10394342adf6fe7136adce1cc89949724 100644 --- a/game/modules/tome/data/talents/spells/fire-alchemy.lua +++ b/game/modules/tome/data/talents/spells/fire-alchemy.lua @@ -28,6 +28,7 @@ newTalent{ random_ego = "attack", refectable = true, proj_speed = 20, + direct_hit = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} local x, y = self:getTarget(tg) @@ -50,6 +51,7 @@ newTalent{ mana = 80, cooldown = 34, range = 10, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=1, talent=t} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/spells/fire.lua b/game/modules/tome/data/talents/spells/fire.lua index fa4480cb8df68b3ac8c4102e26197e92cc887b68..543b5a767b986bbbddce10aff9341e0840598c78 100644 --- a/game/modules/tome/data/talents/spells/fire.lua +++ b/game/modules/tome/data/talents/spells/fire.lua @@ -84,6 +84,7 @@ newTalent{ }, range = 15, proj_speed = 4, + direct_hit = true, action = function(self, t) local tg = {type="ball", range=self:getTalentRange(t), radius=1 + self:getTalentLevelRaw(t), friendlyfire=self:spellFriendlyFire(), talent=t, display={particle="bolt_fire", trail="firetrail"}} local x, y = self:getTarget(tg) @@ -112,6 +113,7 @@ newTalent{ ATTACKAREA = 40, }, range = 20, + direct_hit = true, action = function(self, t) local duration = 5 + self:getTalentLevel(t) local radius = 5 diff --git a/game/modules/tome/data/talents/spells/meta.lua b/game/modules/tome/data/talents/spells/meta.lua index ac884989501f5f415eae83b29c1ede5f24e9099f..f3a00ed7dce3040ca8b89628638457ef8917608e 100644 --- a/game/modules/tome/data/talents/spells/meta.lua +++ b/game/modules/tome/data/talents/spells/meta.lua @@ -25,6 +25,7 @@ newTalent{ random_ego = "utility", mana = 40, cooldown = 7, + direct_hit = true, action = function(self, t) local target = self diff --git a/game/modules/tome/data/talents/spells/temporal.lua b/game/modules/tome/data/talents/spells/temporal.lua index 4be0cfe3e87707443d30fee0772212cf32489812..2085e9a6af6b1c8c560c47b154d68cfee46fcac8 100644 --- a/game/modules/tome/data/talents/spells/temporal.lua +++ b/game/modules/tome/data/talents/spells/temporal.lua @@ -29,6 +29,7 @@ newTalent{ DEFENSE = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} @@ -58,6 +59,7 @@ newTalent{ reflectable = true, proj_speed = 2, range = 10, + direct_hit = true, action = function(self, t) local tg = {type="beam", range=self:getTalentRange(t), talent=t, display={particle="bolt_arcane"}} local x, y = self:getTarget(tg) diff --git a/game/modules/tome/data/talents/spells/water.lua b/game/modules/tome/data/talents/spells/water.lua index 8962e7f3e202fa08e3cc943d0a33f34ca9be724d..00d6f73251912638b958bc695b0a04cb9faf46bc 100644 --- a/game/modules/tome/data/talents/spells/water.lua +++ b/game/modules/tome/data/talents/spells/water.lua @@ -29,6 +29,7 @@ newTalent{ ATTACKAREA = 10, }, range = 15, + direct_hit = true, action = function(self, t) local duration = self:getTalentLevel(t) + 2 local radius = 3 @@ -67,6 +68,7 @@ newTalent{ ATTACK = 10, }, range = 20, + direct_hit = true, reflectable = true, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t), talent=t} @@ -94,6 +96,7 @@ newTalent{ tactical = { ATTACKAREA = 10, }, + direct_hit = true, action = function(self, t) local duration = 5 + self:combatSpellpower(0.01) * self:getTalentLevel(t) local radius = 1 diff --git a/game/modules/tome/data/talents/spells/wildfire.lua b/game/modules/tome/data/talents/spells/wildfire.lua index cf66c8debb4dc5aad8097ab38960b2e206e072ea..93eb2a95134678914b5a80db4493f59aa3272bba 100644 --- a/game/modules/tome/data/talents/spells/wildfire.lua +++ b/game/modules/tome/data/talents/spells/wildfire.lua @@ -28,6 +28,7 @@ newTalent{ ATTACKAREA = 10, DEFEND = 4, }, + direct_hit = true, range = function(self, t) return 1 + self:getTalentLevelRaw(t) end, action = function(self, t) local tg = {type="ball", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t} diff --git a/game/modules/tome/data/talents/techniques/bow.lua b/game/modules/tome/data/talents/techniques/bow.lua index edfa4f4685ee8c2ddc1c984f0397bd54a68c811c..7fc1720aee0363775756e6590c056e7eabd30bc6 100644 --- a/game/modules/tome/data/talents/techniques/bow.lua +++ b/game/modules/tome/data/talents/techniques/bow.lua @@ -78,6 +78,7 @@ newTalent{ stamina = 35, require = techs_dex_req4, range = 20, + direct_hit = true, action = function(self, t) local tg = {type="ball", radius=2 + self:getTalentLevel(t)/3, friendlyfire=false} local targets = self:archeryAcquireTargets(tg) diff --git a/game/modules/tome/data/talents/undeads/ghoul.lua b/game/modules/tome/data/talents/undeads/ghoul.lua index 67043ef083876873a2eee3956d5817d3b4cf7ace..0958fa70c183d6b19683ec67fb82653a047424b2 100644 --- a/game/modules/tome/data/talents/undeads/ghoul.lua +++ b/game/modules/tome/data/talents/undeads/ghoul.lua @@ -45,6 +45,7 @@ newTalent{ tactical = { ATTACK = 10, }, + direct_hit = true, range = function(self, t) return math.floor(5 + self:getTalentLevel(t) * 1.2) end, action = function(self, t) local tg = {type="hit", range=self:getTalentRange(t)}