diff --git a/game/modules/tome/data/talents/spells/shades.lua b/game/modules/tome/data/talents/spells/shades.lua index a76dc1ea28ba8e59a56250914e133c4c109beba0..56056a9ce15e0e0d2f163536d7a9b6dc964c3a95 100644 --- a/game/modules/tome/data/talents/spells/shades.lua +++ b/game/modules/tome/data/talents/spells/shades.lua @@ -116,59 +116,10 @@ newTalent{ } newTalent{ - name = "???3", + name = "Curse of the Meek", type = {"spell/shades",3}, require = spells_req3, points = 5, - random_ego = "attack", - mana = 40, - cooldown = 8, - tactical = { ATTACKAREA = 2 }, - range = 7, - radius = function(self, t) - return 1 + self:getTalentLevelRaw(t) - end, - proj_speed = 4, - direct_hit = true, - requires_target = true, - target = function(self, t) - return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), selffire=self:spellFriendlyFire(), talent=t, display={particle="bolt_fire", trail="firetrail"}} - end, - getDamage = function(self, t) return self:combatTalentSpellDamage(t, 28, 280) end, - action = function(self, t) - local tg = self:getTalentTarget(t) - local x, y = self:getTarget(tg) - if not x or not y then return nil end - self:projectile(tg, x, y, DamageType.FIRE, self:spellCrit(t.getDamage(self, t)), function(self, tg, x, y, grids) - game.level.map:particleEmitter(x, y, tg.radius, "fireflash", {radius=tg.radius, tx=x, ty=y}) - if self:attr("burning_wake") then - game.level.map:addEffect(self, - x, y, 4, - engine.DamageType.INFERNO, self:attr("burning_wake"), - tg.radius, - 5, nil, - {type="inferno"}, - nil, tg.selffire - ) - end - end) - game:playSoundNear(self, "talents/fireflash") - return true - end, - info = function(self, t) - local damage = t.getDamage(self, t) - local radius = self:getTalentRadius(t) - return ([[Conjures up a bolt of fire moving toward the target that explodes into a flash of fire doing %0.2f fire damage in a radius of %d. - The damage will increase with the Magic stat]]): - format(damDesc(self, DamageType.FIRE, damage), radius) - end, -} - -newTalent{ - name = "Curse of the Meek", - type = {"spell/shades",4}, - require = spells_req4, - points = 5, mana = 50, cooldown = 30, tactical = { DEFEND = 3 }, @@ -257,3 +208,68 @@ newTalent{ format(math.ceil(self:getTalentLevel(t))) end, } + +newTalent{ + name = "Forgery of Haze", + type = {"spell/shades",4}, + require = spells_req4, + points = 5, + mana = 50, + cooldown = 8, + tactical = { ATTACK = 2, ESCAPE = 1 }, + requires_target = true, + getDuration = function(self, t) return math.floor(3 + self:getTalentLevel(t)) end, + action = function(self, t) + -- Find space + local x, y = util.findFreeGrid(self.x, self.y, 1, true, {[Map.ACTOR]=true}) + if not x then + game.logPlayer(self, "Not enough space to summon!") + return + end + + local m = self:clone{ + shader = "shadow_simulacrum", + no_drops = true, + faction = self.faction, + summoner = self, summoner_gain_exp=true, + summon_time = t.getDuration(self, t), + ai_target = {actor=nil}, + ai = "summoned", ai_real = "tactical", + desc = [[A dark shadowy shape who's form resembles you.]], + } + m:removeAllMOs() + m.make_escort = nil + m.on_added_to_level = nil + + m.energy.value = 0 + m.life = m.life + m.forceLevelup = function() end + m.on_die = nil + m.on_acquire_target = nil + m.seen_by = nil + m.can_talk = nil + m.clone_on_hit = nil + m.talents.T_CREATE_MINIONS = nil + m.talents.T_FORGERY_OF_HAZE = nil + m.remove_from_party_on_death = true + + game.zone:addEntity(game.level, m, "actor", x, y) + game.level.map:particleEmitter(x, y, 1, "shadow") + + if game.party:hasMember(self) then + game.party:addMember(m, { + control="no", + type="minion", + title="Forgery of Haze", + orders = {target=true}, + }) + end + + game:playSoundNear(self, "talents/spell_generic2") + return true + end, + info = function(self, t) + return ([[Through the shadows you forge a temporary copy of yourself, existing for %d turns.]]): + format(t.getDuration(self, t)) + end, +} diff --git a/ideas/spells.ods b/ideas/spells.ods index 14de6dc1e8839e7a0c79d10d90234e73662b9f59..309f37e7398038d68079719f5f3e9e3fab3b7c5b 100644 Binary files a/ideas/spells.ods and b/ideas/spells.ods differ