diff --git a/game/modules/tome/data/talents/celestial/celestial.lua b/game/modules/tome/data/talents/celestial/celestial.lua index 11e2b76409b67225ba92f85c58a4ee3d1227f7e2..8d09ca434b27179d8493b2e5e0f65f5fadc15801 100644 --- a/game/modules/tome/data/talents/celestial/celestial.lua +++ b/game/modules/tome/data/talents/celestial/celestial.lua @@ -18,26 +18,26 @@ -- darkgod@te4.org -- Corruptions -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/guardian", name = "guardian", min_lev = 10, description = "Your devotion grants you additional protection." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/chants", name = "chants", generic = true, description = "Chant the glory of the Sun." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/chants-chants", name = "chants", generic = true, on_mastery_change = function(self, m, tt) if self:knowTalentType("celestial/chants") ~= nil then self.talents_types_mastery[tt] = self.talents_types_mastery["celestial/chants"] end end, description = "Chant the glory of the Sun." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/light", name = "light", generic = true, description = "Invoke the power of the light to heal and mend." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/combat", name = "combat", description = "Your devotion allows you to combat your foes with indomitable determination." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/radiance", name = "radiance", description = "You channel the light of the sun through your body." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/crusader", name = "crusader", description = "Forgo your shield for the chance to crush your foes with a mighty two handed weapon." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/sunlight", name = "sunlight", description = "Summon the power of the Sun to burn your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/sun", name = "sun", description = "Summon the power of the Sun to burn your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/glyphs", name = "glyphs", min_lev = 10, description = "Bind the brilliant powers into glyphs to trap your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/twilight", name = "twilight", description = "Stand between the darkness and the light, harnessing both." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/star-fury", name = "star fury", description = "Call the fury of the Stars and the Moon to destroy your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/hymns", name = "hymns", generic = true, on_mastery_change = function(self, m, tt) if self:knowTalentType("celestial/hymns") ~= nil then self.talents_types_mastery[tt] = self.talents_types_mastery["celestial/hymns"] end end, description = "Chant the glory of the Moon." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/hymns-hymns", name = "hymns", generic = true, description = "Chant the glory of the Moon." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/circles", name = "circles", min_lev = 10, description = "Bind the power of the Moon into circles at your feet." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/eclipse", name = "eclipse", description = "The moment of the Eclipse is the moment of Truth, when Sun and Moon are in tandem and the energies of the world hang in the balance. Intense focus allows the greatest Anorithils to harness these energies to unleash devastating forces..." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/other", name = "other", description = "Other celestial powers." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/guardian", name = _t"guardian", min_lev = 10, description = _t"Your devotion grants you additional protection." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/chants", name = _t"chants", generic = true, description = _t"Chant the glory of the Sun." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/chants-chants", name = _t"chants", generic = true, on_mastery_change = function(self, m, tt) if self:knowTalentType("celestial/chants") ~= nil then self.talents_types_mastery[tt] = self.talents_types_mastery["celestial/chants"] end end, description = _t"Chant the glory of the Sun." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/light", name = _t"light", generic = true, description = _t"Invoke the power of the light to heal and mend." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/combat", name = _t"combat", description = _t"Your devotion allows you to combat your foes with indomitable determination." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/radiance", name = _t"radiance", description = _t"You channel the light of the sun through your body." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/crusader", name = _t"crusader", description = _t"Forgo your shield for the chance to crush your foes with a mighty two handed weapon." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/sunlight", name = _t"sunlight", description = _t"Summon the power of the Sun to burn your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/sun", name = _t"sun", description = _t"Summon the power of the Sun to burn your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/glyphs", name = _t"glyphs", min_lev = 10, description = _t"Bind the brilliant powers into glyphs to trap your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/twilight", name = _t"twilight", description = _t"Stand between the darkness and the light, harnessing both." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/star-fury", name = _t"star fury", description = _t"Call the fury of the Stars and the Moon to destroy your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/hymns", name = _t"hymns", generic = true, on_mastery_change = function(self, m, tt) if self:knowTalentType("celestial/hymns") ~= nil then self.talents_types_mastery[tt] = self.talents_types_mastery["celestial/hymns"] end end, description = _t"Chant the glory of the Moon." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/hymns-hymns", name = _t"hymns", generic = true, description = _t"Chant the glory of the Moon." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/circles", name = _t"circles", min_lev = 10, description = _t"Bind the power of the Moon into circles at your feet." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/eclipse", name = _t"eclipse", description = _t"The moment of the Eclipse is the moment of Truth, when Sun and Moon are in tandem and the energies of the world hang in the balance. Intense focus allows the greatest Anorithils to harness these energies to unleash devastating forces..." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="celestial/other", name = _t"other", description = _t"Other celestial powers." } -newTalentType{ no_silence=true, is_spell=true, type="celestial/other", name = "other", description = "Various celestial talents." } +newTalentType{ no_silence=true, is_spell=true, type="celestial/other", name = _t"other", description = _t"Various celestial talents." } -- Generic requires for corruptions based on talent level divi_req1 = { diff --git a/game/modules/tome/data/talents/celestial/chants.lua b/game/modules/tome/data/talents/celestial/chants.lua index 94dcabcb60155f2a960aa22c8def2d927d9432d5..1c5d5d6adab23a5cf9c4b4f120f70647b808a84e 100644 --- a/game/modules/tome/data/talents/celestial/chants.lua +++ b/game/modules/tome/data/talents/celestial/chants.lua @@ -76,7 +76,7 @@ newTalent{ return ([[You chant the glory of the Sun, granting you %d Mental Save and increasing your maximum life by %0.1f%% (Currently: %d). You may only have one Chant active at once. The effects will increase with your Spellpower.]]): - format(saves, life*100, life*self.max_life) + tformat(saves, life*100, life*self.max_life) end, } @@ -137,7 +137,7 @@ newTalent{ return ([[You chant the glory of the Sun, granting you %d%% physical damage resistance, %d physical save, %d armour and +15%% armour hardiness. You may only have one Chant active at once. The effects will increase with your Spellpower.]]): - format(physicalresistance, saves, physicalresistance) + tformat(physicalresistance, saves, physicalresistance) end, } @@ -217,7 +217,7 @@ newTalent{ return ([[You chant the glory of the Sun, granting you %d%% fire, lightning, acid and cold damage resistance, %d spell save and reduces the damage from enemies 3 or more spaces away by %d%%. You may only have one Chant active at once. The effects will increase with your Spellpower.]]): - format(resists, saves, range) + tformat(resists, saves, range) end, } @@ -264,7 +264,7 @@ newTalent{ Your lite radius is also increased by %d. You may only have one Chant active at once and this Chant costs less power to sustain. The effects will increase with your Spellpower.]]): - format(damageinc, damDesc(self, DamageType.LIGHT, damage), lite) + tformat(damageinc, damDesc(self, DamageType.LIGHT, damage), lite) end, } @@ -306,7 +306,7 @@ newTalent{ Chant of Fortress: Increases your physical save by %d, your physical resistance by %d%%, your armour by %d and your armour hardiness by 15%%. Chant of Resistance: Increases you spell save by %d, your fire/cold/lightning/acid resistances by %d%% and reduces all damage that comes from distant enemies (3 spaces or more) by %d%%. You may only have one Chant active at a time.]]): - format(t1.getResists(self, t1), t1.getLifePct(self, t1)*100, t2.getResists(self, t2), t2.getPhysicalResistance(self, t2), t2.getPhysicalResistance(self, t2), t3.getSpellResists(self, t3), t3.getResists(self, t3), t3.getDamageChange(self, t3)) + tformat(t1.getResists(self, t1), t1.getLifePct(self, t1)*100, t2.getResists(self, t2), t2.getPhysicalResistance(self, t2), t2.getPhysicalResistance(self, t2), t3.getSpellResists(self, t3), t3.getResists(self, t3), t3.getDamageChange(self, t3)) end) self.talents[self.T_CHANT_OF_FORTITUDE] = old1 self.talents[self.T_CHANT_OF_FORTRESS] = old2 @@ -327,7 +327,7 @@ newTalent{ getBonusRegen = function(self, t) return self:combatTalentSpellDamage(t, 10, 20) / 10 end, info = function(self, t) return ([[Your Chants now bathe you in a cloak of light, which increases your stamina and mana regenerations by %0.2f per turn and does %0.2f light damage to anyone who hits you in melee. - These values scale with your Spellpower.]]):format(t.getBonusRegen(self, t), damDesc(self, DamageType.LIGHT, t.getDamageOnMeleeHit(self, t))) + These values scale with your Spellpower.]]):tformat(t.getBonusRegen(self, t), damDesc(self, DamageType.LIGHT, t.getDamageOnMeleeHit(self, t))) end, } @@ -386,7 +386,7 @@ newTalent{ Also, when you start a new Chant, you will be cured of all cross-tier effects and cured of up to %d debuffs. Chant of Fortitude cures mental effects. Chant of Fortress cures physical effects. - Chant of Resistance cures magical effects.]]):format(t.getBonusLight(self, t), t.getDebuffCures(self, t)) + Chant of Resistance cures magical effects.]]):tformat(t.getBonusLight(self, t), t.getDebuffCures(self, t)) end, } @@ -418,6 +418,6 @@ newTalent{ info = function(self, t) return ([[Your passion for singing the praises of the Sun reaches its zenith. Your Chanting now increases your light and fire damage by %d%% and up to %d times per turn, when you are hit by a weapon attack, you will gain %0.1f Positive. - These values scale with your Spellpower.]]):format(t.getLightDamageIncrease(self, t), t.getTurnLimit(self, t), t.getPos(self, t)) + These values scale with your Spellpower.]]):tformat(t.getLightDamageIncrease(self, t), t.getTurnLimit(self, t), t.getPos(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/circles.lua b/game/modules/tome/data/talents/celestial/circles.lua index 906b275f7bd6144bb6b33e7d041dab4c7e50f000..d4ebc03059f0663ef04274fd212dbc5a17ebddba 100644 --- a/game/modules/tome/data/talents/celestial/circles.lua +++ b/game/modules/tome/data/talents/celestial/circles.lua @@ -54,7 +54,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Creates a circle of radius %d at your feet; the circle increases your defense and all saves by %d while dealing %0.2f darkness damage per turn to everyone else within its radius. The circle lasts %d turns. The damage will increase with your Spellpower.]]): - format(radius, damage, (damDesc (self, DamageType.DARKNESS, damage)), duration) + tformat(radius, damage, (damDesc (self, DamageType.DARKNESS, damage)), duration) end, } @@ -126,7 +126,7 @@ newTalent{ local radius = self:getTalentRadius(t) local damage = t.getDamage(self, t) return ([[Creates a circle of radius %d at your feet; the circle protects you from silence effects while you remain in its radius while silencing and dealing %d light damage to everyone else who enters. The circle lasts %d turns.]]): - format(radius, damDesc(self, DamageType.LIGHT, damage), duration) + tformat(radius, damDesc(self, DamageType.LIGHT, damage), duration) end, } @@ -167,7 +167,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Creates a circle of radius %d at your feet; the circle slows incoming projectiles by %d%% and attempts to push all creatures other than yourself out of its radius, inflicting %0.2f light damage and %0.2f darkness damage per turn as it does so. The circle lasts %d turns. The effects will increase with your Spellpower.]]): - format(radius, damage*5, (damDesc (self, DamageType.LIGHT, damage)), (damDesc (self, DamageType.DARKNESS, damage)), duration) + tformat(radius, damage*5, (damDesc (self, DamageType.LIGHT, damage)), (damDesc (self, DamageType.DARKNESS, damage)), duration) end, } @@ -212,6 +212,6 @@ newTalent{ Residual power from the surge will emanate from your circles for %d turns; each circle you stand in will increase your celestial resources. Shifting Shadows: +1 negative. Sanctity: +1 postive. - Warding: +0.5 postive and negative.]]):format(t.getSlow(self, t), t.getSlowDur(self, t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getDuration(self, t)) + Warding: +0.5 postive and negative.]]):tformat(t.getSlow(self, t), t.getSlowDur(self, t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/combat.lua b/game/modules/tome/data/talents/celestial/combat.lua index d4c80658c6103a80e361dc1cffcf25674b4a0648..e0a5e73deb8a27adf95eb388fca4c9a72873c216 100644 --- a/game/modules/tome/data/talents/celestial/combat.lua +++ b/game/modules/tome/data/talents/celestial/combat.lua @@ -62,7 +62,7 @@ newTalent{ return ([[Infuse your weapon with the power of the Sun, adding %0.1f light damage on each melee hit. Additionally, if you have a temporary damage shield active, melee hits will increase its power by %d once per turn. The damage dealt and shield bonus will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, damage), shieldflat) + tformat(damDesc(self, DamageType.LIGHT, damage), shieldflat) end, } @@ -114,7 +114,7 @@ newTalent{ If the target is outside of melee range, you have a chance to project a second attack against it for %d%% weapon damage. The second strike chance (which increases with distance) is %0.1f%% at range 2 and %0.1f%% at the maximum range of %d. The range will increase with your Strength.]]): - format(t.getDamage(self, t)*100, t.getDamage(self, t, true)*100, t.SecondStrikeChance(self, t, 2), t.SecondStrikeChance(self, t, range), range) + tformat(t.getDamage(self, t)*100, t.getDamage(self, t, true)*100, t.SecondStrikeChance(self, t, 2), t.SecondStrikeChance(self, t, range), range) end, } @@ -167,7 +167,7 @@ newTalent{ return ([[Your weapon attacks burn with righteous fury, dealing %d%% of your lost HP as additional Fire damage (up to %d, Current: %d). Targets struck are also afflicted with a Martyrdom effect that causes them to take %d%% of all damage they deal for 4 turns. The bonus damage can only occur once per turn.]]): - format(damagepct*100, t.getMaxDamage(self, t, 10, 400), damage, martyr) + tformat(damagepct*100, t.getMaxDamage(self, t, 10, 400), damage, martyr) end, } @@ -199,6 +199,6 @@ newTalent{ end, info = function(self, t) return ([[Any attack that would drop you below 1 hit point instead triggers Second Life, deactivating the talent, setting your hit points to 1, then healing you for %d.]]): - format(t.getLife(self, t)) + tformat(t.getLife(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/crusader.lua b/game/modules/tome/data/talents/celestial/crusader.lua index f764a96c9288b7244b0ee9cd2407f3255cdf1f55..376480169ec6be05cf55f49c9364675e61c9fd72 100644 --- a/game/modules/tome/data/talents/celestial/crusader.lua +++ b/game/modules/tome/data/talents/celestial/crusader.lua @@ -58,7 +58,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[You strike your foe with your two handed weapon, dealing %d%% weapon damage. If the attack hits, all foes in radius 2 will have their light resistance reduced by %d%% and their damage reduced by %d%% for 5 turns.]]): - format(100 * damage, t.getWeakness(self, t), t.getNumb(self, t)) + tformat(100 * damage, t.getWeakness(self, t), t.getNumb(self, t)) end, } @@ -87,7 +87,7 @@ newTalent{ end, info = function(self, t) return ([[You mark a target with light for 3 turns, causing all melee hits you deal to it to heal you for %d%% of the damage done.]]): - format(t.getPower(self, t)) + tformat(t.getPower(self, t)) end, } @@ -123,7 +123,7 @@ newTalent{ return ([[While wielding a two handed weapon, your critical strike chance is increased by %d%%, and your melee criticals instill you with righteous strength, increasing all physical and light damage you deal by %d%%, stacking up to 3 times. In addition, your melee critical strikes leave a lasting lightburn on the target, dealing %0.2f light damage over 5 turns and reducing opponents armour by %d. The damage increases with your Spellpower.]]): - format(t.getCrit(self, t), t.getPower(self, t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getArmor(self, t)) + tformat(t.getCrit(self, t), t.getPower(self, t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getArmor(self, t)) end, } @@ -177,6 +177,6 @@ newTalent{ All creatures in radius one take %d%% weapon damage. In addition while spinning your weapon shines so much it deals %d%% light weapon damage to all foes in radius 2. At level 4 your spinning blade creates a shield that blocks all damage for 1 turn.]]): - format(t.get1Damage(self, t) * 100, t.get2Damage(self, t) * 100) + tformat(t.get1Damage(self, t) * 100, t.get2Damage(self, t) * 100) end, } diff --git a/game/modules/tome/data/talents/celestial/eclipse.lua b/game/modules/tome/data/talents/celestial/eclipse.lua index 820392ec5b77e9600caf734e525513ea9c140835..babf06b517f34ccbb3e56bb0d95cb0ec9747e66c 100644 --- a/game/modules/tome/data/talents/celestial/eclipse.lua +++ b/game/modules/tome/data/talents/celestial/eclipse.lua @@ -29,7 +29,7 @@ newTalent{ end, info = function(self, t) return ([[Increases your spell critical chance by %d%%.]]): - format(t.getCrit(self, t)) + tformat(t.getCrit(self, t)) end, } @@ -62,7 +62,7 @@ newTalent{ local cooldownreduction = t.getCooldownReduction(self, t) return ([[Increases your light and darkness resistance penetration by %d%% for %d turns, and reduces the cooldown of all Celestial skills by %d. The resistance penetration will increase with your Cunning.]]): - format(penetration, duration, cooldownreduction) + tformat(penetration, duration, cooldownreduction) end, } @@ -130,7 +130,7 @@ newTalent{ This effect costs 2 positive or 2 negative energy each time it's triggered, and will not activate if either your positive or negative energy is below 2. The damage scales with your Spellpower. This spell cannot crit.]]): - format(targetcount, self:getTalentRange(t), damDesc(self, DamageType.LIGHT, lightdamage), damDesc(self, DamageType.DARKNESS, darknessdamage)) + tformat(targetcount, self:getTalentRange(t), damDesc(self, DamageType.LIGHT, lightdamage), damDesc(self, DamageType.DARKNESS, darknessdamage)) end, } @@ -169,6 +169,6 @@ newTalent{ local dotDam = t.getDotDamage(self, t) local conversion = t.getConversion(self, t) local duration = t.getDuration(self, t) - return ([[Shroud foes within radius %d in darkest light, dealing %0.2f light and %0.2f darkness damage per turn and converting %d%% of the damage they deal between light and darkness for %d turns.]]):format(radius, damDesc(self, DamageType.LIGHT, dotDam), damDesc(self, DamageType.DARKNESS, dotDam), conversion*100, duration) + return ([[Shroud foes within radius %d in darkest light, dealing %0.2f light and %0.2f darkness damage per turn and converting %d%% of the damage they deal between light and darkness for %d turns.]]):tformat(radius, damDesc(self, DamageType.LIGHT, dotDam), damDesc(self, DamageType.DARKNESS, dotDam), conversion*100, duration) end, } diff --git a/game/modules/tome/data/talents/celestial/glyphs.lua b/game/modules/tome/data/talents/celestial/glyphs.lua index 36dde6ed386d698f5d5e9abaec6be5edecb6ec9c..6e3ebf3b144e06cbf829e690ad25c9858fe67fa5 100644 --- a/game/modules/tome/data/talents/celestial/glyphs.lua +++ b/game/modules/tome/data/talents/celestial/glyphs.lua @@ -134,7 +134,7 @@ local function makeSunGlyph() dam = dam, heal = heal, desc = function(self) - return ([[Deals %d light damage and heals the summoner for %d]]):format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam), self.heal) + return ([[Deals %d light damage and heals the summoner for %d]]):tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam), self.heal) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -196,7 +196,7 @@ local function makeMoonGlyph() numbDur = numbDur, desc = function(self) return ([[Deals %d darkness damage and saps the foes energy, reducing all damage dealt by %d%% for %d turns.]]): - format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.DARKNESS, self.dam), self.numb, self.numbDur) + tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.DARKNESS, self.dam), self.numb, self.numbDur) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -256,7 +256,7 @@ local function makeTwilightGlyph() dam = dam, dist=dist, desc = function(self) - return ([[Explodes knocking the enemy 1 space in a random direction and dealing %d light and %d darkness damage.]]):format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam/2), engine.interface.ActorTalents.damDesc(self, engine.DamageType.DARKNESS, self.dam/2)) + return ([[Explodes knocking the enemy 1 space in a random direction and dealing %d light and %d darkness damage.]]):tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam/2), engine.interface.ActorTalents.damDesc(self, engine.DamageType.DARKNESS, self.dam/2)) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -355,7 +355,7 @@ end #ffd700#Glyph of Sunlight#LAST#: Bind sunlight into a glyph. When triggered it will release a brilliant light, dealing %0.2f light damage and healing you for %d. #7f7f7f#Glyph of Moonlight#LAST#: Bind moonlight into a glyph. When triggered it will release a fatiguing darkness, dealing %0.2f darkness damage and reducing the foes damage dealt by %d%% for %d turns. #9D9DC9#Glyph of Twilight#LAST#: Bind twilight into a glyph. When triggered it will release a burst of twilight, dealing %0.2f light and %0.2f darkness damage and knocking the foe back %d tiles. - ]]):format(self:getTalentRange(t), t.getDuration(self, t), t.getGlyphCD(self, t), + ]]):tformat(self:getTalentRange(t), t.getDuration(self, t), t.getGlyphCD(self, t), damDesc(self, DamageType.LIGHT, dam), heal, damDesc(self, DamageType.DARKNESS, dam), numb, numbDur, damDesc(self, DamageType.LIGHT, dam/2), damDesc(self, DamageType.DARKNESS, dam/2), dist) @@ -376,7 +376,7 @@ newTalent{ return ([[Your glyphs are imbued with celestial fury; they last %d turns longer and when triggered they will deal damage. #ffd700#Glyph of Sunlight#LAST#: Deals %0.2f light damage. #7f7f7f#Glyph of Moonlight#LAST#: Deals %0.2f darkness damage. - #9D9DC9#Glyph of Twilight#LAST#: Deals %0.2f light and %0.2f darkness damage.]]):format(t.getPersistentDuration(self, t), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.DARKNESS, dam), damDesc(self, DamageType.LIGHT, dam/2), damDesc(self, DamageType.DARKNESS, dam/2)) + #9D9DC9#Glyph of Twilight#LAST#: Deals %0.2f light and %0.2f darkness damage.]]):tformat(t.getPersistentDuration(self, t), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.DARKNESS, dam), damDesc(self, DamageType.LIGHT, dam/2), damDesc(self, DamageType.DARKNESS, dam/2)) end, } @@ -390,7 +390,7 @@ newTalent{ getMaxStacks = function(self, t) return self:combatTalentLimit(t, 6, 2, 5) end, getTurns = function(self, t) return self:combatTalentLimit(t, 10, 1, 7) end, info = function(self, t) - return ([[Up to 3 times per turn when one of your glyphs triggers you feel a surge of celestial power, increasing your darkness and light resistance and affinity by 5%% for %d turns, stacking up to %d times.]]):format(t.getTurns(self, t), t.getMaxStacks(self, t)) + return ([[Up to 3 times per turn when one of your glyphs triggers you feel a surge of celestial power, increasing your darkness and light resistance and affinity by 5%% for %d turns, stacking up to %d times.]]):tformat(t.getTurns(self, t), t.getMaxStacks(self, t)) end, } @@ -452,6 +452,6 @@ newTalent{ At talent level 2 glyphs triggered this way will leave a residue of themselves on the ground, dealing damage each turn for %d turns. #ffd700#Sunlight#LAST#: %0.2f light damage. #7f7f7f#Moonlight#LAST#: %0.2f darkness damage. - #9D9DC9#Twilight#LAST#: %0.2f light and %0.2f darkness damage]]):format(t.getDuration(self, t), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.DARKNESS, dam), damDesc(self, DamageType.LIGHT, dam/2), damDesc(self, DamageType.DARKNESS, dam/2)) + #9D9DC9#Twilight#LAST#: %0.2f light and %0.2f darkness damage]]):tformat(t.getDuration(self, t), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.DARKNESS, dam), damDesc(self, DamageType.LIGHT, dam/2), damDesc(self, DamageType.DARKNESS, dam/2)) end, } diff --git a/game/modules/tome/data/talents/celestial/guardian.lua b/game/modules/tome/data/talents/celestial/guardian.lua index b00fc2f7f6eee055fe5d457619a96eced95b4ca6..dc86ffa761fa6b67a1df8f78559488e125f49e96 100644 --- a/game/modules/tome/data/talents/celestial/guardian.lua +++ b/game/modules/tome/data/talents/celestial/guardian.lua @@ -56,7 +56,7 @@ newTalent{ If you do not have any positive energy, the effect will not trigger. Additionally, once per turn successful melee attacks will trigger a bonus attack with your shield dealing %d%% light damage. The healing done will increase with your Spellpower.]]): - format(heal, t.getShieldDamage(self, t)*100) + tformat(heal, t.getShieldDamage(self, t)*100) end, } @@ -113,7 +113,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Hits the target with your weapon doing %d%% damage, and with a shield strike doing %d%% damage. If the shield strike connects, your shield will explode in a burst of light that inflicts %0.2f light damage on all targets except yourself within radius %d of the target, and light up all tiles in that radius. The light damage will increase with your Spellpower.]]): - format(100 * weapondamage, 100 * shielddamage, damDesc(self, DamageType.LIGHT, lightdamage), radius) + tformat(100 * weapondamage, 100 * shielddamage, damDesc(self, DamageType.LIGHT, lightdamage), radius) end, } @@ -167,13 +167,13 @@ newTalent{ local damage = t.getDamage(self, t) local absorb_string = "" if self.retribution_absorb and self.retribution_strike then - absorb_string = ([[#RED#Absorb Remaining: %d]]):format(self.retribution_absorb) + absorb_string = ([[#RED#Absorb Remaining: %d]]):tformat(self.retribution_absorb) end return ([[Retribution negates half of all damage you take while it is active. Once Retribution has negated %0.2f damage, your shield will explode in a burst of light, inflicting damage equal to the amount negated in a radius of %d and deactivating the talent. The amount absorbed will increase with your Spellpower. %s]]): - format(damage, self:getTalentRange(t), absorb_string) + tformat(damage, self:getTalentRange(t), absorb_string) end, } @@ -224,6 +224,6 @@ newTalent{ return ([[You demonstrate your dedication to the light with a measured attack striking once with your weapon for %d%% Light damage and once with your shield for %d%% Light damage. If the first strike connects %d random talent cooldowns are reduced by 1. If the second strike connects you are cleansed of %d debuffs.]]): - format(weapon, shield, cooldown, cleanse) + tformat(weapon, shield, cooldown, cleanse) end, } diff --git a/game/modules/tome/data/talents/celestial/hymns.lua b/game/modules/tome/data/talents/celestial/hymns.lua index 1792125aa92f5e3937670741eb7a1bb81042e36e..c5b8d51c7087298a2bd7cbf337541b03dd172267 100644 --- a/game/modules/tome/data/talents/celestial/hymns.lua +++ b/game/modules/tome/data/talents/celestial/hymns.lua @@ -105,7 +105,7 @@ newTalent{ This increases your movement speed by %d%% and your spell speed by %d%%. You may only have one Hymn active at once. The effects will increase with your Spellpower.]]): - format(t.moveSpeed(self, t), t.castSpeed(self, t)) + tformat(t.moveSpeed(self, t), t.castSpeed(self, t)) end, } @@ -210,7 +210,7 @@ newTalent{ You may also attack creatures you cannot see without penalty and your critical hits do %d%% more damage. You may only have one Hymn active at once. The stealth and invisibility detection will increase with your Spellpower.]]): - format(stealth, invis, t.critPower(self, t)) + tformat(stealth, invis, t.critPower(self, t)) end, } @@ -277,7 +277,7 @@ newTalent{ local immunities = t.getImmunities(self, t) return ([[Chant the glory of the Moons, granting you %d%% stun, blindness and confusion resistance. You may only have one Hymn active at once.]]): - format(100 * (immunities)) + tformat(100 * (immunities)) end, } @@ -353,7 +353,7 @@ newTalent{ This powerful spell will drain %0.1f negative energy for each beam; no beam will fire if your negative energy is too low. You may only have one Hymn active at once. The damage will increase with your Spellpower.]]): - format(targetcount, damDesc(self, DamageType.DARKNESS, damage), drain) + tformat(targetcount, damDesc(self, DamageType.DARKNESS, damage), drain) end, } @@ -398,7 +398,7 @@ Hymn of Detection: Increases your ability to see stealthy creatures by %d and in Hymn of Perseverance: Increases your resistance to stun, confusion and blinding by %d%%. You may only have one Hymn active at a time.]]): - format(t1.moveSpeed(self, t1), t1.castSpeed(self, t1), t2.getSeeStealth(self, t2), t2.getSeeInvisible(self, t2), t2.critPower(self, t2), t3.getImmunities(self, t3)*100) + tformat(t1.moveSpeed(self, t1), t1.castSpeed(self, t1), t2.getSeeStealth(self, t2), t2.getSeeInvisible(self, t2), t2.critPower(self, t2), t3.getImmunities(self, t3)*100) end) self.talents[self.T_HYMN_OF_SHADOWS] = old1 self.talents[self.T_HYMN_OF_DETECTION] = old2 @@ -417,7 +417,7 @@ newTalent{ getDarkDamageIncrease = function(self, t) return self:combatTalentSpellDamage(t, 10, 30) end, info = function(self, t) return ([[Your Hymns now focus darkness near you, which increases your darkness damage by %d%% and does %0.2f darkness damage to anyone who hits you in melee. - These values scale with your Spellpower.]]):format(t.getDarkDamageIncrease(self, t), damDesc(self, DamageType.DARKNESS, t.getDamageOnMeleeHit(self, t))) + These values scale with your Spellpower.]]):tformat(t.getDarkDamageIncrease(self, t), damDesc(self, DamageType.DARKNESS, t.getDamageOnMeleeHit(self, t))) end, } @@ -439,7 +439,7 @@ newTalent{ Also, when you end a Hymn, you will gain a buff of a type based on which Hymn you ended. Hymn of Shadows increases your movement speed by %d%% for one turn. Hymn of Detection makes you invisible (power %d) for %d turns. - Hymn of Perseverance grants a damage shield (power %d) for %d turns.]]):format(t.getBonusInfravision(self, t), t.getSpeed(self, t), + Hymn of Perseverance grants a damage shield (power %d) for %d turns.]]):tformat(t.getBonusInfravision(self, t), t.getSpeed(self, t), t.invisPower(self, t), t.invisDur(self, t), t.shieldPower(self, t), t.shieldDur(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100) end, } @@ -524,6 +524,6 @@ newTalent{ return ([[Your passion for singing the praises of the Moons reaches its zenith. Your Hymns now fire shadowy beams that will hit up to %d of your foes within radius 5 for 1 to %0.2f damage, with a 20%% chance of blinding. This powerful effect will drain %0.1f negative energy each time it fires at at least 1 target; no beam will fire if your negative energy is too low. - These values scale with your Spellpower.]]):format(t.getTargetCount(self, t), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getNegativeDrain(self, t)) + These values scale with your Spellpower.]]):tformat(t.getTargetCount(self, t), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getNegativeDrain(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/light.lua b/game/modules/tome/data/talents/celestial/light.lua index 0d383adc433e02168dca766a25c893d69cebada4..a365f546f87633bf590fc0368c3f371b6488d17c 100644 --- a/game/modules/tome/data/talents/celestial/light.lua +++ b/game/modules/tome/data/talents/celestial/light.lua @@ -43,7 +43,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[An invigorating ray of Sunlight shines upon you, healing your body for %d life. The amount healed will increase with your Spellpower.]]): - format(heal) + tformat(heal) end, } @@ -88,7 +88,7 @@ newTalent{ If the same shield is refreshed 20 times it will become unstable and explode, removing it. It also lights up the affected area. The amount healed will increase with the Magic stat]]): - format(radius, heal, heal_fact*100, duration) + tformat(radius, heal, heal_fact*100, duration) end, } @@ -111,7 +111,7 @@ newTalent{ local absorb = t.getAbsorb(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100 return ([[A protective shield forms around you that lasts for up to 10 turns and negates %d damage. The total damage the barrier can absorb will increase with your Spellpower and can crit.]]): - format(absorb) + tformat(absorb) end, } @@ -133,7 +133,7 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) return ([[Places you under the protection of a ray of sunlight. For %d turns, the light removes a single negative effect from you every turn.]]): - format(duration) + tformat(duration) end, } diff --git a/game/modules/tome/data/talents/celestial/other.lua b/game/modules/tome/data/talents/celestial/other.lua index 48f14cb86d29c60fb858d35d70ae223bf2e5599e..d808387e719b0c41497d3d6677d2be7dc6947ce7 100644 --- a/game/modules/tome/data/talents/celestial/other.lua +++ b/game/modules/tome/data/talents/celestial/other.lua @@ -61,7 +61,7 @@ newTalent{ faction = self.faction, dam = dam, desc = function(self) - return ([[Explodes (radius 1) for %d light damage.]]):format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam)) + return ([[Explodes (radius 1) for %d light damage.]]):tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam)) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -103,7 +103,7 @@ newTalent{ end, info = function(self, t) return ([[test glyph]]): - format() + tformat() end, } @@ -136,7 +136,7 @@ newTalent{ display = '^', color=colors.GOLD, image = "trap/trap_glyph_paralysis_01_64.png", faction = self.faction, desc = function(self) - return ([[Dazes for %d turns.]]):format(self.dam) + return ([[Dazes for %d turns.]]):tformat(self.dam) end, dam = dam, canTrigger = function(self, x, y, who) @@ -177,7 +177,7 @@ newTalent{ local dazeduration = t.getDazeDuration(self, t) local duration = t.getDuration(self, t) return ([[You bind light in a glyph on the floor. All enemies walking over the glyph will be dazed for %d turns. - The glyph is a hidden trap (%d detection and %d disarm power based on your Magic) and lasts for %d turns.]]):format(dazeduration, t.trapPower(self,t)*0.8, t.trapPower(self,t), duration) + The glyph is a hidden trap (%d detection and %d disarm power based on your Magic) and lasts for %d turns.]]):tformat(dazeduration, t.trapPower(self,t)*0.8, t.trapPower(self,t), duration) end, } @@ -211,7 +211,7 @@ newTalent{ faction = self.faction, dam = dam, desc = function(self) - return ([[Deals %d physical damage, knocking the target back.]]):format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.PHYSICAL, self.dam)) + return ([[Deals %d physical damage, knocking the target back.]]):tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.PHYSICAL, self.dam)) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -258,7 +258,7 @@ newTalent{ return ([[You bind light in a glyph on the floor. All enemies walking over the glyph will be hit by a blast that does %0.2f physical damage and knocks them back. The glyph is a hidden trap (%d detection and %d disarm power based on your Magic) and lasts for %d turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.PHYSICAL, damage), t.trapPower(self, t)*0.8, t.trapPower(self, t), duration) + tformat(damDesc(self, DamageType.PHYSICAL, damage), t.trapPower(self, t)*0.8, t.trapPower(self, t), duration) end, } --[=[ @@ -302,7 +302,7 @@ newTalent{ dam = dam, desc = function(self) return ([[Explodes (radius 1) for %d light damage.]] ---[[ ):format(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam)) +--[[ ):tformat(engine.interface.ActorTalents.damDesc(self, engine.DamageType.LIGHT, self.dam)) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -346,7 +346,7 @@ newTalent{ The glyph is a hidden trap (%d detection and %d disarm power based on your Magic) and lasts for %d turns. The damage will increase with your Spellpower.]] --[[ ): - format(damDesc(self, DamageType.LIGHT, damage), t.trapPower(self, t)*0.8, t.trapPower(self, t)*0.8, duration) + tformat(damDesc(self, DamageType.LIGHT, damage), t.trapPower(self, t)*0.8, t.trapPower(self, t)*0.8, duration) end, } ]=] @@ -380,7 +380,7 @@ newTalent{ faction = self.faction, dam = dam, desc = function(self) - return ([[Slows (%d%%) for 5 turns.]]):format(self.dam*100) + return ([[Slows (%d%%) for 5 turns.]]):tformat(self.dam*100) end, canTrigger = function(self, x, y, who) if who:reactionToward(self.summoner) < 0 then return mod.class.Trap.canTrigger(self, x, y, who) end @@ -419,7 +419,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[You bind light in a glyph on the floor. All enemies walking over the glyph will be slowed by %d%% for 5 turns. The glyph is a hidden trap (%d detection and %d disarm power based on your Magic) and lasts for %d turns.]]): - format(100 * slow, t.trapPower(self, t), t.trapPower(self, t), duration) + tformat(100 * slow, t.trapPower(self, t), t.trapPower(self, t), duration) end, } diff --git a/game/modules/tome/data/talents/celestial/radiance.lua b/game/modules/tome/data/talents/celestial/radiance.lua index 5a194bf00993e179b4c2f1c67776ac42a69826f7..d7f0e1c4d5de54ee1a755bff952e3ff898a10553 100644 --- a/game/modules/tome/data/talents/celestial/radiance.lua +++ b/game/modules/tome/data/talents/celestial/radiance.lua @@ -38,7 +38,7 @@ newTalent{ Your vision adapts to this glow, giving you %d%% blindness resistance. The light radius overrides your normal light if it is bigger (it does not stack). ]]): - format(radianceRadius(self), t.getResist(self, t)) + tformat(radianceRadius(self), t.getResist(self, t)) end, } @@ -75,7 +75,7 @@ newTalent{ All enemies in your Radiance aura have their invisibility and stealth power reduced by %d. In addition, all actors affected by illumination are easier to see and therefore hit; their defense is reduced by %d and all evasion bonuses from being unseen are negated. The effects increase with your Spellpower.]]): - format(t.getPower(self, t), t.getDef(self, t)) + tformat(t.getPower(self, t), t.getDef(self, t)) end, } @@ -111,7 +111,7 @@ newTalent{ return ([[Your Radiance is so powerful it burns all foes caught in it, doing %0.1f light damage to all non-dazed foes caught inside. Each enemy effected has a %d%% chance of being dazed for 5 turns. The damage increases with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getDaze(self, t)) + tformat(damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getDaze(self, t)) end, } @@ -161,7 +161,7 @@ newTalent{ end, info = function(self, t) return ([[Fire a glowing orb of light at each enemy within your Radiance. Each orb will slowly follow its target until it connects dealing %d light damage to anything else it contacts along the way. When the target is reached the orb will explode dealing %d light damage in radius 1 and healing you for 50%% of the damage dealt.]]): - format(t.getMoveDamage(self, t), t.getExplosionDamage(self, t)) + tformat(t.getMoveDamage(self, t), t.getExplosionDamage(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/star-fury.lua b/game/modules/tome/data/talents/celestial/star-fury.lua index 9e1e919e50b484d7366b419a38df9f68fa5faf61..bd5c8f3cda578127651b9a0e23f18afae464c940 100644 --- a/game/modules/tome/data/talents/celestial/star-fury.lua +++ b/game/modules/tome/data/talents/celestial/star-fury.lua @@ -48,7 +48,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Focuses the power of the Moon into a beam of shadows, doing %0.2f damage. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage)) + tformat(damDesc(self, DamageType.DARKNESS, damage)) end, } @@ -97,7 +97,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Invokes a blast of shadows that deals %0.2f darkness damage, and leaves a radius 3 field that does %0.2f darkness damage per turn for %d turns. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage),damDesc(self, DamageType.DARKNESS, damage/2),duration) + tformat(damDesc(self, DamageType.DARKNESS, damage),damDesc(self, DamageType.DARKNESS, damage/2),duration) end, } @@ -133,7 +133,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[A surge of twilight pulses from you, doing %0.2f light and %0.2f darkness damage to all others within radius %d. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, dam),damDesc(self, DamageType.DARKNESS, dam), radius) + tformat(damDesc(self, DamageType.LIGHT, dam),damDesc(self, DamageType.DARKNESS, dam), radius) end, } @@ -175,6 +175,6 @@ newTalent{ local damage = t.getDamage(self, t) return ([[A star falls on a radius %d area, doing %0.2f darkness damage on impact and stunning all within the area for 4 turns. The damage dealt will increase with your Spellpower.]]): - format(radius, damDesc(self, DamageType.DARKNESS, damage)) + tformat(radius, damDesc(self, DamageType.DARKNESS, damage)) end, } diff --git a/game/modules/tome/data/talents/celestial/sun.lua b/game/modules/tome/data/talents/celestial/sun.lua index 799e40b5117df977ca33a2fe0a346551a0005763..c71ae9bf3efc431d9d924c6e5566a7335de67fa0 100644 --- a/game/modules/tome/data/talents/celestial/sun.lua +++ b/game/modules/tome/data/talents/celestial/sun.lua @@ -83,7 +83,7 @@ newTalent{ return ([[Calls forth a ray of light from the Sun, doing %0.1f Light damage to the target. At level 3 the ray will be so intense it will also blind the target and everyone in a radius 2 around it for %d turns. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, damage), t.getDuration(self, t)) + tformat(damDesc(self, DamageType.LIGHT, damage), t.getDuration(self, t)) end, } @@ -124,7 +124,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[A path of sunlight appears in front of you for 5 turns. All foes standing inside take %0.1f Light damage per turn. While standing in the path, your movement takes no time and can not trigger traps. - The damage done will increase with your Spellpower.]]):format(damDesc(self, DamageType.LIGHT, damage / 5), radius) + The damage done will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.LIGHT, damage / 5), radius) end, } @@ -162,7 +162,7 @@ newTalent{ While affected by Sun's Vengeance, your Sun Ray will take no time to use and will deal 25%% more damage. If Sun Ray was on cooldown, the remaining turns are reduced by one instead. This effect can only happen once per turn.]]): - format(crit, chance) + tformat(crit, chance) end, } @@ -198,7 +198,7 @@ newTalent{ return ([[You wrap yourself in a cloak of sunlight that empowers your magic and protects you for 6 turns. While the cloak is active, your spell casting speed is increased by %d%%, your spell cooldowns are reduced by %d%%, and you cannot take more than %d%% of your maximum life from a single blow. The effects will increase with your Spellpower.]]): - format(t.getHaste(self, t)*100, t.getCD(self, t)*100, t.getCap(self, t)) + tformat(t.getHaste(self, t)*100, t.getCD(self, t)*100, t.getCap(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/sunlight.lua b/game/modules/tome/data/talents/celestial/sunlight.lua index afbceb77112eb20ff42c6f133df3f377d36c2f10..e3952baa77fb2ac5daeb63d9fc03e3b1f40aed31 100644 --- a/game/modules/tome/data/talents/celestial/sunlight.lua +++ b/game/modules/tome/data/talents/celestial/sunlight.lua @@ -60,7 +60,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Calls the power of the Sun into a searing lance, doing %d damage to the target and leaving a radius 1 area of searing light on the ground for 4 turns that does %d light damage to all foes within it. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, damage), damDesc(self, DamageType.LIGHT, damage/2)) + tformat(damDesc(self, DamageType.LIGHT, damage), damDesc(self, DamageType.LIGHT, damage/2)) end, } @@ -114,7 +114,7 @@ newTalent{ All enemies effected will take %0.2f light damage. At talent level 3 you gain %d%% light, darkness, and fire resistance for %d turns. The damage done and resistances will increase with your Spellpower.]]): - format(radius, duration, damDesc(self, DamageType.LIGHT, damage), res, resdur ) + tformat(radius, duration, damDesc(self, DamageType.LIGHT, damage), res, resdur ) end, } @@ -182,7 +182,7 @@ newTalent{ This spell will automatically cast again at the start of your next two turns. You will gain %0.2f positive energy each time firebeam or an instant damage proc caused by firebeam deals damage. The damage done will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage), t.getPositive(self, t)) + tformat(damDesc(self, DamageType.FIRE, damage), t.getPositive(self, t)) end, } @@ -235,6 +235,6 @@ newTalent{ return true end, info = function(self, t) - return ([[Release a burst of sunlight beams at %d random foes in radius %d, dealing %d damage to all foes hit and increasing your bonus light damage by %d%% of your bonus darkness damage for %d turns.]]):format(t.getTargetCount(self, t), self:getTalentRadius(t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getPower(self, t)*100, t.getDuration(self, t)) + return ([[Release a burst of sunlight beams at %d random foes in radius %d, dealing %d damage to all foes hit and increasing your bonus light damage by %d%% of your bonus darkness damage for %d turns.]]):tformat(t.getTargetCount(self, t), self:getTalentRadius(t), damDesc(self, DamageType.LIGHT, t.getDamage(self, t)), t.getPower(self, t)*100, t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/celestial/twilight.lua b/game/modules/tome/data/talents/celestial/twilight.lua index 0af3eed2eceddb9b12e1f06c1fdf650e5f36704b..847951f880a9fbd2cdc0d70536ff87cba94680ae 100644 --- a/game/modules/tome/data/talents/celestial/twilight.lua +++ b/game/modules/tome/data/talents/celestial/twilight.lua @@ -37,7 +37,7 @@ newTalent{ info = function(self, t) return ([[You stand between the darkness and the light, allowing you to convert 15 positive energy into %d negative energy. The negative energy gain will increase with your Cunning.]]): - format(t.getNegativeGain(self, t)) + tformat(t.getNegativeGain(self, t)) end, } @@ -71,7 +71,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Instantly travel to your jumpgate, as long as you are within %d tiles of it.]]):format(t.getRange(self, t)) + return ([[Instantly travel to your jumpgate, as long as you are within %d tiles of it.]]):tformat(t.getRange(self, t)) end, } @@ -147,7 +147,7 @@ newTalent{ local range = jumpgate_teleport.getRange(self, jumpgate_teleport) return ([[Create a shadow jumpgate at your current location. As long as you sustain this spell, you can use 'Jumpgate: Teleport' to instantly travel to the jumpgate, as long as you are within %d tiles of it. Note that any stairs underneath the jumpgate will be unusable while the spell is sustained, and you may need to cancel this sustain in order to leave certain locations. - At talent level 4, you learn to create and sustain a second jumpgate.]]):format(range) + At talent level 4, you learn to create and sustain a second jumpgate.]]):tformat(range) end, } @@ -184,7 +184,7 @@ newTalent{ local duration = t.getConfuseDuration(self, t) return ([[Let out a mental cry that shatters the will of your targets within radius %d, dealing %0.2f darkness damage and confusing (%d%% to act randomly) them for %d turns. The damage will improve with your spellpower and the duration will improve with your Cunning.]]): - format(self:getTalentRadius(t), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getConfuseEfficency(self,t), duration) + tformat(self:getTalentRadius(t), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t)), t.getConfuseEfficency(self,t), duration) end, } @@ -262,7 +262,7 @@ newTalent{ return ([[Creates a shadowy copy of a hostile target. The copy will attack its progenitor immediately and lasts for %d turns. The duplicate has %d%% of the target's life, +50%% darkness resistance, -50%% light resistance, and deals 50%% less damage. The duration and life scale with your Cunning.]]): - format(duration, t.getPercent(self, t)) + tformat(duration, t.getPercent(self, t)) end, } @@ -330,7 +330,7 @@ newTalent{ info = function(self, t) local jumpgate_teleport = self:getTalentFromId(self.T_JUMPGATE_TELEPORT_TWO) local range = jumpgate_teleport.getRange(self, jumpgate_teleport) - return ([[Create a second shadow jumpgate at your location. As long as you sustain this spell, you can use 'Jumpgate: Teleport' to instantly travel to the jumpgate, as long as you are within %d tiles of it.]]):format(range) + return ([[Create a second shadow jumpgate at your location. As long as you sustain this spell, you can use 'Jumpgate: Teleport' to instantly travel to the jumpgate, as long as you are within %d tiles of it.]]):tformat(range) end, } @@ -364,6 +364,6 @@ newTalent{ return true end, info = function(self, t) - return ([[Instantly travel to your second jumpgate, as long as you are within %d tiles of it.]]):format(t.getRange(self, t)) + return ([[Instantly travel to your second jumpgate, as long as you are within %d tiles of it.]]):tformat(t.getRange(self, t)) end, } diff --git a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua index 9c44c3ec9bff7745a3c6d94149fc4a095b85c976..a160e2b6cf822cfd9c0120cf59c479bf0fde35a2 100644 --- a/game/modules/tome/data/talents/chronomancy/age-manipulation.lua +++ b/game/modules/tome/data/talents/chronomancy/age-manipulation.lua @@ -45,7 +45,7 @@ newTalent{ local damage = t.getDamage(self, t) local damagestat = t.getDamageStat(self, t) return ([[Projects a bolt of temporal energy that deals %0.2f temporal damage, and reduces the targets three highest stats by %d for 3 turns. - The damage dealt will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage), damagestat) + The damage dealt will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), damagestat) end, } @@ -83,7 +83,7 @@ newTalent{ local duration = t.getConfuseDuration(self, t) local radius = self:getTalentRadius(t) return ([[Reverts the minds of all creatures in a radius %d cone to an infantile state, in effect confusing them (%d%% to act randomly) for %d turns.]]): - format(radius, t.getConfuseEfficency(self, t), duration) + tformat(radius, t.getConfuseEfficency(self, t), duration) end, } @@ -127,7 +127,7 @@ newTalent{ local duration = t.getDuration(self, t) local radius = self:getTalentRadius(t) return ([[You surround yourself with a radius %d distortion of time, which deals %0.2f stacking temporal damage over 3 turns to all other creatures. The effect lasts %d turns. - The damage dealt will scale with your Spellpower.]]):format(radius, damDesc(self, DamageType.TEMPORAL, damage), duration) + The damage dealt will scale with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.TEMPORAL, damage), duration) end, } @@ -187,6 +187,6 @@ newTalent{ local count = t.getRemoveCount(self, t) return ([[You revert your body to a previous state, healing yourself for %0.2f life and removing %d physical status effects (both good and bad). The amount of life healed will scale with your Spellpower.]]): - format(heal, count) + tformat(heal, count) end, } diff --git a/game/modules/tome/data/talents/chronomancy/anomalies.lua b/game/modules/tome/data/talents/chronomancy/anomalies.lua index 7a0c93fa42121cdc30e6f50c9d1eb4469f5c35de..458091bc89e339edf1277b0b9eb5a71e2e676136 100644 --- a/game/modules/tome/data/talents/chronomancy/anomalies.lua +++ b/game/modules/tome/data/talents/chronomancy/anomalies.lua @@ -147,7 +147,7 @@ newTalent{ end, info = function(self, t) local radius = self:getTalentRadius(t) - return ([[Teleports up to five targets in a radius of %d up to ten tiles away.]]):format(radius) + return ([[Teleports up to five targets in a radius of %d up to ten tiles away.]]):tformat(radius) end, } @@ -193,7 +193,7 @@ newTalent{ info = function(self, t) local range = self:getTalentRange(t) local radius = self:getTalentRadius(t) - return ([[Teleports up to five targets in a radius of %d up to %d tiles away.]]):format(radius, range) + return ([[Teleports up to five targets in a radius of %d up to %d tiles away.]]):tformat(radius, range) end, } @@ -249,7 +249,7 @@ newTalent{ return true end, info = function(self, t) - return ([[You swap locations with a random target.]]):format() + return ([[You swap locations with a random target.]]):tformat() end, } @@ -295,7 +295,7 @@ newTalent{ end, info = function(self, t) return ([[50%% chance that damage the caster takes will be warped to a set target. - Once the maximum damage (%d) is absorbed, the time runs out, or the target dies, the shield will crumble.]]):format(getAnomalyDamage(self, t)*2) + Once the maximum damage (%d) is absorbed, the time runs out, or the target dies, the shield will crumble.]]):tformat(getAnomalyDamage(self, t)*2) end, } @@ -388,7 +388,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Creates a wormhole nearby and a second wormhole up to ten tiles away.]]):format() + return ([[Creates a wormhole nearby and a second wormhole up to ten tiles away.]]):tformat() end, } @@ -432,7 +432,7 @@ newTalent{ end, info = function(self, t) return ([[Allows up to five targets in a radius of %d to travel up to %d tiles through walls.]]): - format(getAnomalyDuration(self, t)*2, getAnomalyDuration(self, t)) + tformat(getAnomalyDuration(self, t)*2, getAnomalyDuration(self, t)) end, } @@ -476,7 +476,7 @@ newTalent{ end, info = function(self, t) return ([[Up to five targets in a radius of %d are teleporting %d tiles every turn.]]): - format(self:getTalentRadius(t), getAnomalyDuration(self, t)) + tformat(self:getTalentRadius(t), getAnomalyDuration(self, t)) end, } @@ -631,7 +631,7 @@ newTalent{ end, info = function(self, t) return ([[Slows up to five targets in a radius %d ball by %d%%.]]): - format(self:getTalentRadius(t), t.getSlow(self, t)*100) + tformat(self:getTalentRadius(t), t.getSlow(self, t)*100) end, } @@ -675,7 +675,7 @@ newTalent{ end, info = function(self, t) return ([[Increases global speed of up to five targets in a radius %d ball by %d%%.]]): - format(self:getTalentRadius(t), t.getHaste(self, t)*100) + tformat(self:getTalentRadius(t), t.getHaste(self, t)*100) end, } @@ -720,7 +720,7 @@ newTalent{ end, info = function(self, t) return ([[Stuns up to five targets in a radius %d ball.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -765,7 +765,7 @@ newTalent{ end, info = function(self, t) return ([[Time Prisons up to five targets in a radius %d ball.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -808,7 +808,7 @@ newTalent{ end, info = function(self, t) return ([[Time Shields up to five targets in a radius of %d.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -851,7 +851,7 @@ newTalent{ end, info = function(self, t) return ([[Invigorates up to five targets in a radius of %d.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -898,7 +898,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Clones a random creature within range.]]):format() + return ([[Clones a random creature within range.]]):tformat() end, } @@ -940,7 +940,7 @@ newTalent{ local duration = self:combatScale(getParadoxSpellpower(self, t), 4, 10, 12, 100, 0.75)/2 local damage = self:combatScale(getParadoxSpellpower(self, t), 10, 10, 50, 100, 0.75) return ([[Creates a temporal storm for %d to %d turns that deals between %0.2f and %0.2f temporal damage each turn.]]) - :format(duration/2, duration, damDesc(self, DamageType.TEMPORAL, damage/3), damDesc(self, DamageType.TEMPORAL, damage)) + :tformat(duration/2, duration, damDesc(self, DamageType.TEMPORAL, damage/3), damDesc(self, DamageType.TEMPORAL, damage)) end, } @@ -986,7 +986,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Increases localized gravity, pulling in targets in a radius of %d.]]):format(self:getTalentRadius(t)) + return ([[Increases localized gravity, pulling in targets in a radius of %d.]]):tformat(self:getTalentRadius(t)) end, } @@ -1019,7 +1019,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Digs out all terrain in a radius %d ball.]]):format(self:getTalentRadius(t)) + return ([[Digs out all terrain in a radius %d ball.]]):tformat(self:getTalentRadius(t)) end, } @@ -1096,7 +1096,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Entombs a single target in a wall of stone.]]):format() + return ([[Entombs a single target in a wall of stone.]]):tformat() end, } @@ -1156,7 +1156,7 @@ newTalent{ end, info = function(self, t) return ([[Places between three and six talents of up to 5 targets in a radius %d ball on cooldown for up to %d turns.]]): - format(getAnomalyRadius(self, t), getAnomalyDuration(self, t)) + tformat(getAnomalyRadius(self, t), getAnomalyDuration(self, t)) end, } @@ -1202,7 +1202,7 @@ requires_target = true, return true end, info = function(self, t) - return ([[Creates a gravity well in a radius %d ball, pinning up to five targets.]]):format(self:getTalentRadius(t)) + return ([[Creates a gravity well in a radius %d ball, pinning up to five targets.]]):tformat(self:getTalentRadius(t)) end, } @@ -1239,7 +1239,7 @@ newTalent{ end, info = function(self, t) return ([[Causes an earthquake in a radius of %d.]]): - format(getAnomalyRadius(self, t)) + tformat(getAnomalyRadius(self, t)) end, } @@ -1281,7 +1281,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Reduces the resistances of up to five targets in a ball of radius %d by %d%%.]]):format(self:getTalentRadius(t), getAnomalyEffectPower(self, t)) + return ([[Reduces the resistances of up to five targets in a ball of radius %d by %d%%.]]):tformat(self:getTalentRadius(t), getAnomalyEffectPower(self, t)) end, } @@ -1343,7 +1343,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Summons three to six dust storms.]]):format() + return ([[Summons three to six dust storms.]]):tformat() end, } @@ -1402,7 +1402,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Summons three to six blazing fires.]]):format() + return ([[Summons three to six blazing fires.]]):tformat() end, } @@ -1444,7 +1444,7 @@ newTalent{ end, info = function(self, t) return ([[Turns up to 5 targets in a radius %d ball to stone for %d turns.]]): - format(getAnomalyRadius(self, t), getAnomalyDuration(self, t)) + tformat(getAnomalyRadius(self, t), getAnomalyDuration(self, t)) end, } @@ -1486,7 +1486,7 @@ newTalent{ end, info = function(self, t) return ([[Teleports between 3 and 6 targets to the caster.]]): - format() + tformat() end, } @@ -1526,7 +1526,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Substantially toughens and hastes one target for %d turns.]]):format(getAnomalyDuration(self, t)) + return ([[Substantially toughens and hastes one target for %d turns.]]):tformat(getAnomalyDuration(self, t)) end, } @@ -1566,7 +1566,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Clones the caster.]]):format(getAnomalyDuration(self, t)) + return ([[Clones the caster.]]):tformat(getAnomalyDuration(self, t)) end, } @@ -1612,7 +1612,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Clones all creatures in a radius of 10.]]):format(getAnomalyDuration(self, t)) + return ([[Clones all creatures in a radius of 10.]]):tformat(getAnomalyDuration(self, t)) end, } @@ -1646,7 +1646,7 @@ requires_target = true, return true end, info = function(self, t) - return ([[Digs out all terrain in between three and six radius %d balls.]]):format(self:getTalentRadius(t)) + return ([[Digs out all terrain in between three and six radius %d balls.]]):tformat(self:getTalentRadius(t)) end, } @@ -1703,7 +1703,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Summons a sphere of destruction.]]):format() + return ([[Summons a sphere of destruction.]]):tformat() end, } @@ -1779,7 +1779,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Summons three to six tornados.]]):format() + return ([[Summons three to six tornados.]]):tformat() end, } @@ -1874,7 +1874,7 @@ newTalent{ end, info = function(self, t) return ([[Causes a meteor to fall from the sky.]]): - format() + tformat() end, } @@ -1955,7 +1955,7 @@ newTalent{ end, info = function(self, t) return ([[Tears a hole in the fabric of spacetime.]]): - format() + tformat() end, } @@ -2004,7 +2004,7 @@ newTalent{ end, info = function(self, t) return ([[Time elementals have been attracted to the timeline.]]): - format() + tformat() end, } diff --git a/game/modules/tome/data/talents/chronomancy/blade-threading.lua b/game/modules/tome/data/talents/chronomancy/blade-threading.lua index 17e46b66f4425b59b02918741c171e65b7c548d9..e0af1c4c4368433049043e6e6925a303526e24fe 100644 --- a/game/modules/tome/data/talents/chronomancy/blade-threading.lua +++ b/game/modules/tome/data/talents/chronomancy/blade-threading.lua @@ -63,7 +63,7 @@ newTalent{ return ([[Attack with your melee weapons for %d%% weapon damage as physical and temporal (warp) damage. If either attack hits you may stun, blind, pin, or confuse the target for %d turns. Blade Threading talents will freely swap to your dual-weapons when activated if you have them in your secondary slots. Additionally you may use the Attack talent in a similar manner.]]) - :format(damage, duration) + :tformat(damage, duration) end } @@ -168,7 +168,7 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[Teleport to the target and attack with your melee weapons for %d%% damage. Then teleport next to a second random enemy, attacking for %d%% damage. Blink Blade can hit the same target multiple times.]]) - :format(damage, damage) + :tformat(damage, damage) end } @@ -258,7 +258,7 @@ newTalent{ return ([[Attack up to three adjacent targets for %d%% weapon damage. If any attack hits you'll create a temporal shear dealing %0.2f temporal damage in a radius %d cone. Each target you hit with your weapons beyond the first increases the damage of the shear by 25%%. Targets reduced below 20%% of maximum life by the shear may be instantly slain. The cone damage improves with your Spellpower.]]) - :format(damage, damDesc(self, DamageType.TEMPORAL, shear), radius) + :tformat(damage, damDesc(self, DamageType.TEMPORAL, shear), radius) end } @@ -272,7 +272,7 @@ newTalent{ info = function(self, t) local chance = t.getChance(self, t) return ([[While dual-wielding you have a %d%% chance of completely parrying melee attacks made against you.]]) - :format(chance) + :tformat(chance) end } @@ -341,6 +341,6 @@ newTalent{ If two or more targets are hit by the beam you'll braid their lifelines for %d turns. Braided targets take %d%% of all damage dealt to other braided targets. The damage transferred by the braid effect and beam damage scales with your Spellpower.]]) - :format(damage, duration, power) + :tformat(damage, duration, power) end }]=] diff --git a/game/modules/tome/data/talents/chronomancy/bow-threading.lua b/game/modules/tome/data/talents/chronomancy/bow-threading.lua index c6dd316b0cf0151a0d6f77cfae41ae3c5cc63eab..93b917e1b165c85e956f9f1b77147ddc18a448aa 100644 --- a/game/modules/tome/data/talents/chronomancy/bow-threading.lua +++ b/game/modules/tome/data/talents/chronomancy/bow-threading.lua @@ -121,7 +121,7 @@ newTalent{ The wardens are out of phase with normal reality and deal %d%% less damage but shoot through friendly targets. All your arrows, including arrows from Shoot and other talents, now phase through friendly targets without causing them harm. Bow Threading talents will freely swap to your bow when activated if you have one in your secondary slot. You may use the Shoot talent in a similar manner.]]) - :format(damage, penalty) + :tformat(damage, penalty) end } @@ -219,7 +219,7 @@ newTalent{ Each target moved beyond the first increases the damage %0.2f (up to %0.2f bonus damage). Targets take reduced damage the further they are from the epicenter (20%% less per tile). The additional damage scales with your Spellpower.]]) - :format(damage, radius, damDesc(self, DamageType.PHYSICAL, aoe), damDesc(self, DamageType.PHYSICAL, aoe/8), damDesc(self, DamageType.PHYSICAL, aoe/2)) + :tformat(damage, radius, damDesc(self, DamageType.PHYSICAL, aoe), damDesc(self, DamageType.PHYSICAL, aoe/8), damDesc(self, DamageType.PHYSICAL, aoe/2)) end } @@ -277,7 +277,7 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[Over the next %d turns you'll fire up to %d arrows at this target from this location, each dealing %d%% weapon damage to the target. These shots do not consume ammo.]]) - :format(duration, duration, damage) + :tformat(duration, duration, damage) end } @@ -296,7 +296,7 @@ newTalent{ info = function(self, t) local tune = t.getTuning(self, t) return ([[Your arrows now tune your Paradox %0.2f points towards your preferred Paradox on hit.]]) - :format(tune) + :tformat(tune) end } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/chronomancer.lua b/game/modules/tome/data/talents/chronomancy/chronomancer.lua index 0a2b90e8d4b4a364bf1a038227c773a14a75ad0d..6687affbdd9bdf88e994cfa969f4513febbb698d 100644 --- a/game/modules/tome/data/talents/chronomancy/chronomancer.lua +++ b/game/modules/tome/data/talents/chronomancy/chronomancer.lua @@ -18,39 +18,39 @@ -- darkgod@te4.org -- Class Trees -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/blade-threading", name = "Blade Threading", description = "A blend of chronomancy and dual-weapon combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/bow-threading", name = "Bow Threading", description = "A blend of chronomancy and ranged combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/temporal-combat", name = "Temporal Combat", description = "A blend of chronomancy and physical combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/guardian", name = "Temporal Guardian", description = "Warden combat training and techniques." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/threaded-combat", name = "Threaded Combat", min_lev = 10, description = "A blend of ranged and dual-weapon combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/temporal-hounds", name = "Temporal Hounds", min_lev = 10, description = "Call temporal hounds to aid you in combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/blade-threading", name = _t"Blade Threading", description = _t"A blend of chronomancy and dual-weapon combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/bow-threading", name = _t"Bow Threading", description = _t"A blend of chronomancy and ranged combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/temporal-combat", name = _t"Temporal Combat", description = _t"A blend of chronomancy and physical combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/guardian", name = _t"Temporal Guardian", description = _t"Warden combat training and techniques." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/threaded-combat", name = _t"Threaded Combat", min_lev = 10, description = _t"A blend of ranged and dual-weapon combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/temporal-hounds", name = _t"Temporal Hounds", min_lev = 10, description = _t"Call temporal hounds to aid you in combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/flux", name = "flux", description = "Fluctuate spacetime." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/gravity", name = "gravity", description = "Call upon the force of gravity to crush, push, and pull your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/matter", name = "matter", description = "Change and shape matter itself." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spacetime-folding", name = "Spacetime Folding", description = "Mastery of folding points in space." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/speed-control", name = "Speed Control", description = "Control how fast objects and creatures move through spacetime." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/stasis", name = "stasis", description = "Stabilize spacetime." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/timeline-threading", name = "Timeline Threading", min_lev = 10, description = "Examine and alter the timelines that make up the spacetime continuum." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/timetravel", name = "timetravel", description = "Directly manipulate the flow of time" } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spellbinding", name = "Spellbinding", min_lev = 10, description = "Manipulate chronomantic spells." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/flux", name = _t"flux", description = _t"Fluctuate spacetime." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/gravity", name = _t"gravity", description = _t"Call upon the force of gravity to crush, push, and pull your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/matter", name = _t"matter", description = _t"Change and shape matter itself." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spacetime-folding", name = _t"Spacetime Folding", description = _t"Mastery of folding points in space." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/speed-control", name = _t"Speed Control", description = _t"Control how fast objects and creatures move through spacetime." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/stasis", name = _t"stasis", description = _t"Stabilize spacetime." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/timeline-threading", name = _t"Timeline Threading", min_lev = 10, description = _t"Examine and alter the timelines that make up the spacetime continuum." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/timetravel", name = _t"timetravel", description = _t"Directly manipulate the flow of time" } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spellbinding", name = _t"Spellbinding", min_lev = 10, description = _t"Manipulate chronomantic spells." } -- Generic Chronomancy -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/chronomancy", name = "Chronomancy", generic = true, description = "Allows you to glimpse the future, or become more aware of the present." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/energy", name = "energy", generic = true, description = "Manipulate raw energy by addition or subtraction." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/fate-weaving", name = "Fate Weaving", generic = true, description = "Weave the threads of fate." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spacetime-weaving", name = "Spacetime Weaving", generic = true, description = "Weave the threads of spacetime." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/chronomancy", name = _t"Chronomancy", generic = true, description = _t"Allows you to glimpse the future, or become more aware of the present." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/energy", name = _t"energy", generic = true, description = _t"Manipulate raw energy by addition or subtraction." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/fate-weaving", name = _t"Fate Weaving", generic = true, description = _t"Weave the threads of fate." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/spacetime-weaving", name = _t"Spacetime Weaving", generic = true, description = _t"Weave the threads of spacetime." } -- Misc and Outdated Trees -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/manifold", name = "Manifold", generic = true, description = "Passive effects that Weapon Folding can trigger." } -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/other", name = "Other", generic = true, description = "Miscellaneous Chronomancy effects." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/manifold", name = _t"Manifold", generic = true, description = _t"Passive effects that Weapon Folding can trigger." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/other", name = _t"Other", generic = true, description = _t"Miscellaneous Chronomancy effects." } -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/age-manipulation", name = "Age Manipulation", description = "Manipulate the age of creatures you encounter." } -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/temporal-archery", name = "Temporal Archery", description = "A blend of chronomancy and ranged combat." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/paradox", name = "paradox", description = "Break the laws of spacetime." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/age-manipulation", name = _t"Age Manipulation", description = _t"Manipulate the age of creatures you encounter." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/temporal-archery", name = _t"Temporal Archery", description = _t"A blend of chronomancy and ranged combat." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="chronomancy/paradox", name = _t"paradox", description = _t"Break the laws of spacetime." } -- Anomalies are not learnable but can occur instead of an intended spell when paradox gets to high. -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/anomalies", name = "anomalies", description = "Spacetime anomalies that can randomly occur when paradox is to high." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/anomalies", name = _t"anomalies", description = _t"Spacetime anomalies that can randomly occur when paradox is to high." } -- Generic requires for chronomancy spells based on talent level chrono_req1 = { diff --git a/game/modules/tome/data/talents/chronomancy/chronomancy.lua b/game/modules/tome/data/talents/chronomancy/chronomancy.lua index 4d76dc3f8a6e0c5cc00be1d2983afb2727a2bf2e..41b28625ad28fd460fd9812dd21e755dcb25e933 100644 --- a/game/modules/tome/data/talents/chronomancy/chronomancy.lua +++ b/game/modules/tome/data/talents/chronomancy/chronomancy.lua @@ -46,7 +46,7 @@ newTalent{ local range = self:getTalentRange(t) local duration = t.getDuration(self, t) return ([[You peer into the future, sensing creatures and traps in a radius of %d for %d turns. - If you know Foresight you'll gain additional defense and chance to shrug off critical hits (equal to your Foresight bonuses) while Precognition is active.]]):format(range, duration) + If you know Foresight you'll gain additional defense and chance to shrug off critical hits (equal to your Foresight bonuses) while Precognition is active.]]):tformat(range, duration) end, } @@ -73,7 +73,7 @@ newTalent{ return ([[Gain %d defense and %d%% chance to shrug off critical hits. If you have Precognition or See the Threads active these bonuses will be added to those effects, granting additional defense and chance to shrug off critical hits. These bonuses scale with your Magic stat.]]): - format(defense, crits) + tformat(defense, crits) end, } @@ -157,7 +157,7 @@ newTalent{ This effect can only occur once every %d turns and takes place after the damage is resolved. Current Contingency Spell: %s]]): - format(trigger, cooldown, talent) + tformat(trigger, cooldown, talent) end, } @@ -208,6 +208,6 @@ newTalent{ This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. If you die in any thread you'll revert the timeline to the point when you first cast the spell and the effect will end. This spell may only be used once per zone level.]]) - :format(duration) + :tformat(duration) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/energy.lua b/game/modules/tome/data/talents/chronomancy/energy.lua index 6c0fee717962963fbe985371f8580beeaacafe3e..7f69d94a2da578f8f8669813ac640fd3fd4e351a 100644 --- a/game/modules/tome/data/talents/chronomancy/energy.lua +++ b/game/modules/tome/data/talents/chronomancy/energy.lua @@ -36,7 +36,7 @@ newTalent{ -- works like armor with 30% hardiness dam = math.max(dam * 0.3 - decomp, 0) + (dam * 0.7) print("[PROJECTOR] after static reduction dam", dam) - game:delayedLogDamage(src or self, self, 0, ("%s(%d dissipated)#LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", lastdam - dam), false) + game:delayedLogDamage(src or self, self, 0, ("%s(%d dissipated)#LAST#"):tformat(DamageType:get(type).text_color or "#aaaaaa#", lastdam - dam), false) return {dam=dam} end, activate = function(self, t) @@ -54,7 +54,7 @@ newTalent{ info = function(self, t) local decomp = t.getDecomposition(self, t) return ([[Partially dissipates all incoming damage, reducing it by 30%%, up to a maximum of %d. - The maximum damage reduction will scale with your Spellpower.]]):format(decomp) + The maximum damage reduction will scale with your Spellpower.]]):tformat(decomp) end, } @@ -134,7 +134,7 @@ newTalent{ local cooldown = t.getCooldown(self, t) return ([[You sap the target's energy and add it to your own, placing up to %d random talents on cooldown for %d turns. For each talent put on cooldown, you reduce the cooldown of one of your talents currently on cooldown by %d turns.]]): - format(talentcount, cooldown, cooldown) + tformat(talentcount, cooldown, cooldown) end, } @@ -160,7 +160,7 @@ newTalent{ local cooldown = t.getMaxCooldown(self, t) return ([[The next talent you cast with a cooldown of %d or less will not go on cooldown. Once a talent is effected by this spell or %d turns pass the effect is lost.]]): - format(cooldown, duration) + tformat(cooldown, duration) end, } @@ -194,6 +194,6 @@ newTalent{ end, info = function(self, t) local duration = t.getDuration(self, t) - return ([[Each turn, for the next %d turns, one of the target's sustained talents will be deactivated.]]):format(duration) + return ([[Each turn, for the next %d turns, one of the target's sustained talents will be deactivated.]]):tformat(duration) end, } diff --git a/game/modules/tome/data/talents/chronomancy/fate-weaving.lua b/game/modules/tome/data/talents/chronomancy/fate-weaving.lua index f448552295fc1dffab547f83d2085cc4454f234b..084fa788e2d2d48f45bd627d40f0b8d3adc3e4ef 100644 --- a/game/modules/tome/data/talents/chronomancy/fate-weaving.lua +++ b/game/modules/tome/data/talents/chronomancy/fate-weaving.lua @@ -49,7 +49,7 @@ newTalent{ local save = t.getSaveBonus(self, t) return ([[Each time you would take damage from someone else you gain one Spin, increasing your defense and saves by %d for three turns. This effect may occur once per turn and stacks up to three Spin (for a maximum bonus of %d).]]): - format(save, save * 3) + tformat(save, save * 3) end, } @@ -75,7 +75,7 @@ newTalent{ local chance = t.getChance(self, t) return ([[Activate to Seal Fate for %d turns. When you damage a target while Seal Fate is active you gain Spin and have a %d%% chance to increase the duration of one detrimental status effect on it by one turn. If you have Spin Fate active the chance will be increased by 33%% per Spin (for %d%% at three Spin.) - The duration increase can occur up to %d times per turn and the bonus Spin once per turn.]]):format(duration, chance, chance * 2, procs) + The duration increase can occur up to %d times per turn and the bonus Spin once per turn.]]):tformat(duration, chance, chance * 2, procs) end, } @@ -95,7 +95,7 @@ newTalent{ info = function(self, t) local power = t.getPowerBonus(self, t) return ([[You now gain %d combat accuracy, physical power, spellpower, and mindpower per Spin.]]): - format(power) + tformat(power) end, } @@ -121,6 +121,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[For the next %d turns you displace %d%% of any damage you receive onto a random enemy. While Webs of Fate is active you may gain one additional Spin per turn and your maximum Spin is doubled.]]) - :format(duration, power) + :tformat(duration, power) end, } diff --git a/game/modules/tome/data/talents/chronomancy/flux.lua b/game/modules/tome/data/talents/chronomancy/flux.lua index abe0ee504e9efd89ab577c3ca006f60698ce036d..029ee259dacf1f629ae73b01f73e590c1fe53177 100644 --- a/game/modules/tome/data/talents/chronomancy/flux.lua +++ b/game/modules/tome/data/talents/chronomancy/flux.lua @@ -39,7 +39,7 @@ newTalent{ local reduction = t.getReduction(self, t) return ([[Create an anomaly, reducing your Paradox by %d. This spell will never produce a major anomaly. Induced Anomalies may not be held by Twist Fate, nor do they cause held anomalies to trigger. However upon learning Twist Fate you may target Induced Anomalies. - The Paradox reduction will increase with your Spellpower.]]):format(reduction) + The Paradox reduction will increase with your Spellpower.]]):tformat(reduction) end, } @@ -74,7 +74,7 @@ newTalent{ self:setEffect(self.EFF_REALITY_SMEARING, t.getDuration(self, t), {paradox=paradox/t.getDuration(self, t)}) game:delayedLogMessage(self, nil, "reality smearing", "#LIGHT_BLUE##Source# converts damage to paradox!") - game:delayedLogDamage(src, self, 0, ("#LIGHT_BLUE#(%d converted)#LAST#"):format(absorb), false) + game:delayedLogDamage(src, self, 0, ("#LIGHT_BLUE#(%d converted)#LAST#"):tformat(absorb), false) cb.value = cb.value - absorb return cb.value @@ -93,7 +93,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[While active 30%% of all damage you take is converted into %0.2f Paradox per point. The Paradox is gained over three turns.]]): - format(ratio, duration) + tformat(ratio, duration) end, } @@ -142,7 +142,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Deals %0.2f temporal damage over %d turns to all targets in a radius of %d. Targets with Reality Smearing active will instead recover %d life over four turns. If a target is reduced below 20%% life while Attenuate is active it may be instantly slain. - The damage will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage), duration, radius, damage *0.4) + The damage will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), duration, radius, damage *0.4) end, } @@ -204,6 +204,6 @@ newTalent{ Current Anomaly: %s %s]]): - format(duration, t_name, t_info) + tformat(duration, t_name, t_info) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/gravity.lua b/game/modules/tome/data/talents/chronomancy/gravity.lua index 5e3a68e37488d7752d41d3de56fb033ab101be0d..96afa4cc55649d405064bbff8fa8013fd1dc49b6 100644 --- a/game/modules/tome/data/talents/chronomancy/gravity.lua +++ b/game/modules/tome/data/talents/chronomancy/gravity.lua @@ -100,7 +100,7 @@ newTalent{ return ([[Sends out a blast wave of gravity in a radius %d cone, dealing %0.2f base physical (gravity) damage and knocking back targets caught in the area. Targets knocked into walls or other targets take 25%% additional damage and deal 25%% damage to targets they're knocked into. Closer targets will be knocked back further and the damage will scale with your Spellpower.]]): - format(radius, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + tformat(radius, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -179,7 +179,7 @@ newTalent{ Each target moved beyond the first increases the damage by %0.2f (up to a maximum of %0.2f bonus damage). Targets take reduced damage the further they are from the epicenter (20%% less per tile). The damage dealt will scale with your Spellpower.]]) - :format(radius, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.PHYSICAL, damage/8), damDesc(self, DamageType.PHYSICAL, damage/2)) + :tformat(radius, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.PHYSICAL, damage/8), damDesc(self, DamageType.PHYSICAL, damage/2)) end, } @@ -217,7 +217,7 @@ newTalent{ local proj = t.getSlow(self, t) local anti = t.getAnti(self, t) return ([[Create a gravity field around you that converts %d%% all damage you deal into physical damage, slows incoming projectiles by %d%%, and protects you from all gravity damage and effects. - Additionally, damage dealt by Repulsion Blast has a %d%% chance to reduce the target's knockback resistance by half for two turns.]]):format(conv, proj, anti) + Additionally, damage dealt by Repulsion Blast has a %d%% chance to reduce the target's knockback resistance by half for two turns.]]):tformat(conv, proj, anti) end, } @@ -264,6 +264,6 @@ newTalent{ local radius = self:getTalentRadius(t) local slow = t.getSlow(self, t) return ([[Increases local gravity in a radius of %d for %d turns, dealing %0.2f physical (gravity) damage as well as decreasing the global speed of all affected targets by %d%%. - The damage done will scale with your Spellpower.]]):format(radius, duration, damDesc(self, DamageType.PHYSICAL, damage), slow*100) + The damage done will scale with your Spellpower.]]):tformat(radius, duration, damDesc(self, DamageType.PHYSICAL, damage), slow*100) end, } diff --git a/game/modules/tome/data/talents/chronomancy/guardian.lua b/game/modules/tome/data/talents/chronomancy/guardian.lua index 0515e06b87a5a6187525448c084c3fa09a78d3ab..38fc6c0e7cb10406317569b8dbdd3c13713e4539 100644 --- a/game/modules/tome/data/talents/chronomancy/guardian.lua +++ b/game/modules/tome/data/talents/chronomancy/guardian.lua @@ -33,7 +33,7 @@ newTalent{ return ([[Increases weapon damage by %d%% and physical power by 30 when using swords, axes, maces, knives, or bows. You now also use your Magic in place of Strength when equipping weapons and ammo as well as when calculating weapon damage. These bonuses override rather than stack with weapon mastery, dagger mastery, and bow mastery.]]): - format(100*inc) + tformat(100*inc) end, } @@ -54,7 +54,7 @@ newTalent{ -- If we already have a guardian, split the damage if self.unity_warden and game.level:hasEntity(self.unity_warden) then - game:delayedLogDamage(src, self.unity_warden, split, ("#STEEL_BLUE#(%d shared)#LAST#"):format(split), nil) + game:delayedLogDamage(src, self.unity_warden, split, ("#STEEL_BLUE#(%d shared)#LAST#"):tformat(split), nil) cb.value = cb.value - split self.unity_warden:takeHit(split, src) @@ -102,7 +102,7 @@ newTalent{ m:takeHit(split, src) m:setTarget(src or nil) game:delayedLogMessage(self, nil, "guardian_damage", "#STEEL_BLUE##Source# shares damage with %s guardian!", string.his_her(self)) - game:delayedLogDamage(src or self, self, 0, ("#STEEL_BLUE#(%d shared)#LAST#"):format(split), nil) + game:delayedLogDamage(src or self, self, 0, ("#STEEL_BLUE#(%d shared)#LAST#"):tformat(split), nil) else game.logPlayer(self, "Not enough space to summon warden!") @@ -118,7 +118,7 @@ newTalent{ local cooldown = self:getTalentCooldown(t) return ([[When a single hit deals more than %d%% of your maximum life another you appears and takes %d%% of the damage as well as %d%% of all damage you take for the next %d turns. The clone is out of phase with this reality and deals 50%% less damage but its arrows will pass through friendly targets. - This talent has a cooldown.]]):format(trigger, split * 2, split, duration) + This talent has a cooldown.]]):tformat(trigger, split * 2, split, duration) end, } @@ -151,7 +151,7 @@ newTalent{ local power = t.getPower(self, t) return ([[Improves your capacity to see invisible foes by +%d and to see through stealth by +%d. Additionally you have a %d%% chance to recover from a single negative status effect each turn. Sense abilities will scale with your Magic stat.]]): - format(sense, sense, power) + tformat(sense, sense, power) end, } @@ -206,6 +206,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Attack the target with either your ranged or melee weapons for %d%% weapon damage. For the next %d turns random targeting, such as from Blink Blade and Warden's Call, will focus on this target. Attacks against this target gain %d%% critical chance and critical strike power while you take %d%% less damage from all enemies whose rank is lower then that of your focus target.]]) - :format(damage, duration, power, power, power) + :tformat(damage, duration, power, power, power) end } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/induced-phenomena.lua b/game/modules/tome/data/talents/chronomancy/induced-phenomena.lua index 24edd536340b84cd2c96ee8442fdb48c3363ac2c..dd35dfdf71667780cc324b858ad142313783470a 100644 --- a/game/modules/tome/data/talents/chronomancy/induced-phenomena.lua +++ b/game/modules/tome/data/talents/chronomancy/induced-phenomena.lua @@ -143,7 +143,7 @@ newTalent{ local will = t.getWillMultiplier(self, t) * 100 return ([[Tune yourself into the ebb and flow of spacetime. When your Paradox crosses a 100 point threshold, your Cosmic Cycle gains or loses one radius. While Cosmic Cycle is expanding, your temporal resistance penetration will be increased by %d%%. While it's contracting, your Willpower for Paradox calculations will be increased by %d%%.]]): - format(paradox, will) + tformat(paradox, will) end, } @@ -178,7 +178,7 @@ newTalent{ local proj = require("mod.class.Projectile"):makeHoming( self, - {particle="arrow", particle_args={tile=("particles_images/alt_temporal_bolt_0%d"):format(rng.range(1, 7)), proj_x=tx, proj_y=ty, src_x=self.x, src_y=self.y}, trail="trail_paradox"}, + {particle="arrow", particle_args={tile=("particles_images/alt_temporal_bolt_0%d"):tformat(rng.range(1, 7)), proj_x=tx, proj_y=ty, src_x=self.x, src_y=self.y}, trail="trail_paradox"}, {speed=1, name="Polarity Bolt", dam=dam, movedam=dam}, target, self:getTalentRadius(t), @@ -224,7 +224,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Reverses the polarity of your Cosmic Cycle. If it's currently contracting, it will begin to expand, firing a homing missile at each target within the radius that deals %0.2f temporal damage. If it's currently expanding, it will begin to contract, braiding the lifelines of all targets within the radius for %d turns. Braided targets take %d%% of all damage dealt to other braided targets. - The damage will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage), duration, braid) + The damage will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), duration, braid) end, } @@ -273,7 +273,7 @@ newTalent{ local reduction = t.getReduction(self, t) return ([[When a creature enters your expanding Cosmic Cycle, you heal %d life at the start of your next turn. When a creature leaves your contracting Cosmic Cycle, you reduce the duration of one detrimental effect on you by %d at the start of your next turn. - The healing will scale with your Spellpower.]]):format(heal, reduction) + The healing will scale with your Spellpower.]]):tformat(heal, reduction) end, } @@ -334,6 +334,6 @@ newTalent{ local aging = t.getAgingChance(self, t) return ([[While your cosmic cycle is expanding, creatures in its radius have a %d%% chance to suffer the effects of aging; pinning, blinding, or confusing them for 3 turns. While your cosmic cycle is contracting, creatures in its radius suffer from age regression; reducing their three highest stats by %d. - The chance and stat reduction will scale with your Spellpower.]]):format(aging, regress) + The chance and stat reduction will scale with your Spellpower.]]):tformat(aging, regress) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/matter.lua b/game/modules/tome/data/talents/chronomancy/matter.lua index 091972aebc67dc3f281d97541c69b7b7ba20e795..64425bba474301b9d6a7b57bd2c6f629d8c86c95 100644 --- a/game/modules/tome/data/talents/chronomancy/matter.lua +++ b/game/modules/tome/data/talents/chronomancy/matter.lua @@ -107,7 +107,7 @@ newTalent{ return ([[Fires a beam that turns matter into dust, inflicting %0.2f temporal damage and %0.2f physical (warp) damage. Alternatively you may target yourself, creating a field of radius %d around you that will inflict the damage over three turns. The damage will scale with your Spellpower.]]): - format(damDesc(self, DamageType.TEMPORAL, damage / 2), damDesc(self, DamageType.PHYSICAL, damage / 2), radius) + tformat(damDesc(self, DamageType.TEMPORAL, damage / 2), damDesc(self, DamageType.PHYSICAL, damage / 2), radius) end, } @@ -150,7 +150,7 @@ newTalent{ local immune = t.getImmunity(self, t) * 100 return ([[Weave matter into your flesh, becoming incredibly resilient to damage. While active you gain %d armour, %d%% resistance to stunning, and %d%% resistance to cuts. The bonus to armour will scale with your Magic.]]): - format(armor, immune, immune) + tformat(armor, immune, immune) end, } @@ -255,7 +255,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Create a tightly bound matter wall of up to a length of %d that lasts %d turns. If any part of this wall is dug out it will explode, causing targets in a radius of %d to bleed for %0.2f physical damage over six turns.]]) - :format(length, duration, radius, damDesc(self, DamageType.PHYSICAL, damage)) + :tformat(length, duration, radius, damDesc(self, DamageType.PHYSICAL, damage)) end, } @@ -333,6 +333,6 @@ newTalent{ return ([[While active your physical and temporal damage has a %d%% chance to remove one beneficial physical or magical temporary effect (respectively) from targets you hit. Only one physical and one magical effect may be removed per turn from each target. Additionally your Dust to Dust spell now digs up to %d tiles into walls.]]): - format(chance, digs) + tformat(chance, digs) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/other.lua b/game/modules/tome/data/talents/chronomancy/other.lua index bac28db29ac81b9c431ffc02b14eb71c79eb0782..c2046bb228cec856e7ea1d7739356937b617dda9 100644 --- a/game/modules/tome/data/talents/chronomancy/other.lua +++ b/game/modules/tome/data/talents/chronomancy/other.lua @@ -127,7 +127,7 @@ newTalent{ Willpower Paradox Modifier : -%d Paradox Sustain Modifier : +%d Total Modifed Paradox : %d - Current Anomaly Chance : %d%%]]):format(tune, preference, sp_modifier, spellpower, will_modifier, sustain_modifier, after_will, anomaly) + Current Anomaly Chance : %d%%]]):tformat(tune, preference, sp_modifier, spellpower, will_modifier, sustain_modifier, after_will, anomaly) end, } @@ -174,7 +174,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Creates a time distortion in a radius of %d that lasts for %d turns, decreasing global speed by %d%% for 3 turns and inflicting %0.2f temporal damage each turn to all targets within the area. The slow effect and damage dealt will scale with your Spellpower.]]): - format(radius, duration, 100 * slow, damDesc(self, DamageType.TEMPORAL, damage)) + tformat(radius, duration, 100 * slow, damDesc(self, DamageType.TEMPORAL, damage)) end, } @@ -197,7 +197,7 @@ newTalent{ local cooldown = t.cdred(self, t, 10) local wormhole = t.cdred(self, t, 20) return ([[Your mastery of spacetime reduces the cooldown of Banish, Dimensional Step, Swap, and Temporal Wake by %d, and the cooldown of Wormhole by %d. Also improves your Spellpower for purposes of hitting targets with chronomancy effects that may cause continuum destabilization (Banish, Time Skip, etc.), as well as your chance of overcoming continuum destabilization, by %d%%.]]): - format(cooldown, wormhole, t.getPower(self, t)*100) + tformat(cooldown, wormhole, t.getPower(self, t)*100) end, } @@ -229,7 +229,7 @@ newTalent{ info = function(self, t) local power = t.getPower(self, t) return ([[You've learned to boost your magic through your control over the spacetime continuum. Increases your Magic and your Spell Save by %d. - The effect will scale with your Willpower.]]):format(power) + The effect will scale with your Willpower.]]):tformat(power) end } @@ -263,7 +263,7 @@ newTalent{ return ([[You pull your awareness fully into the moment, increasing your stealth detection, see invisibility, defense, and accuracy by %d for %d turns. If you have Spin Fate active when you cast this spell, you'll gain a bonus to these values equal to 50%% of your spin. This spell takes no time to cast.]]): - format(power, duration) + tformat(power, duration) end, } @@ -287,7 +287,7 @@ newTalent{ return ([[You begin to gather energy from other timelines. Your Spellpower will increase by %0.2f on the first turn and %0.2f more each additional turn. The effect ends either when you cast a spell, or after five turns. Eacn turn the effect is active, your Paradox will be reduced by %d. - This spell will not break Spacetime Tuning, nor will it be broken by activating Spacetime Tuning.]]):format(primary + (primary/5), primary/5, reduction) + This spell will not break Spacetime Tuning, nor will it be broken by activating Spacetime Tuning.]]):tformat(primary + (primary/5), primary/5, reduction) end, } @@ -317,7 +317,7 @@ newTalent{ info = function(self, t) local power = t.getPower(self, t) return ([[You encase yourself in a field that slows incoming projectiles by %d%%, and increases your physical resistance by %d%%. - The effect will scale with your Spellpower.]]):format(power, power / 2) + The effect will scale with your Spellpower.]]):tformat(power, power / 2) end, } @@ -343,7 +343,7 @@ newTalent{ This increases your resistance to all damage by %d%%, reduces the duration of all detrimental effects on you by %d%%, and reduces all damage you deal by 20%%. The resistance bonus, effect reduction, and damage penalty will gradually lose power over the duration of the spell. The effects scale with your Spellpower.]]): - format(resist, dur) + tformat(resist, dur) end, } @@ -379,7 +379,7 @@ newTalent{ local m = makeParadoxClone(self, self, t.getDuration(self, t)) -- Change some values m.name = self.name.."'s Paradox Clone" - m.desc = ([[The real %s... or so %s says.]]):format(self.name, self:he_she()) + m.desc = ([[The real %s... or so %s says.]]):tformat(self.name, self:he_she()) m.life = util.bound(m.life, m.die_at, m.max_life) m.forceLevelup = function() end m.summoner = self @@ -424,7 +424,7 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) return ([[You summon your future self to fight alongside you for %d turns. At some point in the future, you'll be pulled into the past to fight alongside your past self after the initial effect ends. - This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful.]]):format(duration) + This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful.]]):tformat(duration) end, } @@ -473,7 +473,7 @@ newTalent{ info = function(self, t) local displace = t.getDisplaceDamage(self, t) * 100 return ([[You bend space around you, displacing %d%% of any damage you receive onto a random enemy within range. - ]]):format(displace) + ]]):tformat(displace) end, } @@ -517,7 +517,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[You surround yourself with a radius %d distortion of gravity, knocking back and dealing %0.2f physical damage to all creatures inside it. The effect lasts %d turns. Deals 50%% extra damage to pinned targets, in addition to the knockback. The blast wave may hit targets more then once, depending on the radius and the knockback effect. - The damage will scale with your Spellpower.]]):format(radius, damDesc(self, DamageType.PHYSICAL, damage), duration) + The damage will scale with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.PHYSICAL, damage), duration) end, } @@ -595,7 +595,7 @@ newTalent{ return ([[Clones the target creature for up to %d turns. The duration of the effect will be divided by half the target's rank, and the target will have have %d%% of its normal life and deal %d%% less damage. If you clone a hostile creature the clone will target the creature it was cloned from. The life and damage penalties will be lessened by your Spellpower.]]): - format(duration, 100 - damage_penalty, damage_penalty) + tformat(duration, 100 - damage_penalty, damage_penalty) end, } @@ -613,7 +613,7 @@ newTalent{ if dam > 0 and type ~= DamageType.TEMPORAL then local smear = dam * t.getPercent(self, t) self:setEffect(self.EFF_DAMAGE_SMEARING, t.getDuration(self, t), {dam=smear/t.getDuration(self, t), no_ct_effect=true}) - game:delayedLogDamage(src, self, 0, ("%s(%d smeared)#LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", smear), false) + game:delayedLogDamage(src, self, 0, ("%s(%d smeared)#LAST#"):tformat(DamageType:get(type).text_color or "#aaaaaa#", smear), false) dam = dam - smear end @@ -630,7 +630,7 @@ newTalent{ local percent = t.getPercent(self, t) * 100 local duration = t.getDuration(self, t) return ([[You convert %d%% of all non-temporal damage you receive into temporal damage spread out over %d turns. - This damage will bypass resistance and affinity.]]):format(percent, duration) + This damage will bypass resistance and affinity.]]):tformat(percent, duration) end, } @@ -651,7 +651,7 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) return ([[Phase shift yourself for %d turns; any damage greater than 10%% of your maximum life will teleport you to an adjacent tile and be reduced by 50%% (can only happen once per turn).]]): - format(duration) + tformat(duration) end, } @@ -716,7 +716,7 @@ newTalent{ local duration = t.getConfuseDuration(self, t) local power = t.getConfuseEfficency(self, t) return ([[You manipulate the spacetime continuum in such a way that you switch places with another creature with in a range of %d. The targeted creature will be confused (power %d%%) for %d turns. - The spell's hit chance will increase with your Spellpower.]]):format (range, power, duration) + The spell's hit chance will increase with your Spellpower.]]):tformat (range, power, duration) end, } @@ -785,7 +785,7 @@ newTalent{ return ([[Violently fold the space between yourself and another point within range. You teleport to the target location, and leave a temporal wake behind that stuns for %d turns and deals %0.2f temporal and %0.2f physical warp damage to targets in the path. The damage will scale with your Spellpower.]]): - format(stun, damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2)) + tformat(stun, damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2)) end, } @@ -835,7 +835,7 @@ newTalent{ return ([[Fragile spikes of carbon protrude from your flesh, clothing, and armor, increasing your armor rating by %d and inflicting %0.2f bleed damage over six turns on attackers. Each time you're struck, the armor increase will be reduced by 1. Each turn the spell will regenerate 1 armor up to its starting value. If the armor increase from the spell ever falls below 1, the sustain will deactivate and the effect will end. The armor and bleed damage will increase with your Spellpower.]]): - format(armor, damDesc(self, DamageType.PHYSICAL, damage)) + tformat(armor, damDesc(self, DamageType.PHYSICAL, damage)) end, } @@ -870,7 +870,7 @@ newTalent{ return ([[Destabilizes the target, inflicting %0.2f temporal damage per turn for 10 turns. If the target dies while destabilized, it will explode, doing %0.2f temporal damage and %0.2f physical damage in a radius of 4. If the target dies while also under the effects of continuum destabilization, all explosion damage will be done as temporal damage. The damage will scale with your Spellpower.]]): - format(damDesc(self, DamageType.TEMPORAL, damage), damDesc(self, DamageType.TEMPORAL, explosion/2), damDesc(self, DamageType.PHYSICAL, explosion/2)) + tformat(damDesc(self, DamageType.TEMPORAL, damage), damDesc(self, DamageType.TEMPORAL, explosion/2), damDesc(self, DamageType.PHYSICAL, explosion/2)) end, } @@ -930,6 +930,6 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Attempts to pull the target apart at a molecular level, inflicting %0.2f temporal damage and %0.2f physical damage. If the target ends up with low enough life (<20%%), it might be instantly killed. Quantum Spike deals 50%% additional damage to targets affected by temporal destabilization and/or continuum destabilization. - The damage will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2)) + The damage will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2)) end, } diff --git a/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua b/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua index 419d2d861fcddaccd4544f6ddc8b5e517312b5f5..0713effdf0cf40a46a005a980f87316e4a3f955c 100644 --- a/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua +++ b/game/modules/tome/data/talents/chronomancy/spacetime-folding.lua @@ -31,9 +31,9 @@ makeWarpMine = function(self, t, x, y, type, dam) -- Our Mines local mine = Trap.new{ - name = ("warp mine: %s"):format(type), + name = ("warp mine: %s"):tformat(type), type = "temporal", id_by_type=true, unided_name = "trap", - display = '^', color=colors.BLUE, image = ("trap/chronomine_%s_0%d.png"):format(type == "toward" and "blue" or "red", rng.avg(1, 4, 3)), + display = '^', color=colors.BLUE, image = ("trap/chronomine_%s_0%d.png"):tformat(type == "toward" and "blue" or "red", rng.avg(1, 4, 3)), shader = "shadow_simulacrum", shader_args = { color = {0.2, 0.2, 0.2}, base = 0.8, time_factor = 1500 }, temporary = duration, x = x, y = y, type = type, @@ -151,7 +151,7 @@ newTalent{ return ([[Lay Warp Mines in a radius of 1 that teleport enemies to you and inflict %0.2f physical and %0.2f temporal (warp) damage. The mines are hidden traps (%d detection and %d disarm power based on your Magic) and last for %d turns. The damage caused by your Warp Mines will improve with your Spellpower.]]): - format(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration) + tformat(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration) end, } @@ -201,7 +201,7 @@ newTalent{ return ([[Lay Warp Mines in a radius of 1 that teleport enemies away from you and inflict %0.2f physical and %0.2f temporal (warp) damage. The mines are hidden traps (%d detection and %d disarm power based on your Magic) and last for %d turns. The damage caused by your Warp Mines will improve with your Spellpower.]]): - format(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration) + tformat(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration) end, } @@ -240,7 +240,7 @@ newTalent{ Investing in this talent improves the range of all Spacetime Folding talents and the damage caused by your Warp Mines will improve with your Spellpower. Current Spacetime Folding Range: %d]]): - format(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration, range) --I5 + tformat(damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), detect, disarm, duration, range) --I5 end, } @@ -389,7 +389,7 @@ newTalent{ return ([[Tether the target to the location for %d turns. Each turn the target has a %d%% chance per tile it's travelled away from the tether to be teleported back, inflicting %0.2f physical and %0.2f temporal (warp) damage to all enemies in a radius of %d at both the entrance and exit locations. The damage will scale with your Spellpower.]]) - :format(duration, chance, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), radius) + :tformat(duration, chance, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage), radius) end, } @@ -444,7 +444,7 @@ newTalent{ local range = t.getTeleport(self, t) local duration = t.getDuration(self, t) return ([[Randomly teleports all enemies within a radius of three. Enemies will be teleported between %d and %d tiles from you and may be stunned, blinded, confused, or pinned for %d turns. - The chance of teleportion will scale with your Spellpower.]]):format(range / 2, range, duration) + The chance of teleportion will scale with your Spellpower.]]):tformat(range / 2, range, duration) end, } @@ -502,6 +502,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Create a radius three anti-teleport field for %d turns and daze all enemies in the area of effect for two turns. Enemies attempting to teleport while anchored take %0.2f physical and %0.2f temporal (warp) damage. - The damage will scale with your Spellpower.]]):format(duration, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage)) + The damage will scale with your Spellpower.]]):tformat(duration, damDesc(self, DamageType.PHYSICAL, damage), damDesc(self, DamageType.TEMPORAL, damage)) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua b/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua index 4f9e96c87f84b5573918f2dfbcf2bccf05bb56ba..c76e647fc7a2a33c42787a284e369cb1f755b7a0 100644 --- a/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua +++ b/game/modules/tome/data/talents/chronomancy/spacetime-weaving.lua @@ -86,7 +86,7 @@ newTalent{ info = function(self, t) local range = self:getTalentRange(t) return ([[Teleports you to up to %d tiles away, to a targeted location in line of sight. - At talent level 5 you may swap positions with a target creature.]]):format(range) + At talent level 5 you may swap positions with a target creature.]]):tformat(range) end, } @@ -122,7 +122,7 @@ newTalent{ info = function(self, t) local reduction = t.getReduction(self, t) return ([[When you teleport you reduce the duration of a single detrimental effect by %d turns.]]): - format(reduction) + tformat(reduction) end, } @@ -237,7 +237,7 @@ newTalent{ return ([[You fold the space between yourself and a second point within a range of %d, creating a pair of wormholes. Any creature stepping on either wormhole will be teleported near the other (radius %d accuracy). The wormholes will last %d turns and must be placed at least two tiles apart. The chance of teleporting enemies will scale with your Spellpower.]]) - :format(range, radius, duration) + :tformat(range, radius, duration) end, } @@ -294,6 +294,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[When you teleport you fire a pulse that jolts enemies out of phase in a radius of %d around both the start and the destination point. Each target has a %d%% chance per tile you travelled to be stunned, blinded, confused, or pinned for %d turns.]]): - format(radius, chance, duration) + tformat(radius, chance, duration) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/speed-control.lua b/game/modules/tome/data/talents/chronomancy/speed-control.lua index e39bfb983af571b77cececad404de2a7a1a23165..c1c3f09ac6ddb9efd6b133008e435619a4d6825f 100644 --- a/game/modules/tome/data/talents/chronomancy/speed-control.lua +++ b/game/modules/tome/data/talents/chronomancy/speed-control.lua @@ -36,7 +36,7 @@ newTalent{ info = function(self, t) local speed = t.getSpeed(self, t) * 100 local duration = t.getDuration(self, t) - return ([[When you move you gain %d%% movement speed for %d turns. This effect stacks up to three times but can only occur once per turn.]]):format(speed, duration) + return ([[When you move you gain %d%% movement speed for %d turns. This effect stacks up to three times but can only occur once per turn.]]):tformat(speed, duration) end, } @@ -60,7 +60,7 @@ newTalent{ local speed = t.getSpeed(self, t) * 100 local duration = t.getDuration(self, t) return ([[When you use a non-instant chronomancy spell you gain %d%% attack, spell, and mind speed for %d turns. This effect stacks up to three times but can only occur once per turn. - ]]):format(speed, duration) + ]]):tformat(speed, duration) end, } @@ -84,7 +84,7 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) local speed = t.getSpeed(self, t) * 100 - return ([[Increases your global speed by %d%% for %d game turns.]]):format(speed, duration) + return ([[Increases your global speed by %d%% for %d game turns.]]):tformat(speed, duration) end, } @@ -113,6 +113,6 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) local reduction = t.getReduction(self, t) - return ([[Gain %d turns. During this time your damage will be reduced by %d%%.]]):format(duration, reduction) + return ([[Gain %d turns. During this time your damage will be reduced by %d%%.]]):tformat(duration, reduction) end, } diff --git a/game/modules/tome/data/talents/chronomancy/spellbinding.lua b/game/modules/tome/data/talents/chronomancy/spellbinding.lua index 02dd2524c7d3ee2a3fbb2086c34b67b6e4178b87..e8bad867557a6402ded3693c795ebbc19d15599d 100644 --- a/game/modules/tome/data/talents/chronomancy/spellbinding.lua +++ b/game/modules/tome/data/talents/chronomancy/spellbinding.lua @@ -52,7 +52,7 @@ newTalent{ Each spell can only be spellbound in one way at a time. Current Empowered Spell: %s]]): - format(power, talent) + tformat(power, talent) end, } @@ -89,7 +89,7 @@ newTalent{ Each spell can only be spellbound in one way at a time. Current Extended Spell: %s]]): - format(power, talent) + tformat(power, talent) end, } @@ -126,7 +126,7 @@ newTalent{ Each spell can only be spellbound in one way at a time. Current Matrix Spell: %s]]): - format(power, talent) + tformat(power, talent) end, } @@ -163,6 +163,6 @@ newTalent{ Each spell can only be spellbound in one way at a time. Current Quickened Spell: %s]]): - format(power, talent) + tformat(power, talent) end, } diff --git a/game/modules/tome/data/talents/chronomancy/stasis.lua b/game/modules/tome/data/talents/chronomancy/stasis.lua index 8efc5b46a7178821f613a972d65160b8fa478bb0..e898c62f6e1bbc576d635363aba985c06b0b0cc8 100644 --- a/game/modules/tome/data/talents/chronomancy/stasis.lua +++ b/game/modules/tome/data/talents/chronomancy/stasis.lua @@ -35,7 +35,7 @@ newTalent{ local tune = t.getTuning(self, t) return ([[You automatically adjust your Paradox %0.2f points towards your preferred Paradox each turn. While using Spacetime Tuning twice this value will instead be added to the amount you would normally tune.]]): - format(tune) + tformat(tune) end, } @@ -65,7 +65,7 @@ newTalent{ Each turn the restoration field is active, you get healed for 10%% of the absorbed damage. While under the effect of Time Shield, all newly applied magical, physical and mental effects will have their durations reduced by %d%%. The shield's max absorption will increase with your Spellpower.]]): - format(maxabsorb, duration, time_reduc) + tformat(maxabsorb, duration, time_reduc) end, } @@ -115,7 +115,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Inflicts %0.2f temporal damage, and attempts to stun all targets in a radius %d ball for %d turns. The damage will scale with your Spellpower.]]): - format(damDesc(self, DamageType.TEMPORAL, damage), radius, duration) + tformat(damDesc(self, DamageType.TEMPORAL, damage), radius, duration) end, } @@ -138,6 +138,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[For the next %d turns you may not create minor anomalies. You do not regain Paradox or lose the spell you're casting if a random anomaly would normally occur. This spell has no effect on major anomalies.]]): - format(duration) + tformat(duration) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/temporal-archery.lua b/game/modules/tome/data/talents/chronomancy/temporal-archery.lua index dc297849bca827617e07e6e760ad6b21be9cea08..47a1759d8948ff6cda4478639bf69535cd46b7e1 100644 --- a/game/modules/tome/data/talents/chronomancy/temporal-archery.lua +++ b/game/modules/tome/data/talents/chronomancy/temporal-archery.lua @@ -39,7 +39,7 @@ newTalent{ info = function(self, t) local weapon = 100 * self:combatTalentWeaponDamage(t, 1.1, 1.9) return ([[You fire a shot that phases out of time and space allowing it to virtually ignore armor. The shot will deal %d%% weapon damage as temporal damage to its target.]]): - format(damDesc(self, DamageType.TEMPORAL, weapon)) + tformat(damDesc(self, DamageType.TEMPORAL, weapon)) end } @@ -66,7 +66,7 @@ newTalent{ info = function(self, t) local weapon = 100 * self:combatTalentWeaponDamage(t, 1.1, 1.9) return ([[You focus your aim and fire a shot with great accuracy, inflicting %d%% weapon damage. Afterwords your attack will remain improved for one turn as the chronomantic effects linger.]]) - :format(weapon) + :tformat(weapon) end, } @@ -98,7 +98,7 @@ newTalent{ info = function(self, t) local power = t.getPower(self, t) return ([[You focus your aim, increasing your critical damage multiplier by %d%% and your physical and spell critical strike chance by %d%% - The effect will scale with your Spellpower.]]):format(power, power / 2) + The effect will scale with your Spellpower.]]):tformat(power, power / 2) end, } @@ -125,6 +125,6 @@ newTalent{ info = function(self, t) local weapon = 100 * self:combatTalentWeaponDamage(t, 1, 1.5) return ([[You pause time around you long enough to fire a single shot, doing %d%% damage. - The damage will scale with your Paradox and the cooldown will go down with more talent points invested.]]):format(weapon) + The damage will scale with your Paradox and the cooldown will go down with more talent points invested.]]):tformat(weapon) end, } diff --git a/game/modules/tome/data/talents/chronomancy/temporal-combat.lua b/game/modules/tome/data/talents/chronomancy/temporal-combat.lua index f93cd756b78e3776428f3c24862907a2986a0785..67a1e0bb5022c14526e3f0cbe72fea5c0d4c3e45 100644 --- a/game/modules/tome/data/talents/chronomancy/temporal-combat.lua +++ b/game/modules/tome/data/talents/chronomancy/temporal-combat.lua @@ -81,7 +81,7 @@ newTalent{ return ([[When you hit with Weapon Folding you have a %d%% chance of dealing an additional %0.2f temporal damage to enemies in a radius of %d. Affected targets may also have their physical and temporal resistance reduced by %d%% for %d turns. This effect has a cooldown. If it triggers while on cooldown it will reduce the cooldown of Fold Gravity and Fold Warp by one turn.]]) - :format(chance, damDesc(self, DamageType.TEMPORAL, damage), radius, resists, duration) + :tformat(chance, damDesc(self, DamageType.TEMPORAL, damage), radius, resists, duration) end, } @@ -127,7 +127,7 @@ newTalent{ return ([[When you hit with Weapon Folding you have a %d%% chance of dealing an additional %0.2f physical and %0.2f temporal (warp) damage to enemies in a radius of %d. Each target hit may be stunned, blinded, pinned, or confused for %d turns. This effect has a cooldown. If it triggers while on cooldown it will reduce the cooldown of Fold Gravity and Fold Fate by one turn.]]) - :format(chance, damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2), radius, duration) + :tformat(chance, damDesc(self, DamageType.TEMPORAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2), radius, duration) end, } @@ -175,7 +175,7 @@ newTalent{ return ([[When you hit with Weapon Folding you have a %d%% chance of dealing an additional %0.2f physical (gravity) damage to enemies in a radius of %d. Affected targets may also be slowed, decreasing their global speed speed by %d%% for %d turns This effect has a cooldown. If it triggers while on cooldown it will reduce the cooldown of Fold Fate and Fold Warp by one turn.]]) - :format(chance, damDesc(self, DamageType.PHYSICAL, damage), radius, slow, duration) + :tformat(chance, damDesc(self, DamageType.PHYSICAL, damage), radius, slow, duration) end, } @@ -216,7 +216,7 @@ newTalent{ local chance = t.getChance(self, t) return ([[Folds a single dimension of your weapons (or ammo) upon itself, adding %0.2f temporal damage to your strikes. Additionally you have a %d%% chance to gain 10%% of a turn when your weapons hit. - The damage will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage), chance) + The damage will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), chance) end, } @@ -241,7 +241,7 @@ newTalent{ local power = t.getPower(self, t) local duration = t.getDuration(self, t) return ([[For the next %d turns, you recover %0.1f life and talents without fixed cooldowns will have their cooldowns refresh twice as fast as usual. - The life regeneration will scale with your Spellpower.]]):format(duration, power) + The life regeneration will scale with your Spellpower.]]):tformat(duration, power) end, } @@ -288,7 +288,7 @@ newTalent{ Fold Gravity: Deals %0.2f physical damage to enemies in a radius of %d. Affected targets will be slowed (%d%%) for %d turns. Each Fold has an eight turn cooldown. If an effect would be triggered while on cooldown it will reduce the cooldown of the other two Folds by one turn.]]) - :format(chance, damDesc(self, DamageType.TEMPORAL, damage), radius, resists, duration, damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.TEMPORAL, damage/2), radius, + :tformat(chance, damDesc(self, DamageType.TEMPORAL, damage), radius, resists, duration, damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.TEMPORAL, damage/2), radius, duration, damDesc(self, DamageType.PHYSICAL, damage), radius, slow, duration) end, } @@ -343,6 +343,6 @@ newTalent{ return ([[Attack the target with either your ranged or melee weapons for %d%% damage. If the attack hits you'll breach the target's immunities, reducing armor hardiness, stun, pin, blindness, and confusion immunity by 50%% for %d turns. Breach chance scales with your Spellpower.]]) - :format(damage, duration) + :tformat(damage, duration) end } \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/temporal-hounds.lua b/game/modules/tome/data/talents/chronomancy/temporal-hounds.lua index 66cf06d5c28a2915eb1432b55e997de9321ed2cc..6b6b3c799d0dc839ad48a4bdf7ce970fe6c983f0 100644 --- a/game/modules/tome/data/talents/chronomancy/temporal-hounds.lua +++ b/game/modules/tome/data/talents/chronomancy/temporal-hounds.lua @@ -31,7 +31,7 @@ summonTemporalHound = function(self, t) local m = require("mod.class.NPC").new{ type = "animal", subtype = "canine", - display = "C", color=colors.LIGHT_DARK, image = ("npc/temp_hound_0%d.png"):format(rng.range(1, 12)), + display = "C", color=colors.LIGHT_DARK, image = ("npc/temp_hound_0%d.png"):tformat(rng.range(1, 12)), shader = "shadow_simulacrum", shader_args = { color = {0.4, 0.4, 0.1}, base = 0.8, time_factor = 1500 }, name = "temporal hound", faction = self.faction, desc = [[A trained hound that appears to be all at once a little puppy and a toothless old dog.]], @@ -235,7 +235,7 @@ newTalent{ return ([[Upon activation summon a Temporal Hound. Every %d turns another hound will be summoned, up to a maximum of three hounds. If a hound dies you'll summon a new hound in %d turns. Your hounds inherit your increased damage percent, have %d%% physical resistance and %d%% temporal resistance, and are immune to teleportation effects. Hounds will get, %d Strength, %d Dexterity, %d Constitution, %d Magic, %d Willpower, and %d Cunning, based on your Magic stat.]]) - :format(cooldown, cooldown, resists/2, math.min(100, resists*2), incStats.str + 1, incStats.dex + 1, incStats.con + 1, incStats.mag + 1, incStats.wil +1, incStats.cun + 1) + :tformat(cooldown, cooldown, resists/2, math.min(100, resists*2), incStats.str + 1, incStats.dex + 1, incStats.con + 1, incStats.mag + 1, incStats.wil +1, incStats.cun + 1) end } @@ -329,7 +329,7 @@ newTalent{ return ([[Command your Temporal Hounds to teleport to the targeted location. If you target an enemy your hounds will set that enemy as their target. When you learn this talent, your hounds gain %d defense and %d%% resist all after any teleport. At talent level five, if you're not at your maximum number of hounds when you cast this spell a new one will be summoned. - The teleportation bonuses scale with your Spellpower.]]):format(defense, defense, defense/2, defense/2) + The teleportation bonuses scale with your Spellpower.]]):tformat(defense, defense, defense/2, defense/2) end, } @@ -368,7 +368,7 @@ newTalent{ return ([[Your hounds can now survive for up to %d turns after their hit points are reduced below 1. While in this state they deal 50%% less damage but are immune to additional damage. Command Blink will now regenerate your hounds for %d life per turn and increase their global speed by %d%% for five turns. Hounds below 1 life when this effect occurs will have the bonuses doubled. When you learn this talent, your hounds gain %d%% stun, blind, confusion, and pin resistance. - The regeneration scales with your Spellpower.]]):format(duration, regen, haste, immunities) + The regeneration scales with your Spellpower.]]):tformat(duration, regen, haste, immunities) end } @@ -458,6 +458,6 @@ newTalent{ local affinity = t.getResists(self, t) return ([[Command your Temporal Hounds to breathe time, dealing %0.2f temporal damage and reducing the three highest stats of all targets in a radius %d cone. Affected targets will have their stats reduced by %d for %d turns. You are immune to the breath of your own hounds and your hounds are immune to stat damage from other hounds. - When you learn this talent, your hounds gain %d%% temporal damage affinity.]]):format(damDesc(self, DamageType.TEMPORAL, damage), radius, stat_damage, duration, affinity) + When you learn this talent, your hounds gain %d%% temporal damage affinity.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), radius, stat_damage, duration, affinity) end, } diff --git a/game/modules/tome/data/talents/chronomancy/threaded-combat.lua b/game/modules/tome/data/talents/chronomancy/threaded-combat.lua index e83ff774a82911b7f414705f264c591ef5d47e15..2fd104e8da16a53aac494bbd9a2eacb3421ce3fc 100644 --- a/game/modules/tome/data/talents/chronomancy/threaded-combat.lua +++ b/game/modules/tome/data/talents/chronomancy/threaded-combat.lua @@ -143,7 +143,7 @@ newTalent{ return ([[Attack with your bow or dual-weapons for %d%% damage. If you shoot an arrow you'll teleport near the target location. If you use your dual-weapons you'll teleport up to your bow's range away. Additionally you now go Out of Phase for five turns after any teleport, gaining %d defense and %d%% resist all. The Out of Phase bonuses will scale with your Magic stat.]]) - :format(damage, defense, resist) + :tformat(damage, defense, resist) end } @@ -201,7 +201,7 @@ newTalent{ return ([[Each time you hit with an arrow you reduce the cooldown of one Blade Threading talent on cooldown by one turn. Each time you hit with a melee weapon you reduce the cooldown of one Bow Threading talent on cooldown by one turn. This effect can only occur %d times per turn.]]) - :format(count) + :tformat(count) end } @@ -258,7 +258,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) * 100 return ([[Attack with your bow or dual-weapons for %d%% damage. If you use your bow you'll shoot all targets in a beam. If you use your dual-weapons you'll attack all targets within a radius of one around you.]]) - :format(damage) + :tformat(damage) end } @@ -427,6 +427,6 @@ newTalent{ The summoned warden will attempt a melee attack if you made an arrow attack, or an arrow attack if you made a melee attack. These wardens are out of phase with your reality and deal %d%% less damage, and their arrows will pass through friendly targets. A warden can only be summoned this way once per turn and they return to their own timeline after attacking.]]) - :format(t.getChance(self, t), t.getDamagePenalty(self, t)) + :tformat(t.getChance(self, t), t.getDamagePenalty(self, t)) end } diff --git a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua index 43dfdaf9b40c15ca055d43b0d55c380f62a3493e..7b71c5e94c4b4e4117bc8bf8816cfb1048be36a5 100644 --- a/game/modules/tome/data/talents/chronomancy/timeline-threading.lua +++ b/game/modules/tome/data/talents/chronomancy/timeline-threading.lua @@ -113,7 +113,7 @@ newTalent{ return ([[Rethread the timeline, dealing %0.2f temporal damage to the target before moving on to a second target. Rethread can hit up to %d targets up to 10 grids apart, and will never hit the same one twice; nor will it hit the caster. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.TEMPORAL, damage), targets) + tformat(damDesc(self, DamageType.TEMPORAL, damage), targets) end, } @@ -136,7 +136,7 @@ newTalent{ local m = makeParadoxClone(self, self, t.getDuration(self, t)) -- Add and change some values m.name = self.name.."'s Fugue Clone" - m.desc = ([[The real %s... or so %s says.]]):format(self.name, self:he_she()) + m.desc = ([[The real %s... or so %s says.]]):tformat(self.name, self:he_she()) -- Handle some AI stuff m.ai_state = { talent_in=1, ally_compassion=10 } @@ -190,7 +190,7 @@ newTalent{ return ([[For the next %d turns two alternate versions of you enter your timeline. While the effect is active all damage done by you or your copies is reduced by two thirds and all damage received is split between the three of you. Temporal Fugue does not normally cooldown while active. You may take direct control of your clones, give them orders, and set their talent usage. Damage you deal to Fugue Clones or that they deal to you or each other is reduced to zero.]]): - format(duration) + tformat(duration) end, } @@ -207,7 +207,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Your Rethread now braids the lifelines of all targets it hits for %d turns. Braided targets take %d%% of all damage dealt to other braided targets. The amount of damage shared will scale with your Spellpower.]]) - :format(duration, braid) + :tformat(duration, braid) end } @@ -296,7 +296,7 @@ newTalent{ If you manage to kill the target while the spell is in effect, you'll be returned to the point in time you cast this spell and the target will be slain. This spell splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful. The resistance penalty will scale with your Spellpower.]]) - :format(duration, power) + :tformat(duration, power) end, } @@ -460,6 +460,6 @@ newTalent{ Each clone that dies will increase your Paradox by 33%% of the difference between its Paradox and your own. This will never reduce your Paradox. When only one clone is left, or if you cast the spell while in the fugue state, the spell will end, returning you to the position of the last active clone. The life and damage penalties will be reduced by your Spellpower.]]): - format(100 - damage_penalty, damage_penalty, duration) + tformat(100 - damage_penalty, damage_penalty, duration) end, }]=]-- \ No newline at end of file diff --git a/game/modules/tome/data/talents/chronomancy/timetravel.lua b/game/modules/tome/data/talents/chronomancy/timetravel.lua index f2b2f40f088b360c8dc470c18072c47921a3c75c..1027cc24d7e6c5ef8a3e88ab5af88d0937255fc9 100644 --- a/game/modules/tome/data/talents/chronomancy/timetravel.lua +++ b/game/modules/tome/data/talents/chronomancy/timetravel.lua @@ -112,7 +112,7 @@ newTalent{ return ([[Pull a bolt of temporal energy back through time. The bolt will home in on your location, dealing %0.2f temporal damage to targets, and reducing the cooldown of one chronomancy talent on cooldown by one turn per enemy hit. The bolt gains 5%% damage each time it moves and the damage will scale with your Spellpower. At talent level five cooldowns are reduced by two.]]): - format(damDesc(self, DamageType.TEMPORAL, damage)) + tformat(damDesc(self, DamageType.TEMPORAL, damage)) end, } @@ -216,7 +216,7 @@ newTalent{ local damage = t.getDamage(self, t) local duration = t.getDuration(self, t) return ([[Inflicts %0.2f temporal damage. If your target survives, it may be removed from time for %d turns. - The damage will scale with your Spellpower.]]):format(damDesc(self, DamageType.TEMPORAL, damage), duration) + The damage will scale with your Spellpower.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), duration) end, } @@ -302,7 +302,7 @@ newTalent{ info = function(self, t) local duration = t.getDuration(self, t) return ([[Transport yourself to a safe place for %d turns.]]): - format(duration) + tformat(duration) end, } @@ -348,6 +348,6 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Creates a temporal echo in a radius of %d around you. Affected targets take %0.2f temporal damage, as well as up to %d%% of the difference between their current life and max life as additional temporal damage. The additional damage will be divided by the target's rank and the damage scales with your Spellpower.]]): - format(radius, damDesc(self, DamageType.TEMPORAL, damage), percent) + tformat(radius, damDesc(self, DamageType.TEMPORAL, damage), percent) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/corruptions/blight.lua b/game/modules/tome/data/talents/corruptions/blight.lua index 9b5761af6a9ee3c2d43f9e5607a7c6f436ed930b..f7acef2e61946a596bb58f3f629f0cffca6b56b4 100644 --- a/game/modules/tome/data/talents/corruptions/blight.lua +++ b/game/modules/tome/data/talents/corruptions/blight.lua @@ -43,7 +43,7 @@ newTalent{ info = function(self, t) return ([[Increases your spell critical damage multiplier by %d%%. The multiplier will increase with your Spellpower.]]): - format(self:combatTalentSpellDamage(t, 20, 50)) + tformat(self:combatTalentSpellDamage(t, 20, 50)) end, } @@ -113,7 +113,7 @@ newTalent{ info = function(self, t) return ([[Project a corrupted blast of power that deals %0.2f blight damage and removes up to %d magical or physical effects or any type of sustain from any creatures caught in the radius 3 ball. For each effect, the creature has a chance to resist based on its spell save. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 28, 120)), t.getRemoveCount(self, t)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 28, 120)), t.getRemoveCount(self, t)) end, } @@ -146,7 +146,7 @@ newTalent{ return ([[Infects the target with a corrosive worm for 6 turns that reduces blight and acid resistance by %d%% and feeds off damage taken. When this effect ends or the target dies the worm will explode, dealing %d acid damage in a 4 radius ball. This damage will increase by %d%% of all damage taken while infected. The damage dealt by the effect will increase with spellpower.]]): - format(t.getResist(self,t), t.getDamage(self, t), t.getPercent(self, t)) + tformat(t.getResist(self,t), t.getDamage(self, t), t.getPercent(self, t)) end, } @@ -215,6 +215,6 @@ newTalent{ Each possible effect is equally likely. The poison damage dealt is capable of a critical strike. The damage will increase with your Spellpower.]]): - format(self:getTalentRadius(t), t.getDuration(self, t), dam/4, dam, heal_factor, power, fail) + tformat(self:getTalentRadius(t), t.getDuration(self, t), dam/4, dam, heal_factor, power, fail) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/corruptions/blood.lua b/game/modules/tome/data/talents/corruptions/blood.lua index 5fdf1207e5e969b7a9364dcc0fdf768ef223bfef..0c2fa424e16ed50b5364ebcc62cef95acfd2df83 100644 --- a/game/modules/tome/data/talents/corruptions/blood.lua +++ b/game/modules/tome/data/talents/corruptions/blood.lua @@ -73,7 +73,7 @@ newTalent{ return ([[You extract corrupted blood from your own body, hitting everything in a frontal cone of radius %d for %0.2f blight damage. Each creature hit has a %d%% chance of being infected by a random disease, doing %0.2f blight damage and weakening either Constitution, Strength or Dexterity for 6 turns. The damage will increase with your Spellpower.]]): - format(self:getTalentRadius(t), damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 10, 190)), t.getChance(self, t), damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 10, 220))) + tformat(self:getTalentRadius(t), damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 10, 190)), t.getChance(self, t), damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 10, 220))) end, } @@ -104,7 +104,7 @@ newTalent{ info = function(self, t) return ([[Project a bolt of corrupted blood, doing %0.2f blight damage and healing you for 20%% the damage dealt. 50%% of the damage dealt will be gained as maximum life for 7 turns (before the healing). - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.BLIGHT, t.getDamage(self, t))) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.BLIGHT, t.getDamage(self, t))) end, } @@ -158,7 +158,7 @@ newTalent{ info = function(self, t) return ([[Make the impure blood of all creatures around you in radius %d boil. Each enemy afflicted by a disease, poison, or wound will have one removed at random dealing %0.2f blight damage, healing you for %d, and slowing them by %d%% for 5 turns. - The damage will increase with your Spellpower.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.BLIGHT, t.getDamage(self, t)), t.getHeal(self, t), t.getSlow(self, t)) + The damage will increase with your Spellpower.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.BLIGHT, t.getDamage(self, t)), t.getHeal(self, t), t.getSlow(self, t)) end, } @@ -193,6 +193,6 @@ newTalent{ return ([[Concentrate on the corruption you bring, increasing your spell critical chance by %d%%. Each time your spells go critical, you enter a blood rage for 5 turns, increasing your blight and acid damage by %d%%. The critical chance and damage increase will improve with your Spellpower.]]): - format(self:combatTalentSpellDamage(t, 10, 14), self:combatTalentSpellDamage(t, 10, 30)) + tformat(self:combatTalentSpellDamage(t, 10, 14), self:combatTalentSpellDamage(t, 10, 30)) end, } diff --git a/game/modules/tome/data/talents/corruptions/bone.lua b/game/modules/tome/data/talents/corruptions/bone.lua index fa27f7a3983bd477fc995fe7d4ce321463c83aa5..61807f7cf047bb8cb50f35aa2440eb5396d9ca92 100644 --- a/game/modules/tome/data/talents/corruptions/bone.lua +++ b/game/modules/tome/data/talents/corruptions/bone.lua @@ -55,7 +55,7 @@ newTalent{ end, info = function(self, t) return ([[Conjures up a spear of bones, doing %0.2f physical damage to all targets in a line. Each target takes an additional %d%% damage for each magical debuff they are afflicted with up to a max of %d%% (%d). - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getBonus(self, t)*100, t.getBonus(self, t)*100 * 5, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t) * 2)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getBonus(self, t)*100, t.getBonus(self, t)*100 * 5, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t) * 2)) end, } @@ -133,7 +133,7 @@ newTalent{ return ([[Grab a target and teleport it to your side or if adjacent up to 6 spaces away from you, pinning it there with a bone rising from the ground for %d turns. The bone will also deal %0.2f physical damage. The damage will increase with your Spellpower.]]): - format(t.getDuration(self, t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + tformat(t.getDuration(self, t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -176,7 +176,7 @@ newTalent{ end, info = function(self, t) return ([[Whenever you use a non-instant talent you launch a spear of bone at all enemies afflicted by 3 or more magical detrimental effects dealing %d physical damage to all enemies it passes through. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)) ) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)) ) end, } @@ -243,7 +243,7 @@ newTalent{ local pid = table.remove(p.particles) self:removeParticles(pid) end - game:delayedLogDamage(src, self, 0, ("#SLATE#(%d to bones)#LAST#"):format(cb.value), false) + game:delayedLogDamage(src, self, 0, ("#SLATE#(%d to bones)#LAST#"):tformat(cb.value), false) cb.value = 0 return true end, @@ -279,6 +279,6 @@ newTalent{ %d shield(s) will be generated when first activated. Then every %d turns a new one will be created if not full. This will only trigger on hits over %d damage based on Spellpower.]]): - format(t.getNb(self, t), t.getRegen(self, t), t.getThreshold(self, t)) + tformat(t.getNb(self, t), t.getRegen(self, t), t.getThreshold(self, t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/corruptions.lua b/game/modules/tome/data/talents/corruptions/corruptions.lua index 4bf6b34966f21ec26adcb8c6bef708577028982c..22fa24c981ddd49e0435ac9f9436d8565ca9d1b7 100644 --- a/game/modules/tome/data/talents/corruptions/corruptions.lua +++ b/game/modules/tome/data/talents/corruptions/corruptions.lua @@ -18,20 +18,20 @@ -- darkgod@te4.org -- Corruptions -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/sanguisuge", name = "sanguisuge", description = "Manipulate life force to feed your own dark powers." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/torment", name = "torment", generic = true, description = "All the tools to torment your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/vim", name = "vim", description = "Touch the very essence of your victims." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/bone", name = "bone", description = "Harness the power of bones." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/hexes", name = "hexes", generic = true, description = "Hex your foes, hindering and crippling them." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/curses", name = "curses", generic = true, description = "Curse your foes, hindering and crippling them." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/vile-life", name = "vile life", generic = true, description = "Manipulate life for your vile needs." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/plague", name = "plague", description = "Spread diseases to your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/scourge", name = "scourge", description = "Bring pain and destruction to the world." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/reaving-combat", name = "reaving combat", description = "Enhanced melee combat through the dark arts." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/blood", name = "blood", description = "Harness the power of blood, both your own and your foes'." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/blight", name = "blight", description = "Bring corruption and decay to all who oppose you." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/shadowflame", name = "Shadowflame", description = "Harness the power of the demonic shadowflame." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, min_lev = 10, type="corruption/rot", name = "rot", description = "Become one with rot and decay." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/sanguisuge", name = _t"sanguisuge", description = _t"Manipulate life force to feed your own dark powers." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/torment", name = _t"torment", generic = true, description = _t"All the tools to torment your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/vim", name = _t"vim", description = _t"Touch the very essence of your victims." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/bone", name = _t"bone", description = _t"Harness the power of bones." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/hexes", name = _t"hexes", generic = true, description = _t"Hex your foes, hindering and crippling them." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/curses", name = _t"curses", generic = true, description = _t"Curse your foes, hindering and crippling them." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/vile-life", name = _t"vile life", generic = true, description = _t"Manipulate life for your vile needs." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/plague", name = _t"plague", description = _t"Spread diseases to your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/scourge", name = _t"scourge", description = _t"Bring pain and destruction to the world." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/reaving-combat", name = _t"reaving combat", description = _t"Enhanced melee combat through the dark arts." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/blood", name = _t"blood", description = _t"Harness the power of blood, both your own and your foes'." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/blight", name = _t"blight", description = _t"Bring corruption and decay to all who oppose you." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="corruption/shadowflame", name = _t"Shadowflame", description = _t"Harness the power of the demonic shadowflame." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, min_lev = 10, type="corruption/rot", name = _t"rot", description = _t"Become one with rot and decay." } -- Generic requires for corruptions based on talent level corrs_req1 = { diff --git a/game/modules/tome/data/talents/corruptions/curses.lua b/game/modules/tome/data/talents/corruptions/curses.lua index f34a1fdb61d5a5f265eb74e46c8b377a7e6c559c..17bed19921157c2f9666dbb05e06318d8e13193f 100644 --- a/game/modules/tome/data/talents/corruptions/curses.lua +++ b/game/modules/tome/data/talents/corruptions/curses.lua @@ -43,7 +43,7 @@ newTalent{ end, info = function(self, t) return ([[Curses your target, decreasing its Defense and all saves by %d for 5 turns. This cannot be saved against. - The effects will improve with your Spellpower.]]):format(self:combatTalentSpellDamage(t, 30, 60)) + The effects will improve with your Spellpower.]]):tformat(self:combatTalentSpellDamage(t, 30, 60)) end, } @@ -74,7 +74,7 @@ newTalent{ end, info = function(self, t) return ([[Curses your target, decreasing all damage it does by %d%% for 10 turns. - The effects will improve with your Spellpower.]]):format(t.imppower(self,t)) + The effects will improve with your Spellpower.]]):tformat(t.imppower(self,t)) end, } @@ -104,7 +104,7 @@ newTalent{ end, info = function(self, t) return ([[Curses your target, preventing normal life regeneration and dealing %0.2f darkness damage over 10 turns. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.DARKNESS, self:combatTalentSpellDamage(t, 10, 70)*10)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.DARKNESS, self:combatTalentSpellDamage(t, 10, 70)*10)) end, } @@ -134,6 +134,6 @@ newTalent{ end, info = function(self, t) return ([[Curses your target, decreasing all its resistances by %d%% for 7 turns. - The effect will improve with your Spellpower.]]):format(self:combatTalentSpellDamage(t, 10, 40)) + The effect will improve with your Spellpower.]]):tformat(self:combatTalentSpellDamage(t, 10, 40)) end, } diff --git a/game/modules/tome/data/talents/corruptions/hexes.lua b/game/modules/tome/data/talents/corruptions/hexes.lua index f3aee2a69bf95eb986486de406561359cf0e9a77..e7143dfb7db3a098b9cdb5edd27903d0c38e1dae 100644 --- a/game/modules/tome/data/talents/corruptions/hexes.lua +++ b/game/modules/tome/data/talents/corruptions/hexes.lua @@ -51,7 +51,7 @@ newTalent{ end, info = function(self, t) return ([[Hexes your target, dazing it and everything in a 2 radius ball around it for 3 turns and giving a %d%% chance to daze affected targets again each turn for 20 turns. - The chance will increase with your Spellpower.]]):format(t.getchance(self,t)) + The chance will increase with your Spellpower.]]):tformat(t.getchance(self,t)) end, } @@ -89,7 +89,7 @@ newTalent{ return ([[Hexes your target and everything within a radius 2 ball around it for 20 turns. Each time an affected target uses a resource (stamina, mana, vim, ...), it takes %0.2f fire damage. In addition, the cooldown of any talent used while so hexed is increased by %d%% + 1 turn. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 4, 90)), t.getCDincrease(self, t)*100) + tformat(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 4, 90)), t.getCDincrease(self, t)*100) end, } @@ -125,7 +125,7 @@ newTalent{ end, info = function(self, t) return ([[Hexes your target and everything within a radius 2 ball around it. Each time they do damage, they take %d%% of the same damage for 20 turns. - The damage will increase with your Spellpower.]]):format(t.recoil(self,t)) + The damage will increase with your Spellpower.]]):tformat(t.recoil(self,t)) end, } @@ -162,6 +162,6 @@ newTalent{ end, info = function(self, t) return ([[Hexes your target, forcing it to be your thrall for %d turns. - If you damage the target, it will be freed from the hex.]]):format(t.getDuration(self, t)) + If you damage the target, it will be freed from the hex.]]):tformat(t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/plague.lua b/game/modules/tome/data/talents/corruptions/plague.lua index 19dc655ca11e10e7777b0939f898a16181ada2a2..6cebd6a0e6d7f29d5b84bd8ab9e1465a3226956a 100644 --- a/game/modules/tome/data/talents/corruptions/plague.lua +++ b/game/modules/tome/data/talents/corruptions/plague.lua @@ -92,7 +92,7 @@ newTalent{ Virulent Disease will always try to apply a disease the target does not currently have, and also one that will have the most debilitating effect for the target. This disease will try to prioritize being applied to an enemy with a high disease count near the target. The effect will increase with your Spellpower.]]): - format(damDesc(self, DamageType.BLIGHT, 7 + self:combatTalentSpellDamage(t, 6, 45)), self:combatTalentSpellDamage(t, 5, 35)) + tformat(damDesc(self, DamageType.BLIGHT, 7 + self:combatTalentSpellDamage(t, 6, 45)), self:combatTalentSpellDamage(t, 5, 35)) end, } @@ -180,7 +180,7 @@ newTalent{ return ([[Make your target's diseases burst, doing %0.2f blight damage for each disease it is infected with. This will also spread any diseases to any nearby foes in a radius of %d with a minimum duration of 6. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 15, 115)), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 15, 115)), self:getTalentRadius(t)) end, } @@ -249,7 +249,7 @@ newTalent{ local duration = t.getDuration(self, t) local damage = t.getDamage(self, t) return ([[All your foes within a radius %d ball infected with a disease enter a cataleptic state, stunning them for %d turns and dealing %d%% of all remaining disease damage instantly.]]): - format(radius, duration, damage * 100) + tformat(radius, duration, damage * 100) end, } @@ -326,6 +326,6 @@ newTalent{ Creatures suffering from that disease will also suffer healing reduction (%d%%) and diseases immunity reduction (%d%%). Epidemic is an extremely potent disease; as such, it fully ignores the target's diseases immunity. The damage will increase with your Spellpower, and the spread chance increases with the amount of blight damage dealt.]]): - format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 15, 70)), t.spreadFactor(self, t)*100 ,t.healloss(self,t), t.disfact(self,t)) + tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 15, 70)), t.spreadFactor(self, t)*100 ,t.healloss(self,t), t.disfact(self,t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/reaving-combat.lua b/game/modules/tome/data/talents/corruptions/reaving-combat.lua index e69c24f7e6751d9bdb76b164555ef082f21de416..9092563c3cf6694c8968d9f7887142e254a4b411 100644 --- a/game/modules/tome/data/talents/corruptions/reaving-combat.lua +++ b/game/modules/tome/data/talents/corruptions/reaving-combat.lua @@ -38,7 +38,7 @@ newTalent{ info = function(self, t) return ([[Allows you to dual wield any type of one handed weapons, and increases the damage of the off-hand weapon to %d%%. Also, casting a spell (which uses a turn) will give a free melee attack at a random target in melee range for %d%% blight damage.]]): - format(100*t.getoffmult(self,t), 100 * self:combatTalentWeaponDamage(t, 0.2, 0.7)) + tformat(100*t.getoffmult(self,t), 100 * self:combatTalentWeaponDamage(t, 0.2, 0.7)) end, } @@ -59,7 +59,7 @@ newTalent{ return ([[Each time you hit an enemy with a melee weapon you enter a bloodlust-infused frenzy, increasing your Spellpower by %0.1f. This effect stacks up to 10 times for a total Spellpower gain of %d. The frenzy lasts 3 turns.]]): - format(SPbonus, SPbonus*10) + tformat(SPbonus, SPbonus*10) end, } @@ -78,7 +78,7 @@ newTalent{ info = function(self, t) return ([[You gain a %d%% resistance to diseases, and each of your melee attacks have a %d%% chance to spread any diseases on your target. (As the Epidemic talent with the melee attack treated like blight damage.)]]): - format(t.getDiseaseImmune(self, t)*100, t.getDiseaseSpread(self, t)) + tformat(t.getDiseaseImmune(self, t)*100, t.getDiseaseSpread(self, t)) end, } @@ -103,6 +103,6 @@ newTalent{ This deals %0.2f acid damage each turn for 5 turns, and reduces the attacker's Accuracy by %d. At level 3, it will also reduce Armour by %d for 5 turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ACID, self:combatTalentSpellDamage(t, 5, 30)), self:combatTalentSpellDamage(t, 15, 35), self:combatTalentSpellDamage(t, 15, 40)) + tformat(damDesc(self, DamageType.ACID, self:combatTalentSpellDamage(t, 5, 30)), self:combatTalentSpellDamage(t, 15, 35), self:combatTalentSpellDamage(t, 15, 40)) end, } diff --git a/game/modules/tome/data/talents/corruptions/rot.lua b/game/modules/tome/data/talents/corruptions/rot.lua index 47fb088200de3a4ef468b20c99793ddbcfc78f8a..2ba32866ef05cb972d5e623669612a5dc1aa8af0 100644 --- a/game/modules/tome/data/talents/corruptions/rot.lua +++ b/game/modules/tome/data/talents/corruptions/rot.lua @@ -53,7 +53,7 @@ newTalent{ return ([[Bite the target, dealing %d%% melee damage If the attack hits you'll inject blight poison into the target, dealing %0.2f blight damage and a further %0.2f blight damage over 4 turns. The bonus damage improves with your Spellpower.]]) - :format(damage, damDesc(self, DamageType.BLIGHT, poison/4), damDesc(self, DamageType.BLIGHT, poison) ) + :tformat(damage, damDesc(self, DamageType.BLIGHT, poison/4), damDesc(self, DamageType.BLIGHT, poison) ) end } @@ -219,7 +219,7 @@ newTalent{ On taking damage greater than 15%% of your maximum health, the damage will be reduced by %d%% and a carrion worm mass will burst forth onto a nearby tile, attacking your foes for 5 turns. You can never have more than 5 worms active from any source at a time. When a carrion worm dies it will explode into a radius 2 pool of blight for 5 turns, dealing %0.2f blight damage each turn and healing you for 33%% of that amount.]]): - format(resist, affinity, reduction, damDesc(self, DamageType.BLIGHT, dam), dam) + tformat(resist, affinity, reduction, damDesc(self, DamageType.BLIGHT, dam), dam) end, } @@ -334,7 +334,7 @@ info = function(self, t) At talent level 4, this affects targets in a radius 1 ball. Your worms also have a %d%% chance to blind, silence, disarm or pin with their melee attacks, lasting 2 turns. The chance to apply this effect will increase with your Spellpower.]]): - format(chance, duration, chance/2) + tformat(chance, duration, chance/2) end, } @@ -395,6 +395,6 @@ If not cleared after five turns it will inflict %0.2f blight damage as the larva Even if this disease is removed early, there is still a %d%% chance for the larvae to hatch. You can never have more than 5 worms active from any source at a time. The damage dealt will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ACID, (damage/2)), damDesc(self, DamageType.BLIGHT, (damage/2)), damDesc(self, DamageType.BLIGHT, (burst)), chance) + tformat(damDesc(self, DamageType.ACID, (damage/2)), damDesc(self, DamageType.BLIGHT, (damage/2)), damDesc(self, DamageType.BLIGHT, (burst)), chance) end, } diff --git a/game/modules/tome/data/talents/corruptions/sanguisuge.lua b/game/modules/tome/data/talents/corruptions/sanguisuge.lua index 30315be59d4978bbf655c9ec16664b7b74304ddd..32b1d52d766c1bf22f9c96f0104dd47e2aeb34d6 100644 --- a/game/modules/tome/data/talents/corruptions/sanguisuge.lua +++ b/game/modules/tome/data/talents/corruptions/sanguisuge.lua @@ -42,7 +42,7 @@ newTalent{ return ([[Fires a bolt of blight, doing %0.2f blight damage and replenishing 20%% of it as vim energy. The amount of vim regained depends on the target's rank (higher ranks give more vim). The effect will increase with your Spellpower.]]): - format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 25, 200))) + tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 25, 200))) end, } @@ -59,7 +59,7 @@ newTalent{ end, info = function(self, t) return ([[The cost of using life instead of vim for talents is reduced to %d%%.]]): - format(t.getLifeCost(self,t)) + tformat(t.getLifeCost(self,t)) end, } @@ -94,7 +94,7 @@ newTalent{ info = function(self, t) return ([[Absorbs the life force of your foes as you kill them. As long as this talent is active, vim will decrease by 0.5 per turn and increase by %0.1f for each kill of a non-undead creature (in addition to the usual increase based on Willpower).]]): - format(t.VimOnDeath(self, t)) + tformat(t.VimOnDeath(self, t)) end, } @@ -117,6 +117,6 @@ newTalent{ return ([[Feed on the pain you cause your foes. For 2 turns you gain %d%% lifesteal on all damage dealt. The lifesteal will increase with your Spellpower.]]): - format(t.getMult(self,t)) + tformat(t.getMult(self,t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/scourge.lua b/game/modules/tome/data/talents/corruptions/scourge.lua index 4a6945a139023391bbce2c6ea4e493097d6bd86c..2a1bda52a3b28b2ed8cfca3ee74d152b8e6b4bfb 100644 --- a/game/modules/tome/data/talents/corruptions/scourge.lua +++ b/game/modules/tome/data/talents/corruptions/scourge.lua @@ -80,7 +80,7 @@ newTalent{ end, info = function(self, t) return ([[Strike the target with both weapons dealing %d%% damage with each hit. Each strike that hits will increase the duration of the lowest duration disease effect by %d.]]): - format(100 * t.getDamage(self, t), t.getIncrease(self, t)) + tformat(100 * t.getDamage(self, t), t.getIncrease(self, t)) end, } @@ -110,7 +110,7 @@ newTalent{ local dam = damDesc(self, DamageType.BLIGHT, t.getDamage(self, t)) return ([[Concentrate on the corruption you bring, enhancing each of your melee strikes with %0.2f blight damage (which also heals you for %0.2f each hit). The damage will increase with your Spellpower.]]): - format(dam, dam * 0.4) + tformat(dam, dam * 0.4) end, } @@ -164,7 +164,7 @@ newTalent{ return ([[Strike with each of your weapons, doing %d%% acid weapon damage with each hit. If at least one of the strikes hits, an acid splash is generated, doing %0.2f acid damage to all enemies in radius %d around the foe you struck. The splash damage will increase with your Spellpower.]]): - format(100 * t.getDamage(self, t), damDesc(self, DamageType.ACID, t.getSplash(self, t)), self:getTalentRadius(t)) + tformat(100 * t.getDamage(self, t), damDesc(self, DamageType.ACID, t.getSplash(self, t)), self:getTalentRadius(t)) end, } @@ -206,6 +206,6 @@ newTalent{ end, info = function(self, t) return ([[Corrupt the target reducing disease immunity by 100%% for 2 turns and stripping up to 2 nature sustains then strike with both your weapons dealing %d%% damage.]]): - format(100 * t.getDamage(self, t)) + tformat(100 * t.getDamage(self, t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua index 95a5021ce16f5cadad355f9f95889a3e56d33846..63321c1c78c048fb06df057e4a6ec7240df30f13 100644 --- a/game/modules/tome/data/talents/corruptions/shadowflame.lua +++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua @@ -38,7 +38,7 @@ newTalent{ Also increases your defense and armour by %d and %d, respectively. If you are still in a wall when the effect ends you will randomly teleport. ]]): - format(t.getDuration(self, t), t.getDefs(self, t)) + tformat(t.getDuration(self, t), t.getDefs(self, t)) end, } @@ -73,7 +73,7 @@ newTalent{ end, info = function(self, t) return ([[Conjures up a bolt of shadowflame that moves toward the target and explodes into a flash of darkness and fire, doing %0.2f fire damage and %0.2f darkness damage in a radius of %d. - The damage will increase with your Spellpower.]]):format( + The damage will increase with your Spellpower.]]):tformat( damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 28, 220) / 2), damDesc(self, DamageType.DARKNESS, self:combatTalentSpellDamage(t, 28, 220) / 2), self:getTalentRadius(t) @@ -117,7 +117,7 @@ newTalent{ While in demon form, you gain %d%% fire resistance, %d%% darkness resistance, and your global speed is increased by %d%%. The flames of the Fearscape will heal you while in demon form. The resistances and heal will increase with your Spellpower.]]): - format(self:combatTalentSpellDamage(t, 20, 30), self:combatTalentSpellDamage(t, 20, 35), t.getSpeed(self, t)*100) + tformat(self:combatTalentSpellDamage(t, 20, 30), self:combatTalentSpellDamage(t, 20, 35), t.getSpeed(self, t)*100) end, } @@ -357,6 +357,6 @@ newTalent{ When the spell ends, only you and the target (if still alive) plus any loose objects are taken back to your home plane; all summons are left in the Fearscape. This powerful spell drains 5 vim per turn initially, increasing by +1 for each turn it has been active, and ends when your vim is depleted. It has no effect if cast from within the Fearscape. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 12, 140))) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 12, 140))) end, } diff --git a/game/modules/tome/data/talents/corruptions/torment.lua b/game/modules/tome/data/talents/corruptions/torment.lua index cefbb9600a25182b0685ba49055a57dff49d6258..57b253ce210f5c05faf8f7e0c0a79b80f66c31e5 100644 --- a/game/modules/tome/data/talents/corruptions/torment.lua +++ b/game/modules/tome/data/talents/corruptions/torment.lua @@ -30,7 +30,7 @@ newTalent{ info = function(self, t) return ([[You set your mind toward a single goal: the destruction of all your foes. Increases the maximum amount of vim you can store by %d.]]): - format(t.VimBonus(self, t)) + tformat(t.VimBonus(self, t)) end, } @@ -65,7 +65,7 @@ newTalent{ end, info = function(self, t) return ([[Reach out and touch the blood and health of your foes. Any creatures caught in the radius 2 ball will be unable to heal above their current life value (at the time of the casting) for %d turns.]]): - format(t.getDuration(self, t)) + tformat(t.getDuration(self, t)) end, } @@ -105,7 +105,7 @@ newTalent{ end, info = function(self, t) return ([[When you kill a creature, the remainder of the damage done will not be lost. Instead, %d%% of it will splash in a radius 2 as blight damage. - The splash damage will increase with your Spellpower.]]):format(t.getOversplash(self,t)) + The splash damage will increase with your Spellpower.]]):tformat(t.getOversplash(self,t)) end, } @@ -157,6 +157,6 @@ newTalent{ return ([[When you are dealt a blow that reduces your life by at least %d%%, you have a %d%% chance to reduce the remaining cooldown of all your talents by 1. Temporary life from Sanguine Infusion will not count against the damage threshold. The chance will increase with your Spellpower.]]): - format(l, c) + tformat(l, c) end, } diff --git a/game/modules/tome/data/talents/corruptions/vile-life.lua b/game/modules/tome/data/talents/corruptions/vile-life.lua index bd83ed178b9713f413f7e738f08ab5e38b8106e0..e9852d8a13c687c5732df4dbe75cd19a6fbcd0fe 100644 --- a/game/modules/tome/data/talents/corruptions/vile-life.lua +++ b/game/modules/tome/data/talents/corruptions/vile-life.lua @@ -48,7 +48,7 @@ newTalent{ return ([[Inflicting pain and death invigorates you. Each time you deal a critical strike you gain %d life (this effect can only happen once per turn). Each time you kill a creature you gain %d life (this effect can only happen once per turn).]]): - format(t.heal(self, t), t.heal(self, t)) + tformat(t.heal(self, t), t.heal(self, t)) end, } @@ -115,7 +115,7 @@ newTalent{ - Nature: %d%% slow for 4 turns This effect can only happen once every 10 turns per damage type. The damage will increase with your Spellpower.]]): - format( + tformat( damDesc(self, DamageType.FIRE, t.getFire(self, t)), t.getCold(self, t), t.getAcid(self, t), @@ -153,7 +153,7 @@ newTalent{ info = function(self, t) return ([[You manipulate the vim of your target to temporarily invert all healing done to it (but not regeneration). For 5 turns all healing will instead damage them for %d%% of the healing done as blight. - The effect will increase with your Spellpower.]]):format(t.getPower(self,t)) + The effect will increase with your Spellpower.]]):tformat(t.getPower(self,t)) end, } @@ -202,7 +202,7 @@ newTalent{ self:removeEffect(eff_id) local dead, val = self:takeHit(dam, self, {source_talent=t}) target:heal(val, self) - game:delayedLogMessage(self, target, "vile_transplant"..e.desc, ("#CRIMSON##Source# transfers an effect (%s) to #Target#!"):format(e.desc)) + game:delayedLogMessage(self, target, "vile_transplant"..e.desc, ("#CRIMSON##Source# transfers an effect (%s) to #Target#!"):tformat(e.desc)) end end nb = nb - 1 @@ -217,6 +217,6 @@ newTalent{ return ([[You transfer up to %d physical or magical detrimental effects currently affecting you to a nearby creature by touching it. The transfer takes %0.1f%% of your remaining life for each effect transferred and heals the target for the same amount. The chance to transfer each effect increases with your Spellpower.]]): - format(t.getNb(self, t), t.getDam(self, t)) + tformat(t.getNb(self, t), t.getDam(self, t)) end, } diff --git a/game/modules/tome/data/talents/corruptions/vim.lua b/game/modules/tome/data/talents/corruptions/vim.lua index 21cb56aaa5896a23e464eb77c6d7c4f58f58a69c..74cc7dd488326d83884bafadb640721932ad0747 100644 --- a/game/modules/tome/data/talents/corruptions/vim.lua +++ b/game/modules/tome/data/talents/corruptions/vim.lua @@ -41,7 +41,7 @@ newTalent{ return ([[Projects a bolt of pure blight, doing %0.2f blight damage. This spell has an improved critical strike chance of +%0.2f%%. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 20, 250)), t.getCritChance(self, t)) + tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 20, 250)), t.getCritChance(self, t)) end, } @@ -96,7 +96,7 @@ newTalent{ info = function(self, t) return ([[Open a dark portal (radius 3) to the target zone. All creatures caught inside will be teleported to your location, and you to theirs. All creatures (except you) traversing the portal will catch a random disease, doing %0.2f blight damage per turn for 6 turns and reducing one of its physical stats (strength, constitution, dexterity) by %d. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 12, 80)), self:combatTalentSpellDamage(t, 5, 25)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 12, 80)), self:combatTalentSpellDamage(t, 5, 25)) end, } @@ -134,7 +134,7 @@ newTalent{ return ([[Feel the very existence of creatures around you for %d turns, in a radius of 10. The evil touch will reduce their blight resistance by %d%% and all saves by %d, but also make them aware of you. The resistance and save reduction will improve with your Spellpower.]]): - format(t.getDuration(self,t), t.getResistPenalty(self,t), t.getSaves(self, t)) + tformat(t.getDuration(self,t), t.getResistPenalty(self,t), t.getSaves(self, t)) end, } @@ -149,7 +149,7 @@ newTalent{ getHeal = function(self, t) return self:combatTalentScale(t, 4, 15, 0.75) end, info = function(self, t) return ([[Each time a creature affected by vimsense hurts you, you regain %0.2f vim and %0.2f health.]]): - format(t.getVim(self,t),t.getHeal(self,t)) + tformat(t.getVim(self,t),t.getHeal(self,t)) end, } diff --git a/game/modules/tome/data/talents/cunning/ambush.lua b/game/modules/tome/data/talents/cunning/ambush.lua index 51ea1f99e654a4fc29165b587b4b2c96bde4cf0f..672a0fface007031fd56cf3e2b22924f58ddbdac 100644 --- a/game/modules/tome/data/talents/cunning/ambush.lua +++ b/game/modules/tome/data/talents/cunning/ambush.lua @@ -45,7 +45,7 @@ newTalent{ local defence = t.getDefense(self, t) return ([[Your Soothing Darkness talent effect now grants 25%% all damage resistance on exiting stealth. When your life drops below 50%% you become immune to negative detrimental effects for %d turns and gain %d defense and %d spellpower for %d turns.]]): - format(duration2, defence, spellpower, duration) + tformat(duration2, defence, spellpower, duration) end, } @@ -104,7 +104,7 @@ newTalent{ return ([[You reach out with the shadows silencing and disarming your target for %d turns. The shadows will deal %d darkness damage to the target and pull it to you. The chance to apply debuffs improves with your Accuracy and the damage with your Spellpower.]]): - format(duration, damDesc(self, DamageType.DARKNESS, damage)) + tformat(duration, damDesc(self, DamageType.DARKNESS, damage)) end, } @@ -125,7 +125,7 @@ newTalent{ return ([[Your mastery of dark magic empowers you. You gain %d Accuracy, %d Defense, and %d%% Darkness damage penetration. The effects will increase with your Spellpower stat.]]) - :format(t.getAccuracy(self, t), t.getDefense(self, t), t.getPenetration(self, t)) + :tformat(t.getAccuracy(self, t), t.getDefense(self, t), t.getPenetration(self, t)) end, } @@ -195,6 +195,6 @@ newTalent{ If a target isn't found this effect ends. The movement is not considered a teleport. The resistance will increase with your Spellpower stat.]]): - format(duration, t.getBlinkRange(self, t) ,100 * damage, res) + tformat(duration, t.getBlinkRange(self, t) ,100 * damage, res) end, } diff --git a/game/modules/tome/data/talents/cunning/artifice.lua b/game/modules/tome/data/talents/cunning/artifice.lua index b3818b4c92022821bdf6d27be948b48612a15428..67b8350a172e6d61af6e3ca51e85a75f7b2ed165 100644 --- a/game/modules/tome/data/talents/cunning/artifice.lua +++ b/game/modules/tome/data/talents/cunning/artifice.lua @@ -71,7 +71,7 @@ function artifice_tools_get_descs(self, t) local tool, desc = self:getTalentFromId(tool_id) local prepped = self.artifice_tools[t.id] == tool_id if prepped then - desc = ("#YELLOW#%s (prepared, level %s)#LAST#:\n"):format(tool.name, self:getTalentLevelRaw(tool)) + desc = ("#YELLOW#%s (prepared, level %s)#LAST#:\n"):tformat(tool.name, self:getTalentLevelRaw(tool)) else desc = tool.name..":\n" end @@ -143,7 +143,7 @@ newTalent{ %s Preparing a tool sets its talent level and puts it on cooldown. -]]):format(self:getTalentLevelRaw(t), descs) +]]):tformat(self:getTalentLevelRaw(t), descs) end, } @@ -176,7 +176,7 @@ newTalent{ %s Preparing a tool sets its talent level and puts it on cooldown. Only one tool of each type can be equipped at a time. -]]):format(self:getTalentLevelRaw(t), descs) +]]):tformat(self:getTalentLevelRaw(t), descs) end, } @@ -209,7 +209,7 @@ newTalent{ %s Preparing a tool sets its talent level and puts it on cooldown. Only one tool of each type can be equipped at a time. -]]):format(self:getTalentLevelRaw(t), descs) +]]):tformat(self:getTalentLevelRaw(t), descs) end, } @@ -271,9 +271,9 @@ newTalent{ local desc local prepped = self.artifice_tools_mastery == tool_id if prepped then - desc = ("#YELLOW#%s (%s)#LAST#\n"):format(tool.name, mt.name) + desc = ("#YELLOW#%s (%s)#LAST#\n"):tformat(tool.name, mt.name) else - desc = ("%s (%s)\n"):format(tool.name, mt.name) + desc = ("%s (%s)\n"):tformat(tool.name, mt.name) end if mt.short_info then desc = desc..mt.short_info(self, mt).."\n" @@ -288,7 +288,7 @@ newTalent{ %s The effects depend on this talent's level. -Mastering a new tool places it (and its special effects, as appropriate) on cooldown.]]):format(tool, mastery_descs) +Mastering a new tool places it (and its special effects, as appropriate) on cooldown.]]):tformat(tool, mastery_descs) end, } @@ -325,7 +325,7 @@ newTalent{ end end, short_info = function(self, t, slot_talent) - return ([[Melee criticals trigger an extra unarmed attack, inflicting %d%% damage. 4 turn cooldown.]]):format(t.getDamage(self, slot_talent)*100) + return ([[Melee criticals trigger an extra unarmed attack, inflicting %d%% damage. 4 turn cooldown.]]):tformat(t.getDamage(self, slot_talent)*100) end, info = function(self, t) local dam = t.getDamage(self, t) @@ -335,7 +335,7 @@ newTalent{ end return ([[You conceal spring loaded blades within your equipment. On scoring a critical strike, you follow up with your blades for %d%% damage (as an unarmed attack). This talent has a cooldown. -#YELLOW#Prepared with: %s#LAST#]]):format(dam*100, slot) +#YELLOW#Prepared with: %s#LAST#]]):tformat(dam*100, slot) end, } @@ -391,14 +391,14 @@ newTalent{ return true end, short_info = function(self, t) - return ([[You prime your Hidden Blades to cause bleeding and facilitate the Assassinate ability, which allows you to strike twice for %d%% unarmed damage, hitting automatically while ignoring armor and resistance.]]):format(t.getDamage(self, t)*100) + return ([[You prime your Hidden Blades to cause bleeding and facilitate the Assassinate ability, which allows you to strike twice for %d%% unarmed damage, hitting automatically while ignoring armor and resistance.]]):tformat(t.getDamage(self, t)*100) end, info = function(self, t) local damage = t.getDamage(self, t) * 100 local bleed = t.getBleed(self,t) * 100 return ([[You strike your target with your Hidden Blades twice in a vital spot for %d%% unarmed (physical) damage. You must be able to see your target to use this attack, but it always hits and ignores all armor and physical resistance. In addition, your hidden blades now inflict a further %d%% of all damage dealt as bleeding over 5 turns.]]) - :format(damage, bleed) + :tformat(damage, bleed) end, } @@ -466,7 +466,7 @@ newTalent{ end, short_info = function(self, t, slot_talent) - return ([[Prepare a potion that restores %d life, %d stamina, and cures %d negative physical effects. 20 turn cooldown.]]):format(t.getHeal(self, slot_talent), t.getStam(self, slot_talent), t.getCure(self, slot_talent)) + return ([[Prepare a potion that restores %d life, %d stamina, and cures %d negative physical effects. 20 turn cooldown.]]):tformat(t.getHeal(self, slot_talent), t.getStam(self, slot_talent), t.getCure(self, slot_talent)) end, info = function(self, t) local heal = t.getHeal(self, t) @@ -477,7 +477,7 @@ newTalent{ if tool_id == t.id then slot = self:getTalentFromId(slot_id).name break end end return ([[Imbibe a potent mixture of energizing and restorative substances, restoring %d life, %d stamina and curing %d detrimental physical effects. The restorative effects improve with your Cunning. - #YELLOW#Prepared with: %s#LAST#]]):format(heal, sta, cure, slot) + #YELLOW#Prepared with: %s#LAST#]]):tformat(heal, sta, cure, slot) end, } @@ -488,10 +488,10 @@ newTalent{ points = 1, getDieAt = function(self, t) return self:combatTalentScale(self:getTalentFromId(self.T_MASTER_ARTIFICER), 100, 600) end, short_info = function(self, t) - return ([[Your Rogue's Brew fortifies you for 8 turns, preventing you from dying until you reach -%d life.]]):format(t.getDieAt(self, t)) + return ([[Your Rogue's Brew fortifies you for 8 turns, preventing you from dying until you reach -%d life.]]):tformat(t.getDieAt(self, t)) end, info = function(self, t) - return ([[Adjust your Rogue's Brew formulation so that it fortifies you for 8 turns, preventing you from dying until you reach -%d life.]]):format(t.getDieAt(self,t)) + return ([[Adjust your Rogue's Brew formulation so that it fortifies you for 8 turns, preventing you from dying until you reach -%d life.]]):tformat(t.getDieAt(self,t)) end, } @@ -571,7 +571,7 @@ newTalent{ return true end, short_info = function(self, t, slot_talent) - return ([[Throw a smokebomb creating a radius 2 cloud of smoke, lasting %d turns, that blocks sight and reduces enemies' vision by %d. 15 turn cooldown.]]):format(t.getDuration(self, slot_talent), t.getSightLoss(self, slot_talent)) + return ([[Throw a smokebomb creating a radius 2 cloud of smoke, lasting %d turns, that blocks sight and reduces enemies' vision by %d. 15 turn cooldown.]]):tformat(t.getDuration(self, slot_talent), t.getSightLoss(self, slot_talent)) end, info = function(self, t) local slot = "not prepared" @@ -581,7 +581,7 @@ newTalent{ return ([[Throw a vial of volatile liquid that explodes in a radius %d cloud of smoke lasting %d turns. The smoke blocks line of sight, and enemies within will have their vision range reduced by %d. Use of this talent will not break stealth, and creatures affected by the smokes can never prevent you from activating stealth, even if their proximity would normally forbid it. #YELLOW#Prepared with: %s#LAST#]]): - format(self:getTalentRadius(t), t.getDuration(self, t), t.getSightLoss(self,t), slot) + tformat(self:getTalentRadius(t), t.getDuration(self, t), t.getSightLoss(self,t), slot) end, } @@ -592,11 +592,11 @@ newTalent{ mode = "passive", getDamage = function (self, t) return 30 + self:combatTalentStatDamage(self:getTalentFromId(self.T_MASTER_ARTIFICER), "cun", 10, 150) end, short_info = function(self, t) - return ([[Your Smokescreen is infused with chokedust. Enemies in the smoke take %0.2f nature damage and may be silenced.]]):format(t.getDamage(self, t)) + return ([[Your Smokescreen is infused with chokedust. Enemies in the smoke take %0.2f nature damage and may be silenced.]]):tformat(t.getDamage(self, t)) end, info = function(self, t) return ([[You infuse your smoke bomb with chokedust. Each turn, enemies in the smoke take %0.2f nature damage and are 50%% likely to be silenced.]]): - format(damDesc(self, DamageType.NATURE, t.getDamage(self,t))) + tformat(damDesc(self, DamageType.NATURE, t.getDamage(self,t))) end, } @@ -647,7 +647,7 @@ newTalent{ return true end, short_info = function(self, t, slot_talent) - return ([[Fire a poisoned dart dealing %0.2f physical damage that puts the target to sleep for 4 turns. 10 turn cooldown.]]):format(t.getDamage(self, slot_talent)) + return ([[Fire a poisoned dart dealing %0.2f physical damage that puts the target to sleep for 4 turns. 10 turn cooldown.]]):tformat(t.getDamage(self, slot_talent)) end, info = function(self, t) local dam = t.getDamage(self,t) @@ -659,7 +659,7 @@ newTalent{ return ([[Fire a poisoned dart from a silent, concealed launcher on your person that deals %0.2f physical damage and puts the target (living only) to sleep for 4 turns, rendering them unable to act. Every %d points of damage the target takes brings it closer to waking by 1 turn. This can be used without breaking stealth. #YELLOW#Prepared with: %s#LAST#]]): - format(damDesc(self, DamageType.PHYSICAL, dam), power, slot) + tformat(damDesc(self, DamageType.PHYSICAL, dam), power, slot) end, } @@ -670,11 +670,11 @@ newTalent{ points = 1, getSlow = function(self, t) return self:combatTalentLimit(self:getTalentFromId(self.T_MASTER_ARTIFICER), 50, 15, 40)/100 end, short_info = function(self, t) - return ([[Your darts ignore poison and sleep immunity and waking targets are slowed by %d%% for 4 turns.]]):format(t.getSlow(self, t)*100) + return ([[Your darts ignore poison and sleep immunity and waking targets are slowed by %d%% for 4 turns.]]):tformat(t.getSlow(self, t)*100) end, info = function(self, t) return ([[The sleeping poison of your Dart Launcher becomes potent enough to ignore immunity, and upon waking the target is slowed by %d%% for 4 turns.]]): - format(t.getSlow(self, t)*100) + tformat(t.getSlow(self, t)*100) end, } @@ -702,7 +702,7 @@ newTalent{ end local ok = true self:project(tg, x, y, function(px, py) - print(("Grappling hook projection at (%s, %s) vs target (%s, %s)"):format(px, py, x, y)) + print(("Grappling hook projection at (%s, %s) vs target (%s, %s)"):tformat(px, py, x, y)) local target = game.level.map(px, py, engine.Map.ACTOR) if target then -- hook actor @@ -789,7 +789,7 @@ newTalent{ return ok end, short_info = function(self, t, slot_talent) - return ([[Throw a grappling hook up to range %d that drags you towards the target or the target towards you. 8 turn cooldown.]]):format(t.range(self, slot_talent)) + return ([[Throw a grappling hook up to range %d that drags you towards the target or the target towards you. 8 turn cooldown.]]):tformat(t.range(self, slot_talent)) end, info = function(self, t) local range = t.range(self,t) @@ -800,7 +800,7 @@ newTalent{ return ([[Toss out a grappling hook to a target within range %d. If this strikes either a wall or a creature that is immovable or larger than you, you will pull yourself towards it, otherwise, you will drag the target towards you. Creatures struck by the hook will be pinned for 2 turns. Your grapple target must be at least 2 tiles from you. #YELLOW#Prepared with: %s#LAST#]]): - format(range, slot) + tformat(range, slot) end, } @@ -812,11 +812,11 @@ newTalent{ getDamage = function (self, t) return self:combatTalentWeaponDamage(self:getTalentLevel(self.T_MASTER_ARTIFICER), 1.0, 1.9) end, getSecondaryDamage = function (self, t) return 30 + self:combatTalentStatDamage(self:getTalentFromId(self.T_MASTER_ARTIFICER), "cun", 15, 200) end, short_info = function(self, t) - return ([[Your grappling hook deals %d%% unarmed damage when it hits, plus a further %0.2f physical and %0.2f nature damage over 4 turns.]]):format(t.getDamage(self, t)*100, damDesc(self, DamageType.PHYSICAL, t.getSecondaryDamage(self,t)), damDesc(self, DamageType.NATURE, t.getSecondaryDamage(self,t))) + return ([[Your grappling hook deals %d%% unarmed damage when it hits, plus a further %0.2f physical and %0.2f nature damage over 4 turns.]]):tformat(t.getDamage(self, t)*100, damDesc(self, DamageType.PHYSICAL, t.getSecondaryDamage(self,t)), damDesc(self, DamageType.NATURE, t.getSecondaryDamage(self,t))) end, info = function(self, t) return ([[Your grappling hook is tipped with vicious, venomous barbs. Creatures struck by it will be hit for %d%% unarmed damage, bleed for %0.2f physical damage and be poisoned for %0.2f nature damage over 4 turns.]]): - format(t.getDamage(self, t)*100, damDesc(self, DamageType.PHYSICAL, t.getSecondaryDamage(self,t)), damDesc(self, DamageType.NATURE, t.getSecondaryDamage(self,t))) + tformat(t.getDamage(self, t)*100, damDesc(self, DamageType.PHYSICAL, t.getSecondaryDamage(self,t)), damDesc(self, DamageType.NATURE, t.getSecondaryDamage(self,t))) end, } -- idea: Flash powder tool: Set off a bright flash with smoke and "phase-door" to a nearby spot. Mastery: triggers stealth and makes NPC's in LOS lose track. diff --git a/game/modules/tome/data/talents/cunning/called-shots.lua b/game/modules/tome/data/talents/cunning/called-shots.lua index 729a57318e68c7a30b56c1c0f12a8525bc5c3cba..23518333285f51e2bf1dd6f72beda4b6590e5212 100644 --- a/game/modules/tome/data/talents/cunning/called-shots.lua +++ b/game/modules/tome/data/talents/cunning/called-shots.lua @@ -110,7 +110,7 @@ newTalent { return ([[Strike your opponent in the knee (or other critical point in an ambulatory appendage) for %d%% weapon damage, knocking them down (%d turn pin) and slowing their movement by %d%% for %d turns afterwards. This shot will bypass other enemies between you and your target. The slow effect becomes more powerful with your Cunning.]]) - :format(t.damage_multiplier(self, t) * 100, + :tformat(t.damage_multiplier(self, t) * 100, t.pin_duration(self, t), t.slow_power(self, t) * 100, t.slow_duration(self, t)) @@ -180,7 +180,7 @@ newTalent { This shot is focused on precision at long range and deals base %d%% ranged damage with a bonus that increases with distance. The ranged bonus is %d%% (penalty) at point blank range, while at your maximum range of %d it is %d%%. This shot will bypass other enemies between you and your target.]]) - :format(t.damage_multiplier(self, t) * 100, t.getDistanceBonus(self, t, 1)*100, range, t.getDistanceBonus(self, t, range)*100) + :tformat(t.damage_multiplier(self, t) * 100, t.getDistanceBonus(self, t, 1)*100, range, t.getDistanceBonus(self, t, range)*100) end, } @@ -219,7 +219,7 @@ newTalent { Each shot deals %d%% Ranged damage and will try to stun or increase the target's stun duration by 1. These shots will bypass other enemies between you and your target. The chance to stun increases with your Accuracy.]]) - :format(t.damage_multiplier(self, t) * 100) + :tformat(t.damage_multiplier(self, t) * 100) end, } @@ -234,7 +234,7 @@ newTalent { info = function(self, t) local bonuses = sniper_bonuses(self, true) return ([[Your mastery of called shots is unparalleled. and you gain %d%% bonus critical chance and %d%% critical damage with your Called Shots Talents. At rank 3 the cooldowns of all of your Called Shots Talents are reduced by 2 each. At rank 5 you gain %d%% Physical resistance penetration with all Called Shot attacks.]]) - :format(bonuses.crit_chance, + :tformat(bonuses.crit_chance, bonuses.crit_power * 100, bonuses.resists_pen[DamageType.PHYSICAL]) end diff --git a/game/modules/tome/data/talents/cunning/cunning.lua b/game/modules/tome/data/talents/cunning/cunning.lua index 744f5bf80c65f0d93364b25619fd60a2f7c0b97d..44ad6f30cfc7d795e25f36c2e226cddcc5c2edcf 100644 --- a/game/modules/tome/data/talents/cunning/cunning.lua +++ b/game/modules/tome/data/talents/cunning/cunning.lua @@ -18,21 +18,21 @@ -- darkgod@te4.org -- Cunning talents -newTalentType{ allow_random=true, type="cunning/stealth-base", name = "stealth", description = "Allows the user to enter stealth." } -newTalentType{ allow_random=true, type="cunning/stealth", name = "stealth", description = "Allows the user to enter stealth." } -newTalentType{ allow_random=true, type="cunning/trapping", name = "trapping", description = "The knowledge of trap laying and assorted trickeries." } -newTalentType{ allow_random=true, type="cunning/traps", name = "traps", description = "Collection of known traps." } -newTalentType{ allow_random=true, type="cunning/poisons", name = "poisons", description = "The knowledge of poisons and how to apply them to 'good' effects." } -newTalentType{ allow_random=true, type="cunning/poisons-effects", name = "poisons", description = "Collection of known poisons." } -newTalentType{ allow_random=true, type="cunning/dirty", name = "dirty fighting", description = "Teaches various talents to cripple your foes." } -newTalentType{ allow_random=true, type="cunning/lethality", generic = true, name = "lethality", description = "How to make your foes feel the pain." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="cunning/shadow-magic", name = "shadow magic", description = "Blending magic and shadows." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="cunning/ambush", name = "ambush", min_lev = 10, description = "Using darkness and a bit of magic, you manipulate the shadows." } -newTalentType{ allow_random=true, type="cunning/survival", name = "survival", generic = true, description = "The knowledge of the dangers of the world, and how to best avoid them." } -newTalentType{ allow_random=true, type="cunning/tactical", name = "tactical", description = "Tactical combat abilities." } -newTalentType{ allow_random=true, type="cunning/scoundrel", name = "scoundrel", generic = true, description = "The use of ungentlemanly techniques." } -newTalentType{ allow_random=true, type="cunning/artifice", name = "artifice", min_lev = 10, description = "Create and use cunning tools." } -newTalentType{ allow_random=true, type="cunning/tools", name = "tools", description = "Artificer's tools." } +newTalentType{ allow_random=true, type="cunning/stealth-base", name = _t"stealth", description = _t"Allows the user to enter stealth." } +newTalentType{ allow_random=true, type="cunning/stealth", name = _t"stealth", description = _t"Allows the user to enter stealth." } +newTalentType{ allow_random=true, type="cunning/trapping", name = _t"trapping", description = _t"The knowledge of trap laying and assorted trickeries." } +newTalentType{ allow_random=true, type="cunning/traps", name = _t"traps", description = _t"Collection of known traps." } +newTalentType{ allow_random=true, type="cunning/poisons", name = _t"poisons", description = _t"The knowledge of poisons and how to apply them to 'good' effects." } +newTalentType{ allow_random=true, type="cunning/poisons-effects", name = _t"poisons", description = _t"Collection of known poisons." } +newTalentType{ allow_random=true, type="cunning/dirty", name = _t"dirty fighting", description = _t"Teaches various talents to cripple your foes." } +newTalentType{ allow_random=true, type="cunning/lethality", generic = true, name = _t"lethality", description = _t"How to make your foes feel the pain." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="cunning/shadow-magic", name = _t"shadow magic", description = _t"Blending magic and shadows." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="cunning/ambush", name = _t"ambush", min_lev = 10, description = _t"Using darkness and a bit of magic, you manipulate the shadows." } +newTalentType{ allow_random=true, type="cunning/survival", name = _t"survival", generic = true, description = _t"The knowledge of the dangers of the world, and how to best avoid them." } +newTalentType{ allow_random=true, type="cunning/tactical", name = _t"tactical", description = _t"Tactical combat abilities." } +newTalentType{ allow_random=true, type="cunning/scoundrel", name = _t"scoundrel", generic = true, description = _t"The use of ungentlemanly techniques." } +newTalentType{ allow_random=true, type="cunning/artifice", name = _t"artifice", min_lev = 10, description = _t"Create and use cunning tools." } +newTalentType{ allow_random=true, type="cunning/tools", name = _t"tools", description = _t"Artificer's tools." } -- Skirmisher newTalentType { diff --git a/game/modules/tome/data/talents/cunning/dirty.lua b/game/modules/tome/data/talents/cunning/dirty.lua index b2baca96002ca0f2f36a58417342f9a755da77a6..1ee4a727ca0c232c04990a7e273304f6085b1fed 100644 --- a/game/modules/tome/data/talents/cunning/dirty.lua +++ b/game/modules/tome/data/talents/cunning/dirty.lua @@ -54,7 +54,7 @@ newTalent{ local power = t.getPower(self,t) return ([[You make a low blow against a sensitive point on the target, dealing %d%% unarmed damage. If your attack hits, the target is left reeling and vulnerable, reducing their physical save by %d and their stun, blind, confusion and pin immunities to 50%% of normal for %d turns. This effect bypasses saves.]]): - format(100 * damage, power, duration) + tformat(100 * damage, power, duration) end, } @@ -106,7 +106,7 @@ newTalent{ For this purpose, disabling effects are stun, blind, daze, confuse, pin, disarm, cripple and silence. In addition, for each disabling effect the target is under, your melee attacks have a %d%% (to a maximum of %d%%) chance to inflict a new effect on them (that they do not already have): either disarm, cripple (25%% power) or pin for 2 turns. The chance to further disable the target increases with your Accuracy.]]): - format(dam, dam*3, chance, chance*3) + tformat(dam, dam*3, chance, chance*3) end, } @@ -143,7 +143,7 @@ newTalent{ local speed = t.getSlow(self,t) local duration = t.getDuration(self, t) return ([[Throw a cloud of blinding dust in a radius %d cone. Enemies within will be blinded, as well as having their accuracy reduced by %d and movement speed decreased by %d%% for %d turns. - The chance to inflict these effects increase with your Accuracy.]]):format(self:getTalentRadius(t), accuracy, speed, duration) + The chance to inflict these effects increase with your Accuracy.]]):tformat(self:getTalentRadius(t), accuracy, speed, duration) end, } @@ -218,6 +218,6 @@ newTalent{ local dur = t.getDuration(self, t) local nb = t.getDebuffs(self, t) return ([[Make a painful strike dealing %d%% weapon damage that increases the duration of up to %d negative effect(s) on the target by %d turns. For each negative effect extended this way, the duration of a beneficial effect is reduced by the same amount, possibly canceling it.]]): - format(100 * damage, nb, dur) + tformat(100 * damage, nb, dur) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/cunning/lethality.lua b/game/modules/tome/data/talents/cunning/lethality.lua index 82b3e5859603ea676e5b0fdacb642c2f002c7c83..9629cf7e30c4830687bf5bf1b3c5200b328b9a97 100644 --- a/game/modules/tome/data/talents/cunning/lethality.lua +++ b/game/modules/tome/data/talents/cunning/lethality.lua @@ -34,7 +34,7 @@ newTalent{ local power = t.critpower(self, t) return ([[You have learned to find and hit weak spots. All your strikes have a %0.1f%% greater chance to be critical hits, and your critical hits do %0.1f%% more damage. Also, when using knives and throwing knives, you now use your Cunning instead of your Strength for bonus damage.]]): - format(critchance, power) + tformat(critchance, power) end, } @@ -79,7 +79,7 @@ newTalent{ For %d turns thereafter, you gain %d armor penetration, %d accuracy, and %d%% all damage peneration. Learning this technique allows you to permanently gain %d armour penetration with all melee and archery attacks. The temporary armor penetration and accuracy bonuses increase with Cunning.]]): - format(100 * damage, duration, t.getAPRBuff(self, t), t.getAccuracy(self, t), t.getPenetration(self, t), t.getAPR(self, t)) + tformat(100 * damage, duration, t.getAPRBuff(self, t), t.getAccuracy(self, t), t.getPenetration(self, t), t.getAPR(self, t)) end, } @@ -135,7 +135,7 @@ newTalent{ end, info = function(self, t) return ([[Become a whirling storm of blades, increasing attack speed by %d%% and causing melee attacks to strike an additional adjacent target other than your primary target for %d%% weapon damage. -This talent is exhausting to use, draining 4 stamina each turn.]]):format(t.getSpeed(self, t)*100, t.getDamage(self,t)*100) +This talent is exhausting to use, draining 4 stamina each turn.]]):tformat(t.getSpeed(self, t)*100, t.getDamage(self,t)*100) end, } @@ -173,6 +173,6 @@ newTalent{ local talentcount = t.getTalentCount(self, t) local maxlevel = t.getMaxLevel(self, t) return ([[Your quick wits allow you to reset the cooldown of up to %d of your combat talents (cunning or technique) of tier %d or less.]]): - format(talentcount, maxlevel) + tformat(talentcount, maxlevel) end, } diff --git a/game/modules/tome/data/talents/cunning/poisons.lua b/game/modules/tome/data/talents/cunning/poisons.lua index 68135dfd37c6b66a74a570a28ec27d71de823248..ed2463479e5c18208bdc5359fe15f162c19c96ff 100644 --- a/game/modules/tome/data/talents/cunning/poisons.lua +++ b/game/modules/tome/data/talents/cunning/poisons.lua @@ -186,7 +186,7 @@ newTalent{ info = function(self, t) return ([[Learn how to coat your melee weapons, throwing knives, sling and bow ammo with poison, giving your attacks a %d%% chance to poison the target for %d nature damage per turn for %d turns. Every application of the poison stacks, up to a maximum of %d nature damage per turn. The damage scales with your Cunning.]]): - format(t.getChance(self,t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.getDuration(self, t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)*4)) + tformat(t.getChance(self,t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.getDuration(self, t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)*4)) end, } @@ -226,7 +226,7 @@ newTalent{ end end, info = function(self, t) - return ([[When you kill a creature, all of your poisons affecting it will spread to foes in a radius of %d.]]):format(t.getRadius(self, t)) + return ([[When you kill a creature, all of your poisons affecting it will spread to foes in a radius of %d.]]):tformat(t.getRadius(self, t)) end, } @@ -277,7 +277,7 @@ info = function(self, t) Also increases the effectiveness of your poisons by %d%%. (The effect varies for each poison.) Adjusting your weapon coating takes no time and does not break stealth. You may only have two poison enhancements active at once; applying a third will randomly cause one of the existing ones to be cancelled.]]): - format(self:getTalentLevel(t) * 20) + tformat(self:getTalentLevel(t) * 20) end, } @@ -376,7 +376,7 @@ newTalent{ Leeching Poison - Heals you for %d. Volatile Poison - Deals a further %0.2f nature damage to foes in a radius %d ball. ]]): - format(power*100, damDesc(self, DamageType.NATURE, idam), nb, math.floor(nb*1.5), heal, damDesc(self, DamageType.NATURE, vdam), nb) + tformat(power*100, damDesc(self, DamageType.NATURE, idam), nb, math.floor(nb*1.5), heal, damDesc(self, DamageType.NATURE, vdam), nb) end, info = function(self, t) local dam = 100 * t.getDamage(self,t) @@ -386,7 +386,7 @@ newTalent{ %s Learning this talent in addition to the Throwing Knives talent allows you to learn the Venomous Throw talent, which can be used to throw poisoned daggers at your foes, but is put on cooldown when this talent is used. ]]): - format(dam, desc) + tformat(dam, desc) end, } @@ -422,7 +422,7 @@ newTalent{ end, info = function(self, t) return ([[Enhances your Deadly Poison with a numbing agent, causing the poison to reduce all damage the target deals by %d%%.]]): - format(t.getEffect(self, t)) + tformat(t.getEffect(self, t)) end, } @@ -454,7 +454,7 @@ newTalent{ end, info = function(self, t) return ([[Enhances your Deadly Poison with an insidious agent, causing it to reduce the healing taken by enemies by %d%%.]]): - format(t.getEffect(self, t)) + tformat(t.getEffect(self, t)) end } @@ -486,7 +486,7 @@ newTalent{ end, info = function(self, t) return ([[Enhances your Deadly Poison with a crippling agent, giving enemies a %d%% chance on using a talent to fail and lose a turn.]]): - format(t.getEffect(self, t)) + tformat(t.getEffect(self, t)) end, } @@ -518,7 +518,7 @@ newTalent{ end, info = function(self, t) return ([[Enhances your Deadly Poison with a leeching agent, causing it to heal you for %d%% of the damage it does to its target.]]): - format(t.getEffect(self, t)) + tformat(t.getEffect(self, t)) end, } @@ -555,7 +555,7 @@ newTalent{ end, info = function(self, t) return ([[Enhances your Deadly Poison with a volatile agent, causing the poison to deal %d%% increased damage to the victim and damage all of your enemies adjacent to it for 50%%.]]): - format(t.getEffect(self, t)) + tformat(t.getEffect(self, t)) end, } @@ -569,7 +569,7 @@ newTalent{ getDamage = function(self, t) return self:combatStatScale("mag", 20, 50, 0.75) end, info = function(self, t) return ([[Whenever you apply Deadly Poison, you also apply an unresistable magical poison dealing %0.2f arcane damage (based on your Magic) each turn. This poison reduces all damage resistance by 10%% and poison immunity by 50%%.]]): - format(damDesc(self, DamageType.ARCANE, t.getDamage(self,t))) + tformat(damDesc(self, DamageType.ARCANE, t.getDamage(self,t))) end, } @@ -630,6 +630,6 @@ newTalent{ return ([[Enhance your Deadly Poison with a stoning agent. Whenever you apply Deadly Poison, you afflict your target with an additional earth-based poison that inflicts %d nature damage per turn (stacking up to %d damage per turn) for %d turns. After either %d turns or the poison has run its course (<100%% chance, see effect description), the target will be turned to stone for %d turns. The damage scales with your Cunning.]]): - format(dam, dam*4, t.getDuration(self, t), t.stoneTime(self, t), t.getEffect(self, t)) + tformat(dam, dam*4, t.getDuration(self, t), t.stoneTime(self, t), t.getEffect(self, t)) end, } diff --git a/game/modules/tome/data/talents/cunning/scoundrel.lua b/game/modules/tome/data/talents/cunning/scoundrel.lua index c787ace46ff7e8b363125e3c4aa005ca7c45b67e..d2bb8a6c41c1f4a517953ae3c6e8a0866f34e0bc 100644 --- a/game/modules/tome/data/talents/cunning/scoundrel.lua +++ b/game/modules/tome/data/talents/cunning/scoundrel.lua @@ -48,7 +48,7 @@ newTalent{ info = function(self, t) local chance = t.getChance(self,t) return ([[Your melee and ranged attacks have a %d%% chance to shred enemies inflicting an additional 100%% of the damage dealt as a bleed over 4 turns.]]): - format(chance) + tformat(chance) end, } @@ -106,7 +106,7 @@ newTalent{ local dur = t.getDuration(self,t) return ([[Your melee and ranged attacks inflict distracting wounds that reduce the target’s critical strike multiplier by %d%% for 5 turns. In addition, your attacks have a %d%% chance to inflict a painful wound that causes them to forget a random talent for %d turns. The last effect cannot occur more than once per turn per target. - ]]):format(crit, chance, dur) + ]]):tformat(crit, chance, dur) end, } @@ -153,7 +153,7 @@ newTalent{ return ([[Your abilities in sowing confusion and chaos have reached their peak. Whenever a foe attempts to apply a detrimental physical effect to you, they have a %d%% chance to fail. If there is an adjacent enemy to you, you misdirect your foe into applying it to them at %d%% duration. You gain %d defense. The chance to apply status effects increases with your Accuracy and the Defense with your Cunning.]]): - format(t.getChance(self,t),t.getDuration(self,t), t.getDefense(self, t)) + tformat(t.getChance(self,t),t.getDuration(self,t), t.getDefense(self, t)) end, } @@ -184,6 +184,6 @@ newTalent{ If any effect causes the target's turn to fail they fumble and injure themself, taking %0.2f physical damage. If the turn loss was caused by this effect then Fumble is removed. The damage dealt increases with your Cunning. - ]]):format(stacks*3, damDesc(self, DamageType.PHYSICAL, dam)) + ]]):tformat(stacks*3, damDesc(self, DamageType.PHYSICAL, dam)) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/cunning/shadow-magic.lua b/game/modules/tome/data/talents/cunning/shadow-magic.lua index c0ff1a9f4379bb6bc202f68fc3cafbe8408d2021..8c36658b2f1b88f9062711630bfda86e3bcb50d6 100644 --- a/game/modules/tome/data/talents/cunning/shadow-magic.lua +++ b/game/modules/tome/data/talents/cunning/shadow-magic.lua @@ -51,7 +51,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Channel raw magical energy into your melee attacks; each blow you land will do an additional %.2f darkness damage. The damage will improve with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage)) + tformat(damDesc(self, DamageType.DARKNESS, damage)) end, } @@ -67,7 +67,7 @@ newTalent{ local spellpower = t.getSpellpower(self, t) local bonus = self:getCun()*spellpower/100 return ([[Your preparations give you greater magical capabilities. You gain a bonus to Spellpower equal to %d%% of your Cunning (Current bonus: %d).]]): - format(spellpower, bonus) + tformat(spellpower, bonus) end, } @@ -102,7 +102,7 @@ newTalent{ local manaregen = t.getManaRegen(self, t) return ([[You draw energy from the depths of the shadows. While sustained, you regenerate %0.2f mana per turn, and your physical and spell attack speed increases by %0.1f%%.]]): - format(manaregen, t.getAtkSpeed(self, t)) + tformat(manaregen, t.getAtkSpeed(self, t)) end, } @@ -155,6 +155,6 @@ newTalent{ return ([[Step through the shadows to your target, dazing it for %d turns and hitting it with all your weapons for %d%% darkness weapon damage. Dazed targets are significantly impaired, but any damage will free them. To Shadowstep, you need to be able to see the target.]]): - format(duration, t.getDamage(self, t) * 100) + tformat(duration, t.getDamage(self, t) * 100) end, } diff --git a/game/modules/tome/data/talents/cunning/stealth.lua b/game/modules/tome/data/talents/cunning/stealth.lua index 14d796c295af8cd41ff84d3bdcb28d1a5d15a74b..09cd1fc82ad155fe0716a4ad1e0fedc6de9a4640 100644 --- a/game/modules/tome/data/talents/cunning/stealth.lua +++ b/game/modules/tome/data/talents/cunning/stealth.lua @@ -141,7 +141,7 @@ newTalent{ info = function(self, t) local stealthpower = t.getStealthPower(self, t) + (self:attr("inc_stealth") or 0) local radius, rad_dark = t.getRadius(self, t, true) - xs = rad_dark ~= radius and (" (range %d in an unlit grid)"):format(rad_dark) or "" + xs = rad_dark ~= radius and (" (range %d in an unlit grid)"):tformat(rad_dark) or "" return ([[Enters stealth mode (power %d, based on Cunning), making you harder to detect. If successful (re-checked each turn), enemies will not know exactly where you are, or may not notice you at all. Stealth reduces your light radius to 0, increases your infravision by 3, and will not work with heavy or massive armours. @@ -150,7 +150,7 @@ newTalent{ Enemies uncertain of your location will still make educated guesses at it. While stealthed, enemies cannot share information about your location with each other and will be delayed in telling their allies that you exist at all.]]): - format(stealthpower, radius, xs) + tformat(stealthpower, radius, xs) end, } @@ -172,7 +172,7 @@ newTalent{ return ([[You know how to make the most out of being unseen. When striking from stealth, your attacks are automatically critical if the target does not notice you just before you land it. (Spell and mind attacks critically strike even if the target notices you.) Your critical multiplier against targets that cannot see you is increased by up to %d%%. (You must be able to see your target and the bonus is reduced from its full value at range 3 to 0 at range 10.) - Also, after exiting stealth for any reason, the critical multiplier persists for %d turns (with no range limitation).]]):format(multiplier, dur) + Also, after exiting stealth for any reason, the critical multiplier persists for %d turns (with no range limitation).]]):tformat(multiplier, dur) end, } @@ -193,7 +193,7 @@ newTalent{ return ([[You have a special affinity for darkness and shadows. When standing in an unlit grid, the minimum range to your foes for activating stealth or for maintaining it after a Shadow Dance is reduced by %d. While stealthed, your life regeneration is increased by %0.1f (based on your Cunning) and your stamina regeneration is increased by %0.1f. The regeneration effects persist for %d turns after exiting stealth, with 5 times the normal rate.]]): - format(t.getRadius(self, t, true), t.getLife(self,t), t.getStamina(self,t), t.getDuration(self, t)) + tformat(t.getRadius(self, t, true), t.getLife(self,t), t.getStamina(self,t), t.getDuration(self, t)) end, } @@ -220,6 +220,6 @@ newTalent{ info = function(self, t) return ([[Your mastery of stealth allows you to vanish from sight at any time. You automatically enter stealth and cause it to not break from unstealthy actions for %d turns.]]): - format(t.getDuration(self, t)) + tformat(t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/cunning/survival.lua b/game/modules/tome/data/talents/cunning/survival.lua index 019890fd17febd4dee90accc36c4c7e1dbb9a848..082c531a9c71fea5558d2e69e94043911de33e04 100644 --- a/game/modules/tome/data/talents/cunning/survival.lua +++ b/game/modules/tome/data/talents/cunning/survival.lua @@ -44,7 +44,7 @@ newTalent{ This is not telepathy, however, and it is still limited to line of sight. Also, your attention to detail increases stealth detection and invisibility detection by %d, and you gain the ability to detect traps (+%d detect 'power'). The detection abilities improve with Cunning.]]): - format(t.sense(self,t), t.seePower(self,t), t.trapDetect(self, t)) + tformat(t.sense(self,t), t.seePower(self,t), t.trapDetect(self, t)) end, } @@ -70,7 +70,7 @@ newTalent{ info = function(self, t) return ([[Your cunning manipulations allow you to use charms (wands, totems and torques) more efficiently, reducing their cooldowns and the power cost of all usable items by %d%%. In addition your knowledge of devices allows you to disarm known traps (%d disarm 'power', improves with Cunning).]]): - format(t.cdReduc(self, t), t.trapDisarm(self, t)) + tformat(t.cdReduc(self, t), t.trapDisarm(self, t)) end, } @@ -96,7 +96,7 @@ newTalent{ info = function(self, t) local rad = self:getTalentRadius(t) return ([[Sense foes around you in a radius of %d for %d turns. - The radius will increase with your Cunning.]]):format(rad, t.getDuration(self, t)) + The radius will increase with your Cunning.]]):tformat(rad, t.getDuration(self, t)) end, } @@ -134,7 +134,7 @@ newTalent{ Attacks against you have a %0.1f%% reduced chance to be critical hits, and damage bonuses attackers gain against you for being unseen are reduced by %d%%. You also gain an additional chance (at your normal save %+d, effective) to resist detrimental status effects that can be resisted. The detection and additional save chance improve with Cunning.]]): - format(t.trapDetect(self, t), t.critResist(self, t), t.getUnseenReduction(self, t)*100, -t.savePenalty(self, t)) + tformat(t.trapDetect(self, t), t.critResist(self, t), t.getUnseenReduction(self, t)*100, -t.savePenalty(self, t)) end, } @@ -188,7 +188,7 @@ newTalent{ local t_det, t_dis = self:attr("see_traps") or 0, tdm.trapDisarm(self, tdm) return ([[You search a nearby grid for a hidden trap (%d detection 'power') and disarm it if possible (%d disarm 'power', based on your skill with %s). Disarming a trap requires at least a minimum skill level, and you must be able to enter the trap's grid to manipulate it, though you stay in your current location. A failed attempt to disarm a trap may trigger it. - Your skill improves with your your Cunning.]]):format(t_det, t_dis, tdm.name) + Your skill improves with your your Cunning.]]):tformat(t_det, t_dis, tdm.name) end, } diff --git a/game/modules/tome/data/talents/cunning/tactical.lua b/game/modules/tome/data/talents/cunning/tactical.lua index 0096c323d493d9e373039f4170999564658876ea..819a525b72d6ac397160d24813ebcc43c8bfe25e 100644 --- a/game/modules/tome/data/talents/cunning/tactical.lua +++ b/game/modules/tome/data/talents/cunning/tactical.lua @@ -56,7 +56,7 @@ newTalent{ local defense = t.getDefense(self, t) local maximum = t.getMaximum(self, t) return ([[Your Defense is increased by %d for every adjacent visible foe, up to a maximum of +%d Defense. - The Defense increase per enemy and maximum Defense bonus will scale with your Cunning.]]):format(defense, maximum) + The Defense increase per enemy and maximum Defense bonus will scale with your Cunning.]]):tformat(defense, maximum) end, } @@ -112,7 +112,7 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[When you avoid a melee blow from an adjacent foe, you have a %d%% chance to get a free, automatic melee attack against the attacker for %d%% damage, up to %0.1f times per turn. Unarmed fighters using it will also attempt to throw the target to the ground if the attack lands, dazing them for 2 turns or stunning them for 2 turns if the target is grappled. - The chance of countering and number of counter attacks increase with your Cunning.]]):format(t.counterchance(self,t), damage, t.getCounterAttacks(self, t)) + The chance of countering and number of counter attacks increase with your Cunning.]]):tformat(t.counterchance(self,t), damage, t.getCounterAttacks(self, t)) end, } @@ -139,7 +139,7 @@ newTalent{ local defense = t.getDefense(self, t) return ([[Increases Defense by %d for %d turns. When you avoid a melee blow, you set the target up, increasing the chance of you landing a critical strike on them by %d%% and reducing their saving throws by %d. The effects will scale with your Cunning.]]) - :format(defense, duration, power, power) + :tformat(defense, duration, power, power) end, } @@ -169,6 +169,6 @@ newTalent{ info = function(self, t) local reduction = t.getReductionMax(self, t) return ([[Systematically find the weaknesses in your opponents' physical resists, at the cost of 10%% of your physical damage. Each time you hit an opponent with a melee attack, you reduce their physical resistance by 5%%, up to a maximum of %d%%. - ]]):format(reduction) + ]]):tformat(reduction) end, } diff --git a/game/modules/tome/data/talents/cunning/traps.lua b/game/modules/tome/data/talents/cunning/traps.lua index fe885d829cf1255741c7c728120167c585c8050c..d3175762ae7292cfa5252529c982ce57f4c57b9d 100644 --- a/game/modules/tome/data/talents/cunning/traps.lua +++ b/game/modules/tome/data/talents/cunning/traps.lua @@ -136,7 +136,7 @@ local function trap_ai_coords(self, t, tx, ty, tg, defense) end local range = tg.range or self:getTalentRange(t) local tgt_dist = core.fov.distance(self.x, self.y, tx, ty) - print(("%s advanced trap placement targeting grid (%s, %s) range/dist:%d/%d (defense:%s)"):format(self.name, tx, ty, range, tgt_dist, defense)) + print(("%s advanced trap placement targeting grid (%s, %s) range/dist:%d/%d (defense:%s)"):tformat(self.name, tx, ty, range, tgt_dist, defense)) -- heuristic: abort if target too far away if tgt_dist > range and (not defense or rng.percent((tgt_dist-range-1)*30)) then print("npc trap_ai_coords: target too far to place trap, aborting", t.id, tx, ty) @@ -170,7 +170,7 @@ local function trap_ai_coords(self, t, tx, ty, tg, defense) local best_val, best_x, best_y = tgt_dist -- if projection is blocked, closest grids to target for i, grid in ipairs(grid_list) do local ok, x0, y0, px, py = self:canProject(tg, grid[1], grid[2]) - print(("# trap_ai_coords checking projection to (%d, %d): (%d, %d) ok: %s"):format(grid[1], grid[2], px, py, ok)) + print(("# trap_ai_coords checking projection to (%d, %d): (%d, %d) ok: %s"):tformat(grid[1], grid[2], px, py, ok)) if ok then return px, py elseif defense then -- closer grids may still be OK local d = core.fov.distance(grid[1], grid[2], px, py) @@ -597,7 +597,7 @@ newTalent{ end, action = function(self, t) local nb = t.getNbTraps(self,t) - local txt = ("Prepare which traps? (maximum: %d, up to tier %d)%s"):format(nb, math.min(5, self:getTalentLevelRaw(t)), self.turn_procs.free_trap_mastery and "\nGame Start: Newly prepared traps will NOT start on cooldown." or "\n#YELLOW#Newly prepared traps are put on cooldown.#LAST#") + local txt = ("Prepare which traps? (maximum: %d, up to tier %d)%s"):tformat(nb, math.min(5, self:getTalentLevelRaw(t)), self.turn_procs.free_trap_mastery and "\nGame Start: Newly prepared traps will NOT start on cooldown." or "\n#YELLOW#Newly prepared traps are put on cooldown.#LAST#") local traps_dialog = require("mod.dialogs.TrapsSelect").new("Select Prepared Traps", self, txt, t, nb, trap_mastery_tids) local traps_sel, traps_prev = self:talentDialog(traps_dialog) @@ -651,7 +651,7 @@ newTalent{ table.sort(show_traps, function(a, b) return a.tier < b.tier end) local trap_descs = "" for i, trap in ipairs(show_traps) do - trap_descs = trap_descs.."\n\t"..("%sTier %d: %s#LAST#\n%s"):format(trap.known and "#YELLOW#" or "#YELLOW_GREEN#", trap.tier, trap.name, trap.info) + trap_descs = trap_descs.."\n\t"..("%sTier %d: %s#LAST#\n%s"):tformat(trap.known and "#YELLOW#" or "#YELLOW_GREEN#", trap.tier, trap.name, trap.info) end self.turn_procs.trap_mastery_tid = nil return ([[This talent allows you to prepare up to %d different trap(s) of tier %d or less for later deployment. (Use this ability to select which to prepare.) @@ -662,7 +662,7 @@ newTalent{ You are immune to the damage and negative effects of your traps, and traps may critically strike based on your physical crit chance. Most traps last %d turns if not triggered, and refund 80%% of their stamina cost on expiration. More designs may be discovered via disarming or learned from special instructors in the world.]]): - format(t.getNbTraps(self, t), math.min(5, self:getTalentLevelRaw(t)), trap_descs, detect_power, disarm_power, t.getTrapMastery(self, t), stealth_chance, t.getDuration(self, t)) + tformat(t.getNbTraps(self, t), math.min(5, self:getTalentLevelRaw(t)), trap_descs, detect_power, disarm_power, t.getTrapMastery(self, t), stealth_chance, t.getDuration(self, t)) end, } @@ -749,7 +749,7 @@ newTalent{ return ([[Deploy a noisy lure that attracts all creatures within radius %d to it for %d turns. It has %d life (based on your Cunning) and is very durable, with %d armor and %d%% resistance to non-physical damage. At level 5, when the lure is destroyed, it will trigger some traps in a radius of 2 around it (check individual trap descriptions to see if they are triggered). - Use of this talent will not break stealth.]]):format(rad, t.getDuration(self,t), t.getLife(self, t), t.getArmor(self, t), t.getResist(self, t)) + Use of this talent will not break stealth.]]):tformat(rad, t.getDuration(self,t), t.getLife(self, t), t.getArmor(self, t), t.getResist(self, t)) end, } @@ -763,7 +763,7 @@ newTalent{ trapStealth = function(self, t) return math.min(25, self:getTalentLevel(t)) end, info = function(self, t) return ([[You learn new techniques for setting traps. - Deploying one of your traps is possible up to %d grids from you, takes %d%% less time than normal, and has %d%% less chance to break stealth.]]):format(trap_range(self, t), (1 - t.trapSpeed(self, t))*100, t.trapStealth(self, t)) + Deploying one of your traps is possible up to %d grids from you, takes %d%% less time than normal, and has %d%% less chance to break stealth.]]):tformat(trap_range(self, t), (1 - t.trapSpeed(self, t))*100, t.trapStealth(self, t)) end, } @@ -838,7 +838,7 @@ newTalent{ table.sort(show_traps, function(a, b) return a.tier < b.tier end) local trap_descs = "" for i, trap in ipairs(show_traps) do - trap_descs = trap_descs.."\n\t"..("%sTier %d: %s#LAST#\n%s"):format(trap.instant and "#YELLOW#" or "#YELLOW_GREEN#", trap.tier, trap.name, trap.info) + trap_descs = trap_descs.."\n\t"..("%sTier %d: %s#LAST#\n%s"):tformat(trap.instant and "#YELLOW#" or "#YELLOW_GREEN#", trap.tier, trap.name, trap.info) end return ([[You prepare an additional trap (up to tier %d) with a special primed trigger that causes it to activate immediately when deployed. (Use this ability to select the trap.) Not all traps can be prepared this way and each trap can have only one type of preparation. @@ -847,7 +847,7 @@ newTalent{ A trap with a primed trigger gains %+d%% effectiveness (replacing the normal bonus from Trap Mastery) and won't break stealth %d%% of the time. #YELLOW#Current primed trap: %s#LAST#]]): - format(self:getTalentLevelRaw(t), trap_descs, mastery, stealth_chance, instant) + tformat(self:getTalentLevelRaw(t), trap_descs, mastery, stealth_chance, instant) end, } @@ -922,7 +922,7 @@ newTalent{ end, short_info = function(self, t) return ([[Shrapnel (radius 2) deals %0.2f physical damage, reduces accuracy, armour, and defence by %d.]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getPower(self,t)) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getPower(self,t)) end, info = function(self, t) local dam = t.getDamage(self, t) @@ -930,7 +930,7 @@ newTalent{ local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" return ([[Lay a pressure triggered trap that explodes into a radius 2 wave of razor sharp wire, doing %0.2f physical damage. Those struck by the wire may be shredded, reducing accuracy, armor and defence by %d. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(damDesc(self, DamageType.PHYSICAL, dam), power, instant) + tformat(damDesc(self, DamageType.PHYSICAL, dam), power, instant) end, } @@ -988,12 +988,12 @@ newTalent{ end, short_info = function(self, t) local dam = damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)) - return ([[Deals %0.2f physical damage and pins, slows (30%%), and wounds for an additional %0.2f damage over 5 turns).]]):format(dam, dam) + return ([[Deals %0.2f physical damage and pins, slows (30%%), and wounds for an additional %0.2f damage over 5 turns).]]):tformat(dam, dam) end, info = function(self, t) local dam = damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)) local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" - return ([[Lay a pressure triggered bear trap that snaps onto the first creature passing over it. Victims are dealt %0.2f physical damage and become snared (pinned and slowed 30%%) and wounded for %0.2f bleeding damage over 5 turns. Creatures that avoid being snared still suffer bleeding damage.%s]]):format(dam, dam, instant) + return ([[Lay a pressure triggered bear trap that snaps onto the first creature passing over it. Victims are dealt %0.2f physical damage and become snared (pinned and slowed 30%%) and wounded for %0.2f bleeding damage over 5 turns. Creatures that avoid being snared still suffer bleeding damage.%s]]):tformat(dam, dam, instant) end, } @@ -1046,11 +1046,11 @@ newTalent{ end, short_info = function(self, t) return ([[Deals %0.2f acid damage, disarms for %d turns.]]): - format(damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getDuration(self, t)) + tformat(damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getDuration(self, t)) end, info = function(self, t) return ([[Lay a tricky trap that maims creatures passing by with acid doing %0.2f damage and disarming them for %d turns.]]): - format(damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getDuration(self, t)) + tformat(damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getDuration(self, t)) end, } @@ -1163,12 +1163,12 @@ newTalent{ return true end, short_info = function(self, t) - return ([[Deals %0.2f physical damage. Target removed from combat or pinned 5 turns.]]):format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + return ([[Deals %0.2f physical damage. Target removed from combat or pinned 5 turns.]]):tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, info = function(self, t) return ([[Lay a pressure triggered trap that collapses the ground under the target, dealing %0.2f physical damage while burying them (removing from combat) for 5 turns. Victims may resist being buried, in which case they are pinned (ignores 50%% pin immunity) instead.]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -1243,13 +1243,13 @@ newTalent{ return true end, short_info = function(self, t) - return ([[Explodes (radius 2) for %0.2f physical damage, 50%% blind/daze for %d turns.]]):format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDuration(self, t)) + return ([[Explodes (radius 2) for %0.2f physical damage, 50%% blind/daze for %d turns.]]):tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDuration(self, t)) end, info = function(self, t) local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" return ([[Lay a trap that explodes in a radius of 2, dealing %0.2f physical damage and blinding and dazing (50%% chance of each) any creature caught inside for %d turns. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDuration(self, t), instant) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDuration(self, t), instant) end, } @@ -1296,10 +1296,10 @@ newTalent{ return true end, short_info = function(self, t) - return ([[Construct attacks all adjacent enemies each turn for %d turns.]]):format(t.getDuration(self, t)) + return ([[Construct attacks all adjacent enemies each turn for %d turns.]]):tformat(t.getDuration(self, t)) end, info = function(self, t) - return ([[Lay a trap that activates a lethal contraption of whirling blades, lasting %d turns. This stationary construct is very durable, receives your damage bonuses, and automatically attacks all adjacent enemies each turn.]]):format(t.getDuration(self,t)) + return ([[Lay a trap that activates a lethal contraption of whirling blades, lasting %d turns. This stationary construct is very durable, receives your damage bonuses, and automatically attacks all adjacent enemies each turn.]]):tformat(t.getDuration(self,t)) end, } @@ -1373,14 +1373,14 @@ newTalent{ end, short_info = function(self, t) return ([[Fires a beam (range 5) at a foe each turn for %0.2f arcane damage. Lasts %d turns.]]): - format(damDesc(self, DamageType.ARCANE, t.getDamage(self, t)), t.getDuration(self, t)) + tformat(damDesc(self, DamageType.ARCANE, t.getDamage(self, t)), t.getDuration(self, t)) end, info = function(self, t) local dam = t.getDamage(self, t) local dur = t.getDuration(self,t) return ([[Lay a magical trap that fires a beam of arcane energy at a random foe (within range 5) each turn for %d turns, inflicting %0.2f arcane damage. This trap requires 20 Magic to prepare and does not refund stamina when it expires. -#YELLOW#Activates immediately when placed.#LAST#]]):format(dur, damDesc(self, DamageType.ARCANE, dam)) +#YELLOW#Activates immediately when placed.#LAST#]]):tformat(dur, damDesc(self, DamageType.ARCANE, dam)) end, } @@ -1454,14 +1454,14 @@ newTalent{ return true end, short_info = function(self, t) - return ([[Releases a radius 3 poison gas cloud, poisoning for %0.2f nature damage over 5 turns with a 25%% for enhanced effects.]]):format(damDesc(self, DamageType.POISON, t.getDamage(self, t))) + return ([[Releases a radius 3 poison gas cloud, poisoning for %0.2f nature damage over 5 turns with a 25%% for enhanced effects.]]):tformat(damDesc(self, DamageType.POISON, t.getDamage(self, t))) end, info = function(self, t) local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" return ([[Lay a trap that releases a radius 3 cloud of thick poisonous gas lasting 4 turns. Each turn, the cloud poisons all within (%0.2f nature damage over 5 turns). There is a 25%% chance the poison is enhanced with crippling, numbing or insidious effects. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(damDesc(self, DamageType.POISON, t.getDamage(self, t)), instant) + tformat(damDesc(self, DamageType.POISON, t.getDamage(self, t)), instant) end, } @@ -1541,7 +1541,7 @@ newTalent{ end, short_info = function(self, t) local dam = damDesc(self, DamageType.COLD, t.getDamage(self, t)) - return ([[Explodes (radius 2): Deals %0.2f cold damage and pins for 3 turns. Area freezes (%0.2f cold damage, 25%% freeze chance) for 5 turns.]]):format(dam, dam/3) + return ([[Explodes (radius 2): Deals %0.2f cold damage and pins for 3 turns. Area freezes (%0.2f cold damage, 25%% freeze chance) for 5 turns.]]):tformat(dam, dam/3) end, info = function(self, t) local dam = damDesc(self, DamageType.COLD, t.getDamage(self, t)) @@ -1549,7 +1549,7 @@ newTalent{ return ([[Lay a trap that explodes into a radius 2 cloud of freezing vapour when triggered. Foes take %0.2f cold damage and are pinned for 3 turns. The freezing vapour persists for 5 turns, dealing %0.2f cold damage each turn to foes with a 25%% chance to freeze. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(dam, dam/3, instant) + tformat(dam, dam/3, instant) end, } @@ -1636,7 +1636,7 @@ newTalent{ end, short_info = function(self, t) dam = damDesc(self, DamageType.FIRE, t.getDamage(self, t)) - return ([[Explodes (radius 2): stuns and combusts for %0.2f fire damage per turn for 3 turns. Area deflagrates (%0.2f fire damage) for 5 turns.]]):format(dam/3, dam/2) + return ([[Explodes (radius 2): stuns and combusts for %0.2f fire damage per turn for 3 turns. Area deflagrates (%0.2f fire damage) for 5 turns.]]):tformat(dam/3, dam/2) end, info = function(self, t) local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" @@ -1644,7 +1644,7 @@ newTalent{ return ([[Lay a pressure triggered trap that explodes in a radius 2 cloud of searing flames when triggered, stunning foes with the blast (%0.2f fire damage per turn) for 3 turns. The deflagration persists in the area for 5 turns, burning foes for %0.2f fire damage each turn. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(dam/3, dam/2, instant) + tformat(dam/3, dam/2, instant) end, } @@ -1757,14 +1757,14 @@ newTalent{ end, short_info = function(self, t) return ([[Creates a radius 5 gravitic anomaly lasting up to %d turns. Hostile creatures are dealt %d temporal damgae and pulled in. Triggers out to range 1.]]): - format(t.getDuration(self,t), damDesc(self, engine.DamageType.TEMPORAL, t.getDamage(self, t))) + tformat(t.getDuration(self,t), damDesc(self, engine.DamageType.TEMPORAL, t.getDamage(self, t))) end, info = function(self, t) return ([[Lay a trap that creates a radius 5 gravitic anomaly when triggered by foes approaching within range 1. Each turn, the anomaly deals %0.2f temporal damage (based on your Magic) to foes whle pulling them towards its center (chance increases with your combat accuracy or spell power, whichever is higher). Each anomaly lasts %d turns (up to the amount of time since the last anomaly dissipated, based on your Trap Mastery skill). The trap may trigger more than once, but requires at least 2 turns to recharge between activations. This design does not require advanced preparation to use.]]): - format(damDesc(self, engine.DamageType.TEMPORAL, t.getDamage(self, t)), t.getDuration(self,t)) + tformat(damDesc(self, engine.DamageType.TEMPORAL, t.getDamage(self, t)), t.getDuration(self,t)) end, } @@ -1818,13 +1818,13 @@ newTalent{ return true end, short_info = function(self, t) - return ([[3 stealthed rogues attack the target for %d turns.]]):format(t.getDuration(self,t)) + return ([[3 stealthed rogues attack the target for %d turns.]]):tformat(t.getDuration(self,t)) end, info = function(self, t) return ([[Lay a magical trap that summons a trio of shadowy rogues to attack the target. The rogues receive your damage bonuses and are permanently stealthed. They disappear after %d turns or when their work is done.]]): - format(t.getDuration(self,t)) + tformat(t.getDuration(self,t)) end, } @@ -1943,7 +1943,7 @@ newTalent{ local dur = t.getDuration(self,t) local nb = t.getNb(self,t) return ([[Radius 2 antimagic: Drains up to %d mana, %d vim, %d positive/negative, deals up to %0.2f arcane damage. Removes %d magical effects and silences for %d turns.]]): - format(base, base/2, base/4, damDesc(self, DamageType.ARCANE, base), nb, dur) + tformat(base, base/2, base/4, damDesc(self, DamageType.ARCANE, base), nb, dur) end, info = function(self, t) local base = t.getDamage(self,t) @@ -1957,7 +1957,7 @@ newTalent{ return ([[Lay a trap that releases a burst of antimagic energies (radius 2), draining up to %d mana, %d vim, %d positive and %d negative energies from affected targets, while inflicting up to %0.2f arcane damage based on the resources drained, silencing for %d turns, and removing up to %d beneficial magical effects or sustains. The draining effect scales with your Willpower, and you must have 25 Willpower to prepare this trap. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(mana, vim, positive, negative, damDesc(self, DamageType.ARCANE, base), dur, nb, instant) + tformat(mana, vim, positive, negative, damDesc(self, DamageType.ARCANE, base), dur, nb, instant) end, } @@ -2026,13 +2026,13 @@ newTalent{ end, short_info = function(self, t) return ([[Explodes (radius 2) for %0.2f fire damage over 3 turns.]]): - format(damDesc(self, DamageType.FIRE, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.FIRE, t.getDamage(self, t))) end, info = function(self, t) local instant = self.trap_primed == t.id and "\n#YELLOW#Triggers immediately when placed.#LAST#" or "" return ([[Lay a simple yet effective trap that explodes in a radius 2 on contact, setting those affected on fire for %0.2f fire damage over 3 turns. This trap can use a primed trigger and a high level lure can trigger it.%s]]): - format(damDesc(self, DamageType.FIRE, t.getDamage(self, t)), instant) + tformat(damDesc(self, DamageType.FIRE, t.getDamage(self, t)), instant) end, } @@ -2079,8 +2079,8 @@ newTalent{ target_y = self.y, desc = function(self) local dir = game.level.map:compassDirection(self.target_x-self.x, self.target_y-self.y) - dir = dir and (" (%s)"):format(dir) or "" - return ([[Target knocked back up to %d grids%s and dazed.]]):format(self.dist, dir) + dir = dir and (" (%s)"):tformat(dir) or "" + return ([[Target knocked back up to %d grids%s and dazed.]]):tformat(self.dist, dir) end, disarm = function(self, x, y, who) -- summoner won't disarm --game.log("custom disarm for %s at (%s, %s) by %s", self.name, x, y, who.name) @@ -2146,13 +2146,13 @@ newTalent{ end, short_info = function(self, t) return ([[Target knocked back %d grids and dazed.]]): - format(t.getDistance(self, t)) + tformat(t.getDistance(self, t)) end, info = function(self, t) return ([[Deploy a hidden spring-loaded catapult that will trigger (by pressure) for any creature passing over it. Victims will be knocked back towards a target location up to %d grids away and be dazed for 5 turns. This trap has a %d%% chance to reset itself after triggering, but can only trigger once per turn. The chance to affect the target improves with your combat accuracy.]]): - format(t.getDistance(self, t), t.resetChance(self, t)) + tformat(t.getDistance(self, t), t.resetChance(self, t)) end, } @@ -2208,12 +2208,12 @@ newTalent{ short_info = function(self, t) local dam = damDesc(self, DamageType.NATURE, t.getDamage(self, t)) return ([[Deals %0.1f nature damage, stuns and poisons for %0.1f nature/turn for 4 turns.]]): - format(dam, dam/10) + tformat(dam, dam/10) end, info = function(self, t) local dam = damDesc(self, DamageType.NATURE, t.getDamage(self, t)) return ([[Lay a trap armed with potent venom. A creature passing over it will be dealt %0.2f nature damage and be stunned and poisoned for %0.2f nature damage per turn for 4 turns.]]): - format(dam, dam/10) + tformat(dam, dam/10) end, } diff --git a/game/modules/tome/data/talents/cursed/advanced-shadowmancy.lua b/game/modules/tome/data/talents/cursed/advanced-shadowmancy.lua index b3ee46333fb11040da077458ab4f93e254fb3daa..517397f424b45b4e877269752a3100a7547fcfda 100644 --- a/game/modules/tome/data/talents/cursed/advanced-shadowmancy.lua +++ b/game/modules/tome/data/talents/cursed/advanced-shadowmancy.lua @@ -50,7 +50,7 @@ newTalent{ info = function(self, t) return ([[Target a nearby shadow, and command it to merge into a nearby enemy, reducing their damage by %d%% for 5 turns. Killing your shadow releases some of your inner hatred, restoring 8 Hate to yourself.]]): - format(t.getReduction(self, t)) + tformat(t.getReduction(self, t)) end, } @@ -101,7 +101,7 @@ newTalent{ return ([[Target a nearby shadow, and force it to slam into a nearby enemy, dealing %0.1f Physical damage. Your shadow will then set them as their target, and they will target your shadow. Damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -186,7 +186,7 @@ newTalent{ return ([[Command all Shadows within sight to tele-dash to a target location, damaging any enemies they pass through for %0.1f Physical damage. For the purpose of this talent, you force your shadows through any walls in their way. Damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -251,6 +251,6 @@ newTalent{ return ([[Share your hatred with all shadows within sight range, gaining temporary full control. You then fire a blast of pure hatred from all affected shadows, dealing %0.1f Mind damage per blast. You cannot cancel this talent once the first bolt is cast. Damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.MIND, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.MIND, t.getDamage(self, t))) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/cursed/cursed-aura.lua b/game/modules/tome/data/talents/cursed/cursed-aura.lua index 8af3cf6360f27903a2819b061287d77339342845..bd1fc97d8b4ef479b42ad8eff39935c2c90e10a2 100644 --- a/game/modules/tome/data/talents/cursed/cursed-aura.lua +++ b/game/modules/tome/data/talents/cursed/cursed-aura.lua @@ -163,16 +163,16 @@ newTalent{ if choose then Dialog:yesnoLongPopup( "Cursed Fate", - ("The %s lying nearby catches your attention. What draws you to it is not the thing itself, but something burning inside you. You feel contempt for it and all worldly things. This feeling is not new but the power of it overwhelms you. You reach out to touch the object, to curse it, to defile it. And you notice it begin to change. The colors of it begin to fade and are replaced with an insatiable hate. For a moment you hesitate. You know you must choose to resist this manifestation of your curse now and forever, or fall further into your madness."):format(item.name), + ("The %s lying nearby catches your attention. What draws you to it is not the thing itself, but something burning inside you. You feel contempt for it and all worldly things. This feeling is not new but the power of it overwhelms you. You reach out to touch the object, to curse it, to defile it. And you notice it begin to change. The colors of it begin to fade and are replaced with an insatiable hate. For a moment you hesitate. You know you must choose to resist this manifestation of your curse now and forever, or fall further into your madness."):tformat(item.name), 300, function(ret) if ret then - Dialog:simpleLongPopup("Cursed Fate", ("The %s lies defiled at your feet. An aura of hatred surrounds you and you now feel truly cursed. You have gained the Cursed Aura talent tree and 1 point in Defiling Touch, but at the cost of 2 Willpower."):format(item.name), 300) + Dialog:simpleLongPopup("Cursed Fate", ("The %s lies defiled at your feet. An aura of hatred surrounds you and you now feel truly cursed. You have gained the Cursed Aura talent tree and 1 point in Defiling Touch, but at the cost of 2 Willpower."):tformat(item.name), 300) self:learnTalentType("cursed/cursed-aura", true) self:learnTalent(self.T_DEFILING_TOUCH, true, 1, {no_unlearn=true}) self:incIncStat(Stats.STAT_WIL, -2) else - Dialog:simplePopup("Cursed Fate", ("The %s returns to normal and your hate subsides."):format(item.name)) + Dialog:simplePopup("Cursed Fate", ("The %s returns to normal and your hate subsides."):tformat(item.name)) end end, "Release your hate upon the object", @@ -269,7 +269,7 @@ newTalent{ level 10 -- ammunition At level 5, you can activate this talent to surround yourself with an aura that adds 2 levels to a curse of your choosing. (%s chosen) Also, talent levels above 5 reduce the negative effects of your curses (currently %d%% reduction).]]): - format(t.getCursedAuraName(self, t), (1-t.cursePenalty(self, t))*100) + tformat(t.getCursedAuraName(self, t), (1-t.cursePenalty(self, t))*100) end, } @@ -296,7 +296,7 @@ newTalent{ local xs = t.curseBonusLevel(self,t) return ([[Your curses bring you dark gifts. Unlocks bonus level %d effects on all of your curses, allowing you to gain that effect when the power level of your curse reaches that level. At talent level 5, the luck penalty of cursed effects is reduced to 1. Talent levels above 5 add bonus power levels to your curses, increasing their effects (currently %0.1f).]]): - format(level, xs) + tformat(level, xs) end, } @@ -344,7 +344,7 @@ newTalent{ local duration = t.getDuration(self, t) local incDamage = t.getIncDamage(self, t) - return ([[Curse the earth around you in a radius of %d for %d turns. Any who stand upon it are weakened, reducing the damage they inflict by %d%%]]):format(range, duration, incDamage) + return ([[Curse the earth around you in a radius of %d for %d turns. Any who stand upon it are weakened, reducing the damage they inflict by %d%%]]):tformat(range, duration, incDamage) end, } @@ -580,6 +580,6 @@ newTalent{ Cursed Sentry attack speed (currently %d%%) will improve with talent level. When you first select a weapon, it will be remembered and used as long as it's in your inventory. Use Choose Cursed Sentry talent to alter your selection. At talent level 3, you get the ability to afflict powerful mundane objects (greater egos). - At talent level 5, you can corrupt artifacts.]]):format(duration, attackSpeed) + At talent level 5, you can corrupt artifacts.]]):tformat(duration, attackSpeed) end, } diff --git a/game/modules/tome/data/talents/cursed/cursed-form.lua b/game/modules/tome/data/talents/cursed/cursed-form.lua index 75d416297a0bdc503981f9ae0a3f9a2591a33c39..f77f186ab269be90b74e055988c6202e6533bf30 100644 --- a/game/modules/tome/data/talents/cursed/cursed-form.lua +++ b/game/modules/tome/data/talents/cursed/cursed-form.lua @@ -71,7 +71,7 @@ newTalent{ local regenRate = t.getRegenRate(self, t) return ([[Your body's strength is fed by your hatred. This causes most forms of healing to be between 50%% effective (at 0 Hate) to 100%% effective (at 100+ Hate). In addition, after each kill, you store the waning life force to invigorate yourself, restoring %d life (limited by the foe's maximum life, up to a maximum of %d at any time). You can heal no more than %0.1f life per turn this way, and it is not affected by your hatred level or other effects. - Healing from kills improves with your Willpower.]]):format(healPerKill, maxUnnaturalBodyHeal, regenRate) + Healing from kills improves with your Willpower.]]):tformat(healPerKill, maxUnnaturalBodyHeal, regenRate) end, } @@ -89,7 +89,7 @@ newTalent{ self:talentTemporaryValue(p, "stun_immune", t.getImmune(self, t)) end, info = function(self, t) - return ([[Your thirst for blood drives your movements. You gain +%d%% confusion, fear, knockback and stun immunity.]]):format(t.getImmune(self, t)*100) + return ([[Your thirst for blood drives your movements. You gain +%d%% confusion, fear, knockback and stun immunity.]]):tformat(t.getImmune(self, t)*100) end, } @@ -104,7 +104,7 @@ newTalent{ end, info = function(self, t) local incDamageChangeMax = t.getIncDamageChange(self, t, 5) - return ([[You have learned to hold onto your hate and use your suffering to fuel your body's rage. Every turn you take damage, the damage you inflict increases, until it reaches a maximum of +%d%% after 5 turns. Any turn in which you do not take damage will reduce the bonus.]]):format(incDamageChangeMax) + return ([[You have learned to hold onto your hate and use your suffering to fuel your body's rage. Every turn you take damage, the damage you inflict increases, until it reaches a maximum of +%d%% after 5 turns. Any turn in which you do not take damage will reduce the bonus.]]):tformat(incDamageChangeMax) end } @@ -119,7 +119,7 @@ newTalent{ info = function(self, t) local statChangeMax = t.getStatChange(self, t, 5) local neutralizeChance = t.getNeutralizeChance(self, t) - return ([[You rise to meet the pain that others would inflict on you. Every turn you take damage, your Strength and Willpower increase until they reach a maximum of +%d after 5 turns. Any turn in which you do not take damage will reduce the bonus. While in effect, your body also has a %d%% chance to overcome poisons and diseases each turn.]]):format(statChangeMax, neutralizeChance) + return ([[You rise to meet the pain that others would inflict on you. Every turn you take damage, your Strength and Willpower increase until they reach a maximum of +%d after 5 turns. Any turn in which you do not take damage will reduce the bonus. While in effect, your body also has a %d%% chance to overcome poisons and diseases each turn.]]):tformat(statChangeMax, neutralizeChance) end, } diff --git a/game/modules/tome/data/talents/cursed/cursed.lua b/game/modules/tome/data/talents/cursed/cursed.lua index 99beef395ab4c2912bb705dfcf410992070b6e36..4e53c0314cc16a162d676585dc412294ddb88ed4 100644 --- a/game/modules/tome/data/talents/cursed/cursed.lua +++ b/game/modules/tome/data/talents/cursed/cursed.lua @@ -18,28 +18,28 @@ -- darkgod@te4.org -- Cursed -newTalentType{ allow_random=true, type="cursed/slaughter", name = "slaughter", description = "Your weapon yearns for its next victim." } -newTalentType{ allow_random=true, type="cursed/endless-hunt", name = "endless hunt", description = "Each day, you lift your weary body and begin the unending hunt." } -newTalentType{ allow_random=true, type="cursed/strife", name = "strife", description = "The battlefield is your home; death and confusion, your comfort." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/gloom", name = "gloom", description = "All those in your sight must share your despair." } -newTalentType{ allow_random=true, type="cursed/rampage", name = "rampage", description = "Let loose the hate that has grown within." } -newTalentType{ allow_random=false, type="cursed/predator", name = "predator", description = "Track and kill your prey with single-minded focus." } +newTalentType{ allow_random=true, type="cursed/slaughter", name = _t"slaughter", description = _t"Your weapon yearns for its next victim." } +newTalentType{ allow_random=true, type="cursed/endless-hunt", name = _t"endless hunt", description = _t"Each day, you lift your weary body and begin the unending hunt." } +newTalentType{ allow_random=true, type="cursed/strife", name = _t"strife", description = _t"The battlefield is your home; death and confusion, your comfort." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/gloom", name = _t"gloom", description = _t"All those in your sight must share your despair." } +newTalentType{ allow_random=true, type="cursed/rampage", name = _t"rampage", description = _t"Let loose the hate that has grown within." } +newTalentType{ allow_random=false, type="cursed/predator", name = _t"predator", description = _t"Track and kill your prey with single-minded focus." } -- Doomed -newTalentType{ allow_random=true, is_mind=true, type="cursed/dark-sustenance", name = "dark sustenance", generic = true, description = "The powers of your foes feed your dark will." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/force-of-will", name = "force of will", description = "Invoke the powerful force of your will." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/darkness", name = "darkness", description = "Harness the power of darkness to envelop your foes." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/shadows", name = "shadows", description = "Summon shadows from the darkness to aid you." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/punishments", name = "punishments", description = "Your hate becomes punishment in the minds of your foes." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/one-with-shadows", name = "one with shadows", min_lev = 10, description = "Harness your shadows to their full potential." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/advanced-shadowmancy", name = "advanced shadowmancy", min_lev = 10, description = "Gain more direct control over your shadows with physical damage talents." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/dark-sustenance", name = _t"dark sustenance", generic = true, description = _t"The powers of your foes feed your dark will." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/force-of-will", name = _t"force of will", description = _t"Invoke the powerful force of your will." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/darkness", name = _t"darkness", description = _t"Harness the power of darkness to envelop your foes." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/shadows", name = _t"shadows", description = _t"Summon shadows from the darkness to aid you." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/punishments", name = _t"punishments", description = _t"Your hate becomes punishment in the minds of your foes." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/one-with-shadows", name = _t"one with shadows", min_lev = 10, description = _t"Harness your shadows to their full potential." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/advanced-shadowmancy", name = _t"advanced shadowmancy", min_lev = 10, description = _t"Gain more direct control over your shadows with physical damage talents." } -- Generic -newTalentType{ allow_random=true, is_mind=true, type="cursed/gestures", name = "gestures", generic = true, description = "Enhance the power of your mind with gestures." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/cursed-form", name = "cursed form", generic = true, description = "You are wracked with the dark energies of the curse." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/cursed-aura", name = "cursed aura", generic = true, description = "The things you surround yourself with soon wither away." } -newTalentType{ allow_random=false, is_mind=true, type="cursed/curses", name = "curses", hide = true, description = "The effects of cursed objects." } -newTalentType{ allow_random=true, is_mind=true, type="cursed/fears", name = "fears", description = "Use the fear that lies at the heart of your curse to attack the minds of your enemies." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/gestures", name = _t"gestures", generic = true, description = _t"Enhance the power of your mind with gestures." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/cursed-form", name = _t"cursed form", generic = true, description = _t"You are wracked with the dark energies of the curse." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/cursed-aura", name = _t"cursed aura", generic = true, description = _t"The things you surround yourself with soon wither away." } +newTalentType{ allow_random=false, is_mind=true, type="cursed/curses", name = _t"curses", hide = true, description = _t"The effects of cursed objects." } +newTalentType{ allow_random=true, is_mind=true, type="cursed/fears", name = _t"fears", description = _t"Use the fear that lies at the heart of your curse to attack the minds of your enemies." } cursed_wil_req1 = { stat = { wil=function(level) return 12 + (level-1) * 2 end }, diff --git a/game/modules/tome/data/talents/cursed/dark-figure.lua b/game/modules/tome/data/talents/cursed/dark-figure.lua index 1fef405acd6d2e9a8e535f6aa5679f1f31fda1cf..5fde66de89fe0a343dac3edd63423053317afc6a 100644 --- a/game/modules/tome/data/talents/cursed/dark-figure.lua +++ b/game/modules/tome/data/talents/cursed/dark-figure.lua @@ -49,7 +49,7 @@ newTalent{ info = function(self, t) local radius = t.getRadius(self, t) local duration = t.getDuration(self, t) - return ([[Fear radiates from your target in a radius of %d for %d turns driving all others away.]]):format(radius, duration) + return ([[Fear radiates from your target in a radius of %d for %d turns driving all others away.]]):tformat(radius, duration) end, } @@ -66,7 +66,7 @@ newTalent{ getPercent = function(self, t) return 15 + math.floor(self:getTalentLevel(t) * 10) end, info = function(self, t) local percent = t.getPercent(self, t) - return ([[The time you have spent suppressing the curse has taught you self control. The duration of most non-magical effects are reduced by %d%%.]]):format(percent) + return ([[The time you have spent suppressing the curse has taught you self control. The duration of most non-magical effects are reduced by %d%%.]]):tformat(percent) end, } @@ -90,7 +90,7 @@ newTalent{ info = function(self, t) local speed = t.getSpeed(self, t) local duration = t.getDuration(self, t) - return ([[You are invigorated by the death around you. Each life you take grants %d%% speed for %d more turns.]]):format(100 + speed, duration) + return ([[You are invigorated by the death around you. Each life you take grants %d%% speed for %d more turns.]]):tformat(100 + speed, duration) end, } @@ -140,7 +140,7 @@ newTalent{ end, info = function(self, t) local range = t.range(self, t) - return ([[You hide your terrible nature behind a pitiful figure. Those that see you from a distance of %d will ignore you. If you attack or use a talent they will see you for what you are and pity will be deactivated.]]):format(range) + return ([[You hide your terrible nature behind a pitiful figure. Those that see you from a distance of %d will ignore you. If you attack or use a talent they will see you for what you are and pity will be deactivated.]]):tformat(range) end, } diff --git a/game/modules/tome/data/talents/cursed/dark-sustenance.lua b/game/modules/tome/data/talents/cursed/dark-sustenance.lua index 234fd8f5a10e2e27164946b0a2cfd2af02a5e59e..f8d39db9618fff1697516935b12d26a59bfa9bf4 100644 --- a/game/modules/tome/data/talents/cursed/dark-sustenance.lua +++ b/game/modules/tome/data/talents/cursed/dark-sustenance.lua @@ -115,7 +115,7 @@ newTalent{ local hateGain = t.getHateGain(self, t) return ([[Feed from the essence of your enemy. Draws %0.1f hate per turn from a targeted foe, as long as they remain in your line of sight. If you aren't already feeding this will be automatically applied to the nearest enemy. - Hate gain improves with your Mindpower.]]):format(hateGain) + Hate gain improves with your Mindpower.]]):tformat(hateGain) end, } @@ -131,7 +131,7 @@ newTalent{ info = function(self, t) local regen = t.getLifeRegen(self, t) return ([[Devours life from the target of your feeding reducing their life regeneration by %d and adding half of that to yours. - Improves with your Mindpower.]]):format(regen) + Improves with your Mindpower.]]):tformat(regen) end, } @@ -159,7 +159,7 @@ newTalent{ local constitutionGain = t.getConstitutionGain(self, t) local lifeRegenGain = t.getLifeRegenGain(self, t) return ([Enhances your feeding by transferring %d constitution and %0.1f life per turn from a targeted foe to you. - Improves with the Willpower stat.]):format(constitutionGain, lifeRegenGain) + Improves with the Willpower stat.]):tformat(constitutionGain, lifeRegenGain) end, } ]] @@ -175,7 +175,7 @@ newTalent{ info = function(self, t) local damageGain = t.getDamageGain(self, t) return ([[Enhances your feeding by reducing your targeted foe's damage by %d%%, and increasing yours by the same amount. - Improves with your Mindpower.]]):format(damageGain) + Improves with your Mindpower.]]):tformat(damageGain) end, } @@ -191,6 +191,6 @@ newTalent{ info = function(self, t) local resistGain = t.getResistGain(self, t) return ([[Enhances your feeding by reducing your targeted foe's resistances, multiplying them by %0.2f and increasing your resistances by the amount drained. Resistance to "all" is not affected. - Improves with your Mindpower.]]):format((1-(resistGain/100))) + Improves with your Mindpower.]]):tformat((1-(resistGain/100))) end, } diff --git a/game/modules/tome/data/talents/cursed/darkness.lua b/game/modules/tome/data/talents/cursed/darkness.lua index 303fc2938e5199c99a33d7382801e134886beeb3..e89d2025ccb84329745d0e87840e5fae88508e9a 100644 --- a/game/modules/tome/data/talents/cursed/darkness.lua +++ b/game/modules/tome/data/talents/cursed/darkness.lua @@ -350,7 +350,7 @@ newTalent{ local darkCount = t.getDarkCount(self, t) local damageIncrease = getDamageIncrease(self) return ([[Creeping dark slowly spreads from the target location and %d spots in a radius of %d around the targeted location. The dark deals %0.2f darkness damage each turn to anything in its area, and blocks the sight of any who do not possess Dark Vision or some other magical means of seeing. - The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):format(darkCount, radius, damage, damageIncrease) + The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):tformat(darkCount, radius, damage, damageIncrease) end, } @@ -373,7 +373,7 @@ newTalent{ local movementSpeedChange = t.getMovementSpeedChange(self, t) local damageIncrease = getDamageIncrease(self) return ([[Your eyes penetrate the darkness to find anyone that may be hiding there. This allows you to see through creeping darkness out to a radius of %d. You can also find your way through the darkness with greater speed (+%d%% movement into creeping darkness). - You do +%d%% damage to anything that has entered your creeping dark.]]):format(range, movementSpeedChange * 100, damageIncrease) + You do +%d%% damage to anything that has entered your creeping dark.]]):tformat(range, movementSpeedChange * 100, damageIncrease) end, } @@ -431,7 +431,7 @@ newTalent{ local damage = t.getDamage(self, t) local damageIncrease = getDamageIncrease(self) return ([[Sends a torrent of searing darkness through your foes, doing %d damage. There is a 25%% chance the rushing darkness will blind them for 3 turns, and cause them to forget their target. - The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):format(damDesc(self, DamageType.DARKNESS, damage), damageIncrease) + The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):tformat(damDesc(self, DamageType.DARKNESS, damage), damageIncrease) end, } @@ -474,6 +474,6 @@ newTalent{ local damage = t.getDamage(self, t) local damageIncrease = getDamageIncrease(self) return ([[Send tendrils of creeping dark out to attack your target, and pin them in the darkness for %d turns. Creeping dark will trail behind the tendrils as they move. The darkness does %d damage per turn. - The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):format(pinDuration, damage, damageIncrease) + The damage will increase with your Mindpower. You do +%d%% damage to anything that has entered your creeping dark.]]):tformat(pinDuration, damage, damageIncrease) end, } diff --git a/game/modules/tome/data/talents/cursed/endless-hunt.lua b/game/modules/tome/data/talents/cursed/endless-hunt.lua index 8a30b8575b64f3a7fbfc5eac86d7c2b124d50f36..0d46f652b1d23ad40797bb2a6c775efc655e0052 100644 --- a/game/modules/tome/data/talents/cursed/endless-hunt.lua +++ b/game/modules/tome/data/talents/cursed/endless-hunt.lua @@ -85,7 +85,7 @@ newTalent{ Bonus level 1: +%d Accuracy, +%d%% melee damage, +%0.2f hate/turn prey was hit Bonus level 2: +%d Accuracy, +%d%% melee damage, +%0.2f hate/turn prey was hit Bonus level 3: +%d Accuracy, +%d%% melee damage, +%0.2f hate/turn prey was hit - The accuracy bonus improves with your Willpower, and the melee damage bonus with your Strength.]]):format(duration, + The accuracy bonus improves with your Willpower, and the melee damage bonus with your Strength.]]):tformat(duration, t.getAttackChange(self, t, 1), t.getStalkedDamageMultiplier(self, t, 1) * 100 - 100, t.getHitHateChange(self, t, 1), t.getAttackChange(self, t, 2), t.getStalkedDamageMultiplier(self, t, 2) * 100 - 100, t.getHitHateChange(self, t, 2), t.getAttackChange(self, t, 3), t.getStalkedDamageMultiplier(self, t, 3) * 100 - 100, t.getHitHateChange(self, t, 3)) @@ -164,7 +164,7 @@ newTalent{ return ([[Harass your stalked victim with two quick attacks for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage each. Each attack that scores a hit disrupts one talent, rune or infusion for %d turns. Your opponent will be unnerved by the attacks, reducing the damage they deal by %d%% for %d turns. Damage reduction increases with the Willpower stat. - This talent will also attack with your shield, if you have one equipped.]]):format(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, cooldownDuration, -targetDamageChange, duration) + This talent will also attack with your shield, if you have one equipped.]]):tformat(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, cooldownDuration, -targetDamageChange, duration) end, } @@ -212,7 +212,7 @@ newTalent{ local spellpowerChange = t.getSpellpowerChange(self, t) local mindpowerChange = t.getMindpowerChange(self, t) return ([[The connection between predator and prey allows you to speak to the mind of your target and beckon them closer. For %d turns, they will try to come to you, even pushing others aside to do so. They will move towards you instead of acting %d%% of the time, but can save verses Mindpower to slow the effect. If they take significant damage, the beckoning may be overcome altogether. The effect makes concentration difficult for your target, reducing Spellpower and Mindpower by %d until they reach you. - The Spellpower and Mindpower reduction increases with your Willpower.]]):format(duration, chance, -spellpowerChange) + The Spellpower and Mindpower reduction increases with your Willpower.]]):tformat(duration, chance, -spellpowerChange) end, } @@ -268,6 +268,6 @@ newTalent{ return ([[Let hate fuel your movements. While active, you gain %d%% movement speed. The recklessness of your movement brings you bad luck (Luck -3). Cleave, Repel and Surge cannot be active simultaneously, and activating one will place the others in cooldown. Sustaining Surge while Dual Wielding grants %d additional Defense. - Movement speed and dual-wielding Defense both increase with the Willpower stat.]]):format(movementSpeedChange * 100, defenseChange) + Movement speed and dual-wielding Defense both increase with the Willpower stat.]]):tformat(movementSpeedChange * 100, defenseChange) end, } diff --git a/game/modules/tome/data/talents/cursed/fears.lua b/game/modules/tome/data/talents/cursed/fears.lua index 07b5b0de05b779f1bb1b85b6ca42c57daaeecd83..8206de0e8d57ac891a7d054ab69e09380d2e6da3 100644 --- a/game/modules/tome/data/talents/cursed/fears.lua +++ b/game/modules/tome/data/talents/cursed/fears.lua @@ -194,7 +194,7 @@ newTalent{ #ORANGE#Despair:#LAST# Reduces mind resist, mindsave, armour and defence by %d. #ORANGE#Terrified:#LAST# Deals %0.2f mind and %0.2f darkness damage per turn and increases cooldowns by %d%%. #ORANGE#Haunted:#LAST# Causes the target to suffer %0.2f mind and %0.2f darkness damage for each detrimental mental effect every turn. - ]]):format(self:getTalentRadius(t), damDesc(self, DamageType.MIND, damInstil), damDesc(self, DamageType.DARKNESS, damInstil), t.getDuration(self, t), + ]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.MIND, damInstil), damDesc(self, DamageType.DARKNESS, damInstil), t.getDuration(self, t), t.getParanoidAttackChance(self, t), -t.getDespairStatChange(self, t), damDesc(self, DamageType.MIND, damTerri), damDesc(self, DamageType.DARKNESS, damTerri), t.getTerrifiedPower(self, t), @@ -230,7 +230,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Heighten the fears of those near to you. Any foe you attempt to inflict a fear upon and who remains in a radius of %d and in sight of you for %d (non-consecutive) turns, will take %0.2f mind and %0.2f darkness damage and gain a new fear that lasts for %d turns. This effect completely ignores fear resistance, but can be saved against.]]): - format(range, turnsUntilTrigger, damDesc(self, DamageType.MIND, t.getDamage(self, t) / 2), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t) / 2 ), duration) + tformat(range, turnsUntilTrigger, damDesc(self, DamageType.MIND, t.getDamage(self, t) / 2), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t) / 2 ), duration) end, } @@ -251,7 +251,7 @@ newTalent{ getExtendChance = function(self, t) return self:combatTalentLimit(t, 60, 20, 50) end, info = function(self, t) return ([[Impose your tyranny on the minds of those who fear you. When a foe gains a new fear, you have a %d%% chance to increase the duration of their heightened fear and one random existing fear effect by %d turns, to a maximum of 8 turns. - Additionally, you gain %d Mindpower and Physical power for 5 turns every time you apply a fear, stacking up to %d times.]]):format(t. getExtendChance(self, t), t.getExtendFear(self, t), t.getTyrantPower(self, t), t.getMaxStacks(self, t)) + Additionally, you gain %d Mindpower and Physical power for 5 turns every time you apply a fear, stacking up to %d times.]]):tformat(t. getExtendChance(self, t), t.getExtendFear(self, t), t.getTyrantPower(self, t), t.getMaxStacks(self, t)) end, } @@ -296,6 +296,6 @@ newTalent{ local range = self:getTalentRange(t) local duration = t.getDuration(self, t) local chance = t.getChance(self, t) - return ([[Panic your enemies within a range of %d for %d turns. Anyone who fails to make a mental save against your Mindpower has a %d%% chance each turn of trying to run away from you.]]):format(range, duration, chance) + return ([[Panic your enemies within a range of %d for %d turns. Anyone who fails to make a mental save against your Mindpower has a %d%% chance each turn of trying to run away from you.]]):tformat(range, duration, chance) end, } diff --git a/game/modules/tome/data/talents/cursed/force-of-will.lua b/game/modules/tome/data/talents/cursed/force-of-will.lua index 9aacb47453fe11fa4c384486958f9c509c5758fe..dfff8cb64273fd075e663662632ebd412a7d8ef3 100644 --- a/game/modules/tome/data/talents/cursed/force-of-will.lua +++ b/game/modules/tome/data/talents/cursed/force-of-will.lua @@ -140,7 +140,7 @@ newTalent{ local knockback = t.getKnockback(self, t) return ([[Focusing your hate, you strike your foe with unseen force for %d damage and %d knockback. In addition, your ability to channel force with this talent increases all critical damage by %d%% (currently: %d%%) - Damage increases with your Mindpower.]]):format(damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) + Damage increases with your Mindpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) end, } @@ -159,7 +159,7 @@ newTalent{ return self:combatTalentMindDamage(t, 0, 400) end, getDisplayName = function(self, t, p) - return ("Deflection (%d)"):format(p.value) + return ("Deflection (%d)"):tformat(p.value) end, iconOverlay = function(self, t, p) local val = p.value or 0 @@ -231,7 +231,7 @@ newTalent{ local recharge_rate = t.getRechargeRate(self, t) return ([[Create a barrier that siphons hate from you at the rate of 0.2 a turn. The barrier will deflect 50%% of incoming damage with the force of your will, up to %d damage. The barrier charges at a rate of 1/%d of its maximum charge per turn. In addition, your ability to channel force with this talent increases all critical damage by %d%% (currently: %d%%) - The maximum damage deflected increases with your Mindpower.]]):format(maxDamage, recharge_rate, t.critpower(self, t),self.combat_critical_power or 0) + The maximum damage deflected increases with your Mindpower.]]):tformat(maxDamage, recharge_rate, t.critpower(self, t),self.combat_critical_power or 0) end, } @@ -305,7 +305,7 @@ newTalent{ local dazeDuration = t.getDazeDuration(self, t) return ([[You rage coalesces at a single point, and then explodes outward, blasting enemies within a radius of %d in all directions. The blast causes %d damage and %d knockback at the center, that decreases with distance. Anyone caught in the explosion will also be dazed for 3 turns. In addition, your ability to channel force with this talent increases all critical damage by %d%% (currently: %d%%) - Damage increases with your Mindpower.]]):format(radius, damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) + Damage increases with your Mindpower.]]):tformat(radius, damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) end, } @@ -358,6 +358,6 @@ newTalent{ local chance = secondHitChance - math.floor(secondHitChance/100)*100 return ([[Your fury becomes an unseen force that randomly lashes out at foes around you. For %d turns you strike %d (%d%% chance for %d) nearby target(s) within range 5 doing %d damage and %d knockback. The number of extra strikes increases at higher talent levels. In addition, your ability to channel force with this talent increases all critical damage by %d%% (currently: %d%%) - Damage increases with your Mindpower.]]):format(duration, hits, chance, hits+1, damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) + Damage increases with your Mindpower.]]):tformat(duration, hits, chance, hits+1, damDesc(self, DamageType.PHYSICAL, damage), knockback, t.critpower(self, t), self.combat_critical_power or 0) end, } diff --git a/game/modules/tome/data/talents/cursed/gestures.lua b/game/modules/tome/data/talents/cursed/gestures.lua index cc24900229c1959734094c015c12b6aeef7bdbbc..67486ef560333e8d36a82eb85964addb98df0ebf 100644 --- a/game/modules/tome/data/talents/cursed/gestures.lua +++ b/game/modules/tome/data/talents/cursed/gestures.lua @@ -203,7 +203,7 @@ newTalent{ This talent requires two free or mindstar-equipped hands and has a 25%% chance to inflict brainlock, which can critically hit. The damage will increase with your Mindpower. If attacking with two mindstars the attack will trigger their proc effects, if any. Mindstars bonuses from damage and physical criticals: (+%d damage, +%d critical chance)]]) - :format(damDesc(self, DamageType.MIND, baseDamage * 0.5), damDesc(self, DamageType.MIND, baseDamage), stunChance, bonusDamage, bonusCritical) + :tformat(damDesc(self, DamageType.MIND, baseDamage * 0.5), damDesc(self, DamageType.MIND, baseDamage), stunChance, bonusDamage, bonusCritical) end, } @@ -224,7 +224,7 @@ newTalent{ local resistAllChange = t.getResistAllChange(self, t) local duration = t.getDuration(self, t) return ([[Enhance your Gesture of Pain with a malicious curse that causes any victim that is struck to have all resistances lowered by %d%% for %d turns. - ]]):format(-resistAllChange, duration) + ]]):tformat(-resistAllChange, duration) end, } @@ -249,7 +249,7 @@ newTalent{ local mindpowerChange = t.getMindpowerChange(self, t, 2) local mindCritChange = t.getMindCritChange(self, t) return ([[Enhance your mental attacks with a single gesture. You gain +%d mindpower and +%d%% chance to inflict critical damage with mind-based attacks (current chance is %d%%). - Requires two free or mindstar-equipped hands; does not require Gesture of Pain to be sustained.]]):format(mindpowerChange, mindCritChange, self:combatMindCrit()) + Requires two free or mindstar-equipped hands; does not require Gesture of Pain to be sustained.]]):tformat(mindpowerChange, mindCritChange, self:combatMindCrit()) end, } @@ -303,6 +303,6 @@ newTalent{ local counterAttackChance = t.getCounterAttackChance(self, t, true) return ([[You guard against melee damage with a sweep of your hand. So long as you can use Gestures (Requires two free or mindstar-equipped hands), you deflect up to %d damage (%0.1f%% of your best free hand melee damage) from up to %0.1f melee attack(s) each turn (based on your cunning). Deflected attacks cannot be crits. If Gesture of Pain is active, you also have a %0.1f%% chance to counterattack.]]): - format(damageChange, t.getGuardPercent(self, t), t.getDeflects(self, t, true), counterAttackChance) + tformat(damageChange, t.getGuardPercent(self, t), t.getDeflects(self, t, true), counterAttackChance) end, } diff --git a/game/modules/tome/data/talents/cursed/gloom.lua b/game/modules/tome/data/talents/cursed/gloom.lua index 02619dc1c7f0945e683cbb38f278a10af0beb489..7ffa23e9c6fd934af7b91708571a4b03358b9fb4 100644 --- a/game/modules/tome/data/talents/cursed/gloom.lua +++ b/game/modules/tome/data/talents/cursed/gloom.lua @@ -124,7 +124,7 @@ newTalent{ return ([[A terrible gloom surrounds you, affecting all those who approach to within radius 3. At the end of each turn, those caught in your gloom must save against your Mindpower, or have a %d%% chance to suffer from slowness (30%%), stun or confusion (30%%) for %d turns. The chance increases with your mind speed. This ability is innate, and carries no cost to activate or deactivate. - Each point in Gloom talents increases your Mindpower (current total: %d).]]):format(chance, duration, mindpowerChange) + Each point in Gloom talents increases your Mindpower (current total: %d).]]):tformat(chance, duration, mindpowerChange) end, } @@ -150,7 +150,7 @@ newTalent{ local mindpowerChange = gloomTalentsMindpower(self) return ([[Each turn, those caught in your gloom must save against your Mindpower, or have a %d%% chance to be crippled by fear for %d turns, reducing damage they inflict by %d%%. The first time you melee strike a foe after they have been weakened will give you %d hate. The chance increases with your mind speed. - Each point in Gloom talents increases your Mindpower (current total: %d).]]):format(chance, duration, -incDamageChange, hateBonus, mindpowerChange) + Each point in Gloom talents increases your Mindpower (current total: %d).]]):tformat(chance, duration, -incDamageChange, hateBonus, mindpowerChange) end, } @@ -184,7 +184,7 @@ newTalent{ info = function(self, t) return ([[Every time you act, all enemies in your gloom take %0.2f mind damage and %0.2f darkness damage. The damage scales with your Mindpower. - Each point in Gloom talents increases your Mindpower (current total: %d).]]):format(damDesc(self, DamageType.MIND, t.getDamage(self, t) * 0.5), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t) * 0.5), gloomTalentsMindpower(self)) + Each point in Gloom talents increases your Mindpower (current total: %d).]]):tformat(damDesc(self, DamageType.MIND, t.getDamage(self, t) * 0.5), damDesc(self, DamageType.DARKNESS, t.getDamage(self, t) * 0.5), gloomTalentsMindpower(self)) end, } @@ -201,6 +201,6 @@ newTalent{ local damageChange = t.getDamageChange(self, t) local mindpowerChange = gloomTalentsMindpower(self) return ([[Your gloom has become a sanctuary from the outside world. Damage from any attack that originates beyond the boundary of your gloom is reduced by %d%%. - Each point in Gloom talents increases your Mindpower (current total: %d).]]):format(-damageChange, mindpowerChange) + Each point in Gloom talents increases your Mindpower (current total: %d).]]):tformat(-damageChange, mindpowerChange) end, } diff --git a/game/modules/tome/data/talents/cursed/one-with-shadows.lua b/game/modules/tome/data/talents/cursed/one-with-shadows.lua index 902fbb2795c9309cd5821dfdeff4b62d9d039597..8d0a6dff89adadfd3d7a2ee429f25c2c35fc59b1 100644 --- a/game/modules/tome/data/talents/cursed/one-with-shadows.lua +++ b/game/modules/tome/data/talents/cursed/one-with-shadows.lua @@ -30,7 +30,7 @@ newTalent{ info = function(self, t) return ([[Your awareness extends to your shadows. You always know exactly where your shadows are and can perceive any foe within %d tiles of their vision.]]) - :format(self:getTalentRange(t)) + :tformat(self:getTalentRange(t)) end, } @@ -88,7 +88,7 @@ newTalent{ info = function(self, t) return ([[You empathy with your shadows causes the line between you and your shadows to blur. You lose %d%% light resistance, but gain %d%% darkness resistance and affinity. You also gain %0.2f%% all resistance for each shadow in your party.]]): - format(t.getLightResist(self, t), t.getDarkResist(self, t), t.getAllResScale(self, t)) + tformat(t.getLightResist(self, t), t.getDarkResist(self, t), t.getAllResScale(self, t)) end, } @@ -125,7 +125,7 @@ newTalent{ return ([[Observers find it difficult to tell you and your shadows apart. You can target a shadow in radius %d and instantly trade places with it. %d random negative physical or magical effects are transferred from you to the chosen shadow in the process.]]) - :format(self:getTalentRadius(t), t.getNb(self, t)) + :tformat(self:getTalentRadius(t), t.getNb(self, t)) end, } @@ -161,8 +161,8 @@ newTalent{ -- end if not shadow then return false end - game:delayedLogDamage(src, self, 0, ("#GOLD#(%d decoy)#LAST#"):format(value), false) - game:delayedLogDamage(src, shadow, value, ("#GOLD#%d decoy#LAST#"):format(value), false) + game:delayedLogDamage(src, self, 0, ("#GOLD#(%d decoy)#LAST#"):tformat(value), false) + game:delayedLogDamage(src, shadow, value, ("#GOLD#%d decoy#LAST#"):tformat(value), false) shadow:takeHit(value, src) self:setEffect(self.EFF_SHADOW_DECOY, 4, {power=t.getPower(self, t)}) self:forceUseTalent(t.id, {ignore_energy=true}) @@ -184,6 +184,6 @@ newTalent{ When you would receive a fatal blow, you instantly transpose with a random shadow that takes the blow instead, putting this talent on cooldown. For the next 4 turns you only die if you reach -%d life. Effect increases with Mindpower.]]): - format(t.getPower(self, t)) + tformat(t.getPower(self, t)) end, } diff --git a/game/modules/tome/data/talents/cursed/predator.lua b/game/modules/tome/data/talents/cursed/predator.lua index 7854e2b7ab315b6d3019632ef80f538dcfd72d92..39018f10944d1d07108976442a7c57bee9486c0e 100644 --- a/game/modules/tome/data/talents/cursed/predator.lua +++ b/game/modules/tome/data/talents/cursed/predator.lua @@ -54,7 +54,7 @@ newTalent{ end end, info = function(self, t) - return ([[Improve your predation by learning from past hunts. You gain %0.2f accuracy and %0.2f armor penetration against foes for each foe of that type you have previously slain, to a maximum of %d accuracy and %d apr.]]):format(t.getATK(self, t), t.getAPR(self, t), t.getATK(self, t) * t.getTypeKillMax(self, t), t.getAPR(self, t) * t.getTypeKillMax(self, t), t.getTypeKillMax(self, t)) + return ([[Improve your predation by learning from past hunts. You gain %0.2f accuracy and %0.2f armor penetration against foes for each foe of that type you have previously slain, to a maximum of %d accuracy and %d apr.]]):tformat(t.getATK(self, t), t.getAPR(self, t), t.getATK(self, t) * t.getTypeKillMax(self, t), t.getAPR(self, t) * t.getTypeKillMax(self, t), t.getTypeKillMax(self, t)) end, } @@ -239,7 +239,7 @@ newTalent{ return ([[Upon making a critical melee attack the savagery of your predation causes a Cursed Miasma to begin permeating your hunting grounds. The miasma will seep from %d locations, including your own, within radius %d, deals %0.2f damage split between Darkness and Mind and blocks sight. Prey lost within your miasma have a %d%% chance to lose track of you and may mistake friends for foe. - Savage Hunter costs #ffa0ff#8 Hate#LAST# on trigger and does not trigger when you're in Cursed Miasma.]]):format(t.getMiasmaCount(self, t), self:getTalentRadius(t), self:damDesc(DamageType.DARKNESS, t.getDamage(self, t)/2) + self:damDesc(DamageType.MIND, t.getDamage(self, t)/2), t.getChance(self, t)) + Savage Hunter costs #ffa0ff#8 Hate#LAST# on trigger and does not trigger when you're in Cursed Miasma.]]):tformat(t.getMiasmaCount(self, t), self:getTalentRadius(t), self:damDesc(DamageType.DARKNESS, t.getDamage(self, t)/2) + self:damDesc(DamageType.MIND, t.getDamage(self, t)/2), t.getChance(self, t)) end, } @@ -264,7 +264,7 @@ newTalent{ end, info = function(self, t) return ([[While shrouded in cursed miasma you gain stealth (%d power) and %d physical power. - The stealth power and physical power will increase with your mindpower.]]):format(t.getStealthPower(self, t), t.getPhysPower(self, t)) + The stealth power and physical power will increase with your mindpower.]]):tformat(t.getStealthPower(self, t), t.getPhysPower(self, t)) end, } @@ -325,6 +325,6 @@ newTalent{ end, info = function(self, t) - return([[Focus your predation on the most worthy prey. Upon entering a level for the first time, up to %d foes are marked as your prey. You gain vision of them, wherever they are. Additionally, all damage you receive from their subtype is reduced by %d%%.]]):format(t.getCount(self, t), t.getPower(self, t)) + return([[Focus your predation on the most worthy prey. Upon entering a level for the first time, up to %d foes are marked as your prey. You gain vision of them, wherever they are. Additionally, all damage you receive from their subtype is reduced by %d%%.]]):tformat(t.getCount(self, t), t.getPower(self, t)) end, } diff --git a/game/modules/tome/data/talents/cursed/primal-magic.lua b/game/modules/tome/data/talents/cursed/primal-magic.lua index 59afedd7d9e512644477d1d64ed3879633398e4b..4ebf34d838e64b80f0f794c614a7fa0d5c314f50 100644 --- a/game/modules/tome/data/talents/cursed/primal-magic.lua +++ b/game/modules/tome/data/talents/cursed/primal-magic.lua @@ -93,7 +93,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Each turn for 4 turns you fire a bolt of arcane energy at your nearest enemy inflicting %d damage. - The damage will increase with the Magic stat.]]):format(damDesc(self, DamageType.ARCANE, damage)) + The damage will increase with the Magic stat.]]):tformat(damDesc(self, DamageType.ARCANE, damage)) end, } @@ -151,7 +151,7 @@ newTalent{ info = function(self, t) local armor = t.getArmor(self, t) return ([[Years of magic have permeated your skin leaving it resistant to the physical world. Your armor is increased by %d. - The bonus will increase with the Magic stat.]]):format(armor) + The bonus will increase with the Magic stat.]]):tformat(armor) end, } @@ -204,6 +204,6 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Bathes the target in raw magic inflicting %d damage. Such wild magic is difficult to control and if you fail to keep your wits you will be confused for 4 turns. The damage will increase with the Magic stat.]]): - format(damDesc(self, DamageType.ARCANE, damage)) + tformat(damDesc(self, DamageType.ARCANE, damage)) end, } diff --git a/game/modules/tome/data/talents/cursed/punishments.lua b/game/modules/tome/data/talents/cursed/punishments.lua index 4734aebfd062a5942f92a7e33e32b6d108bebb95..b347e54234303dc265d87da83e21fd107c8bcc01 100644 --- a/game/modules/tome/data/talents/cursed/punishments.lua +++ b/game/modules/tome/data/talents/cursed/punishments.lua @@ -62,7 +62,7 @@ newTalent{ local damage = t.getDamage(self, t) local spreadFactor = t.getSpreadFactor(self, t) return ([[You unleash your hateful mind on any who dare approach you, inflicing %d mind damage. The attack will hit multiple targets, but each additional target will further reduce damage by %d%%. - 25%% chance to brainlock. The damage increases with your Mindpower.]]):format(damDesc(self, DamageType.MIND, damage), (1 - spreadFactor) * 100) + 25%% chance to brainlock. The damage increases with your Mindpower.]]):tformat(damDesc(self, DamageType.MIND, damage), (1 - spreadFactor) * 100) end, } @@ -135,7 +135,7 @@ newTalent{ local jumpChance = t.getJumpChance(self, t) local hateGain = t.getHateGain(self, t) return ([[Send a whisper filled with hate to spread throughout your foes. When the whisper is first heard, they will suffer %d mind damage and feed you %d hate. For the first %d turns, the whisper will travel from the original victim to a new one within a range of %0.1f. Every victim of the whisper has a %d%% chance of spreading it to another victim every turn. - 25%% chance to brainlock. The damage increases with your Mindpower.]]):format(damDesc(self, DamageType.MIND, damage), hateGain, jumpCount, jumpRange, jumpChance) + 25%% chance to brainlock. The damage increases with your Mindpower.]]):tformat(damDesc(self, DamageType.MIND, damage), hateGain, jumpCount, jumpRange, jumpChance) end, } @@ -252,7 +252,7 @@ newTalent{ local duration = t.getDuration(self, t) local stunDuration = t.getStunDuration(self, t) return ([You mark the ground at your feet with a terrible curse. Anyone passing the mark suffers %d mind damage and has a chance to be stunned for %d turns. The mark lasts for %d turns but the will weaken each time it is triggered. (%d mindpower vs mental resistance) - The damage and mindpower will increase with the Willpower stat.]):format(damDesc(self, DamageType.MIND, damage), stunDuration, duration, mindpower) + The damage and mindpower will increase with the Willpower stat.]):tformat(damDesc(self, DamageType.MIND, damage), stunDuration, duration, mindpower) end, } ]] @@ -298,7 +298,7 @@ newTalent{ local maxDamage = t.getDamage(self, t) local minDamage = maxDamage / duration return ([[Unleash agony upon your target. The pain will grow over the course of %d turns. The first turn will inflict %d damage, and slowly increase to %d on the last turn (%d total). - 25%% chance of brainlock. The damage will increase with your Mindpower.]]):format(duration, damDesc(self, DamageType.MIND, minDamage), damDesc(self, DamageType.MIND, maxDamage), maxDamage * (duration + 1) / 2) + 25%% chance of brainlock. The damage will increase with your Mindpower.]]):tformat(duration, damDesc(self, DamageType.MIND, minDamage), damDesc(self, DamageType.MIND, maxDamage), maxDamage * (duration + 1) / 2) end, } @@ -336,7 +336,7 @@ newTalent{ info = function(self, t) local chance = t.getChance(self, t) local mindResistChange = t.getMindResistChange(self, t) - return ([[Every time you inflict mind damage, there is a %d%% chance that your foe must save against your Mindpower or go mad. Madness can cause them to become confused, slowed or stunned for 3 turns, and lowers resistance to mind damage by %d%%.]]):format(chance, -mindResistChange) + return ([[Every time you inflict mind damage, there is a %d%% chance that your foe must save against your Mindpower or go mad. Madness can cause them to become confused, slowed or stunned for 3 turns, and lowers resistance to mind damage by %d%%.]]):tformat(chance, -mindResistChange) end, } @@ -390,7 +390,7 @@ newTalent{ local duration = t.getDuration(self, t) local chance = t.getChance(self, t) return ([Your will reaches into the minds of all nearby enemies and tortures their sanity. Anyone within range who fails a mental save has a %d%% chance of being dazed for %d turns (%d mindpower vs mental resistance). - The mindpower will increase with the Willpower stat.]):format(chance, duration, mindpower) + The mindpower will increase with the Willpower stat.]):tformat(chance, duration, mindpower) end, } ]] diff --git a/game/modules/tome/data/talents/cursed/rampage.lua b/game/modules/tome/data/talents/cursed/rampage.lua index c00667e32b8f2944e5e9e61c06c1d1089e263ab7..9f8fa6a194bc20b0b511167c5c0d1f34d790223c 100644 --- a/game/modules/tome/data/talents/cursed/rampage.lua +++ b/game/modules/tome/data/talents/cursed/rampage.lua @@ -92,7 +92,7 @@ newTalent{ Any talent, rune or infusion you use while rampaging becomes a distraction, and reduces the duration of the rampage by 1. Your first movement while rampaging increases the rampage duration by 1. Rampage Bonus: +%d%% movement speed. Rampage Bonus: +%d%% attack speed. - Rampage Bonus: +%d%% mind speed.]]):format(duration, maxDuration, movementSpeedChange * 100, combatPhysSpeedChange * 100, combatMindSpeedChange *100) + Rampage Bonus: +%d%% mind speed.]]):tformat(duration, maxDuration, movementSpeedChange * 100, combatPhysSpeedChange * 100, combatMindSpeedChange *100) end, } @@ -115,7 +115,7 @@ newTalent{ local combatMentalResistChange = t.getCombatMentalResistChange(self, t) return ([[You attack with mindless brutality. The first critical hit inflicted while rampaging increases the rampage duration by 1. Rampage Bonus: Your physical damage increases by %d%%. - Rampage Bonus: Your Physical Save increases by %d and Mental Save increases by %d.]]):format(physicalDamageChange, combatPhysResistChange, combatMentalResistChange) + Rampage Bonus: Your Physical Save increases by %d and Mental Save increases by %d.]]):tformat(physicalDamageChange, combatPhysResistChange, combatMentalResistChange) end, } @@ -140,7 +140,7 @@ newTalent{ local damageShieldBonus = t.getDamageShieldBonus(self, t) return ([[Nothing will stop your rampage. Rampage Bonus: You shrug off up to %d damage each turn during your rampage. If you shrug off more than %d damage, the rampage duration increases by 1. - The amount of damage you can shrug off improves with your Strength.]]):format(damageShield, damageShieldBonus) + The amount of damage you can shrug off improves with your Strength.]]):tformat(damageShield, damageShieldBonus) end, } @@ -217,6 +217,6 @@ newTalent{ local stunDuration = t.getStunDuration(self, t) local damage = t.getDamage(self, t) return ([[While rampaging, you slam up to %d adjacent opponents, stunning them for %d turns and damaging them for between %d and %d physical damage. Your first slam of at least two opponents increases the rampage duration by 1. - Damage increases with your Physical Power.]]):format(hitCount, stunDuration, damage * 0.5, damage) + Damage increases with your Physical Power.]]):tformat(hitCount, stunDuration, damage * 0.5, damage) end, } diff --git a/game/modules/tome/data/talents/cursed/shadows.lua b/game/modules/tome/data/talents/cursed/shadows.lua index c5d901ca988aa026100a1614d2fc59c88d26b5bf..3a990f0e3b48490daf8980956e3ae68c1cdcf915 100644 --- a/game/modules/tome/data/talents/cursed/shadows.lua +++ b/game/modules/tome/data/talents/cursed/shadows.lua @@ -97,7 +97,7 @@ newTalent{ return false end,info = function(self, t) local multiplier = self:combatTalentWeaponDamage(t, 0.9, 1.9) - return ([[With blinding speed you suddenly appear next to a target up to %d spaces away and attack for %d%% damage.]]):format(self:getTalentRange(t), multiplier * 100) + return ([[With blinding speed you suddenly appear next to a target up to %d spaces away and attack for %d%% damage.]]):tformat(self:getTalentRange(t), multiplier * 100) end, } @@ -127,7 +127,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Strikes the target with a spark of lightning doing %0.2f to %0.2f damage (%0.2f average). The damage will increase with the Magic stat]]): - format(damDesc(self, DamageType.LIGHTNING, damage / 3), + tformat(damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) end, @@ -158,7 +158,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Bathes the target in flames doing %0.2f damage The damage will increase with the Magic stat]]): - format(damDesc(self, DamageType.FIREBURN, damage)) + tformat(damDesc(self, DamageType.FIREBURN, damage)) end, } @@ -173,7 +173,7 @@ newTalent{ end, info = function(self, t) local chance = t.getChance(self, t) - return ([[When a shadow is hit and killed, there is a %d%% chance it will reform unhurt.]]):format(chance) + return ([[When a shadow is hit and killed, there is a %d%% chance it will reform unhurt.]]):tformat(chance) end, } @@ -464,7 +464,7 @@ newTalent{ local blindsideLevel = t.getBlindsideLevel(self, t) local avoid_master_damage = t.getAvoidMasterDamage(self, t) return ([[While this ability is active, you will continually call up to %d level %d shadows to aid you in battle. Each shadow costs 5 hate to summon. Shadows are weak combatants that can: Use Arcane Reconstruction to heal themselves (level %d), Blindside their opponents (level %d), and Phase Door from place to place. - Shadows ignore %d%% of the damage dealt to them by their master.]]):format(maxShadows, level, healLevel, blindsideLevel, avoid_master_damage) + Shadows ignore %d%% of the damage dealt to them by their master.]]):tformat(maxShadows, level, healLevel, blindsideLevel, avoid_master_damage) end, } @@ -521,7 +521,7 @@ newTalent{ local dominateChance = t.getDominateChance(self, t) local dominateLevel = t.getDominateLevel(self, t) local fadeCooldown = math.max(3, 8 - self:getTalentLevelRaw(t)) - return ([[Instill hate in your shadows, strengthening their attacks. They gain %d%% extra Accuracy and %d%% extra damage. The fury of their attacks gives them the ability to try to Dominate their foes, increasing all damage taken by that foe for 4 turns (level %d, %d%% chance at range 1). They also gain the ability to Fade when hit, avoiding all damage until their next turn (%d turn cooldown).]]):format(combatAtk, incDamage, dominateLevel, dominateChance, fadeCooldown) + return ([[Instill hate in your shadows, strengthening their attacks. They gain %d%% extra Accuracy and %d%% extra damage. The fury of their attacks gives them the ability to try to Dominate their foes, increasing all damage taken by that foe for 4 turns (level %d, %d%% chance at range 1). They also gain the ability to Fade when hit, avoiding all damage until their next turn (%d turn cooldown).]]):tformat(combatAtk, incDamage, dominateLevel, dominateChance, fadeCooldown) end, } @@ -597,7 +597,7 @@ newTalent{ return ([[Infuse magic into your shadows to give them fearsome spells. Your shadows receive a bonus of %d to their Spellpower. Your shadows can strike adjacent foes with Lightning (level %d, %d%% chance at range 1). At level 3 your shadows can sear their enemies from a distance with Flames (level %d, %d%% chance at range 2 to 6). - At level 5 when your shadows are struck down they will attempt to Reform, becoming whole again (50%% chance).]]):format(spellpowerChange, lightningLevel, closeAttackSpellChance, flamesLevel, farAttackSpellChance) + At level 5 when your shadows are struck down they will attempt to Reform, becoming whole again (50%% chance).]]):tformat(spellpowerChange, lightningLevel, closeAttackSpellChance, flamesLevel, farAttackSpellChance) end, } @@ -680,6 +680,6 @@ newTalent{ local blindsideChance = t.getBlindsideChance(self, t) return ([[Focus your shadows on a single target. Friendly targets will be defended for %d turns. Hostile targets will be attacked, with a %d%% chance the shadows will blindside the target. If you have less than maximum shadows available, they will automatically be summoned before focusing. - This talent has no cost.]]):format(defenseDuration, blindsideChance) + This talent has no cost.]]):tformat(defenseDuration, blindsideChance) end, } diff --git a/game/modules/tome/data/talents/cursed/slaughter.lua b/game/modules/tome/data/talents/cursed/slaughter.lua index acf53e2be1b5df39c934bf23a03b89f5615dfc90..59c768e4505df7b1c334f15eb7c877c2b8e02614 100644 --- a/game/modules/tome/data/talents/cursed/slaughter.lua +++ b/game/modules/tome/data/talents/cursed/slaughter.lua @@ -78,7 +78,7 @@ newTalent{ At level 3, any wound you inflict with this carries a part of your curse, reducing the effectiveness of healing by %d%% for %d turns. The effect will stack. The damage multiplier increases with your Strength. - This talent will also attack with your shield, if you have one equipped.]]):format(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, -healFactorChange * 100, woundDuration) + This talent will also attack with your shield, if you have one equipped.]]):tformat(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, -healFactorChange * 100, woundDuration) end, } @@ -154,7 +154,7 @@ newTalent{ At level 3 the intensity of your assault overwhelms anyone who is struck, reducing their Defense by %d for 4 turns. The damage multiplier and Defense reduction increase with your Strength. - This talent will also attack with your shield, if you have one equipped.]]):format(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, -defenseChange) + This talent will also attack with your shield, if you have one equipped.]]):tformat(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, -defenseChange) end, } @@ -265,7 +265,7 @@ newTalent{ else size = "Small" end - return ([[Charge through your opponents, attacking anyone near your path for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage. %s opponents may be knocked away from your path. You can attack a maximum of %d times, and can hit targets along your path more than once.]]):format(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, size, maxAttackCount) + return ([[Charge through your opponents, attacking anyone near your path for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage. %s opponents may be knocked away from your path. You can attack a maximum of %d times, and can hit targets along your path more than once.]]):tformat(t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100, size, maxAttackCount) end, } @@ -301,7 +301,7 @@ newTalent{ -- info = function(self, t) -- local chance = 28 + self:getTalentLevel(t) * 7 -- local multiplier = self:combatTalentWeaponDamage(t, 0.2, 0.7) --- return ([[Every swing of your weapon has a %d%% chance of striking a second target for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage.]]):format(chance, multiplier * 50, multiplier * 100) +-- return ([[Every swing of your weapon has a %d%% chance of striking a second target for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage.]]):tformat(chance, multiplier * 50, multiplier * 100) -- end, --} @@ -370,6 +370,6 @@ newTalent{ Cleave, Repel and Surge cannot be active simultaneously, and activating one will place the others in cooldown. Cleave will deal 25%% additional damage while using a two-handed weapon. The Cleave damage increases with your Strength.]]): - format( t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100) + tformat( t.getDamageMultiplier(self, t, 0) * 100, t.getDamageMultiplier(self, t, 100) * 100) end, } diff --git a/game/modules/tome/data/talents/cursed/strife.lua b/game/modules/tome/data/talents/cursed/strife.lua index 4eb8390caf819f08bf9a7adff95d6a459720ad4e..73fe8dd63a9d6633d03f500f21233019dd2d88b7 100644 --- a/game/modules/tome/data/talents/cursed/strife.lua +++ b/game/modules/tome/data/talents/cursed/strife.lua @@ -83,7 +83,7 @@ newTalent{ return ([[Turn your attention to a nearby foe, and dominate them with your overwhelming presence. If the target fails to save versus your Mindpower, it will be unable to move for %d turns and vulnerable to attacks. They will lose %d Armour, %d Defense and your attacks will gain %d%% resistance penetration. If the target is adjacent to you, your domination will include a melee attack. Effects will improve with your Willpower. - This talent will also attack with your shield, if you have one equipped.]]):format(duration, -armorChange, -defenseChange, resistPenetration) + This talent will also attack with your shield, if you have one equipped.]]):tformat(duration, -armorChange, -defenseChange, resistPenetration) end, } @@ -102,7 +102,7 @@ newTalent{ return ([[Your preternatural senses aid you in your hunt for the next victim. You sense foes in a radius of %0.1f. You will always sense a stalked victim in a radius of 10. Also increases stealth detection by %d and invisibility detection by %d. Stealth and invisibility detection improves with your Willpower]]): - format(range, sense, sense) + tformat(range, sense, sense) end, } @@ -140,7 +140,7 @@ newTalent{ -- local conversionDuration = t.getConversionDuration(self, t) -- local conversionPercent = t.getConversionPercent(self, t) -- local maxConversion = t.getMaxConversion(self, t) --- return ([[Your suffering becomes theirs. %d%% of all damage (up to a maximum of %d per turn) that you inflict over %d turns feeds your own endurance allowing you to negate that much damage over % turns.]]):format(conversionPercent, maxConversion, conversionDuration, duration) +-- return ([[Your suffering becomes theirs. %d%% of all damage (up to a maximum of %d per turn) that you inflict over %d turns feeds your own endurance allowing you to negate that much damage over % turns.]]):tformat(conversionPercent, maxConversion, conversionDuration, duration) -- end, --} @@ -177,7 +177,7 @@ newTalent{ -- info = function(self, t) -- local damagePercent = t.getDamagePercent(self, t) -- local distance = t.getDistance(self, t) --- return ([[Swing your weapon for %d%% damage as you leap backwards %d spaces from your target.]]):format(damagePercent, distance) +-- return ([[Swing your weapon for %d%% damage as you leap backwards %d spaces from your target.]]):tformat(damagePercent, distance) -- end, --} @@ -229,7 +229,7 @@ newTalent{ -- local healFactorMax = t.getHealFactor(self, t, 100) -- local duration = t.getDuration(self, t) -- return ([[Poison your foe with the essence of your curse inflicting %d%% damage and %d (at 0 Hate) to %d (at 100+ Hate) poison damage over %d turns. Healing is also reduced by %d%% (at 0 Hate) to %d%% (at 100+ Hate). --- Poison damage increases with the Willpower stat. Hate-based effects will improve when wielding cursed weapons.]]):format(damagePercent, poisonDamageMin, poisonDamageMax, duration, healFactorMin, healFactorMax) +-- Poison damage increases with the Willpower stat. Hate-based effects will improve when wielding cursed weapons.]]):tformat(damagePercent, poisonDamageMin, poisonDamageMax, duration, healFactorMin, healFactorMax) -- end, --} @@ -274,7 +274,7 @@ newTalent{ local multiplier = self:combatTalentWeaponDamage(t, 0.7, 1.9) local defenseChange = t.getDefenseChange(self, t) return ([[With blinding speed, you suddenly appear next to a target up to %d spaces away and attack for %d%% (at 0 Hate) to %d%% (at 100+ Hate) damage. Your sudden appearance catches everyone off-guard, giving you %d extra Defense for 1 turn. - The Defense boost improves with your Strength.]]):format(self:getTalentRange(t), multiplier * 30, multiplier * 100, defenseChange) + The Defense boost improves with your Strength.]]):tformat(self:getTalentRange(t), multiplier * 30, multiplier * 100, defenseChange) end, } @@ -364,7 +364,7 @@ newTalent{ -- local confuseDuration = t.getConfuseDuration(self, t) -- local confuseEfficiency = t.getConfuseEfficiency(self, t) - -- return ([[With unnatural speed you assail all foes in sight within a range of 4 with wild swings from your axe. You will attack up to %d different targets for %d%% damage. When the assualt finally ends all foes in range will be confused for %d turns and you will find yourself in a nearby location.]]):format(attackCount, damagePercent, confuseDuration) + -- return ([[With unnatural speed you assail all foes in sight within a range of 4 with wild swings from your axe. You will attack up to %d different targets for %d%% damage. When the assualt finally ends all foes in range will be confused for %d turns and you will find yourself in a nearby location.]]):tformat(attackCount, damagePercent, confuseDuration) -- end, -- } @@ -419,6 +419,6 @@ newTalent{ local chance = t.getChance(self, t) return ([[Rather than hide from the onslaught, you face down every threat. While active you have a %d%% chance of repelling a melee attack. The recklessness of your defense brings you bad luck (Luck -3). Cleave, Repel and Surge cannot be active simultaneously, and activating one will place the others in cooldown. - Repel chance increases with your Strength and by 20%% when equipped with a shield.]]):format(chance) + Repel chance increases with your Strength and by 20%% when equipped with a shield.]]):tformat(chance) end, } diff --git a/game/modules/tome/data/talents/cursed/traveler.lua b/game/modules/tome/data/talents/cursed/traveler.lua index 291406f2dafddf8af359e6ad873efb9e29a5b9e4..561524f7859e65aab38ce4ec372c129b7bbda38f 100644 --- a/game/modules/tome/data/talents/cursed/traveler.lua +++ b/game/modules/tome/data/talents/cursed/traveler.lua @@ -30,7 +30,7 @@ newTalent{ self.combat_armor = self.combat_armor - 2 end, info = function(self, t) - return ([[Your travels have hardened you. You gain +%d armor.]]):format(self:getTalentLevelRaw(t) * 2) + return ([[Your travels have hardened you. You gain +%d armor.]]):tformat(self:getTalentLevelRaw(t) * 2) end } @@ -47,7 +47,7 @@ newTalent{ self.trap_avoidance = self.trap_avoidance - 14 end, info = function(self, t) - return ([[You have become wary of danger in your journeys. You have a %d%% chance of not triggering traps.]]):format(self:getTalentLevelRaw(t) * 14) + return ([[You have become wary of danger in your journeys. You have a %d%% chance of not triggering traps.]]):tformat(self:getTalentLevelRaw(t) * 14) end } @@ -67,7 +67,7 @@ newTalent{ self.resists[DamageType.COLD] = self.resists[DamageType.COLD] - 7 end, info = function(self, t) - return ([[You have become weathered by the elements. Your Cold and Fire resistance is increased by %d%%]]):format(self:getTalentLevel(t) * 7) + return ([[You have become weathered by the elements. Your Cold and Fire resistance is increased by %d%%]]):tformat(self:getTalentLevel(t) * 7) end } @@ -84,7 +84,7 @@ newTalent{ self.exp_kill_multiplier = (self.exp_kill_multiplier or 1) - 0.03 end, info = function(self, t) - return ([[You have become a keen observer in your travels. Each kill gives you %d%% more experience.]]):format(self:getTalentLevelRaw(t) * 3) + return ([[You have become a keen observer in your travels. Each kill gives you %d%% more experience.]]):tformat(self:getTalentLevelRaw(t) * 3) end } diff --git a/game/modules/tome/data/talents/gifts/antimagic.lua b/game/modules/tome/data/talents/gifts/antimagic.lua index 57632ffb1782089b1687489d6736baab2d9ee786..a892441ba8c69b45a2fc3180c7f06b950890c740 100644 --- a/game/modules/tome/data/talents/gifts/antimagic.lua +++ b/game/modules/tome/data/talents/gifts/antimagic.lua @@ -54,7 +54,7 @@ newTalent{ At talent level 3, the bonus resistance may apply to 3 elements, refreshing the duration with each element added. Additionally, each time you take non-physical, non-mind damage, your equilibrium will decrease and stamina increase by %0.2f. The effects will increase with the greater of your Mindpower or Physical power and the bonus resistance can be a mental crit.]]): - format( resist, regen ) + tformat( resist, regen ) end, } @@ -110,7 +110,7 @@ newTalent{ The damage and apply power will increase with the greater of your Mindpower or Physical power. Learning this talent will let your Nature damage and penetration bonuses apply to all Manaburn damage regardless of source.]]): - format(t.getduration(self,t), rad, t.getFloorDuration(self,t), t.getDamage(self, t), t.getEquiRegen(self, t)) + tformat(t.getduration(self,t), rad, t.getFloorDuration(self,t), t.getDamage(self, t), t.getEquiRegen(self, t)) end, } @@ -166,7 +166,7 @@ newTalent{ return ([[Surround yourself with a shield that will absorb at most %d non-physical, non-mind element damage per attack. Each time damage is absorbed by the shield, your equilibrium increases by 1 for every 30 points of damage and a standard Equilibrium check is made. If the check fails, the shield will crumble and Antimagic Shield will go on cooldown. The damage the shield can absorb will increase with your Mindpower or Physical power (whichever is greater).]]): - format(t.getMax(self, t)) + tformat(t.getMax(self, t)) end, } @@ -217,7 +217,7 @@ newTalent{ The damage done is equal to 100%% of the mana drained, 200%% of the vim drained, or 400%% of the positive or negative energy drained, whichever is higher. This effect is called a manaburn. The effect will increase with your Mindpower or Physical power (whichever is greater). %s]]): - format(mana, vim, positive, is_adept) + tformat(mana, vim, positive, is_adept) end, } @@ -229,6 +229,6 @@ newTalent{ points = 1, info = function(self, t) return ([[Your Mana Clash talent also removes 4 magical sustains from the target.]]): - format() + tformat() end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/gifts/call.lua b/game/modules/tome/data/talents/gifts/call.lua index c3511594ebd530f2ca0bd20ecc9706e5d7e973d5..1fbe89e82e97f5ac9047faa4861b040e247e1bef 100644 --- a/game/modules/tome/data/talents/gifts/call.lua +++ b/game/modules/tome/data/talents/gifts/call.lua @@ -84,7 +84,7 @@ newTalent{ Your deep meditation does not let you deal damage correctly, reducing the damage you and your summons deal by 50%%. Also, any time you are resting (even with Meditation not sustained) you enter a simple meditative state that decreases your equilibrium by %0.2f per turn. The activated effects increase with your Mindpower.]]): - format(pt, save, heal, rest) + tformat(pt, save, heal, rest) end, } @@ -146,7 +146,7 @@ newTalent{ short_name = "NATURE_TOUCH", info = function(self, t) return ([[Touch a target (or yourself) to infuse it with Nature, healing it for %d (this heal does not work on undead). The amount healed will increase with your Mindpower.]]): - format(t.getHeal(self, t)) + tformat(t.getHeal(self, t)) end, } @@ -172,7 +172,7 @@ newTalent{ local radius_esp = t.radius_esp(self, t) return ([[Using your connection to Nature, you can see your surrounding area in a radius of %d. Also, while meditating, you are able to detect the presence of creatures around you in a radius of %d.]]): - format(radius, radius_esp) + tformat(radius, radius_esp) end, } @@ -211,6 +211,6 @@ newTalent{ end, info = function(self, t) return ([[Your deep link with Nature allows you to reset the cooldown of %d of your wild gifts of tier %d or less.]]): - format(t.getTalentCount(self, t), t.getMaxLevel(self, t)) + tformat(t.getTalentCount(self, t), t.getMaxLevel(self, t)) end, } diff --git a/game/modules/tome/data/talents/gifts/cold-drake.lua b/game/modules/tome/data/talents/gifts/cold-drake.lua index 4a1b3e8c35761bef48b00b9234b55bf833966554..6c7e389e86b60dddf58e8f203b9deb5eaec279c9 100644 --- a/game/modules/tome/data/talents/gifts/cold-drake.lua +++ b/game/modules/tome/data/talents/gifts/cold-drake.lua @@ -72,7 +72,7 @@ newTalent{ Every level in Ice Claw additionally raises your Physical Save by 2. Each point in cold drake talents also increases your cold resistance by 1%%. - This talent will also attack with your shield, if you have one equipped.]]):format(100 * t.damagemult(self, t), self:getTalentRadius(t)) + This talent will also attack with your shield, if you have one equipped.]]):tformat(100 * t.damagemult(self, t), self:getTalentRadius(t)) end, } @@ -109,7 +109,7 @@ newTalent{ return ([[Your skin forms icy scales and your flesh toughens, increasing your Maximum Life by %d%% and your Armour by %d. You also deal %0.2f cold damage to any enemies that physically strike you. Each point in cold drake talents also increases your cold resistance by 1%%. - The life increase will scale with your Talent Level, and your Armour and retaliation cold damage will scale with Mindpower.]]):format(life * 100, t.getArmor(self, t), damDesc(self, DamageType.COLD, t.getDamageOnMeleeHit(self, t))) + The life increase will scale with your Talent Level, and your Armour and retaliation cold damage will scale with Mindpower.]]):tformat(life * 100, t.getArmor(self, t), damDesc(self, DamageType.COLD, t.getDamageOnMeleeHit(self, t))) end, } @@ -202,7 +202,7 @@ newTalent{ local icedam = t.getIceDamage(self, t) return ([[Summons an icy wall of %d length for %d turns. Ice walls are transparent, but block projectiles and enemies. Ice walls also emit freezing cold, dealing %0.2f damage for each ice wall within radius %d of an enemy, and with each wall giving a 25%% chance to freeze an enemy. This cold cannot hurt the talent user or their allies. - Each point in cold drake talents also increases your cold resistance by 1%%.]]):format(3 + math.floor(self:getTalentLevel(t) / 2) * 2, t.getDuration(self, t), damDesc(self, DamageType.COLD, icedam), icerad) + Each point in cold drake talents also increases your cold resistance by 1%%.]]):tformat(3 + math.floor(self:getTalentLevel(t) / 2) * 2, t.getDuration(self, t), damDesc(self, DamageType.COLD, icedam), icerad) end, } @@ -259,6 +259,6 @@ newTalent{ info = function(self, t) return ([[You breathe ice in a frontal cone of radius %d. Any target caught in the area will take %0.2f cold damage and be frozen for 3 turns. The damage will increase with your Strength, the critical chance is based on your Mental crit rate, and the Freeze apply power is based on your Mindpower. - Each point in cold drake talents also increases your cold resistance by 1%%.]]):format( self:getTalentRadius(t), damDesc(self, DamageType.COLD, t.getDamage(self, t))) + Each point in cold drake talents also increases your cold resistance by 1%%.]]):tformat( self:getTalentRadius(t), damDesc(self, DamageType.COLD, t.getDamage(self, t))) end, } diff --git a/game/modules/tome/data/talents/gifts/corrosive-blades.lua b/game/modules/tome/data/talents/gifts/corrosive-blades.lua index e05235b7785376ed3d7e0a5735b8f15f11f4a532..a6114027d4c50fcdc65c41e52e22b09a4c68913c 100644 --- a/game/modules/tome/data/talents/gifts/corrosive-blades.lua +++ b/game/modules/tome/data/talents/gifts/corrosive-blades.lua @@ -51,7 +51,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Channel acid through your psiblades, extending their reach to create a beam doing %0.1f Acid damage (which can disarm them). The damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.ACID, dam)) + tformat(damDesc(self, DamageType.ACID, dam)) end, } @@ -75,7 +75,7 @@ newTalent{ When you deal Nature damage to a creature, you gain a %0.1f%% bonus to Acid damage for %d turns. This damage bonus will improve up to 4 times (no more than once each turn) with later Nature damage you do, up to a maximum of %0.1f%%. The resistance and damage increase improve with your Mindpower.]]): - format(t.getResist(self, t), t.getAcidDamage(self, t, 1), t.getDuration(self, t), t.getAcidDamage(self, t, 5)) + tformat(t.getResist(self, t), t.getAcidDamage(self, t, 1), t.getDuration(self, t), t.getAcidDamage(self, t, 5)) end, } @@ -176,7 +176,7 @@ newTalent{ The first seed will appear at the center of the target zone, while others will appear at random spots. Each seed lasts %d turns and will explode when a hostile creature walks over it, knocking the creature back and dealing %0.1f Acid damage within radius 1. The damage will increase with your Mindpower.]]): - format(nb, t.getDuration(self, t), damDesc(self, DamageType.ACID, dam)) + tformat(nb, t.getDuration(self, t), damDesc(self, DamageType.ACID, dam)) end, } @@ -218,6 +218,6 @@ newTalent{ local regen = t.getRegen(self, t) return ([[Surround yourself with natural forces, ignoring %d%% acid resistance of your targets. In addition, the acid will nourish your bloated oozes, giving them an additional %0.1f life regeneration per turn.]]) - :format(ressistpen, regen) + :tformat(ressistpen, regen) end, } diff --git a/game/modules/tome/data/talents/gifts/dwarven-nature.lua b/game/modules/tome/data/talents/gifts/dwarven-nature.lua index 57dc9b2e3d2fdebeb57de0be234a08f065eb8be2..f176e6a5b851728a96d9708075b33b3f39087280 100644 --- a/game/modules/tome/data/talents/gifts/dwarven-nature.lua +++ b/game/modules/tome/data/talents/gifts/dwarven-nature.lua @@ -63,7 +63,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Conjures %d missile-shaped rocks that you target individually at any target or targets in range. Each missile deals %0.2f physical damage, and an additional %0.2f bleeding damage every turn for 5 turns. At talent level 5, you can conjure one additional missile. - The damage will increase with your Spellpower.]]):format(count,damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/12)) + The damage will increase with your Spellpower.]]):tformat(count,damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/12)) end, } @@ -97,7 +97,7 @@ newTalent{ ai_target={actor=nil}, ai="summoned", ai_real="tactical", name="Crystaline Half ("..self.name..")", - desc=([[A crystaline structure that has taken the form of %s.]]):format(self.name), + desc=([[A crystaline structure that has taken the form of %s.]]):tformat(self.name), }) local tids = table.keys(m.talents) for i, tid in ipairs(tids) do @@ -140,7 +140,7 @@ newTalent{ ai_target={actor=nil}, ai="summoned", ai_real="tactical", name="Stone Half ("..self.name..")", - desc=([[A stone structure that has taken the form of %s.]]):format(self.name), + desc=([[A stone structure that has taken the form of %s.]]):tformat(self.name), }) local tids = table.keys(m.talents) for i, tid in ipairs(tids) do @@ -182,7 +182,7 @@ newTalent{ Your Crystaline Half will attack your foes with earthen missiles. Your Stone Half will taunt your foes to protect you. This power can not be called upon while under the effect of Deeprock Form. - ]]):format(t.getDuration(self, t)) + ]]):tformat(t.getDuration(self, t)) end, } @@ -197,7 +197,7 @@ newTalent{ Crystaline Half: Rain of Spikes - A massive effect that makes all nearby foes bleed. Stone Half: Stone Link - A protective shield that will redirect all damage against nearby allies to your Stone Half. The level of those talents is %d.]]): - format(math.floor(self:getTalentLevel(t))) + tformat(math.floor(self:getTalentLevel(t))) end, } @@ -255,7 +255,7 @@ newTalent{ Your Stone Half will trade places (if in sight) with you and all creatures currently targetting you in a radius of %d will target it instead. Your Crystaline Half will instantly fire a volley of level %d earthen missiles at all foes near the stone half (or you if the stone half is dead) in radius %d. In addition, as passive effect, your halves now also learn your level of Combat Accuracy.]]): - format(self:getTalentRadius(t), self:getTalentLevelRaw(t), self:getTalentRadius(t)) + tformat(self:getTalentRadius(t), self:getTalentLevelRaw(t), self:getTalentRadius(t)) end, } @@ -319,7 +319,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[Merges your halves back into you, cleansing your body of %d detrimental magical, mental or physical effects. Each half also heals you for %d and releases a shockwave dealing %0.2f Nature damage in a radius 3.]]): - format(nb, heal, damDesc(self, DamageType.NATURE, dam)) + tformat(nb, heal, damDesc(self, DamageType.NATURE, dam)) end, } @@ -343,7 +343,7 @@ newTalent{ end, info = function(self, t) local radius = self:getTalentRadius(t) - return ([[Creates a shield of radius %d that redirects all damage done to friends inside it to you for 5 turns.]]):format(radius) + return ([[Creates a shield of radius %d that redirects all damage done to friends inside it to you for 5 turns.]]):tformat(radius) end, } @@ -374,6 +374,6 @@ newTalent{ local radius = self:getTalentRadius(t) local dam = t.getDamage(self, t) return ([[Fires spikes all around you, making your foes within radius %d bleed for %0.2f damage over 6 turns. - Damage and chance to apply the effect increase with Willpower.]]):format(radius, damDesc(self, DamageType.PHYSICAL, dam)) + Damage and chance to apply the effect increase with Willpower.]]):tformat(radius, damDesc(self, DamageType.PHYSICAL, dam)) end, } diff --git a/game/modules/tome/data/talents/gifts/earthen-power.lua b/game/modules/tome/data/talents/gifts/earthen-power.lua index 2d3b76976d1f78fb3df83a726674d7636e4996e6..fac80e3a78d58acefb430c1b125d0dd0cae0b71f 100644 --- a/game/modules/tome/data/talents/gifts/earthen-power.lua +++ b/game/modules/tome/data/talents/gifts/earthen-power.lua @@ -45,7 +45,7 @@ newTalent{ local inc = t.getPercentInc(self, t) return ([[The first time you take damage each turn, you regenerate %d%% of the damage dealt as mana (up to a maximum of %0.2f) and %d%% as equilibrium (up to %0.2f). Increases Physical Power by %d, increases damage done with shields by %d%%, and allows you to dual-wield shields. - Also, all of your melee attacks will perform a shield bash in addition to their normal effects.]]):format(100 * m, mm, 100 * e, em, damage, inc*100) + Also, all of your melee attacks will perform a shield bash in addition to their normal effects.]]):tformat(100 * m, mm, 100 * e, em, damage, inc*100) end, } @@ -66,7 +66,7 @@ newTalent{ info = function(self, t) return ([[When you use your Resilience of the Dwarves racial power your skin becomes so tough that it even absorbs damage from non-physical attacks. Non-physical damage is reduced by %d%% of your total armour value (ignoring hardiness).]]): - format(t.getPercent(self, t)) + tformat(t.getPercent(self, t)) end, } @@ -89,7 +89,7 @@ newTalent{ return ([[Sharp shards of stone grow from your shields. When you are hit in melee, you will get a free attack against the attacker with the shards doing %d%% shield damage (as Nature). This effect can only happen once per turn.]]): - format(self:combatTalentWeaponDamage(t, 0.4, 1) * 100) + tformat(self:combatTalentWeaponDamage(t, 0.4, 1) * 100) end, } @@ -121,6 +121,6 @@ newTalent{ When the effect ends, all equilibrium above minimum will be converted to mana in a storm of arcane energy and the cooldown of your Block is reset. The storm inflicts Arcane damage equal to the converted equilibrium (maximum %d) against everyone around you in a radius %d. Also while resting you will passively regenerate %0.2f mana each turn. - The shield strength will increase with Willpower]]):format(power, t.maxDamage(self, t), radius, t.manaRegen(self, t)) + The shield strength will increase with Willpower]]):tformat(power, t.maxDamage(self, t), radius, t.manaRegen(self, t)) end, } diff --git a/game/modules/tome/data/talents/gifts/earthen-vines.lua b/game/modules/tome/data/talents/gifts/earthen-vines.lua index 996c51f77e8bd36054a8a344d6742cf252702e3c..9564886acd2fca79b79f4bfd027eef9463076e10 100644 --- a/game/modules/tome/data/talents/gifts/earthen-vines.lua +++ b/game/modules/tome/data/talents/gifts/earthen-vines.lua @@ -65,13 +65,13 @@ newTalent{ info = function(self, t) local rad = self:getTalentRadius(t) local turns, dam, arcanedam = t.getValues(self, t) - local xs = arcanedam and (" and %0.1f Arcane"):format(damDesc(self, DamageType.ARCANE, arcanedam)) or "" + local xs = arcanedam and (" and %0.1f Arcane"):tformat(damDesc(self, DamageType.ARCANE, arcanedam)) or "" return ([[From the ground around you, you form living stone vines extending from your feet. Each turn, the vines will attempt to seize a random target within radius %d. Affected creatures are pinned to the ground and take %0.1f nature%s damage each turn for %d turns. A creature entangled by the vines will have a chance to break free each turn, and will automatically succeed if it is more than %d grids away from you. The chance to affect targets and damage increase with talent level and Willpower.]]): - format(rad, damDesc(self, DamageType.NATURE, dam), xs, turns, rad+4) + tformat(rad, damDesc(self, DamageType.NATURE, dam), xs, turns, rad+4) end, } @@ -88,7 +88,7 @@ newTalent{ info = function(self, t) return ([[Each time one of your stone vines deals damage to a creature it will restore %0.1f equilibrium and %0.1f mana. Your vines also become infused with eldritch energies, dealing an additional %0.1f arcane damage.]]) - :format(t.getEquilibrium(self, t), t.getMana(self, t), damDesc(self, DamageType.ARCANE, t.getDamage(self, t))) + :tformat(t.getEquilibrium(self, t), t.getMana(self, t), damDesc(self, DamageType.ARCANE, t.getDamage(self, t))) end, } @@ -134,7 +134,7 @@ newTalent{ return ([[Merge with one of your stone vines, traversing it to emerge near an entangled creature (maximum range %d). Merging with the stone is beneficial for you, healing %0.2f life (increases with Willpower). This will not break Body of Stone.]]) - :format(self:getTalentRange(t) ,100 + self:combatTalentStatDamage(t, "wil", 40, 630)) + :tformat(self:getTalentRange(t) ,100 + self:combatTalentStatDamage(t, "wil", 40, 630)) end, } @@ -174,6 +174,6 @@ newTalent{ return ([[Merge your target (within range %d) with one of your stone vines that has seized it, forcing it to traverse the vine and reappear near you. Merging with the stone is detrimental for the target, dealing %0.1f nature damage. The damage will increases with your Willpower.]]) - :format(self:getTalentRange(t), 80 + self:combatTalentStatDamage(t, "wil", 40, 330)) + :tformat(self:getTalentRange(t), 80 + self:combatTalentStatDamage(t, "wil", 40, 330)) end, } diff --git a/game/modules/tome/data/talents/gifts/eyals-fury.lua b/game/modules/tome/data/talents/gifts/eyals-fury.lua index 693293de3c61bc7f2f219e736a7ad9084d6c9c61..3023edf91dea63413220ef2a753c5d3eb7cf260f 100644 --- a/game/modules/tome/data/talents/gifts/eyals-fury.lua +++ b/game/modules/tome/data/talents/gifts/eyals-fury.lua @@ -47,7 +47,7 @@ newTalent{ return ([[You focus the inexorable pull of nature against a single creature, eroding it and allowing it to be reclaimed by the cycle of life. This deals %0.1f Nature and %0.1f Acid damage to the target, and is particularly devastating against undead and constructs, dealing %d%% more damage to them. The damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.NATURE, dam/2), damDesc(self, DamageType.ACID, dam/2), t.undeadBonus) + tformat(damDesc(self, DamageType.NATURE, dam/2), damDesc(self, DamageType.ACID, dam/2), t.undeadBonus) end, } @@ -77,7 +77,7 @@ newTalent{ You gain %d Spell save, %0.1f%% Arcane resistance, and %0.1f%% Nature damage affinity. You defy arcane forces, so that any time you take damage from a spell, you restore %0.1f Equilibrium each turn for %d turns. The effects increase with your Mindpower.]]): - format(t.getSave(self, t), t.getResist(self, t), t.getAffinity(self, t), t.getPower(self, t), t.getDuration(self, t)) + tformat(t.getSave(self, t), t.getResist(self, t), t.getAffinity(self, t), t.getPower(self, t), t.getDuration(self, t)) end, } @@ -163,7 +163,7 @@ newTalent{ return ([[You call upon the earth to create a blinding, corrosive cloud in an area of radius %d for %d turns. Each turn, this cloud deals %0.1f acid damage to each foe with a 25%% chance to blind and a %d%% chance of burning away one magical sustain or beneficial magical effect. The damage increases with your Mindpower.]]): - format(self:getTalentRadius(t), t.getDuration(self, t), damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getChance(self, t)) + tformat(self:getTalentRadius(t), t.getDuration(self, t), damDesc(self, DamageType.ACID, t.getDamage(self, t)), t.getChance(self, t)) end, } @@ -188,7 +188,7 @@ newTalent{ act:incMana(-mana); act:incVim(-vim); act:incPositive(-positive); act:incNegative(-negative) local drain = mana + vim + positive + negative if drain > 0 then - game:delayedLogMessage(eff.src, act, "Eyal's Wrath", ("#CRIMSON#%s drains magical energy!"):format(eff:getName())) + game:delayedLogMessage(eff.src, act, "Eyal's Wrath", ("#CRIMSON#%s drains magical energy!"):tformat(eff:getName())) eff.src:incEquilibrium(-drain/10) end end, @@ -230,6 +230,6 @@ newTalent{ This storm moves with you and deals %0.1f Nature damage each turn to all foes it hits. In addtion, it will drain up to %d Mana, %d Vim, %d Positive, and %d Negative energy from each enemy within it's area every turn, while you restore Equilibrium equal to 10%% of the amount drained. The damage and drain increase with your Mindpower.]]): - format(self:getTalentRadius(t), t.getDuration(self, t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), drain, drain/2, drain/4, drain/4) + tformat(self:getTalentRadius(t), t.getDuration(self, t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), drain, drain/2, drain/4, drain/4) end, } diff --git a/game/modules/tome/data/talents/gifts/fire-drake.lua b/game/modules/tome/data/talents/gifts/fire-drake.lua index 05390b7b1a9f32ae26436f031387829cb5b998c7..d00c3c020a2dac428d1464fe91660fa830729db3 100644 --- a/game/modules/tome/data/talents/gifts/fire-drake.lua +++ b/game/modules/tome/data/talents/gifts/fire-drake.lua @@ -79,7 +79,7 @@ newTalent{ Every level in Wing Buffet additionally raises your Physical Power and Accuracy by 2, passively. Each point in fire drake talents also increases your fire resistance by 1%%. - This talent will also attack with your shield, if you have one equipped.]]):format(self:getTalentRadius(t),damage*100) + This talent will also attack with your shield, if you have one equipped.]]):tformat(self:getTalentRadius(t),damage*100) end, } @@ -119,7 +119,7 @@ newTalent{ return ([[You let out a powerful roar that sends your foes in radius %d into utter confusion (power: %d%%) for 3 turns. The sound wave is so strong, your foes also take %0.2f physical damage. The damage improves with your Strength. - Each point in fire drake talents also increases your fire resistance by 1%%.]]):format(radius, power, self:combatTalentStatDamage(t, "str", 30, 380)) + Each point in fire drake talents also increases your fire resistance by 1%%.]]):tformat(radius, power, self:combatTalentStatDamage(t, "str", 30, 380)) end, } @@ -174,7 +174,7 @@ newTalent{ return ([[Spit a cloud of flames, doing %0.2f fire damage in a radius of %d each turn for %d turns. The flames will ignore the caster, and will drain 10%% of the damage dealt as the flames consume enemies life force and transfer it to the user. The damage will increase with your Mindpower, and can critical. - Each point in fire drake talents also increases your fire resistance by 1%%.]]):format(damDesc(self, DamageType.FIRE, dam), radius, duration) + Each point in fire drake talents also increases your fire resistance by 1%%.]]):tformat(damDesc(self, DamageType.FIRE, dam), radius, duration) end, } @@ -218,6 +218,6 @@ newTalent{ info = function(self, t) return ([[You breathe fire in a frontal cone of radius %d. Any target caught in the area will take %0.2f fire damage over 3 turns. The damage will increase with your Strength and the critical chance is based on your Mental crit rate. - Each point in fire drake talents also increases your fire resistance by 1%%.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.FIRE, t.getDamage(self, t))) + Each point in fire drake talents also increases your fire resistance by 1%%.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.FIRE, t.getDamage(self, t))) end, } diff --git a/game/modules/tome/data/talents/gifts/fungus.lua b/game/modules/tome/data/talents/gifts/fungus.lua index 92929708e4978468349e2e96304dbc43c95ecccd..e22f00552b7abff873b8db98f7260b339071e925 100644 --- a/game/modules/tome/data/talents/gifts/fungus.lua +++ b/game/modules/tome/data/talents/gifts/fungus.lua @@ -38,7 +38,7 @@ newTalent{ return ([[Surround yourself with a myriad of tiny, nearly invisible, reinforcing fungi. You gain %d maximum life and %d life regeneration. The effects will increase with your Willpower.]]): - format(t.getLife(self, t), t.getRegen(self, t)) + tformat(t.getLife(self, t), t.getRegen(self, t)) end, } @@ -59,7 +59,7 @@ newTalent{ return ([[The fungus on your body allows regeneration effects to last longer. Each time you gain a beneficial effect with the regeneration subtype you increase its duration by %d%% + 1 rounded up. The effect will increase with your Mindpower.]]): - format(t.getDurationBonus(self, t) * 100) + tformat(t.getDurationBonus(self, t) * 100) end, } @@ -102,7 +102,7 @@ newTalent{ Each time you receive non-regeneration healing you gain %d%% of a turn per 100 life healed. This effect can't add energy past 2 stored turns and overhealing is not counted. Also, regeneration effects on you will decrease your equilibrium by %0.1f each turn. The turn gain increases with your Mindpower.]]): - format(turn * 100, eq) + tformat(turn * 100, eq) end, } @@ -128,6 +128,6 @@ newTalent{ info = function(self, t) local mult = t.getMult(self, t) return ([[A wave of energy passes through your fungus, making it release immediate healing energies on you, healing you for %d%% of your current life regeneration rate (#GREEN#%d#LAST#).]]): - format(mult * 100, self.life_regen * mult) + tformat(mult * 100, self.life_regen * mult) end, } diff --git a/game/modules/tome/data/talents/gifts/gifts.lua b/game/modules/tome/data/talents/gifts/gifts.lua index b2694cdcbe7fb8684f55baef83d3479b4f1b1c9c..4d9f21e1979d847114f1de99c77574216cb3a85d 100644 --- a/game/modules/tome/data/talents/gifts/gifts.lua +++ b/game/modules/tome/data/talents/gifts/gifts.lua @@ -18,33 +18,33 @@ -- darkgod@te4.org -- Wild Gifts -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/call", name = "call of the wild", generic = true, description = "Be at one with nature." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/harmony", name = "harmony", generic = true, description = "Nature heals and cleans you." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, is_antimagic=true, type="wild-gift/antimagic", name = "antimagic", generic = true, description = "The way to combat magic, or even nullify it." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-melee", name = "summoning (melee)", description = "The art of calling creatures adept in melee combat to your aid." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-distance", name = "summoning (distance)", description = "The art of calling creatures adept in elemental destruction to your aid." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-utility", name = "summoning (utility)", description = "The art of calling versatile creatures to your aid." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-augmentation", name = "summoning (augmentation)", description = "The art of manipulating the lifespan and location of your summons." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-advanced", name = "summoning (advanced)", min_lev = 10, description = "The art of improving the quality of your summons." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/slime", name = "slime", description = "Through dedicated consumption of slime mold juice, you have gained an affinity with slime molds." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/fungus", name = "fungus", generic = true, description = "By covering yourself in fungus, you better your healing." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/sand-drake", name = "sand drake aspect", description = "Take on the defining aspects of a Sand Drake." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/fire-drake", name = "fire drake aspect", description = "Take on the defining aspects of a Fire Drake." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/cold-drake", name = "cold drake aspect", description = "Take on the defining aspects of a Cold Drake." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/storm-drake", name = "storm drake aspect", description = "Take on the defining aspects of a Storm Drake." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/venom-drake", name = "venom drake aspect", description = "Take on the defining aspects of a Venom Drake." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/higher-draconic", name = "higher draconic abilities", description = "Take on the aspects of aged and powerful dragons." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/mindstar-mastery", name = "mindstar mastery", generic = true, description = "Learn to channel your mental power through mindstars, forming powerful psionic blades." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/mucus", name = "mucus", description = "Cover the floor with natural mucus." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/ooze", name = "ooze", description = "Your body and internal organs are becoming more ooze-like in nature, allowing you to spawn more of you." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/moss", name = "moss", description = "You learn to control moss, making it grow at will to help you on the battlefield." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/malleable-body", name = "malleable body", description = "Your body's anatomy is starting to blur." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/oozing-blades", name = "oozing blades", description = "You channel ooze through your psiblades." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/corrosive-blades", name = "corrosive blades", description = "You channel acid through your psiblades." } -newTalentType{ allow_random=true, is_mind=true, is_nature=true, is_antimagic=true, type="wild-gift/eyals-fury", name = "eyal's fury", description = "Unleash nature's fury against foes around you." } -newTalentType{ allow_random=true, is_nature=true, type="wild-gift/earthen-power", name = "earthen power", description = "Dwarves have learned to imbue their shields with the power of stone itself." } -newTalentType{ allow_random=true, is_nature=true, type="wild-gift/earthen-vines", name = "earthen vines", description = "Control the stone itself and bring it alive in the form of dreadful vines." } -newTalentType{ allow_random=true, is_nature=true, type="wild-gift/dwarven-nature", name = "dwarven nature", description = "Learn to harness the innate power of your race." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/call", name = _t"call of the wild", generic = true, description = _t"Be at one with nature." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/harmony", name = _t"harmony", generic = true, description = _t"Nature heals and cleans you." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, is_antimagic=true, type="wild-gift/antimagic", name = _t"antimagic", generic = true, description = _t"The way to combat magic, or even nullify it." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-melee", name = _t"summoning (melee)", description = _t"The art of calling creatures adept in melee combat to your aid." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-distance", name = _t"summoning (distance)", description = _t"The art of calling creatures adept in elemental destruction to your aid." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-utility", name = _t"summoning (utility)", description = _t"The art of calling versatile creatures to your aid." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-augmentation", name = _t"summoning (augmentation)", description = _t"The art of manipulating the lifespan and location of your summons." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/summon-advanced", name = _t"summoning (advanced)", min_lev = 10, description = _t"The art of improving the quality of your summons." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/slime", name = _t"slime", description = _t"Through dedicated consumption of slime mold juice, you have gained an affinity with slime molds." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/fungus", name = _t"fungus", generic = true, description = _t"By covering yourself in fungus, you better your healing." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/sand-drake", name = _t"sand drake aspect", description = _t"Take on the defining aspects of a Sand Drake." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/fire-drake", name = _t"fire drake aspect", description = _t"Take on the defining aspects of a Fire Drake." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/cold-drake", name = _t"cold drake aspect", description = _t"Take on the defining aspects of a Cold Drake." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/storm-drake", name = _t"storm drake aspect", description = _t"Take on the defining aspects of a Storm Drake." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/venom-drake", name = _t"venom drake aspect", description = _t"Take on the defining aspects of a Venom Drake." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/higher-draconic", name = _t"higher draconic abilities", description = _t"Take on the aspects of aged and powerful dragons." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/mindstar-mastery", name = _t"mindstar mastery", generic = true, description = _t"Learn to channel your mental power through mindstars, forming powerful psionic blades." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/mucus", name = _t"mucus", description = _t"Cover the floor with natural mucus." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/ooze", name = _t"ooze", description = _t"Your body and internal organs are becoming more ooze-like in nature, allowing you to spawn more of you." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/moss", name = _t"moss", description = _t"You learn to control moss, making it grow at will to help you on the battlefield." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/malleable-body", name = _t"malleable body", description = _t"Your body's anatomy is starting to blur." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/oozing-blades", name = _t"oozing blades", description = _t"You channel ooze through your psiblades." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, type="wild-gift/corrosive-blades", name = _t"corrosive blades", description = _t"You channel acid through your psiblades." } +newTalentType{ allow_random=true, is_mind=true, is_nature=true, is_antimagic=true, type="wild-gift/eyals-fury", name = _t"eyal's fury", description = _t"Unleash nature's fury against foes around you." } +newTalentType{ allow_random=true, is_nature=true, type="wild-gift/earthen-power", name = _t"earthen power", description = _t"Dwarves have learned to imbue their shields with the power of stone itself." } +newTalentType{ allow_random=true, is_nature=true, type="wild-gift/earthen-vines", name = _t"earthen vines", description = _t"Control the stone itself and bring it alive in the form of dreadful vines." } +newTalentType{ allow_random=true, is_nature=true, type="wild-gift/dwarven-nature", name = _t"dwarven nature", description = _t"Learn to harness the innate power of your race." } -- Generic requires for gifts based on talent level gifts_req1 = { diff --git a/game/modules/tome/data/talents/gifts/harmony.lua b/game/modules/tome/data/talents/gifts/harmony.lua index 754fda58bbf5b9b535b6911563387a1887306efb..0e255628cb9ab614285c71404d2845986ddd60ce 100644 --- a/game/modules/tome/data/talents/gifts/harmony.lua +++ b/game/modules/tome/data/talents/gifts/harmony.lua @@ -55,7 +55,7 @@ newTalent{ For %d turns, all poisons and diseases will heal you instead of damaging you. When activated, it also heals you for %d life for each disease or poison you have. The healing per disease/poison will increase with your Willpower.]]): - format(t.getdur(self,t), self:combatTalentStatDamage(t, "wil", 20, 60)) + tformat(t.getdur(self,t), self:combatTalentStatDamage(t, "wil", 20, 60)) end, } @@ -98,7 +98,7 @@ newTalent{ Lightning: +%d to all stats Acid: +%0.2f life regen Nature: +%d%% to all resists]]): - format(turns, turns, fire, cold, lightning, acid, nature) + tformat(turns, turns, fire, cold, lightning, acid, nature) end, } @@ -136,7 +136,7 @@ newTalent{ local turns = t.getCooldown(self, t) local nb = t.getNb(self, t) return ([[Commune with nature, removing the infusion saturation effect and reducing the cooldown of %d infusions by %d turns.]]): - format(nb, turns) + tformat(nb, turns) end, } @@ -176,6 +176,6 @@ newTalent{ On you, this effect causes each heal received to restore %d equilibrium and be %d%% effective. On other creatures, all healing is intercepted and redirected to you at %d%% efficiency. Only direct healing (not normal regeneration) is affected.]]): - format(self:getTalentRadius(t), t.getDur(self, t), t.getEquilibrium(self, t), 100 + pct, pct) + tformat(self:getTalentRadius(t), t.getDur(self, t), t.getEquilibrium(self, t), 100 + pct, pct) end, } diff --git a/game/modules/tome/data/talents/gifts/higher-draconic.lua b/game/modules/tome/data/talents/gifts/higher-draconic.lua index 239a78ccf0526c123cd004f7512ad75d8c20f0ab..48395a27dd63fcc958c7894a0b361e483527ce4f 100644 --- a/game/modules/tome/data/talents/gifts/higher-draconic.lua +++ b/game/modules/tome/data/talents/gifts/higher-draconic.lua @@ -100,7 +100,7 @@ newTalent{ Additionally, you will cause a burst that deals %0.2f of that damage to creatures in radius %d, regardless of if you hit with the blow. Levels in Prismatic Slash increase your Physical and Mental attack speeds by %d%%. - This talent will also attack with your shield, if you have one equipped.]]):format(100 * self:combatTalentWeaponDamage(t, 1.2, 2.0), burstdamage, radius, 100*speed) + This talent will also attack with your shield, if you have one equipped.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1.2, 2.0), burstdamage, radius, 100*speed) end, } @@ -159,7 +159,7 @@ newTalent{ return ([[You breathe crippling poison in a frontal cone of radius %d. Any target caught in the area will take %0.2f nature damage each turn for 6 turns. The poison also gives enemies a %d%% chance to fail actions more complicated than basic attacks and movement, while it is in effect. The damage will increase with your Strength, and the critical chance is based on your Mental crit rate. - Each point in Venomous Breath also increases your nature resistance by 3%%, and your nature damage by 4%%.]] ):format(self:getTalentRadius(t), damDesc(self, DamageType.NATURE, t.getDamage(self,t)/6), effect) + Each point in Venomous Breath also increases your nature resistance by 3%%, and your nature damage by 4%%.]] ):tformat(self:getTalentRadius(t), damDesc(self, DamageType.NATURE, t.getDamage(self,t)/6), effect) end, } @@ -178,7 +178,7 @@ newTalent{ end, info = function(self, t) return ([[You have mastered your draconic nature. - You gain %d%% knockback resistance, and your blindness and stun resistances are increased by %d%%.]]):format(100*t.resistKnockback(self, t), 100*t.resistBlindStun(self, t)) + You gain %d%% knockback resistance, and your blindness and stun resistances are increased by %d%%.]]):tformat(100*t.resistKnockback(self, t), 100*t.resistBlindStun(self, t)) end, } @@ -231,6 +231,6 @@ newTalent{ Your resistance to these elements is increased by %0.1f%% and all damage you deal with them is increased by %0.1f%% with %0.1f%% resistance penetration. Learning this talent will add a Willpower bonus to your breath talent damage with the same scaling as Strength, effectively doubling it when the stats are equal.]]) - :format(t.getResists(self, t), t.getDamageIncrease(self, t), t.getResistPen(self, t)) + :tformat(t.getResists(self, t), t.getDamageIncrease(self, t), t.getResistPen(self, t)) end, } diff --git a/game/modules/tome/data/talents/gifts/malleable-body.lua b/game/modules/tome/data/talents/gifts/malleable-body.lua index 556a0c380578ac2409e7c6952e80e6e5d16d9955..45efc1c9e920f93806a9d257b3dafca1e51f7aac 100644 --- a/game/modules/tome/data/talents/gifts/malleable-body.lua +++ b/game/modules/tome/data/talents/gifts/malleable-body.lua @@ -39,7 +39,7 @@ newTalent{ Your two selves share the same healthpool. While you are split both of you gain %d%% all resistances. Resistances will increase with Mindpower.]]): - format(dur, 10 + self:combatTalentMindDamage(t, 5, 200) / 10) + tformat(dur, 10 + self:combatTalentMindDamage(t, 5, 200) / 10) end, } @@ -56,7 +56,7 @@ newTalent{ return ([[Improve your fungus to allow it to take a part of any healing you receive and improve it. Each time you are healed you get a regeneration effect for 6 turns that heals you of %d%% of the direct heal you received. The effect will increase with your Mindpower.]]): - format(p) + tformat(p) end, } @@ -76,7 +76,7 @@ newTalent{ return ([[Both of you swap place in an instant, creatures attacking one will target the other. While swaping you briefly merge together, boosting all your nature and acid damage by %d%% for 6 turns and healing you for %d. Damage and healing increase with Mindpower.]]): - format(15 + self:combatTalentMindDamage(t, 5, 300) / 10, 40 + self:combatTalentMindDamage(t, 5, 300)) + tformat(15 + self:combatTalentMindDamage(t, 5, 300) / 10, 40 + self:combatTalentMindDamage(t, 5, 300)) end, } @@ -95,6 +95,6 @@ newTalent{ info = function(self, t) return ([[Your body's internal organs are melted together, making it much harder to suffer critical hits. All direct critical hits (physical, mental, spells) against you have a %d%% chance to instead do their normal damage.]]): - format(self:getTalentLevelRaw(t) * 15) + tformat(self:getTalentLevelRaw(t) * 15) end, } diff --git a/game/modules/tome/data/talents/gifts/mindstar-mastery.lua b/game/modules/tome/data/talents/gifts/mindstar-mastery.lua index 308d8e67d905e3ed27865e7228eac8c1dc156a09..3f8a4534a55060c1dbbfcddbbb144161ee55e7cc 100644 --- a/game/modules/tome/data/talents/gifts/mindstar-mastery.lua +++ b/game/modules/tome/data/talents/gifts/mindstar-mastery.lua @@ -71,7 +71,7 @@ newTalent{ return ([[Channel your mental power through your wielded mindstars, generating psionic blades. Mindstar psiblades have their damage modifiers (how much damage they gain from stats) multiplied by %0.2f, their armour penetration by %0.2f and mindpower, willpower and cunning by %0.2f. Also passively increases weapon damage by %d%% and physical power by 30 when using mindstars.]]): - format(t.getStatmult(self, t), t.getAPRmult(self, t), t.getPowermult(self, t), 100 * inc) --I5 + tformat(t.getStatmult(self, t), t.getAPRmult(self, t), t.getPowermult(self, t), 100 * inc) --I5 end, } @@ -100,7 +100,7 @@ newTalent{ return ([[You touch the target with your psiblade, bringing the forces of nature to bear on your foe. Thorny vines will grab the target, slowing it by %d%% and dealing %0.2f nature damage each turn for 10 turns. Damage will increase with your Mindpower and Mindstar power (requires two mindstars, multiplier %2.f).]]): - format(100*t.speedPenalty(self,t), damDesc(self, DamageType.NATURE, self:combatTalentMindDamage(t, 15, 250) / 10 * get_mindstar_power_mult(self)), get_mindstar_power_mult(self)) + tformat(100*t.speedPenalty(self,t), damDesc(self, DamageType.NATURE, self:combatTalentMindDamage(t, 15, 250) / 10 * get_mindstar_power_mult(self)), get_mindstar_power_mult(self)) end, } @@ -145,7 +145,7 @@ newTalent{ All foes hit by the leaves will start bleeding for %0.2f per turn (cumulative). All allies hit will be covered in leaves, granting them %d%% chance to completely avoid any damaging attack. Damage and avoidance will increase with your Mindpower and Mindstar power (requires two mindstars, multiplier %0.2f).]]): - format(dam, c, get_mindstar_power_mult(self)) + tformat(dam, c, get_mindstar_power_mult(self)) end, } @@ -199,6 +199,6 @@ newTalent{ return ([[You hit a foe with your mainhand psiblade doing %d%% weapon damage, channeling all the damage done through your offhand psiblade with which you touch a friendly creature to heal it. The maximum heal possible is %d. Equilibrium of the healed target will also decrease by 10%% of the heal power. Max heal will increase with your Mindpower and Mindstar power (requires two mindstars, multiplier %2.f).]]): - format(self:combatTalentWeaponDamage(t, 2.5, 4) * 100, t.getMaxDamage(self, t), get_mindstar_power_mult(self)) + tformat(self:combatTalentWeaponDamage(t, 2.5, 4) * 100, t.getMaxDamage(self, t), get_mindstar_power_mult(self)) end, } diff --git a/game/modules/tome/data/talents/gifts/moss.lua b/game/modules/tome/data/talents/gifts/moss.lua index f90b4ae1ec9764e5005457fb19dbcb2d0af0dbc8..6ad9228145be54c99f46e261a2bbcdb6ea26b2fb 100644 --- a/game/modules/tome/data/talents/gifts/moss.lua +++ b/game/modules/tome/data/talents/gifts/moss.lua @@ -71,7 +71,7 @@ newTalent{ The moss lasts %d turns. Moss talents are instant but place all other moss talents on cooldown for 3 turns. The damage will increase with your Mindpower.]]): - format(radius, damDesc(self, DamageType.NATURE, damage), slow, pin, duration) + tformat(radius, damDesc(self, DamageType.NATURE, damage), slow, pin, duration) end, } @@ -120,7 +120,7 @@ newTalent{ The moss lasts %d turns. Moss talents are instant but place all other moss talents on cooldown for 3 turns. The damage will increase with your Mindpower.]]): - format(radius, damDesc(self, DamageType.NATURE, damage), heal, duration) + tformat(radius, damDesc(self, DamageType.NATURE, damage), heal, duration) end, } @@ -168,7 +168,7 @@ newTalent{ The moss lasts %d turns. Moss talents are instant but place all other moss talents on cooldown for 3 turns. The damage and the chance to apply the slippery effect increase with your Mindpower.]]): - format(radius, damDesc(self, DamageType.NATURE, damage), fail, duration) + tformat(radius, damDesc(self, DamageType.NATURE, damage), fail, duration) end, } @@ -218,6 +218,6 @@ newTalent{ The moss lasts %d turns. Moss talents are instant but place all other moss talents on cooldown for 3 turns. The damage will increase with your Mindpower.]]): - format(radius, damDesc(self, DamageType.NATURE, damage), chance, power, duration) + tformat(radius, damDesc(self, DamageType.NATURE, damage), chance, power, duration) end, } diff --git a/game/modules/tome/data/talents/gifts/mucus.lua b/game/modules/tome/data/talents/gifts/mucus.lua index b063371f369586ad04f4027594e909c7d2fc007c..6fac28d00acf7969183aef2df339973ed8672261 100644 --- a/game/modules/tome/data/talents/gifts/mucus.lua +++ b/game/modules/tome/data/talents/gifts/mucus.lua @@ -81,7 +81,7 @@ newTalent{ Your mucus will poison all foes crossing it, dealing %0.1f nature damage every turn for 5 turns (stacking). In addition, each turn, you will restore %0.1f Equilibrium while in your own mucus, and other friendly creatures in your mucus will restore 1 Equilibrium both for you and for themselves. The Poison damage and Equilibrium regeneration increase with your Mindpower, and laying down more mucus in the same spot will intensify its effects and refresh its duration.]]): - format(dur, dur, damDesc(self, DamageType.NATURE, dam), equi) + tformat(dur, dur, damDesc(self, DamageType.NATURE, dam), equi) end, } @@ -146,7 +146,7 @@ newTalent{ return ([[Calling upon nature, you cause the ground to erupt in an radius %d acidic explosion, dealing %0.1f acid damage to all creatures and creating mucus in the area. Any Mucus Oozes you have active will, if in line of sight, instantly spit slime (at reduced power) at one of the targets hit by the splash. The damage increases with your Mindpower.]]): - format(self:getTalentRadius(t), damDesc(self, DamageType.ACID, dam)) + tformat(self:getTalentRadius(t), damDesc(self, DamageType.ACID, dam)) end, } @@ -172,7 +172,7 @@ newTalent{ short_name = "MUCUS_OOZE_SPIT", end, info = function(self, t) return ([[Spits a beam of slime doing %0.2f slime damage. - The damage will increase with mindpower.]]):format(damDesc(self, DamageType.SLIME, self:combatTalentMindDamage(t, 8, 80))) + The damage will increase with mindpower.]]):tformat(damDesc(self, DamageType.SLIME, self:combatTalentMindDamage(t, 8, 80))) end, } @@ -262,7 +262,7 @@ newTalent{ You may have up to %d Mucus Oozes active at any time (based on your Cunning). Any time you deal a mental critical, the remaining time on all of your Mucus Oozes will increase by 2. The spawn chance increases with your Mindpower.]]): - format(t.getChance(self, t), t.getSummonTime(self, t), t.getMax(self, t)) + tformat(t.getChance(self, t), t.getSummonTime(self, t), t.getMax(self, t)) end, } @@ -313,6 +313,6 @@ newTalent{ return ([[You temporarily merge with your mucus, cleansing yourself of %d physical or magical detrimental effects. You can then reemerge on any tile within sight and range that is also covered by mucus. This is quick, performed in only %d%% of the normal time, but you must be in contact with your mucus.]]): - format(nb, (energy) * 100) + tformat(nb, (energy) * 100) end, } diff --git a/game/modules/tome/data/talents/gifts/ooze.lua b/game/modules/tome/data/talents/gifts/ooze.lua index 4b7626c2a133c51e666721acdc933637a30f2864..23e5ae7ed2faa7b4bdd0b887b203d64c2f427bf7 100644 --- a/game/modules/tome/data/talents/gifts/ooze.lua +++ b/game/modules/tome/data/talents/gifts/ooze.lua @@ -108,7 +108,7 @@ newTalent{ end, info = function(self, t) local xs = self:knowTalent(self.T_REABSORB) and ([[In addition, you restore %0.1f Equilibrium per turn while this talent is active. - ]]):format(self:callTalent(self.T_REABSORB, "equiRegen")) or "" + ]]):tformat(self:callTalent(self.T_REABSORB, "equiRegen")) or "" return ([[Your body is more like that of an ooze. When you take damage, you may split and create a Bloated Ooze nearby within your line of sight. This ooze has as much health as twice the damage you took (up to a maximum of %d, based on your Mindpower and maximum life). @@ -116,7 +116,7 @@ newTalent{ You may have up to %d Bloated Oozes active at any time (limited by talent level and the summoning limit), and all damage you take will be split equally between you and them so long as this talent is active. Bloated Oozes last for %d turns, are very resilient (%d%% all damage resistance to damage not coming through your shared link), and regenerate life quickly. %sThe chance to split increases with your Cunning.]]): - format(t.getMaxHP(self, t), t.getChance(self, t)*3/100, t.getMax(self, t), t.getSummonTime(self, t), t.getOozeResist(self, t), xs) + tformat(t.getMaxHP(self, t), t.getChance(self, t)*3/100, t.getMax(self, t), t.getSummonTime(self, t), t.getOozeResist(self, t), xs) end, } @@ -166,7 +166,7 @@ newTalent{ This process releases a burst of antimagic, dealing %0.1f Manaburn damage in radius %d. This talent allows you to restore %0.1f Equilibrium per turn while Mitosis is active. The damage, duration and Equilibrium restoration increase with your Mindpower.]]): - format(t.getDuration(self, t), damDesc(self, DamageType.ARCANE, t.getDam(self, t)), 3, t.equiRegen(self, t)) + tformat(t.getDuration(self, t), damDesc(self, DamageType.ARCANE, t.getDam(self, t)), 3, t.equiRegen(self, t)) end, } @@ -240,7 +240,7 @@ newTalent{ If you have less than the maximum number of oozes allowed by the Mitosis talent, up to %d will be created with %d life (%d%% of the maximum life allowed by Mitosis). Each ooze created will form near a random foe in sight (no more than one ooze per target) and grab its attention. This will then allow you to channel a melee attack through your ooze to its target, doing %d%% weapon damage (as Acid).]]): - format(t.getMax(self, t), t.getLife(self, t), t.getModHP(self, t)*100, t.getWepDamage(self, t) * 100) + tformat(t.getMax(self, t), t.getLife(self, t), t.getModHP(self, t)*100, t.getWepDamage(self, t) * 100) end, } @@ -264,6 +264,6 @@ newTalent{ return ([[Your body's internal organs are indistinct, disguising your vital areas. You have a %d%% chance to shrug off all direct critical hits (physical, mental, spell). In addition you gain %d%% resistance to disease, poison, wounds and blindness.]]): - format(t.critResist(self, t), 100*t.immunities(self, t)) + tformat(t.critResist(self, t), 100*t.immunities(self, t)) end, } diff --git a/game/modules/tome/data/talents/gifts/oozing-blades.lua b/game/modules/tome/data/talents/gifts/oozing-blades.lua index 002ac1c0066b6565e1d6a228b6a789695e8d3f13..e0e26c82df912ea6b302c78bb5e20f31d64c752a 100644 --- a/game/modules/tome/data/talents/gifts/oozing-blades.lua +++ b/game/modules/tome/data/talents/gifts/oozing-blades.lua @@ -52,7 +52,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Channel slime through your psiblades, extending their reach to create a beam doing %0.1f Slime damage. The damage increases with your Mindpower.]]): - format(damDesc(self, DamageType.NATURE, dam)) + tformat(damDesc(self, DamageType.NATURE, dam)) end, } @@ -76,7 +76,7 @@ newTalent{ When you deal Acid damage to a creature, you gain a %0.1f%% bonus to Nature damage for %d turns. This damage bonus will improve up to 4 times (no more than once each turn) with later Acid damage you do, up to a maximum of %0.1f%%. The resistance and damage increase improve with your Mindpower.]]): - format(t.getResist(self, t), t.getNatureDamage(self, t, 1), t.getDuration(self, t), t.getNatureDamage(self, t, 5)) + tformat(t.getResist(self, t), t.getNatureDamage(self, t, 1), t.getDuration(self, t), t.getNatureDamage(self, t, 5)) end, } @@ -118,7 +118,7 @@ newTalent{ When it hits, it will burrow into the target's brain and stay there for 6 turns, interfering with its ability to use talents. Each time a talent is used there is %d%% chance that %d talent(s) are placed on a %d turn(s) cooldown. The chance will increase with your Mindpower.]]): - format(t.getChance(self, t), t.getNb(self, t), t.getTurns(self, t)) + tformat(t.getChance(self, t), t.getNb(self, t), t.getTurns(self, t)) end, } @@ -178,6 +178,6 @@ newTalent{ local chance = t.getChance(self, t) return ([[Surround yourself with natural forces, ignoring %d%% nature resistance of your targets. In addition, any time you deal damage with a wild gift there is a %d%% chance that one of your mucus oozes will spit at the target as a free action.]]) - :format(ressistpen, chance) + :tformat(ressistpen, chance) end, } diff --git a/game/modules/tome/data/talents/gifts/sand-drake.lua b/game/modules/tome/data/talents/gifts/sand-drake.lua index 30afc33fbfe0c19fe248663a0970bcd8e6f98eb5..bbfa18d3f4e2e5a51b5f478af7aa404bc13b4848 100644 --- a/game/modules/tome/data/talents/gifts/sand-drake.lua +++ b/game/modules/tome/data/talents/gifts/sand-drake.lua @@ -94,7 +94,7 @@ return ([[Attack the target for %d%% Nature weapon damage. Big: %d%% Huge: %d%% Gargantuan: %d%%]]): - format(100 * t.getDamage(self, t), t.getPassiveCrit(self, t), + tformat(100 * t.getDamage(self, t), t.getPassiveCrit(self, t), t.maxSwallow(self, t, 1), t.maxSwallow(self, t, 2), t.maxSwallow(self, t, 3), @@ -137,7 +137,7 @@ newTalent{ return ([[You slam the ground, shaking the area around you in a radius of %d. Creatures caught by the quake will be damaged for %d%% weapon damage, and knocked back up to 3 tiles away. The terrain will also be moved around within the radius, and the user will be shifted to a random square within the radius. - Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):format(radius, dam * 100) + Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):tformat(radius, dam * 100) end, } @@ -163,7 +163,7 @@ newTalent{ return ([[Allows you to burrow into earthen walls for %d turns. Your powerful digging abilities also allow you to exploit and smash through enemy defensive weaknesses; You ignore %d of target armor and %d%% of enemy physical damage resistance while this is in effect. At Talent Level 5, this talent can be used instantly, and the cooldown will reduce with levels. - Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):format(t.getDuration(self, t), t.getPenetration(self, t), t.getPenetration(self, t) / 2) + Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):tformat(t.getDuration(self, t), t.getPenetration(self, t), t.getPenetration(self, t) / 2) end, } @@ -210,6 +210,6 @@ newTalent{ local duration = t.getDuration(self, t) return ([[You breathe sand in a frontal cone of radius %d. Any target caught in the area will take %0.2f physical damage, and will be blinded for %d turns. The damage will increase with your Strength, the critical chance is based on your Mental crit rate, and the Blind apply power is based on your Mindpower. - Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.PHYSICAL, damage), duration) + Each point in sand drake talents also increases your physical resistance by 0.5%%.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.PHYSICAL, damage), duration) end, } diff --git a/game/modules/tome/data/talents/gifts/slime.lua b/game/modules/tome/data/talents/gifts/slime.lua index 75b6ff34e25a52b9613b2e6b81d1c01e82bf941f..3f7ebc47c069fc18e6ea45a15738e2fb82372b17 100644 --- a/game/modules/tome/data/talents/gifts/slime.lua +++ b/game/modules/tome/data/talents/gifts/slime.lua @@ -43,7 +43,7 @@ newTalent{ return ([[Spit slime at your target doing %0.1f nature damage and slowing it down by 30%% for 3 turns. The slime can bounce from foe to foe, hitting up to a total of %d target(s). Additional targets must be within 6 tiles of each other and the slime loses %0.1f%% damage per bounce. - The damage will increase with your Mindpower]]):format(damDesc(self, DamageType.NATURE, self:combatTalentMindDamage(t, 30, 250)), t.getTargetCount(self, t), 100-t.bouncePercent(self, t)) + The damage will increase with your Mindpower]]):tformat(damDesc(self, DamageType.NATURE, self:combatTalentMindDamage(t, 30, 250)), t.getTargetCount(self, t), 100-t.bouncePercent(self, t)) end, } @@ -84,7 +84,7 @@ newTalent{ info = function(self, t) return ([[Releases poisonous spores at an area of radius %d, infecting the foes inside with a random poison doing %0.1f Nature damage over 10 turns. This attack can crit and deals %d%% additional critical damage. - The damage and critical bonus increase with your Mindpower.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.critPower(self, t)) + The damage and critical bonus increase with your Mindpower.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.critPower(self, t)) end, } @@ -117,7 +117,7 @@ newTalent{ end, info = function(self, t) return ([[Your skin drips with acid, damaging all that hit you for %0.1f disarming acid damage. - The damage increases with your Mindpower.]]):format(damDesc(self, DamageType.ACID, t.getDamage(self, t))) + The damage increases with your Mindpower.]]):tformat(damDesc(self, DamageType.ACID, t.getDamage(self, t))) end, } @@ -177,7 +177,7 @@ newTalent{ local radius = self:getTalentRadius(t) local talents = t.getNbTalents(self, t) return ([[You extend slimy roots into the ground, follow them, and re-appear somewhere else in a range of %d with error margin of %d. - Doing so changes your internal structure slightly, taking %d random talent(s) off cooldown.]]):format(range, radius, talents) + Doing so changes your internal structure slightly, taking %d random talent(s) off cooldown.]]):tformat(range, radius, talents) end, } diff --git a/game/modules/tome/data/talents/gifts/storm-drake.lua b/game/modules/tome/data/talents/gifts/storm-drake.lua index 86d9e0309fafcbf16193e140ed7b40c27a4c2101..35e9163bae680f3b7256b7c27b9dc4a40630448a 100644 --- a/game/modules/tome/data/talents/gifts/storm-drake.lua +++ b/game/modules/tome/data/talents/gifts/storm-drake.lua @@ -49,7 +49,7 @@ newTalent{ Any actions other than moving will stop this effect. Note: since you will be moving very fast, game turns will pass very slowly. Levels in Lightning Speed additionally raises your Movement Speed by %d%%, passively. - Each point in storm drake talents also increases your lightning resistance by 1%%.]]):format(t.getSpeed(self, t), t.getDuration(self, t), t.getPassiveSpeed(self, t)*100) + Each point in storm drake talents also increases your lightning resistance by 1%%.]]):tformat(t.getSpeed(self, t), t.getDuration(self, t), t.getPassiveSpeed(self, t)*100) end, } @@ -99,7 +99,7 @@ newTalent{ target:takeHit(dam, self) self:project({type="hit", talent=t},target.x,target.y,DamageType.LIGHTNING,litdam) - game:delayedLogDamage(self, target, dam, ("#PURPLE#%d STATIC#LAST#"):format(math.ceil(dam))) + game:delayedLogDamage(self, target, dam, ("#PURPLE#%d STATIC#LAST#"):tformat(math.ceil(dam))) end, nil, {type="lightning_explosion"}) game:playSoundNear(self, "talents/lightning") return true @@ -110,7 +110,7 @@ newTalent{ return ([[Generate an electrical field around you in a radius of %d. Any creature caught inside will lose up to %0.1f%% of its current life (%0.1f%% if the target is Elite or Rare, %0.1f%% if the target is a Unique or Boss, and %0.1f%% if they are an Elite Boss.). This life drain is irresistable, but can be saved against with physical save. Additionally, it will deal %0.2f lightning damage afterwards, regardless of target rank. Current life loss and lightning damage will increase with your Mindpower, and the lightning damage element can critically hit with mental critical chances. - Each point in storm drake talents also increases your lightning resistance by 1%%.]]):format(self:getTalentRadius(t), percent, percent/1.5, percent/2, percent/2.5, damDesc(self, DamageType.LIGHTNING, litdam)) + Each point in storm drake talents also increases your lightning resistance by 1%%.]]):tformat(self:getTalentRadius(t), percent, percent/1.5, percent/2, percent/2.5, damDesc(self, DamageType.LIGHTNING, litdam)) end, } @@ -196,7 +196,7 @@ newTalent{ When it reaches the target it explodes in a radius of %d, knocking back targets and dealing %0.2f lightning and %0.2f physical damage. The tornado will move a maximum of 20 times. Damage will increase with your Mindpower. - Each point in storm drake talents also increases your lightning resistance by 1%%.]]):format(damDesc(self, DamageType.LIGHTNING, t.getMoveDamage(self, t)), rad, damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + Each point in storm drake talents also increases your lightning resistance by 1%%.]]):tformat(damDesc(self, DamageType.LIGHTNING, t.getMoveDamage(self, t)), rad, damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -255,7 +255,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[You breathe lightning in a frontal cone of radius %d. Any target caught in the area will take %0.2f to %0.2f lightning damage (%0.2f average) and be stunned for 3 turns. The damage will increase with your Strength, and the critical chance is based on your Mental crit rate, and the Stun apply power is based on your Mindpower. - Each point in storm drake talents also increases your lightning resistance by 1%%.]]):format( + Each point in storm drake talents also increases your lightning resistance by 1%%.]]):tformat( self:getTalentRadius(t), damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), diff --git a/game/modules/tome/data/talents/gifts/summon-advanced.lua b/game/modules/tome/data/talents/gifts/summon-advanced.lua index cf9d54a6958e4cb15d520cba949d473770032275..63d111d32c2127d21a33bf8619eca0b25ae602e8 100644 --- a/game/modules/tome/data/talents/gifts/summon-advanced.lua +++ b/game/modules/tome/data/talents/gifts/summon-advanced.lua @@ -52,7 +52,7 @@ newTalent{ info = function(self, t) local cooldownred = t.getCooldownReduction(self, t) return ([[Reduces the cooldown of all summons by %d%%.]]): - format(cooldownred * 100) + tformat(cooldownred * 100) end, } @@ -83,7 +83,7 @@ newTalent{ - Turtle: Heals all friendly targets in the radius %d HP - Spider: Pins all foes in the radius Radius for effects is %d, and the duration of each lasting effect is %d turns. - The effects improve with your mindpower.]]):format(t.resReduction(self, t), t.poisonDamage(self,t) / 6, t.resReduction(self, t), t.nbEscorts(self, t), t.resReduction(self, t), t.resReduction(self, t), 100*t.slowStrength(self,t), t.amtHealing(self,t), radius, t.effectDuration(self, t)) + The effects improve with your mindpower.]]):tformat(t.resReduction(self, t), t.poisonDamage(self,t) / 6, t.resReduction(self, t), t.nbEscorts(self, t), t.resReduction(self, t), t.resReduction(self, t), 100*t.slowStrength(self,t), t.amtHealing(self,t), radius, t.effectDuration(self, t)) end, } @@ -97,7 +97,7 @@ newTalent{ getReduction = function(self, t) return math.floor(self:combatTalentLimit(t, 5, 1, 3.1)) end, -- Limit < 5 info = function(self, t) return ([[While Master Summoner is active, each new summon will reduce the remaining cooldown of Pheromones, Detonate and Wild Summon. - %d%% chance to reduce them by %d.]]):format(t.getChance(self, t), t.getReduction(self, t)) + %d%% chance to reduce them by %d.]]):tformat(t.getChance(self, t), t.getReduction(self, t)) end, } @@ -135,6 +135,6 @@ newTalent{ - Turtle: Can force all foes in a radius into melee range - Spider: Can project an insidious poison at its foes, reducing their healing This talent requires Master Summoner to be active to be used. - Effects scale with levels in summon talents.]]):format(t.duration(self,t)) + Effects scale with levels in summon talents.]]):tformat(t.duration(self,t)) end, } diff --git a/game/modules/tome/data/talents/gifts/summon-augmentation.lua b/game/modules/tome/data/talents/gifts/summon-augmentation.lua index 1c22303555583eb1160e1b7b196bcc43707b2aa8..c4258dfcf23266516555faf05a5a4d86eb4ba7c3 100644 --- a/game/modules/tome/data/talents/gifts/summon-augmentation.lua +++ b/game/modules/tome/data/talents/gifts/summon-augmentation.lua @@ -36,7 +36,7 @@ newTalent{ end, info = function(self, t) return ([[Induces a killing rage in all your summons within a radius of 5 when a summon is killed, increasing all their stats by %d for 5 turns. - The bonus will increase with your mindpower.]]):format(t.incStats(self, t)) + The bonus will increase with your mindpower.]]):tformat(t.incStats(self, t)) end, } @@ -121,7 +121,7 @@ newTalent{ - Spider: Knocks back all foes %d tiles In addition, a random summon will come off cooldown. Hostile effects will not hit you or your other summons. - The effects improve with your mindpower, and can crit.]]):format(radius, t.explodeSecondary(self,t), t.hydraAffinity(self,t), t.hydraRegen(self,t), t.explodeSecondary(self,t), t.explodeFire(self,t), t.explodeBleed(self,t) / 6, t.explodeSecondary(self,t), t.jellySlow(self,t) * 100, t.minotaurConfuse(self,t), t.golemArmour(self,t), t.golemHardiness(self,t), t.shellShielding(self,t), t.spiderKnockback(self,t)) + The effects improve with your mindpower, and can crit.]]):tformat(radius, t.explodeSecondary(self,t), t.hydraAffinity(self,t), t.hydraRegen(self,t), t.explodeSecondary(self,t), t.explodeFire(self,t), t.explodeBleed(self,t) / 6, t.explodeSecondary(self,t), t.jellySlow(self,t) * 100, t.minotaurConfuse(self,t), t.golemArmour(self,t), t.golemHardiness(self,t), t.shellShielding(self,t), t.spiderKnockback(self,t)) end, } @@ -134,7 +134,7 @@ newTalent{ incLife = function(self, t) return self:combatTalentLimit(t, 1, 0.05, 0.20) end, incDur = function(self, t) return math.floor(self:combatTalentLimit(t, 6, 1, 2.8)) end, info = function(self, t) - return ([[Increases all your summons' max life by %0.1f%% and extends your summons' maximum lifetime by %d turns.]]):format(100*t.incLife(self, t), t.incDur(self,t)) + return ([[Increases all your summons' max life by %0.1f%% and extends your summons' maximum lifetime by %d turns.]]):tformat(100*t.incLife(self, t), t.incDur(self,t)) end, } @@ -169,6 +169,6 @@ newTalent{ return true end, info = function(self, t) - return ([[Switches places with one of your summons. This disorients your foes, granting both you and your summon 50%% evasion for %d turns.]]):format(t.getDuration(self, t)) + return ([[Switches places with one of your summons. This disorients your foes, granting both you and your summon 50%% evasion for %d turns.]]):tformat(t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/gifts/summon-distance.lua b/game/modules/tome/data/talents/gifts/summon-distance.lua index 69c813b04d1b67deccfc2963b47d2c52a5130672..2820716504a94996145b2aa1f8be7f7658228783 100644 --- a/game/modules/tome/data/talents/gifts/summon-distance.lua +++ b/game/modules/tome/data/talents/gifts/summon-distance.lua @@ -37,7 +37,7 @@ newTalent{ short_name = "RITCH_FLAMESPITTER_BOLT", end, info = function(self, t) return ([[Spits a bolt of fire, doing %0.2f fire damage. - The damage will increase with your Mindpower.]]):format(damDesc(self, DamageType.FIRE, self:combatTalentMindDamage(t, 8, 120))) + The damage will increase with your Mindpower.]]):tformat(damDesc(self, DamageType.FIRE, self:combatTalentMindDamage(t, 8, 120))) end, } @@ -62,7 +62,7 @@ newTalent{ short_name = "WILD_RITCH_FLAMESPITTER_BOLT", end, info = function(self, t) return ([[Spits a bolt of fire, doing %0.2f fire damage. - The damage will increase with your Mindpower.]]):format(damDesc(self, DamageType.FIRE, self:combatTalentMindDamage(t, 8, 120))) + The damage will increase with your Mindpower.]]):tformat(damDesc(self, DamageType.FIRE, self:combatTalentMindDamage(t, 8, 120))) end, } @@ -93,7 +93,7 @@ newTalent{ local damage = t.getDamage(self, t) local radius = self:getTalentRadius(t) return ([[A wave of fire emanates from you with radius %d, knocking back anything caught inside and setting them ablaze and doing %0.2f fire damage over 3 turns. - The damage will increase with your Mindpower.]]):format(radius, damDesc(self, DamageType.FIRE, damage)) + The damage will increase with your Mindpower.]]):tformat(radius, damDesc(self, DamageType.FIRE, damage)) end, } @@ -125,7 +125,7 @@ newTalent{ end, info = function(self, t) return ([[Breathe acid on your foes, doing %0.2f damage. - The damage will increase with your Willpower.]]):format(damDesc(self, DamageType.ACID, self:combatTalentStatDamage(t, "wil", 30, 430))) + The damage will increase with your Willpower.]]):tformat(damDesc(self, DamageType.ACID, self:combatTalentStatDamage(t, "wil", 30, 430))) end, } @@ -155,7 +155,7 @@ newTalent{ end, info = function(self, t) return ([[Spit acid on a foe, doing %0.2f damage. - The damage will increase with your Willpower.]]):format(damDesc(self, DamageType.ACID, self:combatTalentStatDamage(t, "wil", 30, 430))) + The damage will increase with your Willpower.]]):tformat(damDesc(self, DamageType.ACID, self:combatTalentStatDamage(t, "wil", 30, 430))) end, } @@ -191,7 +191,7 @@ newTalent{ info = function(self, t) return ([[Breathe lightning on your foes, doing %d to %d damage. The damage will increase with your Willpower.]]): - format( + tformat( damDesc(self, DamageType.LIGHTNING, (self:combatTalentStatDamage(t, "wil", 30, 500)) / 3), damDesc(self, DamageType.LIGHTNING, self:combatTalentStatDamage(t, "wil", 30, 500)) ) @@ -226,7 +226,7 @@ newTalent{ info = function(self, t) return ([[Spit lightning on your foe, doing %d to %d damage. The damage will increase with your Willpower.]]): - format( + tformat( damDesc(self, DamageType.LIGHTNING, (self:combatTalentStatDamage(t, "wil", 30, 500)) / 3), damDesc(self, DamageType.LIGHTNING, self:combatTalentStatDamage(t, "wil", 30, 500)) ) @@ -261,7 +261,7 @@ newTalent{ end, info = function(self, t) return ([[Breathe poison on your foes, doing %d damage over a few turns. - The damage will increase with your Willpower.]]):format(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "wil", 30, 460))) + The damage will increase with your Willpower.]]):tformat(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "wil", 30, 460))) end, } @@ -291,7 +291,7 @@ newTalent{ end, info = function(self, t) return ([[Spit poison on your foes, doing %d damage over a few turns. - The damage will increase with your Willpower.]]):format(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "wil", 30, 460))) + The damage will increase with your Willpower.]]):tformat(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "wil", 30, 460))) end, } @@ -335,7 +335,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[A furious ice storm rages around the user doing %0.2f cold damage in a radius of 3 each turn for %d turns. It has 25%% chance to freeze damaged targets. - The damage and duration will increase with your Willpower.]]):format(damDesc(self, DamageType.COLD, damage), duration) + The damage and duration will increase with your Willpower.]]):tformat(damDesc(self, DamageType.COLD, damage), duration) end, } @@ -375,7 +375,7 @@ newTalent{ return ([[Grab a target and pull it next to you, covering it with frost while reducing its movement speed by 50%% for %d turns. The ice will also deal %0.2f cold damage. The damage and chance to slow will increase with your Mindpower.]]): - format(t.getDuration(self, t), damDesc(self, DamageType.COLD, self:combatTalentMindDamage(t, 5, 140))) + tformat(t.getDuration(self, t), damDesc(self, DamageType.COLD, self:combatTalentMindDamage(t, 5, 140))) end, } @@ -492,7 +492,7 @@ newTalent{ It will get %d Willpower, %d Cunning and %d Constitution. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Willpower and Cunning will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.wil, incStats.cun, incStats.con) + :tformat(t.summonTime(self, t), incStats.wil, incStats.cun, incStats.con) end, } @@ -620,7 +620,7 @@ newTalent{ It will get %d Willpower, %d Constitution and 18 Strength. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Willpower will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.wil, incStats.con, incStats.str) + :tformat(t.summonTime(self, t), incStats.wil, incStats.con, incStats.str) end, } @@ -737,7 +737,7 @@ newTalent{ It will get %d Willpower, %d Cunning and %d Constitution. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Willpower and Cunning will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.wil, incStats.cun, incStats.con) + :tformat(t.summonTime(self, t), incStats.wil, incStats.cun, incStats.con) end, } @@ -900,6 +900,6 @@ newTalent{ It will get %d Strength, %d Constitution and 38 Willpower. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Strength and Constitution will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.str, incStats.con) + :tformat(t.summonTime(self, t), incStats.str, incStats.con) end, } diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua index eef84d94f54cd8d2acc2c719b17e657aeb1e93e4..0d8e51cdbdc60b9e467affc401e8e78fc31056fe 100644 --- a/game/modules/tome/data/talents/gifts/summon-melee.lua +++ b/game/modules/tome/data/talents/gifts/summon-melee.lua @@ -53,7 +53,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) local duration = t.getDuration(self, t) - return ([[Ooze over the floor, spreading caustic jelly in a radius of 1 lasting %d turns and dealing %d nature damage per turn to hostile creatures caught within.]]):format(duration, damDesc(self, DamageType.NATURE, damage)) + return ([[Ooze over the floor, spreading caustic jelly in a radius of 1 lasting %d turns and dealing %d nature damage per turn to hostile creatures caught within.]]):tformat(duration, damDesc(self, DamageType.NATURE, damage)) end, } @@ -68,7 +68,7 @@ newTalent{ self:talentTemporaryValue(p, "clone_on_hit", {min_dam_pct=t.getDamage(self,t), chance=t.getChance(self,t)}) end, info = function(self, t) - return ([[%d%% chance to split upon taking a single hit dealing at least %d%% of your maximum life.]]):format(t.getChance(self, t), t.getDamage(self, t)) + return ([[%d%% chance to split upon taking a single hit dealing at least %d%% of your maximum life.]]):tformat(t.getChance(self, t), t.getDamage(self, t)) end, } @@ -178,7 +178,7 @@ newTalent{ It will get %d Strength, %d Dexterity and %d Constitution. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. The hound's Strength and Dexterity will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.str, incStats.dex, incStats.con) + :tformat(t.summonTime(self, t), incStats.str, incStats.dex, incStats.con) end, } @@ -299,7 +299,7 @@ newTalent{ It will get %d Constitution and %d Strength. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. The jelly's Constitution will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.con, incStats.str) + :tformat(t.summonTime(self, t), incStats.con, incStats.str) end, } @@ -414,7 +414,7 @@ newTalent{ It will get %d Strength, %d Constitution and %d Dexterity. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. The minotaur's Strength and Dexterity will increase with your Mindpower.]]) - :format(t.summonTime(self,t), incStats.str, incStats.con, incStats.dex) + :tformat(t.summonTime(self,t), incStats.str, incStats.con, incStats.dex) end, } @@ -535,6 +535,6 @@ newTalent{ It will get %d Strength, %d Constitution and %d Dexterity. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. The golem's Strength and Dexterity will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.str, incStats.con, incStats.dex) + :tformat(t.summonTime(self, t), incStats.str, incStats.con, incStats.dex) end, } diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua index 3d423a1f07288aca626b03326240117324da7c26..c9f984fe855dfc60fa986255cafaf3f3d65a1fe8 100644 --- a/game/modules/tome/data/talents/gifts/summon-utility.lua +++ b/game/modules/tome/data/talents/gifts/summon-utility.lua @@ -37,7 +37,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Forces all hostile foes in radius %d to attack you.]]):format(self:getTalentRadius(t)) + return ([[Forces all hostile foes in radius %d to attack you.]]):tformat(self:getTalentRadius(t)) end, } @@ -55,7 +55,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Under the cover of your shell, gain %d%% all resistance for %d turns]]):format(t.resistPower(self, t), t.getDuration(self, t)) + return ([[Under the cover of your shell, gain %d%% all resistance for %d turns]]):tformat(t.resistPower(self, t), t.getDuration(self, t)) end, } @@ -82,7 +82,7 @@ newTalent{ short_name="SPIDER_WEB", return true end, info = function(self, t) - return ([[Spread a web and throw it toward your target. If caught, it won't be able to move for %d turns.]]):format(t.getDuration(self, t)) + return ([[Spread a web and throw it toward your target. If caught, it won't be able to move for %d turns.]]):tformat(t.getDuration(self, t)) end, } @@ -211,7 +211,7 @@ newTalent{ It will get %d Constitution, %d Dexterity and 18 willpower. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Constitution will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.con, incStats.dex) + :tformat(t.summonTime(self, t), incStats.con, incStats.dex) end, } @@ -325,7 +325,7 @@ newTalent{ It will get %d Dexterity, %d Strength, 18 Willpower and %d Constitution. Your summons inherit some of your stats: increased damage%%, resistance penetration %%, stun/pin/confusion/blindness resistance, armour penetration. Their Dexterity will increase with your Mindpower.]]) - :format(t.summonTime(self, t), incStats.dex, incStats.str, incStats.con) + :tformat(t.summonTime(self, t), incStats.dex, incStats.str, incStats.con) end, } @@ -351,7 +351,7 @@ newTalent{ return ([[You focus yourself on nature, allowing you to summon natural creatures much faster (%d%% of a normal summon time) and with no chance to fail from high equilibrium for %d turns. When activating this power, a random summoning talent will come off cooldown. Each time you summon, the duration of the frantic summoning effect will reduce by 1.]]): - format(100 - reduc, t.getDuration(self, t)) + tformat(100 - reduc, t.getDuration(self, t)) end, } @@ -386,6 +386,6 @@ newTalent{ end, info = function(self, t) return ([[Mark a creature with pheromones, signalling to all of your summons within %d tiles to shift aggression towards the marked creature for %d turns. Marked targets will receive %d%% increased damage from your summons and your summons will change target to it. - The increased damage from your summons will increase with your Mindpower]]):format(t.getRad(self,t), t.getDur(self,t), t.getDamage(self,t)) + The increased damage from your summons will increase with your Mindpower]]):tformat(t.getRad(self,t), t.getDur(self,t), t.getDamage(self,t)) end, } diff --git a/game/modules/tome/data/talents/gifts/venom-drake.lua b/game/modules/tome/data/talents/gifts/venom-drake.lua index 6565e31686913f4d1069c1ad496a692637b4b337..4495545908086c7a0425551d8e29a1eea1c91f9f 100644 --- a/game/modules/tome/data/talents/gifts/venom-drake.lua +++ b/game/modules/tome/data/talents/gifts/venom-drake.lua @@ -65,7 +65,7 @@ newTalent{ Enemies struck have a 25%% chance to be Disarmed for three turns, as their weapon is rendered useless by an acid coating. At Talent Level 5, this becomes a piercing line of acid. Every level in Acidic Spray additionally raises your Mindpower by 4, passively. - Each point in acid drake talents also increases your acid resistance by 1%%.]]):format(damDesc(self, DamageType.ACID, damage)) + Each point in acid drake talents also increases your acid resistance by 1%%.]]):tformat(damDesc(self, DamageType.ACID, damage)) end, } @@ -127,7 +127,7 @@ newTalent{ return ([[Exhale a mist of lingering acid, dealing %0.2f acid damage that can critical in a radius of %d each turn for %d turns. Enemies in this mist will be corroded for %d turns, lowering their Accuracy, their Armour and their Defense by %d. The damage and duration will increase with your Mindpower, and the radius will increase with talent level. - Each point in acid drake talents also increases your acid resistance by 1%%.]]):format(damDesc(self, DamageType.ACID, damage), radius, duration, cordur, atk) + Each point in acid drake talents also increases your acid resistance by 1%%.]]):tformat(damDesc(self, DamageType.ACID, damage), radius, duration, cordur, atk) end, } @@ -180,7 +180,7 @@ newTalent{ Every two talent levels, one of your strikes becomes blinding acid instead of normal acid, blinding the target 25%% of the time if it hits. Each point in acid drake talents also increases your acid resistance by 1%%. - This talent will also attack with your shield, if you have one equipped.]]):format(100 * self:combatTalentWeaponDamage(t, 0.1, 0.6)) + This talent will also attack with your shield, if you have one equipped.]]):tformat(100 * self:combatTalentWeaponDamage(t, 0.1, 0.6)) end, } @@ -234,6 +234,6 @@ newTalent{ return ([[You breathe acid in a frontal cone of radius %d. Any target caught in the area will take %0.2f acid damage. Enemies caught in the acid are disarmed for 3 turns. The damage will increase with your Strength, the critical chance is based on your Mental crit rate, and the Disarm apply power is based on your Mindpower. - Each point in acid drake talents also increases your acid resistance by 1%%.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.ACID, t.getDamage(self, t))) + Each point in acid drake talents also increases your acid resistance by 1%%.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.ACID, t.getDamage(self, t))) end, } diff --git a/game/modules/tome/data/talents/misc/horrors.lua b/game/modules/tome/data/talents/misc/horrors.lua index 4848e4c69982f83c61410b908bb9a3671e82e501..3fe53ade174042940203cba72f284257d6ed3810 100644 --- a/game/modules/tome/data/talents/misc/horrors.lua +++ b/game/modules/tome/data/talents/misc/horrors.lua @@ -17,12 +17,12 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org -newTalentType{ type="technique/horror", name = "horror techniques", hide = true, description = "Physical talents of the various horrors of the world." } -newTalentType{ type="psionic/horror", name = "horror techniques", hide = false, description = "Psionic talents of the various horrors of the world." } -newTalentType{ type="wild-gift/horror", name = "horror techniques", hide = false, description = "Psionic talents of the various horrors of the world." } -newTalentType{ no_silence=true, is_spell=true, type="spell/horror", name = "horror spells", hide = true, description = "Spell talents of the various horrors of the world." } -newTalentType{ no_silence=true, is_spell=true, type="corruption/horror", name = "horror spells", hide = true, description = "Spell talents of the various horrors of the world." } -newTalentType{ type="other/horror", name = "horror powers", hide = true, description = "Unclassified talents of the various horrors of the world." } +newTalentType{ type="technique/horror", name = _t"horror techniques", hide = true, description = _t"Physical talents of the various horrors of the world." } +newTalentType{ type="psionic/horror", name = _t"horror techniques", hide = false, description = _t"Psionic talents of the various horrors of the world." } +newTalentType{ type="wild-gift/horror", name = _t"horror techniques", hide = false, description = _t"Psionic talents of the various horrors of the world." } +newTalentType{ no_silence=true, is_spell=true, type="spell/horror", name = _t"horror spells", hide = true, description = _t"Spell talents of the various horrors of the world." } +newTalentType{ no_silence=true, is_spell=true, type="corruption/horror", name = _t"horror spells", hide = true, description = _t"Spell talents of the various horrors of the world." } +newTalentType{ type="other/horror", name = _t"horror powers", hide = true, description = _t"Unclassified talents of the various horrors of the world." } local oldTalent = newTalent local newTalent = function(t) if type(t.hide) == "nil" then t.hide = true end return oldTalent(t) end @@ -63,7 +63,7 @@ newTalent{ local bleed = t.getBleedDamage(self, t) * 100 local heal_penalty = t.getHealingPenalty(self, t) return ([[A nasty bite that hits for %d%% weapon damage, reduces the targets healing by %d%%, and causes the target to bleed for %d%% weapon damage over 5 turns. - Only usable while frenzied.]]):format(damage, heal_penalty, bleed) + Only usable while frenzied.]]):tformat(damage, heal_penalty, bleed) end, } @@ -173,7 +173,7 @@ newTalent{ return ([[Bites the target for %d%% weapon damage, potentially causing it to bleed for %d%% weapon damage over five turns. If the target is affected by the bleed it will send the devourer into a frenzy for %d turns (which in turn will frenzy other nearby devourers). The frenzy will increase global speed by %d%%, physical crit chance by %d%%, and prevent death until -%d%% life.]]): - format(damage, bleed, t.getDuration(self, t), power, power, power) + tformat(damage, bleed, t.getDuration(self, t), power, power, power) end, } @@ -221,7 +221,7 @@ newTalent{ local light_reduction = t.getLiteReduction(self, t) local darkness_resistance = t.getDarknessPower(self, t) return ([[Creates a shroud of darkness over a radius 3 area that lasts %d turns. The shroud causes %0.2f darkness damage each turn, reduces light radius by %d, and darkness resistance by %d%% of those within.]]): - format(duration, damDesc(self, DamageType.DARKNESS, (damage)), light_reduction, darkness_resistance) + tformat(duration, damDesc(self, DamageType.DARKNESS, (damage)), light_reduction, darkness_resistance) end, } -- Temporal Stalker Powers @@ -253,7 +253,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Shows the target the madness of the void. Each turn for 6 turns the target must make a mental save or suffer %0.2f mind damage as well as resource damage (based off the mind damage and nature of the resource).]]): - format(damDesc(self, DamageType.MIND, (damage))) + tformat(damDesc(self, DamageType.MIND, (damage))) end, } @@ -345,7 +345,7 @@ newTalent{ local damage = t.getDamage(self, t) local explosion = t.getExplosion(self, t) return ([[Summons %d void shards. The void shards come into being destabilized and will suffer %0.2f temporal damage each turn for five turns. If they die while destabilized they'll explode for %0.2f temporal and %0.2f physical damage in a radius of 4.]]): - format(number, damDesc(self, DamageType.TEMPORAL, (damage)), damDesc(self, DamageType.TEMPORAL, (explosion/2)), damDesc(self, DamageType.PHYSICAL, (explosion/2))) + tformat(number, damDesc(self, DamageType.TEMPORAL, (damage)), damDesc(self, DamageType.TEMPORAL, (explosion/2)), damDesc(self, DamageType.PHYSICAL, (explosion/2))) end, } ------------------------------------------- @@ -392,7 +392,7 @@ newTalent{ local damage = t.getDamage(self, t) local duration = t.getDuration(self, t) return ([[Summon a storm of swirling blades to slice your foes, inflicting %d physical damage and bleeding to anyone who approaches for %d turns. - The damage and duration will increase with your Mindpower.]]):format(damDesc(self, DamageType.PHYSICAL, damage), duration) + The damage and duration will increase with your Mindpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, damage), duration) end, } @@ -429,7 +429,7 @@ newTalent{ end, info = function(self, t) return ([[Pull all foes toward you in radius 5 while dealing %d physical damage. -The damage will increase with your mindpower.]]):format(damDesc(self, DamageType.PHYSICAL, self:combatTalentMindDamage(t, 20, 120))) +The damage will increase with your mindpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, self:combatTalentMindDamage(t, 20, 120))) end, } @@ -457,7 +457,7 @@ newTalent{ end, info = function(self, t) return ([[Launches a knife with intense power doing %0.2f physical damage to all targets in line. - The damage will increase with Mindpower]]):format(damDesc(self, DamageType.PHYSICAL, self:combatTalentMindDamage(t, 20, 200))) + The damage will increase with Mindpower]]):tformat(damDesc(self, DamageType.PHYSICAL, self:combatTalentMindDamage(t, 20, 200))) end, } @@ -504,7 +504,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[A wall of slime oozes out from the caster with radius 1, increasing once every two turns to a maximum eventual radius of %d, doing %0.2f slime damage for %d turns. The damage and duration will increase with your Mindpower.]]): - format(radius, damDesc(self, DamageType.NATURE, damage), duration) + tformat(radius, damDesc(self, DamageType.NATURE, damage), duration) end, } @@ -551,7 +551,7 @@ newTalent{ return ([[Grab a target and drag it to your side, holding it in place and silencing non-undead and creatures that need to breathe for %d turns. The grab will also deal %0.2f slime damage per turn. The damage will increase with your Mindpower.]]): - format(duration, damDesc(self, DamageType.SLIME, damage)) + tformat(duration, damDesc(self, DamageType.SLIME, damage)) end, } @@ -578,7 +578,7 @@ newTalent{ end, info = function(self, t) return ([[Spit slime at your target doing %0.2f nature damage and slowing it down by 30%% for 3 turns. - The damage will increase with the Dexterity stat]]):format(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "dex", 30, 290))) + The damage will increase with the Dexterity stat]]):tformat(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "dex", 30, 290))) end, } @@ -616,7 +616,7 @@ newTalent{ info = function(self, t) local range = self:getTalentRange(t) local radius = self:getTalentRadius(t) - return ([[You extend slimy roots into the ground, follow them, and re-appear somewhere else in a range of %d with error margin of %d.]]):format(range, radius) + return ([[You extend slimy roots into the ground, follow them, and re-appear somewhere else in a range of %d with error margin of %d.]]):tformat(range, radius) end, } @@ -701,7 +701,7 @@ newTalent{ info = function(self, t) local radius = self:getTalentRadius(t) return ([[Blast a wave of water all around you with a radius of %d, making all creatures Wet for 10 turns. - The damage will increase with your Spellpower.]]):format(radius) + The damage will increase with your Spellpower.]]):tformat(radius) end, } @@ -733,6 +733,6 @@ newTalent{ return ([[Latch on to the target and suck their blood, doing %0.2f physical and %0.2f acid damage per turn. After 5 turns of drinking, drop off and gain the ability to Multiply. Damage scales with your level. - ]]):format(Pdam, Fdam) + ]]):tformat(Pdam, Fdam) end, } diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index acfd4d7ca81589b1ca9e45d11edb32cfcd42c731..e034a09de238bd5293f27ae76211580d0c10d484 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -47,7 +47,7 @@ newInscription = function(t) local ret = t.old_info(self, t) local data = self:getInscriptionData(t.short_name) if data.use_stat and data.use_stat_mod then - ret = ret..("\nIts effects scale with your %s stat."):format(self.stats_def[data.use_stat].name) + ret = ret..("\nIts effects scale with your %s stat."):tformat(self.stats_def[data.use_stat].name) end return ret end @@ -77,11 +77,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the infusion to heal yourself for %d life over %d turns.]]):format(data.heal + data.inc_stat, data.dur) + return ([[Activate the infusion to heal yourself for %d life over %d turns.]]):tformat(data.heal + data.inc_stat, data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[heal %d; %d cd]]):format(data.heal + data.inc_stat, data.cooldown) + return ([[heal %d; %d cd]]):tformat(data.heal + data.inc_stat, data.cooldown) end, } @@ -125,11 +125,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the infusion to instantly heal yourself for %d then cleanse 1 wound, poison, and disease effect.]]):format(data.heal + data.inc_stat) + return ([[Activate the infusion to instantly heal yourself for %d then cleanse 1 wound, poison, and disease effect.]]):tformat(data.heal + data.inc_stat) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[heal %d; cd %d]]):format(data.heal + data.inc_stat, data.cooldown) + return ([[heal %d; cd %d]]):tformat(data.heal + data.inc_stat, data.cooldown) end, } @@ -169,12 +169,12 @@ newInscription{ local what = table.concatNice(table.keys(data.what), ", ", " and ") return ([[Activate the infusion to cure yourself of one random %s effect and reduce all damage taken by %d%% for %d turns. -Also removes cross-tier effects of the affected types for free.]]):format(what, data.power+data.inc_stat, data.dur) +Also removes cross-tier effects of the affected types for free.]]):tformat(what, data.power+data.inc_stat, data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local what = table.concat(table.keys(data.what), ", ") - return ([[res %d%%; %s; dur %d; cd %d]]):format(data.power + data.inc_stat, what, data.dur, data.cooldown) + return ([[res %d%%; %s; dur %d; cd %d]]):tformat(data.power + data.inc_stat, what, data.dur, data.cooldown) end, } @@ -192,11 +192,11 @@ newInscription{ info = function(self, t) local data = self:getInscriptionData(t.short_name) return ([[Activate the infusion to heal for %d%% of all damage taken (calculated before resistances) and reduce the duration of a random debuff by %d each turn for %d turns.]]): - format(data.power+data.inc_stat*10, math.floor((data.reduce or 0) + data.inc_stat * 2), data.dur) + tformat(data.power+data.inc_stat*10, math.floor((data.reduce or 0) + data.inc_stat * 2), data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[affinity %d%%; reduction %d; dur %d; cd %d]]):format(data.power + data.inc_stat*10, math.floor((data.reduce or 0) + data.inc_stat * 2), data.dur, data.cooldown ) + return ([[affinity %d%%; reduction %d; dur %d; cd %d]]):tformat(data.power + data.inc_stat*10, math.floor((data.reduce or 0) + data.inc_stat * 2), data.dur, data.cooldown ) end, } @@ -217,11 +217,11 @@ newInscription{ return ([[Activate the infusion to increase movement speed by %d%% for 1 game turn. You gain 100%% stun, daze, and pin immunity during the effect. Any actions other than movement will cancel the effect. - Note: since you will be moving very fast, game turns will pass very slowly.]]):format(data.speed + data.inc_stat) + Note: since you will be moving very fast, game turns will pass very slowly.]]):tformat(data.speed + data.inc_stat) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[speed %d%%; cd %d]]):format(data.speed + data.inc_stat, data.cooldown) + return ([[speed %d%%; cd %d]]):tformat(data.speed + data.inc_stat, data.cooldown) end, } @@ -245,11 +245,11 @@ newInscription{ return ([[Activate the infusion to endure even the most grievous of wounds for %d turns. While Heroism is active, you will only die when reaching -%d life. The duration and life will increase by 1%% for every 1%% life you have lost (currently %d life, %d duration) - If your life is below 0 when this effect wears off it will be set to 1.]]):format(data.dur, data.die_at + data.inc_stat * 30, bonus1, bonus2) + If your life is below 0 when this effect wears off it will be set to 1.]]):tformat(data.dur, data.die_at + data.inc_stat * 30, bonus1, bonus2) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[die at -%d; dur %d; cd %d]]):format(data.die_at + data.inc_stat * 30, data.dur, data.cooldown) + return ([[die at -%d; dur %d; cd %d]]):tformat(data.die_at + data.inc_stat * 30, data.dur, data.cooldown) end, } @@ -282,11 +282,11 @@ newInscription{ local damage = t.getDamage(self, t) return ([[Causes thick vines to spring from the ground and entangle all targets within %d squares for %d turns, pinning them in place for 5 turns and dealing %0.2f physical damage and %0.2f nature damage. The vines also grow all around you, increasing your armour by %d and armour hardiness by %d.]]): - format(self:getTalentRadius(t), data.dur, damDesc(self, DamageType.PHYSICAL, damage)/3, damDesc(self, DamageType.NATURE, 2*damage)/3, data.armor or 50, data.hard or 30) + tformat(self:getTalentRadius(t), data.dur, damDesc(self, DamageType.PHYSICAL, damage)/3, damDesc(self, DamageType.NATURE, 2*damage)/3, data.armor or 50, data.hard or 30) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[rad %d; dur %d;]]):format(self:getTalentRadius(t), data.dur) + return ([[rad %d; dur %d;]]):tformat(self:getTalentRadius(t), data.dur) end, } @@ -319,11 +319,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the rune to teleport randomly in a range of %d with a minimum range of 15.]]):format(data.range + data.inc_stat) + return ([[Activate the rune to teleport randomly in a range of %d with a minimum range of 15.]]):tformat(data.range + data.inc_stat) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[range %d; cd %d]]):format(data.range + data.inc_stat, data.cooldown) + return ([[range %d; cd %d]]):tformat(data.range + data.inc_stat, data.cooldown) end, } @@ -345,11 +345,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the rune to create a protective shield absorbing at most %d damage for %d turns.]]):format((data.power + data.inc_stat) * (100 + (self:attr("shield_factor") or 0)) / 100, data.dur) + return ([[Activate the rune to create a protective shield absorbing at most %d damage for %d turns.]]):tformat((data.power + data.inc_stat) * (100 + (self:attr("shield_factor") or 0)) / 100, data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[absorb %d; dur %d; cd %d]]):format((data.power + data.inc_stat) * (100 + (self:attr("shield_factor") or 0)) / 100, data.dur, data.cooldown) + return ([[absorb %d; dur %d; cd %d]]):tformat((data.power + data.inc_stat) * (100 + (self:attr("shield_factor") or 0)) / 100, data.dur, data.cooldown) end, } @@ -375,13 +375,13 @@ newInscription{ local data = self:getInscriptionData(t.short_name) local power = 100+5*self:getMag() if data.power and data.inc_stat then power = data.power + data.inc_stat end - return ([[Activate the rune to create a protective shield absorbing and reflecting at most %d damage for %d turns.]]):format(power, data.dur or 5) + return ([[Activate the rune to create a protective shield absorbing and reflecting at most %d damage for %d turns.]]):tformat(power, data.dur or 5) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local power = 100+5*self:getMag() if data.power and data.inc_stat then power = data.power + data.inc_stat end - return ([[absorb and reflect %d; dur %d; cd %d]]):format(power, data.dur or 5, data.cd) + return ([[absorb and reflect %d; dur %d; cd %d]]):tformat(power, data.dur or 5, data.cd) end, } @@ -425,11 +425,11 @@ newInscription{ return ([[Activate the rune to direct a cone of chilling stormwind doing %0.2f cold damage. The storm will soak enemies hit reducing their resistance to stuns by 50%% then attempt to freeze them for %d turns. These effects can be resisted but not saved against.]]): - format(damDesc(self, DamageType.COLD, data.power + data.inc_stat), data.dur) + tformat(damDesc(self, DamageType.COLD, data.power + data.inc_stat), data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[damage %d; dur %d; cd %d]]):format(damDesc(self, DamageType.COLD, data.power + data.inc_stat), data.dur, data.cooldown) + return ([[damage %d; dur %d; cd %d]]):tformat(damDesc(self, DamageType.COLD, data.power + data.inc_stat), data.dur, data.cooldown) end, } @@ -477,12 +477,12 @@ newInscription{ return ([[Activate the rune to unleash a cone dealing %0.2f acid damage. The corrosive acid will also disarm enemies struck for %d turns. This effect can be resisted but not saved against.]]): - format(damDesc(self, DamageType.ACID, data.power + data.inc_stat), data.dur or 3) + tformat(damDesc(self, DamageType.ACID, data.power + data.inc_stat), data.dur or 3) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local pow = data.power - return ([[damage %d; dur %d; cd %d]]):format(damDesc(self, DamageType.ACID, data.power + data.inc_stat), data.dur or 3, data.cooldown) + return ([[damage %d; dur %d; cd %d]]):tformat(damDesc(self, DamageType.ACID, data.power + data.inc_stat), data.dur or 3, data.cooldown) end, } @@ -523,11 +523,11 @@ newInscription{ local data = self:getInscriptionData(t.short_name) local total = (data.mana + data.inc_stat) / 100 * (self.mana_regen or 0) * 10 return ([[Activate the rune to unleash a manasurge upon yourself, increasing mana regeneration by %d%% for %d turns (%d total) and instantly restoring %d mana. - Also when resting your mana will regenerate at 0.5 per turn.]]):format(data.mana + data.inc_stat, data.dur, total, (data.mana + data.inc_stat) / 20) + Also when resting your mana will regenerate at 0.5 per turn.]]):tformat(data.mana + data.inc_stat, data.dur, total, (data.mana + data.inc_stat) / 20) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[regen %d%% over %d turns; mana %d; cd %d]]):format(data.mana + data.inc_stat, data.dur, (data.mana + data.inc_stat) / 20, data.cooldown) + return ([[regen %d%% over %d turns; mana %d; cd %d]]):tformat(data.mana + data.inc_stat, data.dur, (data.mana + data.inc_stat) / 20, data.cooldown) end, } @@ -624,10 +624,10 @@ newInscription{ local duration = t.getDuration(self, t) return ([[Inflicts %0.2f temporal damage. If your target survives, it will be sent %d turns into the future. It will also lower your paradox by 25 (if you have any). - Note that messing with the spacetime continuum may have unforeseen consequences.]]):format(damDesc(self, DamageType.TEMPORAL, damage), duration) + Note that messing with the spacetime continuum may have unforeseen consequences.]]):tformat(damDesc(self, DamageType.TEMPORAL, damage), duration) end, short_info = function(self, t) - return ("%0.2f temporal damage, removed from time %d turns"):format(t.getDamage(self, t), t.getDuration(self, t)) + return ("%0.2f temporal damage, removed from time %d turns"):tformat(t.getDamage(self, t), t.getDuration(self, t)) end, } @@ -673,12 +673,12 @@ newInscription{ local data = self:getInscriptionData(t.short_name) local power = data.power + data.inc_stat * 3 return ([[Activate the rune to teleport up to %d spaces within line of sight. Afterwards you stay out of phase for %d turns. In this state all new negative status effects duration is reduced by %d%%, your defense is increased by %d and all your resistances by %d%%.]]): - format(data.range + data.inc_stat, t.getDur(self, t), power, power, power) + tformat(data.range + data.inc_stat, t.getDur(self, t), power, power, power) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local power = data.power + data.inc_stat * 3 - return ([[range %d; phase %d; cd %d]]):format(self:getTalentRange(t), power, data.cooldown ) + return ([[range %d; phase %d; cd %d]]):tformat(self:getTalentRange(t), power, data.cooldown ) end, } @@ -717,11 +717,11 @@ newInscription{ local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to become ethereal for %d turns. While ethereal all damage you deal is reduced by %d%%, you gain %d%% all resistance, you move %d%% faster, and you are invisible (power %d).]]): - format(t.getDur(self, t),t.getReduction(self, t) * 100, t.getResistance(self, t), t.getMove(self, t), t.getPower(self, t)) + tformat(t.getDur(self, t),t.getReduction(self, t) * 100, t.getResistance(self, t), t.getMove(self, t), t.getPower(self, t)) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[power %d; resist %d%%; move %d%%; dur %d; cd %d]]):format(t.getPower(self, t), t.getResistance(self, t), t.getMove(self, t), t.getDur(self, t), data.cooldown) + return ([[power %d; resist %d%%; move %d%%; dur %d; cd %d]]):tformat(t.getPower(self, t), t.getResistance(self, t), t.getMove(self, t), t.getDur(self, t), data.cooldown) end, } @@ -756,11 +756,11 @@ newInscription{ local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to summon a protective storm around you for %d turns. While active the storm will completely block all damage over %d up to %d times.]]) - :format(t.getDur(self, t), t.getThreshold(self, t), t.getBlocks(self, t) ) + :tformat(t.getDur(self, t), t.getThreshold(self, t), t.getBlocks(self, t) ) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[threshold %d; blocks %d; dur %d; cd %d]]):format(t.getThreshold(self, t), t.getBlocks(self, t), t.getDur(self, t), data.cooldown ) + return ([[threshold %d; blocks %d; dur %d; cd %d]]):tformat(t.getThreshold(self, t), t.getBlocks(self, t), t.getDur(self, t), data.cooldown ) end, } @@ -790,12 +790,12 @@ newInscription{ end str = string.sub(str, 2) return ([[Activate the rune to create a shield for %d turns blocking several instances of damage of the following types:%s]]) -- color me - :format(t.getDur(self, t), str) + :tformat(t.getDur(self, t), str) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local str = table.concat(table.keys(data.wards), ", ") - return ([[%d turns; %s]]):format(t.getDur(self, t), str:lower() ) + return ([[%d turns; %s]]):tformat(t.getDur(self, t), str:lower() ) end, } @@ -898,11 +898,11 @@ newInscription{ return ([[Activate the rune to create up to 3 images of yourself that taunt nearby enemies each turn and immediately after being summoned. Only one image can be created per enemy in radius 10 with the first being created near the closest enemy. Images inherit all of your life, resistance, armor, defense, and armor hardiness.]]) - :format(t.getInheritance(self, t)*100 ) + :tformat(t.getInheritance(self, t)*100 ) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[dur %d; cd %d]]):format(t.getDur(self, t), data.cooldown) + return ([[dur %d; cd %d]]):tformat(t.getDur(self, t), data.cooldown) end } @@ -957,11 +957,11 @@ newInscription{ return ([[Activate the rune to instantly dissipate the energy of your ailments, cleansing all cross tier effects and 1 physical, mental, and magical effect. You use the dissipated energy to create a shield lasting 3 turns and blocking %d damage per debuff cleansed (not counting cross-tier ones). If there were only cross-tier effects to cleanse, no shield is created and the rune goes on a 75%% reduced cooldown.]]) - :format(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100) + :tformat(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[absorb %d; cd %d]]):format(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100, data.cooldown) + return ([[absorb %d; cd %d]]):tformat(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100, data.cooldown) end, } @@ -1009,11 +1009,11 @@ newInscription{ info = function(self, t) local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to remove 8 beneficial magical sustains from an enemy target or all magical debuffs from you.]]): - format() + tformat() end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[ ]]):format() + return ([[ ]]):tformat() end, } @@ -1102,11 +1102,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the taint on a foe, removing up to %d magical or physical effects or sustains from it and healing you for %d for each effect.]]):format(data.effects, data.heal + data.inc_stat) + return ([[Activate the taint on a foe, removing up to %d magical or physical effects or sustains from it and healing you for %d for each effect.]]):tformat(data.effects, data.heal + data.inc_stat) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[%d effects / %d heal]]):format(data.effects, data.heal + data.inc_stat) + return ([[%d effects / %d heal]]):tformat(data.effects, data.heal + data.inc_stat) end, } @@ -1131,10 +1131,10 @@ newInscription{ local data = self:getInscriptionData(t.short_name) return ([[Activate the taint to purge your body of physical afflictions for %d turns. Each turn the purge will attempt to cleanse 1 physical debuff from you, and if one is removed, increase its duration by 1.]]) - :format(t.getDur(self, t) ) + :tformat(t.getDur(self, t) ) end, short_info = function(self, t) - return ([[%d turns]]):format(t.getDur(self, t) ) + return ([[%d turns]]):tformat(t.getDur(self, t) ) end, } @@ -1171,12 +1171,12 @@ newInscription{ local apply = self:rescaleCombatStats((data.power + data.inc_stat)) return ([[Activate the infusion to brighten the area in a radius of %d and illuminate stealthy creatures, possibly revealing them (reduces stealth power by %d).%s It will also blind any creatures caught inside (power %d) for %d turns.]]): - format(data.range, apply/2, apply >= 19 and "\nThe light is so powerful it will also banish magical darkness" or "", apply, data.turns) + tformat(data.range, apply/2, apply >= 19 and "\nThe light is so powerful it will also banish magical darkness" or "", apply, data.turns) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local apply = self:rescaleCombatStats((data.power + data.inc_stat)) - return ([[rad %d; power %d; turns %d%s]]):format(data.range, apply, data.turns, apply >= 19 and "; dispels darkness" or "") + return ([[rad %d; power %d; turns %d%s]]):tformat(data.range, apply, data.turns, apply >= 19 and "; dispels darkness" or "") end, } @@ -1199,11 +1199,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Strip the protective barriers from your mind for %d turns, allowing in the thoughts all creatures within %d squares but reducing mind save by %d and increasing your mindpower by %d for 10 turns.]]):format(data.dur, self:getTalentRange(t), 10, 35) + return ([[Strip the protective barriers from your mind for %d turns, allowing in the thoughts all creatures within %d squares but reducing mind save by %d and increasing your mindpower by %d for 10 turns.]]):tformat(data.dur, self:getTalentRange(t), 10, 35) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Range %d telepathy for %d turns]]):format(self:getTalentRange(t), data.dur) + return ([[Range %d telepathy for %d turns]]):tformat(self:getTalentRange(t), data.dur) end, } @@ -1245,11 +1245,11 @@ newInscription{ info = function(self, t) local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to fire a bolt of ice, doing %0.2f cold damage with a chance to freeze the target. - The deep cold also crystalizes your mind, removing one random detrimental mental effect from you.]]):format(damDesc(self, DamageType.COLD, data.power + data.inc_stat)) + The deep cold also crystalizes your mind, removing one random detrimental mental effect from you.]]):tformat(damDesc(self, DamageType.COLD, data.power + data.inc_stat)) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[%d cold damage]]):format(damDesc(self, DamageType.COLD, data.power + data.inc_stat)) + return ([[%d cold damage]]):tformat(damDesc(self, DamageType.COLD, data.power + data.inc_stat)) end, } @@ -1294,11 +1294,11 @@ newInscription{ info = function(self, t) local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to fire a beam of heat, doing %0.2f fire damage over 5 turns - The intensity of the heat will also remove one random detrimental physical effect from you.]]):format(damDesc(self, DamageType.FIRE, data.power + data.inc_stat)) + The intensity of the heat will also remove one random detrimental physical effect from you.]]):tformat(damDesc(self, DamageType.FIRE, data.power + data.inc_stat)) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[%d fire damage]]):format(damDesc(self, DamageType.FIRE, data.power + data.inc_stat)) + return ([[%d fire damage]]):tformat(damDesc(self, DamageType.FIRE, data.power + data.inc_stat)) end, } @@ -1316,11 +1316,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the rune to increase your global speed by %d%% for %d turns.]]):format(data.power + data.inc_stat, data.dur) + return ([[Activate the rune to increase your global speed by %d%% for %d turns.]]):tformat(data.power + data.inc_stat, data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[speed %d%% for %d turns]]):format(data.power + data.inc_stat, data.dur) + return ([[speed %d%% for %d turns]]):tformat(data.power + data.inc_stat, data.dur) end, } @@ -1349,11 +1349,11 @@ newInscription{ local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to get a vision of the area surrounding you (%d radius) and to allow you to see invisible and stealthed creatures (power %d) for %d turns. Your mind will become more receptive for %d turns, allowing you to sense any %s around.]]): - format(data.range, data.power + data.inc_stat, data.dur, data.dur, data.esp or "humanoid") + tformat(data.range, data.power + data.inc_stat, data.dur, data.dur, data.esp or "humanoid") end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[radius %d; dur %d; see %s]]):format(data.range, data.dur, data.esp or "humanoid") + return ([[radius %d; dur %d; see %s]]):tformat(data.range, data.dur, data.esp or "humanoid") end, } @@ -1381,12 +1381,12 @@ newInscription{ local power = (data.power or data.range) + data.inc_stat * 3 return ([[Activate the rune to teleport randomly in a range of %d. Afterwards you stay out of phase for %d turns. In this state all new negative status effects duration is reduced by %d%%, your defense is increased by %d and all your resistances by %d%%.]]): - format(data.range + data.inc_stat, data.dur or 3, power, power, power) + tformat(data.range + data.inc_stat, data.dur or 3, power, power, power) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) local power = (data.power or data.range) + data.inc_stat * 3 - return ([[range %d; power %d; dur %d]]):format(data.range + data.inc_stat, power, data.dur or 3) + return ([[range %d; power %d; dur %d]]):tformat(data.range + data.inc_stat, power, data.dur or 3) end, } @@ -1426,11 +1426,11 @@ newInscription{ end, info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[Activate the rune to teleport in a range of %d.]]):format(data.range + data.inc_stat) + return ([[Activate the rune to teleport in a range of %d.]]):tformat(data.range + data.inc_stat) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[range %d]]):format(data.range + data.inc_stat) + return ([[range %d]]):tformat(data.range + data.inc_stat) end, } @@ -1470,11 +1470,11 @@ newInscription{ local dam = damDesc(self, DamageType.LIGHTNING, data.power + data.inc_stat) return ([[Activate the rune to fire a beam of lightning, doing %0.2f to %0.2f lightning damage. Also transform you into pure lightning for %d turns; any damage will teleport you to an adjacent tile and ignore the damage (can only happen once per turn)]]): - format(dam / 3, dam, 2) + tformat(dam / 3, dam, 2) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[%d lightning damage]]):format(damDesc(self, DamageType.LIGHTNING, data.power + data.inc_stat)) + return ([[%d lightning damage]]):tformat(damDesc(self, DamageType.LIGHTNING, data.power + data.inc_stat)) end, } @@ -1509,11 +1509,11 @@ newInscription{ info = function(self, t) local data = self:getInscriptionData(t.short_name) return ([[Activate the infusion to spit a bolt of poison doing %0.2f nature damage per turn for 7 turns, and reducing the target's healing received by %d%%. - The sudden stream of natural forces also strips you of one random detrimental magical effect.]]):format(damDesc(self, DamageType.NATURE, data.power + data.inc_stat) / 7, data.heal_factor) + The sudden stream of natural forces also strips you of one random detrimental magical effect.]]):tformat(damDesc(self, DamageType.NATURE, data.power + data.inc_stat) / 7, data.heal_factor) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[%d nature damage, %d%% healing reduction]]):format(damDesc(self, DamageType.NATURE, data.power + data.inc_stat) / 7, data.heal_factor) + return ([[%d nature damage, %d%% healing reduction]]):tformat(damDesc(self, DamageType.NATURE, data.power + data.inc_stat) / 7, data.heal_factor) end, } @@ -1532,10 +1532,10 @@ newInscription{ local data = self:getInscriptionData(t.short_name) return ([[Activate the rune to become invisible (power %d) for %d turns. As you become invisible you fade out of phase with reality, all your damage is reduced by 40%%. - ]]):format(data.power + data.inc_stat, data.dur) + ]]):tformat(data.power + data.inc_stat, data.dur) end, short_info = function(self, t) local data = self:getInscriptionData(t.short_name) - return ([[power %d for %d turns]]):format(data.power + data.inc_stat, data.dur) + return ([[power %d for %d turns]]):tformat(data.power + data.inc_stat, data.dur) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/misc/misc.lua b/game/modules/tome/data/talents/misc/misc.lua index 53447a26827fec43636f38913a575603b0a46f04..16601033c01097054a6143ca07ebb0ca098e6456 100644 --- a/game/modules/tome/data/talents/misc/misc.lua +++ b/game/modules/tome/data/talents/misc/misc.lua @@ -18,11 +18,11 @@ -- darkgod@te4.org -- race & classes -newTalentType{ type="base/class", name = "class", hide = true, description = "The basic talents defining a class." } -newTalentType{ type="base/race", name = "race", hide = true, description = "The various racial bonuses a character can have." } -newTalentType{ is_nature = true, type="inscriptions/infusions", name = "infusions", hide = true, description = "Infusions are not class abilities, you must find them or learn them from other people." } -newTalentType{ is_spell=true, no_silence=true, type="inscriptions/runes", name = "runes", hide = true, description = "Runes are not class abilities, you must find them or learn them from other people." } -newTalentType{ is_spell=true, no_silence=true, type="inscriptions/taints", name = "taints", hide = true, description = "Taints are not class abilities, you must find them or learn them from other people." } +newTalentType{ type="base/class", name = _t"class", hide = true, description = _t"The basic talents defining a class." } +newTalentType{ type="base/race", name = _t"race", hide = true, description = _t"The various racial bonuses a character can have." } +newTalentType{ is_nature = true, type="inscriptions/infusions", name = _t"infusions", hide = true, description = _t"Infusions are not class abilities, you must find them or learn them from other people." } +newTalentType{ is_spell=true, no_silence=true, type="inscriptions/runes", name = _t"runes", hide = true, description = _t"Runes are not class abilities, you must find them or learn them from other people." } +newTalentType{ is_spell=true, no_silence=true, type="inscriptions/taints", name = _t"taints", hide = true, description = _t"Taints are not class abilities, you must find them or learn them from other people." } -- Load other misc things load("/data/talents/misc/objects.lua") @@ -262,7 +262,7 @@ newTalent{ end, info = function(self, t) return ([[You are hunted!. There is a %d%% chance each turn that all foes in a %d radius get a glimpse of your position for 30 turns.]]): - format(math.min(100, 1 + self.level / 7), 10 + self.level / 5) + tformat(math.min(100, 1 + self.level / 7), 10 + self.level / 5) end, } @@ -371,7 +371,7 @@ newTalent{ local e = target.tempeffect_def[eff_id] if e.status == "detrimental" and self.save_for_effects[e.type] then local decrease = t.getReduction(self, t, e) - print(("%s: Reducing duration of %s, using %s, by %d"):format(t.name, e.desc, self.save_for_effects[e.type], decrease)) + print(("%s: Reducing duration of %s, using %s, by %d"):tformat(t.name, e.desc, self.save_for_effects[e.type], decrease)) p.dur = p.dur - decrease if p.dur <= 0 then todel[#todel+1] = eff_id end end @@ -385,13 +385,13 @@ newTalent{ info = function(self, t) local eff_desc = "" for e_type, fn in pairs(self.save_for_effects) do - eff_desc = eff_desc .. ("\n%s effect durations -%d turns"):format(e_type:capitalize(), t.getReduction(self, t, e_type)) + eff_desc = eff_desc .. ("\n%s effect durations -%d turns"):tformat(e_type:capitalize(), t.getReduction(self, t, e_type)) end return ([[Not the Master himself, nor all the orcs in fallen Reknor, nor even the terrifying unknown beyond Reknor's portal could slow your pursuit of the Staff of Absorption. Children will hear of your relentlessness in song for years to come. When activated, this ability reduces the duration of all active detrimental effects by 20%% of your associated save value or 2, whichever is greater: %s]]): - format(eff_desc) + tformat(eff_desc) end, } diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua index 8aac71b3954e5ab5af294a34b3b85ba6d6b3ad30..09089da367742aca6c6dce8711d85e34c9dd14b0 100644 --- a/game/modules/tome/data/talents/misc/npcs.lua +++ b/game/modules/tome/data/talents/misc/npcs.lua @@ -20,16 +20,16 @@ local Object = require "mod.class.Object" -- race & classes -newTalentType{ type="technique/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ no_silence=true, is_spell=true, type="chronomancy/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ no_silence=true, is_spell=true, type="spell/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ no_silence=true, is_spell=true, type="corruption/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ is_nature=true, type="wild-gift/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ type="psionic/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ type="other/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ type="undead/other", name = "other", hide = true, description = "Talents of the various entities of the world." } -newTalentType{ type="undead/keepsake", name = "keepsake shadow", generic = true, description = "Keepsake shadows's innate abilities." } -newTalentType{ is_mind=true, type="cursed/misc", name = "misc", description = "Talents of the various entities of the world." } +newTalentType{ type="technique/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ no_silence=true, is_spell=true, type="chronomancy/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ no_silence=true, is_spell=true, type="spell/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ no_silence=true, is_spell=true, type="corruption/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ is_nature=true, type="wild-gift/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ type="psionic/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ type="other/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ type="undead/other", name = _t"other", hide = true, description = _t"Talents of the various entities of the world." } +newTalentType{ type="undead/keepsake", name = _t"keepsake shadow", generic = true, description = _t"Keepsake shadows's innate abilities." } +newTalentType{ is_mind=true, type="cursed/misc", name = _t"misc", description = _t"Talents of the various entities of the world." } local oldTalent = newTalent local newTalent = function(t) if type(t.hide) == "nil" then t.hide = true end return oldTalent(t) end @@ -69,7 +69,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Multiply yourself! (up to %d times)]]):format(self.can_multiply or 0) + return ([[Multiply yourself! (up to %d times)]]):tformat(self.can_multiply or 0) end, } @@ -97,7 +97,7 @@ newTalent{ end, info = function(self, t) return ([[Crawl onto the target, doing %d%% damage and covering it in poison.]]): - format(100*t.getMult(self, t)) + tformat(100*t.getMult(self, t)) end, } @@ -158,7 +158,7 @@ newTalent{ end, info = function(self, t) return ([[Releases stinging spores at the target, blinding it for %d turns.]]): - format(t.getDuration(self, t)) + tformat(t.getDuration(self, t)) end, } @@ -185,7 +185,7 @@ newTalent{ end, info = function(self, t) return ([[Releases poisonous spores at the target, doing %d%% damage and poisoning it.]]): - format(100 * t.getMult(self, t)) + tformat(100 * t.getMult(self, t)) end, } @@ -221,7 +221,7 @@ newTalent{ info = function(self, t) return ([[Hits the target doing %d%% damage. If the attack hits, the target is stunned for %d turns. The chance to stun improves with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) end, } @@ -254,7 +254,7 @@ newTalent{ end, info = function(self, t) return ([[Hits the target doing %d%% damage and trying to disarm the target for %d turns. The chance improves with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) end, } @@ -290,7 +290,7 @@ newTalent{ info = function(self, t) return ([[Hits the target doing %d%% damage. If the attack hits, the target is constricted for %d turns. The constriction power improves with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1), t.getDuration(self, t)) end, } @@ -324,7 +324,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Hits the target with your weapon doing %d%% damage. If the attack hits, the target is knocked back up to 4 grids. The chance improves with your Physical Power.]]):format(100 * self:combatTalentWeaponDamage(t, 1.5, 2)) + return ([[Hits the target with your weapon doing %d%% damage. If the attack hits, the target is knocked back up to 4 grids. The chance improves with your Physical Power.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1.5, 2)) end, } @@ -348,7 +348,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Bites the target (an unarmed attack), doing %d%% damage and injecting it with poison.]]):format(100 * t.getMult(self, t)) + return ([[Bites the target (an unarmed attack), doing %d%% damage and injecting it with poison.]]):tformat(100 * t.getMult(self, t)) end, } @@ -454,7 +454,7 @@ newTalent{ end, info = function(self, t) return ([[Hits the target doing %d%% damage. If the attack hits, the target is afflicted with a disease, inflicting %0.2f blight damage per turn for %d turns and reducing constitution by 10%% + 4. The disease damage increases with your Strength, and the chance to apply it increases with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) end, } @@ -490,7 +490,7 @@ newTalent{ end, info = function(self, t) return ([[Hits the target doing %d%% damage. If the attack hits, the target is afflicted with a disease, inflicting %0.2f blight damage per turn for %d turns and reducing dexterity by 10%% + 4. The disease damage increases with your Strength, and the chance to apply it increases with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) end, } @@ -526,7 +526,7 @@ newTalent{ end, info = function(self, t) return ([[Hits the target doing %d%% damage. If the attack hits, the target is afflicted with a disease, inflicting %0.2f blight damage per turn for %d turns and reducing strength by 10%% + 4. The disease damage increases with your Strength, and the chance to apply it increases with your Physical Power.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 1),damDesc(self, DamageType.BLIGHT,t.getDamage(self, t)),t.getDuration(self, t)) end, } @@ -551,7 +551,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Try to confuse the target's mind for %d (power %d%%) turns.]]):format(t.getDuration(self, t), t.getConfusion(self, t)) + return ([[Try to confuse the target's mind for %d (power %d%%) turns.]]):tformat(t.getDuration(self, t), t.getConfusion(self, t)) end, } @@ -577,7 +577,7 @@ newTalent{ info = function(self, t) return ([[Condenses ambient water on a target, inflicting %0.1f cold damage. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.COLD,t.getDamage(self, t))) + tformat(damDesc(self, DamageType.COLD,t.getDamage(self, t))) end, } @@ -619,7 +619,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage)) + tformat(damDesc(self, DamageType.FIRE, damage)) end, } @@ -659,7 +659,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Hurl ice shard at the target dealing %0.2f ice damage. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.COLD, damage)) + tformat(damDesc(self, DamageType.COLD, damage)) end, } @@ -691,7 +691,7 @@ newTalent{ return ([[Projects a bolt of pure blight, doing %0.2f blight damage. This spell has an improved critical strike chance of +%0.2f%%. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 1, 180)), t.getCritChance(self, t)) + tformat(damDesc(self, DamageType.BLIGHT, self:combatTalentSpellDamage(t, 1, 180)), t.getCritChance(self, t)) end, } @@ -718,7 +718,7 @@ newTalent{ info = function(self, t) return ([[Condenses ambient water on a target, inflicting %0.1f cold damage and stunning it for 4 turns. The damage will increase with your Spellpower]]): - format(damDesc(self, DamageType.COLD,t.getDamage(self, t))) + tformat(damDesc(self, DamageType.COLD,t.getDamage(self, t))) end, } @@ -744,7 +744,7 @@ newTalent{ end, info = function(self, t) return ([[Fires a blast of void energies that slowly travel to their target, dealing %0.2f arcane damage on impact. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.ARCANE, self:combatTalentSpellDamage(t, 15, 240))) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.ARCANE, self:combatTalentSpellDamage(t, 15, 240))) end, } @@ -790,7 +790,7 @@ newTalent{ info = function(self, t) local curecount = t.getCureCount(self, t) return ([[Call upon the forces of nature to cure your body of %d poisons and diseases.]]): - format(curecount) + tformat(curecount) end, } @@ -812,7 +812,7 @@ newTalent{ local regen = t.getRegeneration(self, t) return ([[Call upon the forces of nature to regenerate your body for %d life every turn for 10 turns. The life healed increases with Spellpower.]]): - format(regen) + tformat(regen) end, } @@ -846,7 +846,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Hits the target doing %d%% damage; if the attack hits, the target is pinned to the ground for %d turns. The chance to pin improves with Physical Power.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.4), t.getDuration(self, t)) + return ([[Hits the target doing %d%% damage; if the attack hits, the target is pinned to the ground for %d turns. The chance to pin improves with Physical Power.]]):tformat(100 * self:combatTalentWeaponDamage(t, 0.8, 1.4), t.getDuration(self, t)) end, } @@ -877,7 +877,7 @@ newTalent{ end, info = function(self, t) local duration = t.getDuration(self, t) - return ([[You project thick black ink, blinding targets in a radius %d cone for %d turns. The chance to blind improves with Physical Power.]]):format(t.radius(self, t), duration) + return ([[You project thick black ink, blinding targets in a radius %d cone for %d turns. The chance to blind improves with Physical Power.]]):tformat(t.radius(self, t), duration) end, } @@ -906,7 +906,7 @@ newTalent{ info = function(self, t) return ([[Spit poison at your target, doing %0.2f poison damage over six turns. The damage will increase with your Strength or Dexterity (whichever is higher).]]): - format(damDesc(self, DamageType.POISON, t.getDamage(self,t))) + tformat(damDesc(self, DamageType.POISON, t.getDamage(self,t))) end, } @@ -933,7 +933,7 @@ newTalent{ info = function(self, t) return ([[Strike your target with poison, doing %0.2f poison damage over six turns. The damage will increase with your mindpower.]]): - format(damDesc(self, DamageType.POISON, t.getDamage(self,t))) + tformat(damDesc(self, DamageType.POISON, t.getDamage(self,t))) end, } @@ -960,7 +960,7 @@ newTalent{ end, info = function(self, t) return ([[Spit blight at your target doing %0.2f blight damage. - The damage will increase with your Magic.]]):format(t.getDamage(self,t)) + The damage will increase with your Magic.]]):tformat(t.getDamage(self,t)) end, } @@ -1038,7 +1038,7 @@ newTalent{ info = function(self, t) return ([[Throws a pack of bones at your target doing %0.2f physical damage as bleeding within radius %d. The damage will increase with the Strength stat]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), self:getTalentRadius(t)) end, } @@ -1074,7 +1074,7 @@ newTalent{ x=self.x, y=self.y, desc = function(self) - return ("Pins non spiderkin for %d turns. Decays over time."):format(self.pin_dur) + return ("Pins non spiderkin for %d turns. Decays over time."):tformat(self.pin_dur) end, canTrigger = function(self, x, y, who) if who.type == "spiderkin" then return false end @@ -1111,7 +1111,7 @@ newTalent{ info = function(self, t) local dur = t.getDuration(self, t) return ([[Lay a concealed web (%d detect 'power', %d disarm 'power') under yourself that lasts %d turns and pins all non-spiderkin that pass through it for %d turns. The web weakens over time.]]): - format(t.getDetect(self, t), t.getDisarm(self, t), dur*5, dur) + tformat(t.getDetect(self, t), t.getDisarm(self, t), dur*5, dur) end, } @@ -1146,7 +1146,7 @@ newTalent{ end, info = function(self, t) return ([[Weave darkness (power %d) in a radius of %d, blocking all light but the most powerful and teleporting you a short range.]]): - format(t.darkPower(self, t), self:getTalentRadius(t)) + tformat(t.darkPower(self, t), self:getTalentRadius(t)) end, } @@ -1178,7 +1178,7 @@ newTalent{ end, info = function(self, t) return ([[Throw a huge boulder, dealing %0.2f physical damage and knocking targets back %d tiles within radius %d. - The damage will increase with your Strength.]]):format(damDesc(self, DamageType.PHYSICAL, t.getDam(self, t)), t.getDist(self, t), self:getTalentRadius(t)) + The damage will increase with your Strength.]]):tformat(damDesc(self, DamageType.PHYSICAL, t.getDam(self, t)), t.getDist(self, t), self:getTalentRadius(t)) end, } @@ -1214,7 +1214,7 @@ newTalent{ end, info = function(self, t) return ([[Howl (radius %d) to call your hunting pack.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -1250,7 +1250,7 @@ newTalent{ end, info = function(self, t) return ([[Shriek (radius %d) to call your allies.]]): - format(self:getTalentRadius(t)) + tformat(self:getTalentRadius(t)) end, } @@ -1291,7 +1291,7 @@ newTalent{ end, info = function(self, t) return ([[Hits the target with a mighty blow to the legs doing %d%% weapon damage. If the attack hits, the target is unable to move for %d turns.]]): - format(100 * self:combatTalentWeaponDamage(t, 1, 1.4), t.getDuration(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.4), t.getDuration(self, t)) end, } @@ -1316,7 +1316,7 @@ newTalent{ end, info = function(self, t) return ([[Sends a telepathic attack, silencing the target for %d turns. The chance to silence improves with Mindpower.]]): - format(t.getDuration(self, t)) + tformat(t.getDuration(self, t)) end, } @@ -1344,7 +1344,7 @@ newTalent{ end, info = function(self, t) return ([[Sends a telekinetic attack, knocking back the target up to 3 grids and doing %0.2f physical damage. - The damage will increase with Mindpower.]]):format(self:damDesc(engine.DamageType.PHYSICAL, t.getDamage(self, t))) + The damage will increase with Mindpower.]]):tformat(self:damDesc(engine.DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -1385,7 +1385,7 @@ newTalent{ info = function(self, t) return ([[Corrupted vapour rises at the target location (radius 4) doing %0.2f blight damage every turn for %d turns. The damage increases with Spellpower.]]): - format(damDesc(self, engine.DamageType.BLIGHT, self:combatTalentSpellDamage(t, 5, 65)), t.getDuration(self, t)) + tformat(damDesc(self, engine.DamageType.BLIGHT, self:combatTalentSpellDamage(t, 5, 65)), t.getDuration(self, t)) end, } @@ -1467,7 +1467,7 @@ newTalent{ end, info = function(self, t) return ([[Causes the user to explode (killing it) in a blinding flash for %0.2f light damage.]]): - format(damDesc(self, DamageType.LIGHT, t.getDamage(self, t))) + tformat(damDesc(self, DamageType.LIGHT, t.getDamage(self, t))) end, } @@ -1492,7 +1492,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Explode against one target for %0.2f cold damage.]]):format(damDesc(self, DamageType.COLD, self.will_o_wisp_dam or 1)) + return ([[Explode against one target for %0.2f cold damage.]]):tformat(damDesc(self, DamageType.COLD, self.will_o_wisp_dam or 1)) end, } @@ -1531,7 +1531,7 @@ newTalent{ end, info = function(self, t) return ([[Fire a slow bolt of a random element for %d damage. Damage increases with the magic stat.]]): - format(t.getDamage(self, t)) + tformat(t.getDamage(self, t)) end, } @@ -1613,7 +1613,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Summons a small raging volcano for %d turns. Every turn, it will fire a molten boulder towards up to %d of your foes, dealing %0.2f fire and %0.2f physical damage. The damage will scale with your Spellpower.]]): - format(t.getDuration(self, t), t.nbProj(self, t), damDesc(self, DamageType.FIRE, dam/2), damDesc(self, DamageType.PHYSICAL, dam/2)) + tformat(t.getDuration(self, t), t.nbProj(self, t), damDesc(self, DamageType.FIRE, dam/2), damDesc(self, DamageType.PHYSICAL, dam/2)) end, } @@ -1651,7 +1651,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Saps 30%% of the target's speed (increasing yours by the same amount) and inflicts %0.2f temporal damage for three turns. - ]]):format(damDesc(self, DamageType.TEMPORAL, damage)) + ]]):tformat(damDesc(self, DamageType.TEMPORAL, damage)) end, } @@ -1704,7 +1704,7 @@ newTalent{ local power = t.getPower(self,t) * 100 return ([[Sends Dredges in a radius of %d into a frenzy for %d turns. The frenzy will increase global speed by %d%%, physical crit chance by %d%%, and prevent death until -%d%% life.]]): - format(range, t.getDuration(self, t), power, power, power) + tformat(range, t.getDuration(self, t), power, power, power) end, } @@ -1734,7 +1734,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Start to sever the lifeline of the target. After 4 turns, if the target is still in line of sight of you, its existance will be ended (%d temporal damage).]]):format(damDesc(self, "TEMPORAL", t.getDamage(self, t))) + return ([[Start to sever the lifeline of the target. After 4 turns, if the target is still in line of sight of you, its existance will be ended (%d temporal damage).]]):tformat(damDesc(self, "TEMPORAL", t.getDamage(self, t))) end, } @@ -1844,7 +1844,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Conjures up a fist of stone, doing %0.2f physical damage and knocking the target back 3 grids. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.PHYSICAL, damage)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, damage)) end, } @@ -1888,7 +1888,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Corrosive fumes rise from the ground doing %0.2f acid damage in a radius of 3 each turn for %d turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ACID, damage), duration) + tformat(damDesc(self, DamageType.ACID, damage), duration) end, } @@ -1910,7 +1910,7 @@ newTalent{ local restoration = t.getManaRestoration(self, t) return ([[Engulf yourself in a surge of mana, quickly restoring %d mana every turn for 10 turns. The mana restored will increase with your Spellpower.]]): - format(restoration) + tformat(restoration) end, } newTalent{ @@ -1954,7 +1954,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Exhale a wave of dark fire with radius %d. Any non demon caught in the area will take %0.2f fire damage, and flames will be left dealing a further %0.2f each turn. Demons will be healed for the same amount. The damage will increase with your Strength Stat.]]): - format(radius, damDesc(self, DamageType.FIRE, t.getDamage(self, t)), damDesc(self, DamageType.FIRE, t.getBurnDamage(self, t))) + tformat(radius, damDesc(self, DamageType.FIRE, t.getDamage(self, t)), damDesc(self, DamageType.FIRE, t.getBurnDamage(self, t))) end, } @@ -1985,7 +1985,7 @@ newTalent{ local icedamageinc = t.getIceDamageIncrease(self, t) return ([[Engulfs your hands (and weapons) in a sheath of frost, dealing %0.2f cold damage per melee attack and increasing all cold damage by %d%%. The effects will increase with your Spellpower.]]): - format(damDesc(self, DamageType.COLD, icedamage), icedamageinc, self:getTalentLevel(t) / 3) + tformat(damDesc(self, DamageType.COLD, icedamage), icedamageinc, self:getTalentLevel(t) / 3) end, } @@ -2073,7 +2073,7 @@ newTalent{ return ([[Use arcane forces to summon %d meteors that fall to the ground within range 2 of the target. Each meteor smashes everything within radius 2, dealing %0.2f fire and %0.2f physical damage to creatures other than yourself, while liquefying some of the terrain into lava for 8 turns. The damage increases with your Spellpower.]]): - format(t.getNb(self, t), damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.PHYSICAL, dam)) + tformat(t.getNb(self, t), damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.PHYSICAL, dam)) end, } @@ -2101,7 +2101,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[Imbues your body with natural energies, healing for %d life. The life healed will increase with your Mindpower.]]): - format(heal) + tformat(heal) end, } @@ -2136,7 +2136,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Calls forth a powerful beam of lightning doing %0.2f to %0.2f lightning damage (%0.2f average). The damage will increase with your Mindpower.]]): - format(damDesc(self, DamageType.LIGHTNING, damage / 3), + tformat(damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) end, @@ -2217,7 +2217,7 @@ newTalent{ end, info = function(self, t) local multiplier = self:combatTalentWeaponDamage(t, 1.1, 1.9) - return ([[With blinding speed you suddenly appear next to a target up to %d spaces away and attack for %d%% damage.]]):format(self:getTalentRange(t), multiplier) + return ([[With blinding speed you suddenly appear next to a target up to %d spaces away and attack for %d%% damage.]]):tformat(self:getTalentRange(t), multiplier) end, } @@ -2279,7 +2279,7 @@ newTalent{ return ([[Grab a target and pull it next to you, covering it with frost while reducing its movement speed by 50%% for %d turns. The ice will also deal %0.2f cold damage. The damage and chance to slow will increase with your Spellpower.]]): - format(t.getDuration(self, t), damDesc(self, DamageType.COLD, self:combatTalentSpellDamage(t, 5, 140))) + tformat(t.getDuration(self, t), damDesc(self, DamageType.COLD, self:combatTalentSpellDamage(t, 5, 140))) end, } @@ -2334,7 +2334,7 @@ newTalent{ return ([[A punch to the body that deals %d%% damage, drains %d of the target's stamina per combo point, and dazes the target for %d to %d turns, depending on the amount of combo points you've accumulated. The daze chance will increase with your Physical Power. Using this talent removes your combo points.]]) - :format(damage, drain, daze, dazemax) + :tformat(damage, drain, daze, dazemax) end, } @@ -2350,7 +2350,7 @@ newTalent{ local chance = t.getChance(self, t) return ([[When gaining a combo point, you have a %d%% chance to gain an extra combo point. Additionally, your combo points will last %d turns longer before expiring. The chance of building a second combo point will improve with your Cunning.]]): - format(chance, duration) + tformat(chance, duration) end, } @@ -2366,7 +2366,7 @@ newTalent{ local saves = t.getMental(self, t) return ([[Superior cunning and training allows you to outthink and outwit your opponents' physical and mental assaults. Increases Defense by %d and Mental Save by %d. The Defense bonus will scale with your Dexterity, and the save bonus with your Cunning.]]): - format(defense, saves) + tformat(defense, saves) end, } @@ -2424,7 +2424,7 @@ newTalent{ local maim = t.getMaim(self, t) return ([[Grapples the target and inflicts %0.2f physical damage. If the target is already grappled, the target will be maimed as well, reducing damage by %d and global speed by 30%% for %d turns. The grapple effects will be based off your grapple talent, if you have it, and the damage will scale with your Physical Power.]]) - :format(damDesc(self, DamageType.PHYSICAL, (damage)), maim, duration) + :tformat(damDesc(self, DamageType.PHYSICAL, (damage)), maim, duration) end, } @@ -2439,7 +2439,7 @@ newTalent{ end, info = function(self, t) return ([[Each time one of your foes bites the dust, you feel a surge of power, increasing your strength by 2 (stacking up to a maximum of %d) for %d turns.]]): - format(math.floor(self:getTalentLevel(t) * 6), t.getDuration(self, t)) + tformat(math.floor(self:getTalentLevel(t) * 6), t.getDuration(self, t)) end, } @@ -2472,7 +2472,7 @@ newTalent{ info = function(self, t) local returndamage = t.getReturnDamage(self, t) return ([[Designate a target as a martyr for 10 turns. When the martyr deals damage, it also damages itself for %d%% of the damage dealt.]]): - format(returndamage) + tformat(returndamage) end, } @@ -2521,7 +2521,7 @@ newTalent{ info = function(self, t) return ([[Hits the target with your weapon doing %d%% damage and two shield strikes doing %d%% damage each, trying to overpower your target. If the last attack hits, the target is knocked back 4 grids. The chance for knockback increases with your Accuracy.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3), 100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE))) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3), 100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE))) end, } @@ -2545,7 +2545,7 @@ newTalent{ local dur = t.getDuration(self, t) return ([[Encase your body in a sheath of thought-quick forces, allowing you to control your body's movements directly without the inefficiency of dealing with crude mechanisms like nerves and muscles. Increases Accuracy by %d and critical strike chance by %0.1f%% for %d turns.]]): - format(boost, 0.5*boost, dur) + tformat(boost, 0.5*boost, dur) end, } @@ -2621,7 +2621,7 @@ newTalent{ local dam = damDesc(self, DamageType.PHYSICAL, t.getDam(self, t)) return ([[You expend massive amounts of energy to launch yourself across %d squares at incredible speed. All enemies in your path will be knocked flying and dealt between %d and %d Physical damage. At talent level 5, you can batter through solid walls.]]): - format(range, 2*dam/3, dam) + tformat(range, 2*dam/3, dam) end, } @@ -2683,7 +2683,7 @@ newTalent{ Upon landing, your target takes %0.1f Physical damage and is stunned for 4 turns. All other creatures within radius 2 of the landing point take %0.1f Physical damage and are knocked away from you. This talent ignores %d%% of the knockback resistance of the thrown target, which takes half damage if it resists being thrown. The damage improves with your Mindpower and the range increases with both Mindpower and Strength.]]): - format(range, dam, dam/2, t.getKBResistPen(self, t)) + tformat(range, dam, dam/2, t.getKBResistPen(self, t)) end, } @@ -2729,7 +2729,7 @@ newTalent{ Doing so requires no turn but you are considered disarmed for 2 turns. Reloading does not break stealth.]]) - :format(self:reloadRate()) + :tformat(self:reloadRate()) end, } @@ -2794,7 +2794,7 @@ newTalent{ info = function(self, t) return ([[Attack your foes in a frontal arc, doing %d%% weapon damage and making your targets bleed for %d each turn for %d turns. The bleed damage increases with your main hand weapon damage and Dexterity.]]): - format(100 * self:combatTalentWeaponDamage(t, 1, 1.7), damDesc(self, DamageType.PHYSICAL, t.cutPower(self, t)), t.cutdur(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.7), damDesc(self, DamageType.PHYSICAL, t.cutPower(self, t)), t.cutdur(self, t)) end, } @@ -2838,7 +2838,7 @@ newTalent{ info = function(self, t) return ([[Reduces the duration of all poisons on the target by 50%%, but increases their damage by %d%%. The effect increases with your Cunning.]]): - format(100 + self:combatTalentStatDamage(t, "cun", 40, 250)) + tformat(100 + self:combatTalentStatDamage(t, "cun", 40, 250)) end, } @@ -2863,7 +2863,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[For %d turns, you put all your will into your blows, adding %d physical power to each strike. The effect will improve with your Cunning and Willpower stats.]]): - format(duration, damage) + tformat(duration, damage) end, } @@ -2904,7 +2904,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[You hit your target, doing %d%% damage. If your attack hits, you gain %d armor penetration (APR) for %d turns. The APR will increase with your Cunning.]]): - format(100 * damage, apr, duration) + tformat(100 * damage, apr, duration) end, } @@ -2936,7 +2936,7 @@ newTalent{ return ([[Throws a vial of sticky smoke that explodes in radius %d on your foes, reducing their vision range by %d for 5 turns. Creatures affected by smoke bomb can never prevent you from stealthing, even if their proximity would normally forbid it. Use of this will not break stealth.]]): - format(self:getTalentRadius(t), t.getSightLoss(self,t)) + tformat(self:getTalentRadius(t), t.getSightLoss(self,t)) end, } @@ -2986,7 +2986,7 @@ newTalent{ return ([[Using a series of tricks and maneuvers, you switch places with your target. Switching places will confuse your foes, granting you Evasion (50%%) for %d turns. While switching places, your weapon(s) will connect with the target; this will not do weapon damage, but on hit effects of the weapons can trigger.]]): - format(duration) + tformat(duration) end, } @@ -3026,7 +3026,7 @@ newTalent{ local speedpen = t.getSpeedPenalty(self, t) return ([[You hit your target, doing %d%% damage. If your attack connects, the target is crippled for %d turns, losing %d%% melee, spellcasting and mind speed. The chance to land the status improves with Accuracy, and the status power improves with Cunning.]]): - format(100 * damage, duration, speedpen) + tformat(100 * damage, duration, speedpen) end, } @@ -3132,7 +3132,7 @@ newTalent{ You always succeed if you are not directly observed. This resets the cooldown of your Stealth talent, and, if successful, all creatures currently following you will lose track of your position. You estimate your current chance to hide as %0.1f%%.]]): - format(t.stealthMult(self, t), t.getChance(self, t, true), t.getChance(self, t, false, true)) + tformat(t.stealthMult(self, t), t.getChance(self, t, true), t.getChance(self, t, false, true)) end, } @@ -3161,7 +3161,7 @@ newTalent{ Success is more likely against fewer opponents and is determined by comparing %0.2f times your stealth power (currently %d) to the stealth detection (reduced by 10%% per tile distance) of all enemies that have a clear line of sight to you. Your base chance of success is 100%% if you are not directly observed, and good or bad luck may also affect it. You estimate your current chance to maintain stealth as %0.1f%%.]]): - format(t.stealthMult(self, t), t.getChance(self, t, true), t.getChance(self, t, false, true)) + tformat(t.stealthMult(self, t), t.getChance(self, t, true), t.getChance(self, t, false, true)) end, } @@ -3199,7 +3199,7 @@ newTalent{ local damage = t.getDamage(self, t) local dist = t.getDist(self, t) return ([[You hit your target, doing %d%% damage, distracting it while you jump back %d squares away.]]): - format(100 * damage, dist) + tformat(100 * damage, dist) end, } @@ -3217,7 +3217,7 @@ newTalent{ getHardiness = function(self, t) return self:combatTalentLimit(t, 100, 6, 30) end, -- Limit < 100% info = function(self, t) return ([[Whilst wearing leather or lighter armour, you gain %d%% Defense and %d%% Armour hardiness.]]): - format(t.getDef(self, t) * 100, t.getHardiness(self, t)) + tformat(t.getDef(self, t) * 100, t.getHardiness(self, t)) end, } @@ -3234,7 +3234,7 @@ newTalent{ info = function(self, t) return ([[You are light on your feet, handling your armour better. Each step you take regenerates %0.2f stamina, and your fatigue is permanently reduced by %0.1f%%. At level 3 you are able to walk so lightly that you never trigger traps that require pressure.]]): - format(self:getTalentLevelRaw(t) * 0.2, t.getFatigue(self, t)) + tformat(self:getTalentLevelRaw(t) * 0.2, t.getFatigue(self, t)) end, } @@ -3255,7 +3255,7 @@ newTalent{ end, info = function(self, t) return ([[You literally dance around your foes, increasing your movement speed by %d%% and reducing the cooldown of Hack'n'Back, Rush, Disengage and Evasion by %d turns.]]): - format(t.incspeed(self, t)*100,t.CDreduce(self, t)) + tformat(t.incspeed(self, t)*100,t.CDreduce(self, t)) end, } @@ -3276,7 +3276,7 @@ newTalent{ -- end, info = function(self, t) return ([[Your cunning manipulations allow you to use charms (wands, totems and torques) more efficiently, reducing their cooldowns by %d%%.]]): - format(t.cdReduc(self:getTalentLevel(t))) + tformat(t.cdReduc(self:getTalentLevel(t))) end, } @@ -3292,7 +3292,7 @@ newTalent{ return ([[You look at your surroundings with more intensity than most people, allowing you to see stealthed or invisible creatures. Increases stealth detection by %d and invisibility detection by %d. The detection power increases with your Cunning.]]): - format(t.seePower(self,t), t.seePower(self,t)) + tformat(t.seePower(self,t), t.seePower(self,t)) end, } @@ -3326,7 +3326,7 @@ newTalent{ end, info = function(self, t) return ([[You have learned to hit the right spot, increasing your armor penetration by %d when dual wielding. - The Armour penetration bonus will increase with your Dexterity.]]):format(t.getApr(self, t)) + The Armour penetration bonus will increase with your Dexterity.]]):tformat(t.getApr(self, t)) end, } @@ -3360,7 +3360,7 @@ newTalent{ return true end, info = function(self, t) - return ([[When dual wielding, increases attack speed by %d%%, but drains stamina quickly (-6 stamina/turn).]]):format(t.getSpeed(self, t)*100) + return ([[When dual wielding, increases attack speed by %d%%, but drains stamina quickly (-6 stamina/turn).]]):tformat(t.getSpeed(self, t)*100) end, } @@ -3416,7 +3416,7 @@ newTalent{ local damagetwo = t.getDamageTwo(self, t) return ([[When you avoid a melee blow while unarmed, you have a %d%% chance to throw the target to the ground. If the throw lands, the target will take %0.2f damage and be dazed for 2 turns, or %0.2f damage and be stunned for 2 turns if the target is grappled. You may attempt up to %0.1f throws per turn. The chance of throwing increases with your Accuracy, the damage scales with your Physical Power, and the number of attempts with your Strength and Dexterity.]]): - format(t.getchance(self,t), damDesc(self, DamageType.PHYSICAL, (damage)), damDesc(self, DamageType.PHYSICAL, (damagetwo)), t.getThrows(self, t)) + tformat(t.getchance(self,t), damDesc(self, DamageType.PHYSICAL, (damage)), damDesc(self, DamageType.PHYSICAL, (damagetwo)), t.getThrows(self, t)) end, } @@ -3452,7 +3452,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Attack your foes in a frontal arc with a roundhouse kick, which deals %0.2f physical damage and knocks your foes back 4 grids. This will break any grapples you're maintaining The damage improves with your Physical Power.]]): - format(damDesc(self, DamageType.PHYSICAL, (damage))) + tformat(damDesc(self, DamageType.PHYSICAL, (damage))) end, } @@ -3478,7 +3478,7 @@ newTalent{ end, info = function(self, t) return ([[Fire bone spears in all directions, hitting all foes within radius %d for %0.2f physical damage, and inflicting bleeding for another %0.2f damage over 5 turns. - The damage will increase with your Spellpower.]]):format(self:getTalentRadius(t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)/2)) + The damage will increase with your Spellpower.]]):tformat(self:getTalentRadius(t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)/2)) end, } @@ -3524,7 +3524,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[You reach out with shadowy vines toward your target, pulling it to you and silencing it for %d turns and dazing it for 2 turns. The chance to hit improves with your Accuracy.]]): - format(duration) + tformat(duration) end, } @@ -3552,7 +3552,7 @@ newTalent{ end local m = self:cloneActor({name = "Shadow of "..self.name, - desc = ([[A dark shadowy form in the shape of %s.]]):format(self.name), + desc = ([[A dark shadowy form in the shape of %s.]]):tformat(self.name), summoner=self, summoner_gain_exp=true, exp_worth=0, summon_time=t.getDuration(self, t), ai_target={actor=nil}, ai="summoned", ai_real="tactical", @@ -3614,7 +3614,7 @@ newTalent{ Your shadow is permanently stealthed (%d power), and all melee damage it deals is converted to darkness damage. The shadow cannot teleport. If you release control early or if it leaves your sight for too long, your shadow will dissipate.]]): - format(t.getDuration(self, t), t.getHealth(self, t) * 100, t.getDam(self, t) * 100, t.getStealthPower(self, t)) + tformat(t.getDuration(self, t), t.getHealth(self, t) * 100, t.getDam(self, t) * 100, t.getStealthPower(self, t)) end, } @@ -3649,7 +3649,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[For an instant, your weapons turn into a shadow leash that tries to grab the target's weapon, disarming it for %d turns. The chance to hit improves with your Accuracy.]]): - format(duration) + tformat(duration) end, } @@ -3665,7 +3665,7 @@ newTalent{ info = function(self, t) local chance = t.getChance(self, t) local duration = t.getDuration(self, t) - return ([[Each turn, those caught in your gloom must save against your Mindpower or have an %0.1f%% chance of becoming dismayed for %d turns. When dismayed, the first melee attack against the foe will result in a critical hit.]]):format(chance, duration, mindpowerChange) + return ([[Each turn, those caught in your gloom must save against your Mindpower or have an %0.1f%% chance of becoming dismayed for %d turns. When dismayed, the first melee attack against the foe will result in a critical hit.]]):tformat(chance, duration, mindpowerChange) end, } @@ -3704,7 +3704,7 @@ newTalent{ local duration = t.getDur(self, t) return ([[You are linked to your shadows for %d turns, diverting %d%% of all damage you take to a random shadow. Effect increases with Mindpower.]]): - format(duration, power) + tformat(duration, power) end, } @@ -3748,6 +3748,6 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Creates a circle of radius %d at your feet; the circle lights up affected tiles, increases your positive energy by %d each turn and deals %0.2f light damage and %0.2f fire damage per turn to everyone else within its radius. The circle lasts %d turns. The damage will increase with your Spellpower.]]): - format(radius, 1 + (damage / 4), (damDesc (self, DamageType.LIGHT, damage)), (damDesc (self, DamageType.FIRE, damage)), duration) + tformat(radius, 1 + (damage / 4), (damDesc (self, DamageType.LIGHT, damage)), (damDesc (self, DamageType.FIRE, damage)), duration) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/misc/objects.lua b/game/modules/tome/data/talents/misc/objects.lua index 949aa7007bff7fce0e4c0a5271698f671acfa2fe..3c0826d5f9467076fae43bc660e4c98824abe710 100644 --- a/game/modules/tome/data/talents/misc/objects.lua +++ b/game/modules/tome/data/talents/misc/objects.lua @@ -17,12 +17,12 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org -newTalentType{ no_silence=true, is_spell=true, type="sher'tul/fortress", name = "fortress", description = "Yiilkgur abilities." } -newTalentType{ no_silence=true, is_spell=true, type="spell/objects", name = "object spells", description = "Spell abilities of the various objects of the world." } -newTalentType{ no_silence=true, type="other/objects", name = "object powers", description = "Abilities of the various objects of the world." } -newTalentType{ type="technique/objects", name = "object techniques", description = "Techniques of the various objects of the world." } -newTalentType{ type="wild-gift/objects", name = "object techniques", description = "Wild gifts of the various objects of the world." } -newTalentType{ type="misc/objects", name = "object techniques", description = "Powers of the various objects of the world." } +newTalentType{ no_silence=true, is_spell=true, type="sher'tul/fortress", name = _t"fortress", description = _t"Yiilkgur abilities." } +newTalentType{ no_silence=true, is_spell=true, type="spell/objects", name = _t"object spells", description = _t"Spell abilities of the various objects of the world." } +newTalentType{ no_silence=true, type="other/objects", name = _t"object powers", description = _t"Abilities of the various objects of the world." } +newTalentType{ type="technique/objects", name = _t"object techniques", description = _t"Techniques of the various objects of the world." } +newTalentType{ type="wild-gift/objects", name = _t"object techniques", description = _t"Wild gifts of the various objects of the world." } +newTalentType{ type="misc/objects", name = _t"object techniques", description = _t"Powers of the various objects of the world." } --local oldTalent = newTalent --local newTalent = function(t) if type(t.hide) == "nil" then t.hide = true end return oldTalent(t) end @@ -102,7 +102,7 @@ newTalent{ info = function(self, t) local count = t.getRemoveCount(self, t) return ([[Removes up to %d detrimental magical effects and empowers you with arcane energy for ten turns, increasing spellpower and spell save by 5 plus 5 per effect removed.]]): - format(count) + tformat(count) end, } @@ -114,7 +114,7 @@ newTalent{ no_unlearn_last = true, no_npc_use = true, message = function(self, t) - return ("@Source@ refocuses the energies of %s mindstar."):format(self:his_her()) + return ("@Source@ refocuses the energies of %s mindstar."):tformat(self:his_her()) end, action = function(self, t) local apply = function(o) @@ -146,7 +146,7 @@ newTalent{ no_unlearn_last = true, on_unlearn = function(self, t) self.ai_state._pref_staff_element = nil end, message = function(self, t) - return ("@Source@ refocuses the energies of %s staff."):format(self:his_her()) + return ("@Source@ refocuses the energies of %s staff."):tformat(self:his_her()) end, tactical = {BUFF = function(self, t, aitarget) if self.ai_state._pref_staff_element == false then return end @@ -228,7 +228,7 @@ newTalent{ end end return ([[Bring a damage-type-specific ward into being. The ward will fully negate as many attacks of its element as it has charges. - You can activate the following wards: %s]]):format(#xs>0 and xs or "None") + You can activate the following wards: %s]]):tformat(#xs>0 and xs or "None") end, } @@ -325,7 +325,7 @@ newTalent{ local ref_text = "" local br_text = "" if properties.sp then - sp_text = (" Increases your spell save by %d for that turn."):format(t.getBlockValue(self, t)) + sp_text = (" Increases your spell save by %d for that turn."):tformat(t.getBlockValue(self, t)) end if properties.ref then ref_text = " Reflects all blocked damage back to the source." @@ -340,7 +340,7 @@ newTalent{ If the shield has damage resistance to the blocked damage type the block value is increased by 50%%. Current Bonuses: %s%s%s%s]]): - format(t.getBlockValue(self, t), bt_string, sp_text, ref_text, br_text) + tformat(t.getBlockValue(self, t), bt_string, sp_text, ref_text, br_text) end, } @@ -359,7 +359,7 @@ newTalent{ end, info = function(self, t) return ([[Call upon the power of nature to regenerate your body for %d life every turn for 6 turns. - The life healed will increase with the Willpower stat.]]):format(7 + self:getWil() * 0.5) + The life healed will increase with the Willpower stat.]]):tformat(7 + self:getWil() * 0.5) end, } @@ -431,7 +431,7 @@ newTalent{ return true end, info = function(self, t) - return ([[The target has a %d%% chance (stacking to a maximum of %d%%) to fail to cast any spell. At level 2 magical effects may be disrupted, at level 3 magical sustains may be disrupted, and at level 5 magical constructs and undead may be stunned.]]):format(t.getpower(self, t),t.maxpower(self,t)) + return ([[The target has a %d%% chance (stacking to a maximum of %d%%) to fail to cast any spell. At level 2 magical effects may be disrupted, at level 3 magical sustains may be disrupted, and at level 5 magical constructs and undead may be stunned.]]):tformat(t.getpower(self, t),t.maxpower(self,t)) end, } @@ -540,7 +540,7 @@ newTalent{ info = function(self, t) local best = t.findBest(self, t) or {digspeed=100} return ([[Dig/cut a tree/... - Digging takes %d turns (based on your currently best digger available).]]):format(best.digspeed) + Digging takes %d turns (based on your currently best digger available).]]):tformat(best.digspeed) end, } @@ -570,7 +570,7 @@ newTalent{ return ([[You absorb latent cold around you, turning into an ice elemental - a shivgoroth - for %d turns. While transformed, you do not need to breathe, gain access to the Ice Storm talent at level %d, gain %d%% resistance to cuts and stuns, gain %d%% cold resistance, and all cold damage heals you for %d%% of the damage done. The power will increase with your Spellpower.]]): - format(dur, self:getTalentLevelRaw(t), power * 100, power * 100 / 2, 50 + power * 100) + tformat(dur, self:getTalentLevelRaw(t), power * 100, power * 100 / 2, 50 + power * 100) end, } @@ -670,7 +670,7 @@ newTalent{ end, info = function(self, t) return ([[Raise your dagger into blocking position for one turn, reducing the damage of all physical melee attacks against you by %d. If you block all of an attack's damage, the attacker will be vulnerable to a deadly counterstrike (a normal attack will instead deal 200%% damage) for one turn and be left disarmed for 3 turns. - The blocking value will increase with your Dexterity and Cunning.]]):format(t.getPower(self, t)) + The blocking value will increase with your Dexterity and Cunning.]]):tformat(t.getPower(self, t)) end, } @@ -720,7 +720,7 @@ newTalent{ return true end, info = function(self, t) - return ([[For the next 8 turns, powerful blasts of psionic energies will erupt from you, doing %d damage.]]):format(t.getDamage(self, t)) + return ([[For the next 8 turns, powerful blasts of psionic energies will erupt from you, doing %d damage.]]):tformat(t.getDamage(self, t)) end, } diff --git a/game/modules/tome/data/talents/misc/races.lua b/game/modules/tome/data/talents/misc/races.lua index cbd5e99cd05e5f6c7218bfb4c13eaf2ad38902c1..f4055a245538b4ec3cb6d9935cc201e9ab821a8b 100644 --- a/game/modules/tome/data/talents/misc/races.lua +++ b/game/modules/tome/data/talents/misc/races.lua @@ -34,7 +34,7 @@ racial_req4 = { ------------------------------------------------------------------ -- Highers' powers ------------------------------------------------------------------ -newTalentType{ type="race/higher", name = "higher", generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/higher", name = _t"higher", generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "HIGHER_HEAL", -- Backwards compatibility, two tier 1 racials were swapped @@ -53,7 +53,7 @@ newTalent{ info = function(self, t) return ([[Call upon the power of the Highborn, increasing all damage by %d%% and reducing all damage taken by %d%% for 5 turns. The bonus will increase with your Magic.]]): - format(t.getPower(self, t), t.getPower(self, t)) + tformat(t.getPower(self, t), t.getPower(self, t)) end, } @@ -82,7 +82,7 @@ newTalent{ Their nature grants them better senses than other humans. Increase blindness immunity by %d%%, maximum sight range by %d, and increases existing infravision, and heightened senses range by %d. At talent level 5, each time you hit a target you gain telepathy to all similar creatures in radius 15 for 5 turns.]]): - format(t.getImmune(self, t) * 100, t.getSight(self, t), t.getESight(self, t)) + tformat(t.getImmune(self, t) * 100, t.getSight(self, t), t.getESight(self, t)) end, } @@ -108,7 +108,7 @@ newTalent{ return ([[Highers were originally created during the Age of Allure by the human Conclave. They are imbued with magic at the very core of their being. Increase spell save by %d and arcane resistance by %d%%. Also, when you cast a spell dealing damage, you gain a 20%% bonus to the damage type for 5 turns. (This effect has a cooldown.)]]): - format(t.getSave(self, t), netpower) + tformat(t.getSave(self, t), netpower) end, } @@ -154,14 +154,14 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Activate some of your inner magic, using it to power your abilities. For the next %d turns all active talents will be used without resource cost. Your resources must still be high enough to initially power the talent and failure rates (etc.) still apply. - ]]):format(duration) + ]]):tformat(duration) end, } ------------------------------------------------------------------ -- Shaloren's powers ------------------------------------------------------------------ -newTalentType{ type="race/shalore", name = "shalore", generic = true, is_spell=true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/shalore", name = _t"shalore", generic = true, is_spell=true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "SHALOREN_SPEED", name = "Grace of the Eternals", @@ -179,7 +179,7 @@ newTalent{ info = function(self, t) return ([[Call upon the grace of the Eternals to increase your global speed by %d%% for 5 turns. The speed bonus will increase with your Dexterity or Magic (whichever is higher).]]): - format(t.getSpeed(self, t) * 100) + tformat(t.getSpeed(self, t) * 100) end, } @@ -198,7 +198,7 @@ newTalent{ info = function(self, t) return ([[Reality bends slightly in the presence of a Shaloren due to their inherent magical nature. Increases critical chance by %d%% and critical strike power by %d%%.]]): - format(t.critChance(self, t), t.critPower(self, t)) + tformat(t.critChance(self, t), t.critPower(self, t)) end, } @@ -231,7 +231,7 @@ newTalent{ info = function(self, t) return ([[As the only immortal race of Eyal, Shaloren have learnt over the long years to use their innate inner magic to protect themselves. %d%% chance to become invisible (power %d) for 5 turns when hit by a blow doing at least 10%% of your total life.]]): - format(t.getChance(self, t), t.getInvis(self, t)) + tformat(t.getChance(self, t), t.getInvis(self, t)) end, } @@ -299,14 +299,14 @@ newTalent{ info = function(self, t) return ([[The world grows old as you stand through the ages. To you, time is different. Reduces the time remaining on detrimental effects by %d, most cooling down talents by %d, and increases the time remaining on beneficial effects by %d (up to 2 times the current duration).]]): - format(t.getEffectBad(self, t), t.getEffectGood(self, t), t.getEffectGood(self, t)) + tformat(t.getEffectBad(self, t), t.getEffectGood(self, t), t.getEffectGood(self, t)) end, } ------------------------------------------------------------------ -- Thaloren's powers ------------------------------------------------------------------ -newTalentType{ type="race/thalore", name = "thalore", generic = true, is_nature=true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/thalore", name = _t"thalore", generic = true, is_nature=true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "THALOREN_WRATH", -- Backwards compatibility.. name = "Gift of the Woods", @@ -326,7 +326,7 @@ newTalent{ end, info = function(self, t) return ([[Call upon nature to regenerate your body for %d life every turn and increase healing mod by %d%% for 8 turns. - The life healed will increase with your Willpower or Constitution (whichever is higher).]]):format(t.getHealing(self, t), t.getHealMod(self, t)) + The life healed will increase with your Willpower or Constitution (whichever is higher).]]):tformat(t.getHealing(self, t), t.getHealMod(self, t)) end, } @@ -347,7 +347,7 @@ newTalent{ info = function(self, t) return ([[Thaloren have an affinity for natural elements, allowing them to heal for a portion of damage taken from them. You gain %d%% Nature and Acid damage affinity.]]): - format(t.getAffinity(self, t)) + tformat(t.getAffinity(self, t)) end, } @@ -368,7 +368,7 @@ newTalent{ info = function(self, t) return ([[Thaloren are part of the wood; it shields them from corruption. Increase disease immunity by %d%%, blight resistance by %0.1f%%, and all resistances by %0.1f%%.]]): - format(t.getDiseaseImmune(self, t)*100, t.getBResist(self, t), t.getAllResist(self, t)) + tformat(t.getDiseaseImmune(self, t)*100, t.getBResist(self, t), t.getAllResist(self, t)) end, } @@ -451,14 +451,14 @@ newTalent{ Summons two elite Treants to your side for 8 turns. The treants have a global resistance equal to your blight resistance and can stun, knockback, and taunt foes. Your Willpower (%d) will be added to all of their non-Magic primary stats and their talent levels will increase with your Nature's Pride talent level. - Your increased damage, damage penetration, and many other stats will be inherited.]]):format(self:getWil()) + Your increased damage, damage penetration, and many other stats will be inherited.]]):tformat(self:getWil()) end, } ------------------------------------------------------------------ -- Dwarves' powers ------------------------------------------------------------------ -newTalentType{ type="race/dwarf", name = "dwarf", generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/dwarf", name = _t"dwarf", generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "DWARF_RESILIENCE", name = "Resilience of the Dwarves", @@ -484,7 +484,7 @@ newTalent{ local params = t.getParams(self, t) return ([[Call upon the legendary resilience of the Dwarven race to increase armour (+%d), armour hardiness (+%d%%), spell (+%d) and physical (+%d) saves for 8 turns. The bonuses will increase with your Constitution.]]): - format(params.armor, params.armor_hardiness, params.physical, params.spell) + tformat(params.armor, params.armor_hardiness, params.physical, params.spell) end, } @@ -502,7 +502,7 @@ newTalent{ return ([[Dwarf skin is a complex structure; it can automatically react to physical blows and harden itself. When you are hit in melee, you have a 15%% chance to increase your armour total by %d for 5 turns and fully ignore the attack triggering it. There is no cooldown to this effect; it can happen while already active.]]): - format(t.armor(self, t)) + tformat(t.armor(self, t)) end, } @@ -522,7 +522,7 @@ newTalent{ return ([[Money is the heart of the Dwarven Empire; it rules over all other considerations. Increases Physical, Mental and Spell Saves based on the amount of gold you possess. +1 save every %d gold, up to +%d. (currently +%d)]]): - format(t.getGold(self, t), t.getMaxSaves(self, t), t.getSaves(self, t)) + tformat(t.getGold(self, t), t.getMaxSaves(self, t), t.getSaves(self, t)) end, } @@ -560,14 +560,14 @@ newTalent{ return ([[While the origins of the dwarves remain clouded in mystery to the other races, it is obvious that they share strong ties to the stone. You can target any wall and immediately enter it, appearing on the other side. This can pass through up to %d tiles (increases with Constitution and talent level).]]): - format(range) + tformat(range) end, } ------------------------------------------------------------------ -- Halflings' powers ------------------------------------------------------------------ -newTalentType{ type="race/halfling", name = "halfling", generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/halfling", name = _t"halfling", generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "HALFLING_LUCK", name = "Luck of the Little Folk", @@ -591,7 +591,7 @@ newTalent{ local params = t.getParams(self, t) return ([[Call upon the luck and cunning of the Little Folk to increase your critical strike chance by %d%% and your saves by %d for 5 turns. The bonus will increase with your Cunning.]]): - format(params.crit, params.save) + tformat(params.crit, params.save) end, } @@ -615,7 +615,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Halfling's incredible luck always kicks in at just the right moment to save their skin. Whenever you take %d%% or more of your life from a single attack, you gain %d%% Evasion and %d additional defense for the next %d turns. The defense increases based on your luck and other defensive stats.]]): - format(threshold * 100, evasion, t.getDefense(self), duration) + tformat(threshold * 100, evasion, t.getDefense(self), duration) end, } @@ -628,7 +628,7 @@ newTalent{ info = function(self, t) return ([[Halflings have always been a very organised and methodical race; the more foes they face, the more organised they are. If two or more foes are in sight your Physical Power, Physical Save, Spellpower, Spell Save, Mental Save, and Mindpower are increased by %0.1f per foe (up to 5 foes).]]): - format(self:getTalentLevel(t) * 2) + tformat(self:getTalentLevel(t) * 2) end, } @@ -689,14 +689,14 @@ newTalent{ local duration = t.getDuration(self, t) local count = t.getRemoveCount(self, t) return ([[Halflings have one of the most powerful military forces in the known world and have been at war with most other races for thousands of years. - Removes %d stun, daze, or pin effects and grants immunity to stuns, dazes and pins for %d turns.]]):format(duration, count) + Removes %d stun, daze, or pin effects and grants immunity to stuns, dazes and pins for %d turns.]]):tformat(duration, count) end, } ------------------------------------------------------------------ -- Orcs' powers ------------------------------------------------------------------ -newTalentType{ type="race/orc", name = "orc", generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/orc", name = _t"orc", generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "ORC_FURY", name = "Orcish Fury", @@ -735,7 +735,7 @@ newTalent{ return ([[Summons your lust for blood and destruction; especially when the odds are against you. You increase your damage by 10%% + %0.1f%% per enemy you can see in line of sight of you (maximum 5 enemies, %0.1f%% bonus) for 3 turns. The damage bonus will increase with your Constitution.]]): - format(t.getPower(self, t), 10 + t.getPower(self, t) * 5) + tformat(t.getPower(self, t), 10 + t.getPower(self, t) * 5) end, } @@ -765,7 +765,7 @@ newTalent{ return ([[Orcs have been the prey of the other races for thousands of years, with or without justification. They have learnt to withstand things that would break weaker races. When your life goes below 50%% your sheer determination cleanses you of %d mental debuff(s) based on talent level and Willpower. This can only happen once every %d turns. Also increases physical save by +%d.]]): - format(t.getDebuff(self, t), t.getSaves(self, t), self:getTalentCooldown(t)) + tformat(t.getDebuff(self, t), t.getSaves(self, t), self:getTalentCooldown(t)) end, } @@ -789,7 +789,7 @@ newTalent{ You revel in the defeat of your foes, gaining %d%% damage resistance for 2 turns each time you kill an enemy. The resistance will scale with talent level and your Constitution. Additionally, passively increase all damage penetration by %d%%.]]): - format(t.getResist(self, t), t.getPen(self, t)) + tformat(t.getResist(self, t), t.getPen(self, t)) end, } @@ -848,7 +848,7 @@ newTalent{ return ([[Call upon the will of all of the Orc Prides to survive this battle. You remove up to %d detrimental effect(s) then heal for %d life. The healing will increase with talent level and your Willpower.]]): - format(t.remcount(self,t), t.heal(self, t)) + tformat(t.remcount(self,t), t.heal(self, t)) end, } @@ -856,7 +856,7 @@ newTalent{ -- Yeeks' powers ------------------------------------------------------------------ -- We check for max life on boss targets to avoid people using this to engage thus ensuring all their allies target them first -newTalentType{ type="race/yeek", name = "yeek", is_mind=true, generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/yeek", name = _t"yeek", is_mind=true, generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "YEEK_WILL", name = "Dominant Will", @@ -907,7 +907,7 @@ newTalent{ return ([[Shatter the mind of your victim, giving you full control of its actions for %s turns (based on your Willpower). When the effect ends, you pull out your mind and the victim's body collapses, dead. Targets with ranks at or above rare must be below 80%% of their maximum life to be controlled, will be invulnerable for the duration, and will break free of the effect without dying after 3 turns. - This effect cannot be saved against but checks instakill immunity.]]):format(t.getduration(self)) + This effect cannot be saved against but checks instakill immunity.]]):tformat(t.getduration(self)) end, } @@ -927,7 +927,7 @@ newTalent{ info = function(self, t) return ([[Your mind becomes more attuned to the Way, and is shielded from outside effects. Increase confusion and silence immunities by %d%% and Mental Save by %d.]]): - format(100*t.getImmune(self, t), t.getSave(self, t)) + tformat(100*t.getImmune(self, t), t.getSave(self, t)) end, } @@ -954,7 +954,7 @@ newTalent{ info = function(self, t) return ([[Yeeks live fast, think fast, and sacrifice fast for the Way. Your global speed is increased by %0.1f%%. - If your life drops below 30%% you gain 1.5 turns. This effect can only happen once every %d turns.]]):format(100*t.speedup(self, t), self:getTalentCooldown(t)) + If your life drops below 30%% you gain 1.5 turns. This effect can only happen once every %d turns.]]):tformat(100*t.speedup(self, t), self:getTalentCooldown(t)) end, } @@ -1046,7 +1046,7 @@ newTalent{ return ([[Reach through the collective psionic gestalt of the yeeks, the Way, to call for immediate help. Summons up to 3 yeek mindslayers to your side for 6 turns. All their primary stats will be set to %d (based on your Willpower and Talent Level). - Your increased damage, damage penetration, and many other stats will be inherited.]]):format(base_stats) + Your increased damage, damage penetration, and many other stats will be inherited.]]):tformat(base_stats) end, } @@ -1068,7 +1068,7 @@ newTalent{ ------------------------------------------------------------------ -- Ogre' powers ------------------------------------------------------------------ -newTalentType{ type="race/ogre", name = "ogre", is_spell=true, generic = true, description = "The various racial bonuses a character can have." } +newTalentType{ type="race/ogre", name = _t"ogre", is_spell=true, generic = true, description = _t"The various racial bonuses a character can have." } newTalent{ short_name = "OGRE_WRATH", name = "Ogric Wrath", @@ -1092,7 +1092,7 @@ newTalent{ In addition, whenever you use an infusion or rune, miss a melee attack, or any damage you deal is reduced by a damage shield (or similar effect) you gain a charge of Ogre Fury (up to 5 charges total, each lasting 7 turns). Each charge grants 20%% critical damage power and 5%% critical strike chance. You lose a charge each time you deal a critical strike. - The duration will increase with your Strength.]]):format(t.getduration(self)) + The duration will increase with your Strength.]]):tformat(t.getduration(self)) end, } @@ -1120,7 +1120,7 @@ newTalent{ Increases spell save by %d and improves the contribution of primary stats on infusions and runes by %d%%. At level 5 your body is so strong you can use a two handed weapon in your main hand while still using an offhand item. When using a two handed weapon this way you suffer a 20%% accuracy, physical power, spellpower and mindpower penalty, decreasing by 5%% per size category above #{italic}#big#{normal}#; further, all damage procs from your weapons are reduced by 50%%.]]): - format(t.getSave(self, t), t.getMult(self, t) * 100) + tformat(t.getSave(self, t), t.getMult(self, t) * 100) end, } @@ -1153,7 +1153,7 @@ newTalent{ info = function(self, t) return ([[When you crit you have a %d%% chance to reduce by 1 the remaining cooldown of one of your inscriptions and of any saturations effects. This effect can only happen once per turn.]]): - format(t.getChance(self, t)) + tformat(t.getChance(self, t)) end, } @@ -1183,6 +1183,6 @@ newTalent{ return ([[Instantly removes runic and infusion saturations. For %d turns your inscriptions cool down twice as fast. At level 5 your command over inscriptions is so good that you can use one more (you still need a category point to unlock it; you need to exit the levelup screen to validate it).]]): - format(t.getDuration(self, t)) + tformat(t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/misc/tutorial.lua b/game/modules/tome/data/talents/misc/tutorial.lua index 37ff4a6ef9a05a2a40d7834647977d256ac7ca86..2ed54838c454f24da4f46da38051d865511916bc 100644 --- a/game/modules/tome/data/talents/misc/tutorial.lua +++ b/game/modules/tome/data/talents/misc/tutorial.lua @@ -18,7 +18,7 @@ -- darkgod@te4.org -- race & classes -newTalentType{ type="tutorial", name = "tutorial", hide = true, description = "Tutorial-specific talents." } +newTalentType{ type="tutorial", name = _t"tutorial", hide = true, description = _t"Tutorial-specific talents." } newTalent{ name = "Shove", short_name = "TUTORIAL_PHYS_KB", @@ -70,7 +70,7 @@ newTalent{ end, info = function(self, t) local dist = self:getTalentLevel(t) - return ([[Conjure up a powerful magical wind, pushing the target back a distance of %d.]]):format(dist) + return ([[Conjure up a powerful magical wind, pushing the target back a distance of %d.]]):tformat(dist) end, } diff --git a/game/modules/tome/data/talents/psionic/absorption.lua b/game/modules/tome/data/talents/psionic/absorption.lua index ecc7c4ff3413864a20fc993c40ca9c7ee63270ba..64a94cc0a6d60451ff149d5197e80de8f9470da7 100644 --- a/game/modules/tome/data/talents/psionic/absorption.lua +++ b/game/modules/tome/data/talents/psionic/absorption.lua @@ -192,7 +192,7 @@ newTalent{ At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage). The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower. You can only have two of these shields active at once.]]): - format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) + tformat(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) end, } @@ -257,7 +257,7 @@ newTalent{ At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage). The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower. You can only have two of these shields active at once.]]): - format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) + tformat(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) end, } @@ -322,7 +322,7 @@ newTalent{ At talent level 3, when you de-activate the shield twice the absorbed damage (if any) in the last 3 turns is released as a full psionic shield (absorbing all damage). The maximum amount of damage your shield can absorb and the efficiency of the psi gain scale with your mindpower. You can only have two of these shields active at once.]]): - format(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) + tformat(absorb, s_str, shieldMastery(self, t), maxPsiAbsorb(self,t)) end, } @@ -388,6 +388,6 @@ newTalent{ return ([[Surround yourself with a forcefield, reducing all incoming damage by %d%%. Such a shield is very expensive to maintain, draining 5%% of your maximum psi per turn initially plus an addition 5%% for each turn it has been maintained. For example, on turn 2 it will drain 10%%. Current drain rate: %0.1f psi/turn]]): - format(t.getResist(self,t), drain) + tformat(t.getResist(self,t), drain) end, } diff --git a/game/modules/tome/data/talents/psionic/augmented-mobility.lua b/game/modules/tome/data/talents/psionic/augmented-mobility.lua index 883ee4f4f94192e389367c5250b0367290767dfe..41b54ede79e684365df44bb63029b8d48fa1cf38 100644 --- a/game/modules/tome/data/talents/psionic/augmented-mobility.lua +++ b/game/modules/tome/data/talents/psionic/augmented-mobility.lua @@ -45,7 +45,7 @@ newTalent{ return ([[You telekinetically float just off the ground. This allows you to slide around the battle quickly, increasing your movement speed by %d%%. It also makes you more vulnerable to being pushed around (-%d%% knockback resistance).]]): - format(t.getSpeed(self, t)*100, t.getKBVulnerable(self, t)*100) + tformat(t.getSpeed(self, t)*100, t.getKBVulnerable(self, t)*100) end, } @@ -76,7 +76,7 @@ newTalent{ return ([[Encase your body in a sheath of thought-quick forces, allowing you to control your body's movements directly without the inefficiency of dealing with crude mechanisms like nerves and muscles. Increases Accuracy by %d, your critical strike chance by %0.1f%% and your global speed by %d%% for %d turns. The duration improves with your Mindpower.]]): - format(boost, 0.5*boost, percentinc, t.getDuration(self, t)) + tformat(boost, 0.5*boost, percentinc, t.getDuration(self, t)) end, } @@ -111,7 +111,7 @@ newTalent{ return ([[Briefly extend your telekinetic reach to grab an enemy and haul them towards you. Works on enemies up to %d squares away. The cooldown decreases, and the range increases, with additional talent points spent.]]): - format(range) + tformat(range) end, } @@ -147,6 +147,6 @@ newTalent{ info = function(self, t) local range = self:getTalentRange(t) return ([[You perform a precise, telekinetically-enhanced leap, landing up to %d squares from your starting point.]]): - format(range) + tformat(range) end, } diff --git a/game/modules/tome/data/talents/psionic/augmented-striking.lua b/game/modules/tome/data/talents/psionic/augmented-striking.lua index ae0e174d680a3843ac089d398514dffd66b294dc..90f5fbb8671cbd722e8cb8aa47a117c47bc89537 100644 --- a/game/modules/tome/data/talents/psionic/augmented-striking.lua +++ b/game/modules/tome/data/talents/psionic/augmented-striking.lua @@ -102,7 +102,7 @@ newTalent{ They will be pinned to the ground for %d turns by the force of this attack. Any frozen creature hit by this attack will take an extra %0.2f physical damage. The extra damage will scale with your Mindpower.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), t.getDur(self, t), damDesc(self, DamageType.PHYSICAL, t.getDam(self, t))) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), t.getDur(self, t), damDesc(self, DamageType.PHYSICAL, t.getDam(self, t))) end, } @@ -200,7 +200,7 @@ newTalent{ A burst of cold will then engulf them, doing an extra %0.1f Cold damage and also freeze them for %d turns. If the attack freezes a pinned creature a burst of ice is summoned, circling the caster and the creature with a wall of ice for 3 turns. The cold burst damage will scale with your Mindpower.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), damDesc(self, DamageType.COLD, t.getDam(self, t)), t.getDur(self, t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), damDesc(self, DamageType.COLD, t.getDam(self, t)), t.getDur(self, t)) end, } @@ -316,7 +316,7 @@ newTalent{ If the target is pinned and Charged Shield is sustained, its absorb value will be increased by %0.2f. If the target is frozen, the ice will melt in a flash of vapour, knocking back all creatures around it in radius 2. The discharge damage will scale with your Mindpower.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), damDesc(self, DamageType.LIGHTNING, t.getDam(self, t)), t.getDur(self, t), 1.5 * damDesc(self, DamageType.LIGHTNING, t.getDam(self, t))) + tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 2.0), damDesc(self, DamageType.LIGHTNING, t.getDam(self, t)), t.getDur(self, t), 1.5 * damDesc(self, DamageType.LIGHTNING, t.getDam(self, t))) end, } @@ -332,6 +332,6 @@ newTalent{ self:talentTemporaryValue(p, "combat_apr", t.getPsiRecover(self, t)*3) end, info = function(self, t) - return ([[Wrap a psionic energy field around your weapons, increasing their armour penentration by %d and allowing you to siphon excess energy from each weapon hit you land, gaining %0.1f psi per hit.]]):format(t.getPsiRecover(self, t)*3, t.getPsiRecover(self, t)) + return ([[Wrap a psionic energy field around your weapons, increasing their armour penentration by %d and allowing you to siphon excess energy from each weapon hit you land, gaining %0.1f psi per hit.]]):tformat(t.getPsiRecover(self, t)*3, t.getPsiRecover(self, t)) end, } diff --git a/game/modules/tome/data/talents/psionic/charged-mastery.lua b/game/modules/tome/data/talents/psionic/charged-mastery.lua index 1f64ea9ef84f0d62ab578310756ede6e660ccf77..ff4b92fbf92e6e8ad3173e628db03e836291a800 100644 --- a/game/modules/tome/data/talents/psionic/charged-mastery.lua +++ b/game/modules/tome/data/talents/psionic/charged-mastery.lua @@ -50,7 +50,7 @@ newTalent{ Charge Leech will also inflict confusion (%d%% effect). Charged Strike will have its secondary lightning burst chain to up to 3 targets in a radius of 3. The damage bonus and resistance penetration scale with your Mindpower. - Only one Transcendent talent may be in effect at a time.]]):format(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t), t.getConfuse(self, t)) + Only one Transcendent talent may be in effect at a time.]]):tformat(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t), t.getConfuse(self, t)) end, } @@ -72,7 +72,7 @@ newTalent{ info = function(self, t) return ([[Detect the mental activity of creatures in a radius of %d for %d turns. This reveals their location and boosts your defense by %d. - The defense scales with you Mindpower and the range with your Willpower.]]):format(t.radius(self, t), t.getDuration(self, t), t.getDefense(self, t)) + The defense scales with you Mindpower and the range with your Willpower.]]):tformat(t.radius(self, t), t.getDuration(self, t), t.getDefense(self, t)) end, } @@ -120,7 +120,7 @@ newTalent{ Enemies standing in the net will take %0.1f Lightning damage and be slowed by %d%%. When you move through the net, a static charge will accumulate on your weapon which will add %0.1f additional Lightning damage to your next attack for each turn you spend within its area. These effects scale with your Mindpower.]]): - format(self:getTalentRadius(t), duration, damDesc(self, DamageType.LIGHTNING, damage), t.getSlow(self, t), damDesc(self, DamageType.LIGHTNING, t.getWeaponDamage(self, t))) + tformat(self:getTalentRadius(t), duration, damDesc(self, DamageType.LIGHTNING, damage), t.getSlow(self, t), damDesc(self, DamageType.LIGHTNING, t.getWeaponDamage(self, t))) end, } @@ -157,7 +157,7 @@ newTalent{ return ([[Store an electric charge for saving your life at a later time. If you are reduced to less than zero life while this is active, it will deactivate, cure you of all stun/daze/freeze effects and allow you to survive with up to %d negative health for %d turns. The negative health limit scales with your Mindpower and maxium life.]]): - format(t.getPower(self, t), t.getDuration(self, t)) + tformat(t.getPower(self, t), t.getDuration(self, t)) end, } diff --git a/game/modules/tome/data/talents/psionic/discharge.lua b/game/modules/tome/data/talents/psionic/discharge.lua index d47d340ffb89b533057f3d206e4ee4bb359ad507..c314aec8c6b17d99dbe23566406203dc84061954 100644 --- a/game/modules/tome/data/talents/psionic/discharge.lua +++ b/game/modules/tome/data/talents/psionic/discharge.lua @@ -104,7 +104,7 @@ newTalent{ return ([[Unleash your subconscious on the world around you. While active, you fire up to %d bolts each turn (one per hostile target) that deal %0.2f mind damage. Each bolt consumes 5 Feedback. Feedback gains beyond your maximum allowed amount may generate extra bolts (one bolt per %d excess Feedback per target), but no more than %d extra bolts per turn. This effect is a psionic channel, increasing the range of Mind Sear, Psychic Lobotomy, and Sunder Mind to 10 but will break if you move. - The damage will scale with your Mindpower.]]):format(targets, damDesc(self, DamageType.MIND, damage), charge_ratio, targets) + The damage will scale with your Mindpower.]]):tformat(targets, damDesc(self, DamageType.MIND, damage), charge_ratio, targets) end, } @@ -135,7 +135,7 @@ newTalent{ local duration = t.getDuration(self, t, true) return ([[Activate to invert your Feedback decay for %d turns. This effect can be a critical hit, increasing the duration even further. You must have some Feedback in order to start the loop. - The maximum Feedback gain will scale with your Mindpower.]]):format(duration) + The maximum Feedback gain will scale with your Mindpower.]]):tformat(duration) end, } @@ -178,7 +178,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Your subconscious now retaliates when you take damage. If the attacker is within range (%d), you'll inflict mind damage equal to the Feedback gained from the attack or %0.2f, whichever is lower. This effect can only happen once per creature per turn. - The damage will scale with your Mindpower.]]):format(range, damDesc(self, DamageType.MIND, damage)) + The damage will scale with your Mindpower.]]):tformat(range, damDesc(self, DamageType.MIND, damage)) end, } @@ -220,6 +220,6 @@ newTalent{ local crit_bonus = t.getCritBonus(self, t) return ([[Focus your mind on a single target, diverting all offensive Discharge talent effects to it for %d turns. While this effect is active, all Discharge talents gain %d%% critical power and you ignore %d%% mind resistance of your targets. If the target is killed, the effect will end early. - The damage bonus will scale with your Mindpower.]]):format(duration, crit_bonus, penetration) + The damage bonus will scale with your Mindpower.]]):tformat(duration, crit_bonus, penetration) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/distortion.lua b/game/modules/tome/data/talents/psionic/distortion.lua index 1ea607cf44d46a44ac38ea6e45572885c81683f0..1a512f1184a6745f8bd4ea36f10a74ad69601af4 100644 --- a/game/modules/tome/data/talents/psionic/distortion.lua +++ b/game/modules/tome/data/talents/psionic/distortion.lua @@ -70,7 +70,7 @@ newTalent{ If the bolt comes in contact with a target that's already distorted, a detonation will occur, inflicting 150%% of the base damage in a radius of %d. Investing in this talent will increase the physical resistance reduction from all of your distortion effects. At talent level 5, you learn to shape your distortion effects, preventing them from hitting you or your allies. - The damage will scale with your Mindpower.]]):format(damDesc(self, DamageType.PHYSICAL, damage), distort, radius) + The damage will scale with your Mindpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, damage), distort, radius) end, } @@ -115,7 +115,7 @@ newTalent{ This damage will distort affected targets, decreasing physical resistance by %d%% and rendering them vulnerable to distortion effects for two turns. Investing in this talent will increase the physical resistance reduction from all of your distortion effects. If the target is already distorted, they'll be stunned for %d turns as well. - The damage will scale with your Mindpower.]]):format(radius, damDesc(self, DamageType.PHYSICAL, damage), distort, power) + The damage will scale with your Mindpower.]]):tformat(radius, damDesc(self, DamageType.PHYSICAL, damage), distort, power) end, } @@ -161,7 +161,7 @@ newTalent{ This damage will distort affected targets, decreasing physical resistance by %d%% and rendering them vulnerable to distortion effects for two turns. If the target is already distorted when Ravage is applied, the damage will be increased by 50%% and the target will lose one beneficial physical effect or sustain each turn. Investing in this talent will increase the physical resistance reduction from all of your distortion effects. - The damage will scale with your Mindpower.]]):format(damDesc(self, DamageType.PHYSICAL, damage), duration, distort) + The damage will scale with your Mindpower.]]):tformat(damDesc(self, DamageType.PHYSICAL, damage), duration, distort) end, } @@ -263,6 +263,6 @@ newTalent{ return ([[Create a powerful maelstorm for %d turns. Each turn, the maelstrom will pull in targets within a radius of %d, and inflict %0.2f physical damage. This damage will distort affected targets, decreasing physical resistance by %d%% and rendering them vulnerable to distortion effects for two turns. Investing in this talent will increase the physical resistance reduction from all of your distortion effects. - The damage will scale with your Mindpower.]]):format(duration, radius, damDesc(self, DamageType.PHYSICAL, damage), distort) + The damage will scale with your Mindpower.]]):tformat(duration, radius, damDesc(self, DamageType.PHYSICAL, damage), distort) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/dream-forge.lua b/game/modules/tome/data/talents/psionic/dream-forge.lua index fbe9e338f14821611ec2aa66b1589ab975f60a81..b2cbcc9a0bbb67eb8498e611dad12ee94a50bd54 100644 --- a/game/modules/tome/data/talents/psionic/dream-forge.lua +++ b/game/modules/tome/data/talents/psionic/dream-forge.lua @@ -93,7 +93,7 @@ newTalent{ You may block multiple damage types at one time, but the base damage threshold increases by 15%% per damage type the shield is already blocking. If you block all of an attack's damage, the attacker will be vulnerable to a deadly counterstrike (a normal melee or ranged attack will instead deal 200%% damage) for one turn. At talent level 5, the block effect will last two turns. - This damage reduction scales with your Mindpower.]]):format(power, dur) + This damage reduction scales with your Mindpower.]]):tformat(power, dur) end, } @@ -190,7 +190,7 @@ newTalent{ return ([[Release the bellows of the forge upon your surroundings, inflicting %0.2f mind damage, %0.2f burning damage, and knocking back your enemies in a radius %d cone. Empty terrain may be changed (50%% chance) for %d turns into forge walls, which block movement and inflict %0.2f mind and %0.2f fire damage on nearby enemies. The damage and knockback chance will scale with your Mindpower.]]): - format(damDesc(self, DamageType.MIND, blast_damage), damDesc(self, DamageType.FIRE, blast_damage), radius, duration, damDesc(self, DamageType.MIND, forge_damage), damDesc(self, DamageType.FIRE, forge_damage)) + tformat(damDesc(self, DamageType.MIND, blast_damage), damDesc(self, DamageType.FIRE, blast_damage), radius, duration, damDesc(self, DamageType.MIND, forge_damage), damDesc(self, DamageType.FIRE, forge_damage)) end, } @@ -208,7 +208,7 @@ newTalent{ local defense = t.getDefense(self, t) local psi = t.getPsiRegen(self, t) return([[Your Forge Shield talent now increases your Armour by %d, your Defense by %d, and gives you %0.2f psi when you're hit by a melee or ranged attack. - The bonuses will scale with your Mindpower.]]):format(armor, defense, psi) + The bonuses will scale with your Mindpower.]]):tformat(armor, defense, psi) end, } @@ -281,6 +281,6 @@ newTalent{ At this point you'll begin breaking the dreams of enemies who hear the forge, reducing their Mental Save by %d and giving them a %d%% chance of spell failure due to the tremendous echo in their minds for %d turns. Broken Dreams has a %d%% chance to brainlock your enemies. The damage and dream breaking effect will scale with your Mindpower.]]): - format(radius, damDesc(self, DamageType.MIND, damage), damDesc(self, DamageType.FIRE, damage), power, fail, duration, chance) + tformat(radius, damDesc(self, DamageType.MIND, damage), damDesc(self, DamageType.FIRE, damage), power, fail, duration, chance) end, } diff --git a/game/modules/tome/data/talents/psionic/dream-smith.lua b/game/modules/tome/data/talents/psionic/dream-smith.lua index 664818a9f164f1f9ce95ec3083cc3e0cb716f5a7..d0828485a6b22e47594b1d49daba483ae0ccfccd 100644 --- a/game/modules/tome/data/talents/psionic/dream-smith.lua +++ b/game/modules/tome/data/talents/psionic/dream-smith.lua @@ -113,7 +113,7 @@ newTalent{ The base power, Accuracy, Armour penetration, and critical strike chance of the weapon will scale with your Mindpower. Current Dream Hammer Stats: - %s]]):format(damage * 100, tostring(weapon_stats)) + %s]]):tformat(damage * 100, tostring(weapon_stats)) end, } @@ -177,7 +177,7 @@ newTalent{ local damage = t.getDamage(self, t) local attack_bonus = t.getAttack(self, t) return ([[Throw your Dream Hammer at a distant location, inflicting %d%% weapon damage on all targets between you and it. After reaching its destination, the Dream Hammer will return, potentially hitting targets a second time. - Learning this talent increases the Accuracy of your Dream Hammer by %d.]]):format(damage * 100, attack_bonus) + Learning this talent increases the Accuracy of your Dream Hammer by %d.]]):tformat(damage * 100, attack_bonus) end, } @@ -226,7 +226,7 @@ newTalent{ local stun = t.getStun(self, t) return ([[Crush your enemy with your Dream Hammer, inflicting %d%% weapon damage. If the attack hits, the target is stunned for %d turns. Stun chance improves with your Mindpower. Learning this talent increases your Physical Power for Dream Hammer damage calculations by %d and all damage with Dream Hammer attacks by %d%%. - ]]):format(damage * 100, stun, power, percent * 100) + ]]):tformat(damage * 100, stun, power, percent * 100) end, } @@ -281,6 +281,6 @@ newTalent{ local project = t.getProject(self, t) /2 return ([[Strike an adjacent target with a mighty blow from the forge, inflicting %d%% weapon damage. If the attack hits, the echo of the attack will lash out at all enemies in a %d radius of the impact. Learning this talent adds %0.2f mind damage and %0.2f burning damage to your Dream Hammer strikes. - The mind and fire damage will scale with your Mindpower.]]):format(damage * 100, radius, damDesc(self, DamageType.MIND, project), damDesc(self, DamageType.FIRE, project)) + The mind and fire damage will scale with your Mindpower.]]):tformat(damage * 100, radius, damDesc(self, DamageType.MIND, project), damDesc(self, DamageType.FIRE, project)) end, } diff --git a/game/modules/tome/data/talents/psionic/dreaming.lua b/game/modules/tome/data/talents/psionic/dreaming.lua index a93d036ee6cefdbdd77f82f78b8e646563e9e95c..082e0cdc0567f7bea5cc2cfbf5d9b820ba09e8a0 100644 --- a/game/modules/tome/data/talents/psionic/dreaming.lua +++ b/game/modules/tome/data/talents/psionic/dreaming.lua @@ -94,7 +94,7 @@ newTalent{ return([[Puts targets in a radius of %d to sleep for %d turns, rendering them unable to act. Every %d points of damage the target suffers will reduce the effect duration by one turn. When Sleep ends, the target will suffer from Insomnia for a number of turns equal to the amount of time it was asleep (up to ten turns max), granting it %d%% sleep immunity for each turn of the Insomnia effect. At talent level 5 Sleep will become contagious and has a 25%% chance to spread to nearby targets each turn. - The damage threshold will scale with your Mindpower.]]):format(radius, duration, power, insomnia) + The damage threshold will scale with your Mindpower.]]):tformat(radius, duration, power, insomnia) end, } @@ -132,7 +132,7 @@ newTalent{ local power = t.getPower(self, t) return ([[Slip into a lucid dream. While in this state, you are considered sleeping, but can still act, are immune to insomnia, inflict %d%% more damage to targets under the effects of Insomnia, and your Physical, Mental, and Spell saves are increased by %d. Note that being asleep may make you more vulnerable to certain effects (such as Inner Demons, Night Terror, and Waking Nightmare). - The saving throw bonuses scale with your Mindpower.]]):format(power, power) + The saving throw bonuses scale with your Mindpower.]]):tformat(power, power) end, } @@ -188,7 +188,7 @@ newTalent{ info = function(self, t) local radius = self:getTalentRadius(t) return ([[You move through the dream world, reappearing at a nearby location. - If there is a sleeping creature at the target location, you'll appear as close to them as possible, otherwise, you'll appear within %d tiles of your intended destination.]]):format(radius) + If there is a sleeping creature at the target location, you'll appear as close to them as possible, otherwise, you'll appear within %d tiles of your intended destination.]]):tformat(radius) end, } @@ -228,6 +228,6 @@ newTalent{ local drain = t.getDrain(self, t) return ([[Imprisons all sleeping targets within range in their dream state, effectively extending sleeping effects for as long as Dream Prison is maintainted. This powerful effect constantly drains %0.2f%% of your maximum Psi (excluding this talent) per turn, and is considered a psionic channel; as such it will break if you move. - (Note that sleeping effects that happen each turn, such as Nightmare's damage and Sleep's contagion, will cease to function for the duration of the effect.)]]):format(drain) + (Note that sleeping effects that happen each turn, such as Nightmare's damage and Sleep's contagion, will cease to function for the duration of the effect.)]]):tformat(drain) end, } diff --git a/game/modules/tome/data/talents/psionic/feedback.lua b/game/modules/tome/data/talents/psionic/feedback.lua index d7cbeb2be1636ea30ee6ce52a8631c1b854a7ae7..8da83fe9794a02ff6faa0490f5cc675667d146e5 100644 --- a/game/modules/tome/data/talents/psionic/feedback.lua +++ b/game/modules/tome/data/talents/psionic/feedback.lua @@ -33,7 +33,7 @@ newTalent{ local newDecay = decaySpeed*0.1 local netHeal = newDecay*heal return ([[Your Feedback decay now heals you for %0.1f times the loss, and the decay rate is reduced to %d%% of the normal rate (up to %0.1f%% per turn). As a result, you are healed for %0.2f%% of your feedback pool each turn. - The healing effect improves with your Willpower.]]):format(heal, decaySpeed*100, newDecay*100, netHeal*100) + The healing effect improves with your Willpower.]]):tformat(heal, decaySpeed*100, newDecay*100, netHeal*100) end, } @@ -56,7 +56,7 @@ newTalent{ info = function(self, t) local shield_power = t.getShieldPower(self, t) return ([[Activate to create a resonance field that will absorb 50%% of all damage you take (%d max absorption). The field will not interfere with Feedback gain. - The max absorption value will scale with your Mindpower, and the effect lasts up to ten turns.]]):format(shield_power) + The max absorption value will scale with your Mindpower, and the effect lasts up to ten turns.]]):tformat(shield_power) end, } @@ -82,14 +82,14 @@ newTalent{ local max_feedback = t.getMaxFeedback(self, t) local gain = t.getFeedbackGain(self, t) return ([[Increases your maximum Feedback by %d, and increases your base Feedback gain ratio to %d%%. - The Feedback gain will scale with your Mindpower.]]):format(max_feedback, gain * 100) + The Feedback gain will scale with your Mindpower.]]):tformat(max_feedback, gain * 100) end, info = function(self, t) local max_feedback = t.getMaxFeedback(self, t) local gain = t.getFeedbackGain(self, t) local feedbackratio = self:callTalent(self.T_FEEDBACK_POOL, "getFeedbackRatio") return ([[Increases your maximum Feedback by %d, and increases the Feedback you gain from damage by %0.1f%% (to %0.1f%% of damage received). - The Feedback gain will scale with your Mindpower.]]):format(max_feedback, gain*100, feedbackratio*100) + The Feedback gain will scale with your Mindpower.]]):tformat(max_feedback, gain*100, feedbackratio*100) end, } @@ -137,6 +137,6 @@ newTalent{ info = function(self, t) local data = t.getData(self, t) return ([[Use Feedback to replenish yourself. This heals you for %d life, and restores %d stamina, %d mana, %d equilibrium, %d vim, %d positive and negative energies, %d psi energy, and %d hate. - The heal and resource gain will improve with your Mindpower.]]):format(data.heal, data.stamina, data.mana, -data.equilibrium, data.vim, data.positive, data.psi, data.hate) + The heal and resource gain will improve with your Mindpower.]]):tformat(data.heal, data.stamina, data.mana, -data.equilibrium, data.vim, data.positive, data.psi, data.hate) end, } diff --git a/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua b/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua index 3f903464c37d1d288d295407a755528386a1941e..f0067326249d3b02e213b2d43f90ce2b92a90cb4 100644 --- a/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua +++ b/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua @@ -78,7 +78,7 @@ newTalent{ local cure = t.numCure(self, t) return ([[Realign and readjust your body with the power of your mind, curing up to %d detrimental physical effects and healing you for %d life. The life healed increases with your Mindpower.]]): - format(cure, heal) + tformat(cure, heal) end, } @@ -118,7 +118,7 @@ newTalent{ The accuracy and damage of any weapon will act as if it were %d higher. (Mindstars cannot be manipulated in this way because they are already in an ideal natural state.) Your total armour will increase by %d and your fatigue will decrease by %d for each body armour and shield worn. The effects increase with your Mindpower.]]): - format(weapon_boost, arm, fat) + tformat(weapon_boost, arm, fat) end, } @@ -150,7 +150,7 @@ newTalent{ return ([[Matter is energy, as any good Mindslayer knows. Unfortunately, the various bonds and particles involved are just too numerous and complex to make the conversion feasible in most cases. The ordered, crystalline structure of a gem, however, make it possible to transform a small percentage of its matter into usable energy. This talent consumes one gem and grants %d psi per turn for between 5 and 13 turns, depending on the quality of the gem used. This process also creates a resonance field that provides the (imbued) effects of the gem to you while this effect lasts.]]): - format(amt) + tformat(amt) end, } @@ -179,6 +179,6 @@ newTalent{ For conventional weapons, this increases the percentage of your willpower and cunning that is used in place of strength and dexterity for all weapon attacks, from 60%% to %d%%. For mindstars, this increases the chance to pull enemies to you by +%d%%. For gems, this increases the bonus stats by %d.]]): - format(60+inc, inc, math.ceil(inc/5)) + tformat(60+inc, inc, math.ceil(inc/5)) end, } diff --git a/game/modules/tome/data/talents/psionic/focus.lua b/game/modules/tome/data/talents/psionic/focus.lua index d81a55d0a4d36fac6520f899e7e4910c07eba17a..86fb81956f579b4822b4bf030fe70bd6a3d6e5fd 100644 --- a/game/modules/tome/data/talents/psionic/focus.lua +++ b/game/modules/tome/data/talents/psionic/focus.lua @@ -60,7 +60,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Focus energies into a beam to lash all creatures in a line with physical force, doing %d Physical damage and knocking them off balance (-15%% damage penalty) for 2 turns. The damage will scale with your Mindpower.]]): - format(damDesc(self, DamageType.PHYSICAL, dam)) + tformat(damDesc(self, DamageType.PHYSICAL, dam)) end, } @@ -97,7 +97,7 @@ newTalent{ local radius = self:getTalentRadius(t) local dam = t.getDamage(self, t) return ([[Telekinetically energize the matter of all foes within %d squares at the molecular level, setting them ablaze. This does %0.1f fire damage over six turns.]]): - format(radius, damDesc(self, DamageType.FIRE, dam)) + tformat(radius, damDesc(self, DamageType.FIRE, dam)) end, } @@ -143,7 +143,7 @@ newTalent{ The plasma will explode on impact, dealing %0.1f Lightning damage within radius %d. This talent will apply cross tier Brainlock. The damage will increase with your Mindpower.]]): - format(damDesc(self, DamageType.LIGHTNING, dam), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.LIGHTNING, dam), self:getTalentRadius(t)) end, } @@ -178,6 +178,6 @@ newTalent{ end, info = function(self, t) return ([[Your Iron Will improves your stun immunity by %d%% and gives you a %d%% chance of recovering from a random mental effect each turn.]]): - format(t.stunImmune(self, t)*100, t.cureChance(self, t)*100) + tformat(t.stunImmune(self, t)*100, t.cureChance(self, t)*100) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/grip.lua b/game/modules/tome/data/talents/psionic/grip.lua index 824d14250f47c5a8c514c93526ec5c27c8df779b..fbf81b4833dc92ab2355ef4b11df572bb8e1c4f5 100644 --- a/game/modules/tome/data/talents/psionic/grip.lua +++ b/game/modules/tome/data/talents/psionic/grip.lua @@ -55,7 +55,7 @@ newTalent{ local dur = t.getDuration(self, t) return ([[Bind the target in crushing bands of telekinetic force, immobilizing it for %d turns. The duration will improve with your Mindpower.]]): - format(dur) + tformat(dur) end, } @@ -80,6 +80,6 @@ newTalent{ Allows %d%% of Willpower and Cunning (instead of the usual 60%%) to be substituted for Strength and Dexterity for the purposes of determining damage done by telekinetically-wielded weapons. At talent level 5, telekinetically wielded gems and mindstars will be treated as one material level higher than they actually are. ]]): - format(t.getImmune(self, t)*100, boost) + tformat(t.getImmune(self, t)*100, boost) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/kinetic-mastery.lua b/game/modules/tome/data/talents/psionic/kinetic-mastery.lua index d9e47bf05b409be227e59c40863445201eecadac..bfd707244cc18b67527a2dea7b3e91d0e287b982 100644 --- a/game/modules/tome/data/talents/psionic/kinetic-mastery.lua +++ b/game/modules/tome/data/talents/psionic/kinetic-mastery.lua @@ -49,7 +49,7 @@ newTalent{ Kinetic Leech will put enemies to sleep. Kinetic Strike will hit 2 adjacent enemies in a sweeping attack. The damage bonus and resistance penetration scale with your Mindpower. - Only one Transcendent talent may be in effect at a time.]]):format(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t)) + Only one Transcendent talent may be in effect at a time.]]):tformat(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t)) end, } @@ -151,7 +151,7 @@ newTalent{ When used on yourself, you will launch in a straight line, knocking enemies flying and doing %0.1f Physical damage to each. You can break through %d walls while doing this. The damage and range increases with Mindpower.]]): - format(range, dam, math.floor(range/2), dam/2, t.getKBResistPen(self, t), dam, math.floor(range/2)) + tformat(range, dam, math.floor(range/2), dam/2, t.getKBResistPen(self, t), dam, math.floor(range/2)) end, } @@ -212,7 +212,7 @@ newTalent{ All projectiles targeting you have a %d%% chance to instead target another spot within radius %d and move %d%% slower. If you choose, you can use your mind to grab all projectiles within radius 10 of you and hurl them toward any location within range %d of you, but this will break your concentration. To do this, deactivate this sustained talent.]]): - format(chance, spread, chance, self:getTalentRange(t)) + tformat(chance, spread, chance, self:getTalentRange(t)) end, } @@ -255,6 +255,6 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Bind the target mercilessly with constant, bone-shattering pressure, pinning and slowing it by 50%% for %d turns and dealing %0.1f Physical damage each turn. The duration and damage improve with Mindpower.]]): - format(dur, damDesc(self, DamageType.PHYSICAL, dam)) + tformat(dur, damDesc(self, DamageType.PHYSICAL, dam)) end, } diff --git a/game/modules/tome/data/talents/psionic/mental-discipline.lua b/game/modules/tome/data/talents/psionic/mental-discipline.lua index c4a818e5f650a50de79c013228a0ef68d848e5b1..8467f9fff46281da425493e2bfa5104ba5c30fe6 100644 --- a/game/modules/tome/data/talents/psionic/mental-discipline.lua +++ b/game/modules/tome/data/talents/psionic/mental-discipline.lua @@ -32,7 +32,7 @@ newTalent{ local cooldown = t.cooldownred(self,t) local mast = t.getMastery(self, t) return ([[Your expertise in the art of energy projection grows. - Aura cooldowns are all reduced by %d turns. Aura damage drains energy more slowly (+%0.2f damage required to lose a point of energy).]]):format(cooldown, mast) + Aura cooldowns are all reduced by %d turns. Aura damage drains energy more slowly (+%0.2f damage required to lose a point of energy).]]):tformat(cooldown, mast) end, } @@ -49,7 +49,7 @@ newTalent{ local cooldown = t.cooldownred(self,t) local mast = t.mastery(self,t) return ([[Your expertise in the art of energy absorption grows. Shield cooldowns are all reduced by %d turns, the amount of damage absorption required to gain a point of energy is reduced by %0.1f, and the maximum energy you can gain from each shield is increased by %0.1f per turn.]]): - format(cooldown, mast, t.absorbLimit(self, t)) + tformat(cooldown, mast, t.absorbLimit(self, t)) end, } @@ -71,7 +71,7 @@ newTalent{ end, info = function(self, t) return ([[Improves Mental Saves by %d, and stun immunity by %d%%.]]): - format(self:getTalentLevelRaw(t)*6, t.stunImmune(self, t)*100) + tformat(self:getTalentLevelRaw(t)*6, t.stunImmune(self, t)*100) end, } @@ -95,6 +95,6 @@ newTalent{ end, info = function(self, t) return ([[A life of the mind has had predictably good effects on your Willpower and Cunning. - Increases Willpower and Cunning by %d.]]):format(2*self:getTalentLevelRaw(t)) + Increases Willpower and Cunning by %d.]]):tformat(2*self:getTalentLevelRaw(t)) end, } diff --git a/game/modules/tome/data/talents/psionic/mentalism.lua b/game/modules/tome/data/talents/psionic/mentalism.lua index 4d4f5aa597a9798eee956d90b2c9e22bab32ea9f..9ec89733b4df17ebefe2a61d6b4cae97d25cd9d0 100644 --- a/game/modules/tome/data/talents/psionic/mentalism.lua +++ b/game/modules/tome/data/talents/psionic/mentalism.lua @@ -54,7 +54,7 @@ newTalent{ info = function(self, t) local max = t.getPsychometryCap(self, t) return ([[Resonate with psionic, nature, and anti-magic powered objects you wear, increasing your physical and mind power by %0.2f or %d%% of the object's material level (whichever is lower). - This effect stacks and applies for each qualifying object worn.]]):format(max, 100*t.getMaterialMult(self,t)) + This effect stacks and applies for each qualifying object worn.]]):tformat(max, 100*t.getMaterialMult(self,t)) end, } @@ -112,7 +112,7 @@ newTalent{ end, info = function(self, t) local count = t.getRemoveCount(self, t) - return ([[Clears your mind of current mental effects, and blocks additional ones over 6 turns. At most, %d mental effects will be affected.]]):format(count) + return ([[Clears your mind of current mental effects, and blocks additional ones over 6 turns. At most, %d mental effects will be affected.]]):tformat(count) end, } @@ -209,7 +209,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Activate to project your mind from your body for %d turns. In this state you're invisible (+%d power), can see invisible and stealthed creatures (+%d detection power), can move through walls, and do not need air to survive. All damage you suffer is shared with your physical body, and while in this form you may only deal damage to 'ghosts' or through an active mind link (mind damage only in the second case.) - To return to your body, simply release control of the projection.]]):format(duration, power/2, power) + To return to your body, simply release control of the projection.]]):tformat(duration, power/2, power) end, } @@ -277,6 +277,6 @@ newTalent{ local range = self:getTalentRange(t) * 2 return ([[Link minds with the target. While your minds are linked, you'll inflict %d%% more mind damage to the target and gain telepathy for its creature type. Only one mindlink can be maintained at a time, and the effect will break if the target dies or goes beyond range (%d)). - The mind damage bonus will scale with your Mindpower.]]):format(damage, range) + The mind damage bonus will scale with your Mindpower.]]):tformat(damage, range) end, } diff --git a/game/modules/tome/data/talents/psionic/nightmare.lua b/game/modules/tome/data/talents/psionic/nightmare.lua index 9b1bec395fbe1dd145a4cb9e79522ba9fd8888b3..253f3b916fca735ff66e6857f9c3e763860e6cbe 100644 --- a/game/modules/tome/data/talents/psionic/nightmare.lua +++ b/game/modules/tome/data/talents/psionic/nightmare.lua @@ -83,7 +83,7 @@ newTalent{ return([[Puts targets in a radius %d cone into a nightmarish sleep for %d turns, rendering them unable to act. Every %d points of damage the target suffers will reduce the effect duration by one turn. Each turn, they'll suffer %0.2f darkness damage. This damage will not reduce the duration of the effect. When Nightmare ends, the target will suffer from Insomnia for a number of turns equal to the amount of time it was asleep (up to ten turns max), granting it %d%% sleep immunity for each turn of the Insomnia effect. - The damage threshold and mind damage will scale with your Mindpower.]]):format(radius, duration, power, damDesc(self, DamageType.DARKNESS, (damage)), insomnia) + The damage threshold and mind damage will scale with your Mindpower.]]):tformat(radius, duration, power, damDesc(self, DamageType.DARKNESS, (damage)), insomnia) end, } @@ -185,7 +185,7 @@ newTalent{ return ([[Brings the target's inner demons to the surface. Each turn, for %d turns, there's a %d%% chance that a demon will surface, requiring the target to make a Mental Save to keep it from manifesting. If the target is sleeping, the chance to save will be halved, and fear immunity will be ignored. Otherwise, if the summoning is resisted, the effect will end early. The summon chance will scale with your Mindpower and the demon's life will scale with the target's rank. - If a demon manifests the sheer terror will remove all sleep effects from the victim, but not the Inner Demons.]]):format(duration, chance) + If a demon manifests the sheer terror will remove all sleep effects from the victim, but not the Inner Demons.]]):tformat(duration, chance) end, } @@ -235,7 +235,7 @@ newTalent{ return ([[Inflicts %0.2f darkness damage each turn for %d turns, and has a %d%% chance to randomly cause blindness, stun, or confusion (lasting 3 turns). If the target is sleeping, the chance of avoiding a negative effect will be halved and fear immunity will be ignored. The damage will scale with your Mindpower.]]): - format(damDesc(self, DamageType.DARKNESS, (damage)), duration, chance) + tformat(damDesc(self, DamageType.DARKNESS, (damage)), duration, chance) end, } @@ -338,6 +338,6 @@ newTalent{ local damage = t.getDamageBonus(self, t) local summon = t.getSummonTime(self, t) return ([[Increases your damage and resistance penetration on sleeping targets by %d%%. Additionally, every time you slay a sleeping target, a Night Terror will be summoned for %d turns. - The Night Terror's stats will scale with your Mindpower, as will the damage bonus to sleeping targets.]]):format(damage, summon) + The Night Terror's stats will scale with your Mindpower, as will the damage bonus to sleeping targets.]]):tformat(damage, summon) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/other.lua b/game/modules/tome/data/talents/psionic/other.lua index 235025737f92655f132f3c71bdf084f2b393f5a6..e37f7807ad8330d748615cc4b42869023e263c2d 100644 --- a/game/modules/tome/data/talents/psionic/other.lua +++ b/game/modules/tome/data/talents/psionic/other.lua @@ -295,10 +295,10 @@ newTalent{ if ammo and ammo.archery_ammo ~= o.archery then ammo = nil end if o.type == "gem" then local ml = o.material_level or 1 - base = base..([[The telekinetically-wielded gem grants you +%d stats.]]):format(ml * 3) + base = base..([[The telekinetically-wielded gem grants you +%d stats.]]):tformat(ml * 3) elseif o.subtype == "mindstar" then local ml = o.material_level or 1 - base = base..([[The telekinetically-wielded mindstar has a %d%% chance to grab a foe up to %d range away.]]):format((ml + 1) * 5, ml + 2) + base = base..([[The telekinetically-wielded mindstar has a %d%% chance to grab a foe up to %d range away.]]):tformat((ml + 1) * 5, ml + 2) elseif o.archery and ammo then self:attr("use_psi_combat", 1) range = math.max(math.min(o.combat.range or 6), self:attr("archery_range_override") or 1) @@ -316,7 +316,7 @@ newTalent{ APR: %d Crit: %0.1f%% Speed: %0.1f%%]]): - format(range, atk, dam, apr, crit, speed*100) + tformat(range, atk, dam, apr, crit, speed*100) else self:attr("use_psi_combat", 1) atk = self:combatAttack(o.combat) @@ -332,7 +332,7 @@ newTalent{ APR: %d Crit: %0.2f Speed: %0.2f]]): - format(atk, dam, apr, crit, speed) + tformat(atk, dam, apr, crit, speed) end return base end, diff --git a/game/modules/tome/data/talents/psionic/projection.lua b/game/modules/tome/data/talents/psionic/projection.lua index 5c213ab15bac467d74a51a064febbde95f123f40..436ed10a6470ba91b378ac0a4e7ee2c45af4a1a8 100644 --- a/game/modules/tome/data/talents/psionic/projection.lua +++ b/game/modules/tome/data/talents/psionic/projection.lua @@ -255,7 +255,7 @@ newTalent{ #{bold}#Activating the aura takes no time but de-activating it does.#{normal}# To turn off an aura without spiking it, deactivate it and target yourself. The damage will improve with your Mindpower. You can only have two of these auras active at once.]]): - format(damDesc(self, DamageType.PHYSICAL, dam), mast, damDesc(self, DamageType.PHYSICAL, dam), mast, spikecost, t.getSpikedRange(self, t), + tformat(damDesc(self, DamageType.PHYSICAL, dam), mast, damDesc(self, DamageType.PHYSICAL, dam), mast, spikecost, t.getSpikedRange(self, t), damDesc(self, DamageType.PHYSICAL, spikedam)) end, } @@ -375,7 +375,7 @@ newTalent{ #{bold}#Activating the aura takes no time but de-activating it does.#{normal}# To turn off an aura without spiking it, deactivate it and target yourself. The damage will improve with your Mindpower. You can only have two of these auras active at once.]]): - format(damDesc(self, DamageType.FIRE, dam), mast, damDesc(self, DamageType.FIRE, dam), mast, spikecost, rad, + tformat(damDesc(self, DamageType.FIRE, dam), mast, damDesc(self, DamageType.FIRE, dam), mast, spikecost, rad, damDesc(self, DamageType.FIRE, spikedam)) end, } @@ -539,7 +539,7 @@ newTalent{ #{bold}#Activating the aura takes no time but de-activating it does.#{normal}# To turn off an aura without spiking it, deactivate it and target yourself. The damage will improve with your Mindpower. You can only have two of these auras active at once.]]): - format(damDesc(self, DamageType.LIGHTNING, dam), mast, damDesc(self, DamageType.LIGHTNING, dam), mast, spikecost, nb, damDesc(self, DamageType.LIGHTNING, spikedam)) + tformat(damDesc(self, DamageType.LIGHTNING, dam), mast, damDesc(self, DamageType.LIGHTNING, dam), mast, spikecost, nb, damDesc(self, DamageType.LIGHTNING, spikedam)) end, } @@ -598,6 +598,6 @@ newTalent{ A telekinetically wielded melee weapon enters a frenzy, striking up to %d enemies per turn, also increases the radius by %d. A mindstar will attempt to pull in all enemies within its normal range. A gem will fire an energy bolt at a random enemy in range 6, each turn for %0.1f damage. The type is determined by the colour of the gem. Damage scales with Mindpower.]]): - format(dur, targets, targets, t.getDamage(self,t)) + tformat(dur, targets, targets, t.getDamage(self,t)) end, } diff --git a/game/modules/tome/data/talents/psionic/psi-archery.lua b/game/modules/tome/data/talents/psionic/psi-archery.lua index 854ef206db8d7d1a352f46f0e3d8a28ed67659b9..0fbfcdc60edf4abfcdbf3a779c3dc89e8aac319f 100644 --- a/game/modules/tome/data/talents/psionic/psi-archery.lua +++ b/game/modules/tome/data/talents/psionic/psi-archery.lua @@ -47,7 +47,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Fire and guide an arrow to its target with precise telekinetic nudges. Does normal damage, but accuracy and crit chance are increased by %d.]]):format(t.shot_boost(self, t)) + return ([[Fire and guide an arrow to its target with precise telekinetic nudges. Does normal damage, but accuracy and crit chance are increased by %d.]]):tformat(t.shot_boost(self, t)) end, } @@ -83,7 +83,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Use telekinetic forces to greatly augment the durability and tension of your bow in order to fire an arrow with velocity unmatched by even the mightiest mundane archers. Increases armor penetration by %d, and deals %d%% damage.]]):format(t.apr_boost(self, t), t.dam_mult(self, t) * 100) + return ([[Use telekinetic forces to greatly augment the durability and tension of your bow in order to fire an arrow with velocity unmatched by even the mightiest mundane archers. Increases armor penetration by %d, and deals %d%% damage.]]):tformat(t.apr_boost(self, t), t.dam_mult(self, t) * 100) end, } @@ -224,7 +224,7 @@ newTalent{ if not o then return ([[You temporarily set aside a part of you mind to direct your telekinetically-wielded bow. It will automatically attack the nearest target each turn for %d turns. The telekinetically-wielded bow uses Willpower in place of Strength and Cunning in place of Dexterity to determine attack and damage. - You are not telekinetically wielding anything right now.]]):format(duration) + You are not telekinetically wielding anything right now.]]):tformat(duration) end if o.type == "weapon" then self:attr("use_psi_combat", 1) @@ -243,6 +243,6 @@ newTalent{ APR: %d Crit: %0.2f Speed: %0.2f]]): - format(duration, atk, dam, apr, crit, speed) + tformat(duration, atk, dam, apr, crit, speed) end, } diff --git a/game/modules/tome/data/talents/psionic/psi-fighting.lua b/game/modules/tome/data/talents/psionic/psi-fighting.lua index 3924f0278106b9fa9a5a7c1965b66001d3ed25cf..6884d5b0fba1a16a001c58e04b194e41490a8ee6 100644 --- a/game/modules/tome/data/talents/psionic/psi-fighting.lua +++ b/game/modules/tome/data/talents/psionic/psi-fighting.lua @@ -61,7 +61,7 @@ newTalent{ If your mainhand weapon hits, you will also stun the target for %d turns. This attack uses 60%% of your Willpower and Cunning instead of Strength and Dexterity to determine weapon damage and accuracy, for both attacks. Any active Aura damage bonusses will extend to the weapons used for this attack.]]): - format(100 * self:combatTalentWeaponDamage(t, 0.9, 1.5), t.duration(self,t)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.9, 1.5), t.duration(self,t)) end, } @@ -107,7 +107,7 @@ newTalent{ return ([[While active, you give your flesh and blood body a boost in the form of precisely applied mental forces. Increases Strength and Dexterity by %d%% of your Willpower and Cunning, respectively. Strength increased by %d Dexterity increased by %d]]): - format(inc*100, str_power, dex_power) + tformat(inc*100, str_power, dex_power) end, } @@ -132,7 +132,7 @@ newTalent{ At raw talent level 3 you will also disarm the attacker for 3 turns. At raw talent level 5 you will be able to reflexively block up to one attack per turn with a %d%% chance, based on your cunning. Each trigger requires and uses 10 Psi. This requires a telekinetically-wielded weapon.]]): - format(100 * t.getWeaponDamage(self, t), t.getChance(self, t)) + tformat(100 * t.getWeaponDamage(self, t), t.getChance(self, t)) end, } @@ -195,6 +195,6 @@ newTalent{ This deals %d%% weapon damage and then causes the victim to bleed for %0.1f Physical damage over four turns. At level 3 the thrust is so powerful that it has %d%% chance to shatter a temporary damage shield if one exists. The bleeding damage increases with your Mindpower.]]): - format(100 * t.getWeaponDamage(self, t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self,t)), t.getShatter(self, t)) + tformat(100 * t.getWeaponDamage(self, t), damDesc(self, DamageType.PHYSICAL, t.getDamage(self,t)), t.getShatter(self, t)) end, } diff --git a/game/modules/tome/data/talents/psionic/psionic.lua b/game/modules/tome/data/talents/psionic/psionic.lua index dafbfa69e1a4db93116375128bde529c36efb4e3..62770c5f6edd0ae73f7ae05da637300aae63aa70 100644 --- a/game/modules/tome/data/talents/psionic/psionic.lua +++ b/game/modules/tome/data/talents/psionic/psionic.lua @@ -18,42 +18,42 @@ -- darkgod@te4.org -- Talent trees -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/absorption", name = "absorption", description = "Absorb damage and gain energy." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/projection", name = "projection", description = "Project energy to damage foes." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/psi-fighting", name = "psi-fighting", description = "Wield melee weapons with mentally-manipulated forces." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/focus", name = "focus", description = "Use gems to focus your energies." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/augmented-mobility", generic = true, name = "augmented mobility", description = "Use energy to move yourself and others." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/augmented-striking", name = "augmented striking", description = "Augment melee attacks with psionic enegies." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/voracity", name = "voracity", description = "Pull energy from your surroundings." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/finer-energy-manipulations", generic = true, name = "finer energy manipulations", description = "Subtle applications of the psionic arts." } ---newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/mental-discipline", generic = true, name = "mental discipline", description = "Increase mental capacity, endurance, and flexibility." } -newTalentType{ is_mind=true, type="psionic/other", name = "other", description = "Various psionic talents." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/absorption", name = _t"absorption", description = _t"Absorb damage and gain energy." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/projection", name = _t"projection", description = _t"Project energy to damage foes." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/psi-fighting", name = _t"psi-fighting", description = _t"Wield melee weapons with mentally-manipulated forces." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/focus", name = _t"focus", description = _t"Use gems to focus your energies." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/augmented-mobility", generic = true, name = _t"augmented mobility", description = _t"Use energy to move yourself and others." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/augmented-striking", name = _t"augmented striking", description = _t"Augment melee attacks with psionic enegies." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/voracity", name = _t"voracity", description = _t"Pull energy from your surroundings." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/finer-energy-manipulations", generic = true, name = _t"finer energy manipulations", description = _t"Subtle applications of the psionic arts." } +--newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/mental-discipline", generic = true, name = _t"mental discipline", description = _t"Increase mental capacity, endurance, and flexibility." } +newTalentType{ is_mind=true, type="psionic/other", name = _t"other", description = _t"Various psionic talents." } -- Advanced Talent Trees ---newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/grip", name = "grip", min_lev = 10, description = "Augment your telekinetic grip." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/kinetic-mastery", name = "kinetic mastery", min_lev = 10, description = "Mastery of telekinetic forces." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/thermal-mastery", name = "thermal mastery", min_lev = 10, description = "Mastery of pyrokinetic forces." } -newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/charged-mastery", name = "charged mastery", min_lev = 10, description = "Mastery of electrokinetic forces." } ---newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/psi-archery", name = "psi-archery", min_lev = 10, description = "Use your telekinetic powers to wield bows with deadly effectiveness." } ---newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/greater-psi-fighting", name = "greater psi-fighting", description = "Elevate psi-fighting prowess to epic levels." } ---newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/brainstorm", name = "brainstorm", description = "Focus your telekinetic powers in ways undreamed of by most mindslayers." } +--newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/grip", name = _t"grip", min_lev = 10, description = _t"Augment your telekinetic grip." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/kinetic-mastery", name = _t"kinetic mastery", min_lev = 10, description = _t"Mastery of telekinetic forces." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/thermal-mastery", name = _t"thermal mastery", min_lev = 10, description = _t"Mastery of pyrokinetic forces." } +newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/charged-mastery", name = _t"charged mastery", min_lev = 10, description = _t"Mastery of electrokinetic forces." } +--newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/psi-archery", name = _t"psi-archery", min_lev = 10, description = _t"Use your telekinetic powers to wield bows with deadly effectiveness." } +--newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/greater-psi-fighting", name = _t"greater psi-fighting", description = _t"Elevate psi-fighting prowess to epic levels." } +--newTalentType{ allow_random=true, is_mind=true, autolearn_mindslayer=true, type="psionic/brainstorm", name = _t"brainstorm", description = _t"Focus your telekinetic powers in ways undreamed of by most mindslayers." } -- Solipsist Talent Trees -newTalentType{ allow_random=true, is_mind=true, type="psionic/discharge", name = "discharge", description = "Project feedback on the world around you." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/distortion", name = "distortion", description = "Distort reality with your mental energy." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/dream-smith", name = "Dream Smith", description = "Call the dream-forge hammer to smite your foes." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/nightmare", name = "nightmare", description = "Manifest your enemies nightmares." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/psychic-assault", name = "Psychic Assault", description = "Directly attack your opponents minds." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/slumber", name = "slumber", description = "Force enemies into a deep sleep." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/solipsism", name = "solipsism", description = "Nothing exists outside the minds ability to perceive it." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/thought-forms", name = "Thought-Forms", description = "Manifest your thoughts as psionic summons." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/discharge", name = _t"discharge", description = _t"Project feedback on the world around you." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/distortion", name = _t"distortion", description = _t"Distort reality with your mental energy." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/dream-smith", name = _t"Dream Smith", description = _t"Call the dream-forge hammer to smite your foes." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/nightmare", name = _t"nightmare", description = _t"Manifest your enemies nightmares." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/psychic-assault", name = _t"Psychic Assault", description = _t"Directly attack your opponents minds." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/slumber", name = _t"slumber", description = _t"Force enemies into a deep sleep." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/solipsism", name = _t"solipsism", description = _t"Nothing exists outside the minds ability to perceive it." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/thought-forms", name = _t"Thought-Forms", description = _t"Manifest your thoughts as psionic summons." } -- Generic Solipsist Trees -newTalentType{ allow_random=true, is_mind=true, type="psionic/dream-forge", generic = true, name = "Dream Forge", description = "Master the dream forge to create powerful armor and effects." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/dreaming", generic = true, name = "dreaming", description = "Manipulate the sleep cycles of yourself and your enemies." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/mentalism", generic = true, name = "mentalism", description = "Various mind based effects." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/feedback", generic = true, name = "feedback", description = "Store feedback as you get damaged and use it to protect and heal your body." } -newTalentType{ allow_random=true, is_mind=true, type="psionic/trance", generic = true, name = "trance", description = "Put your mind into a deep trance." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/dream-forge", generic = true, name = _t"Dream Forge", description = _t"Master the dream forge to create powerful armor and effects." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/dreaming", generic = true, name = _t"dreaming", description = _t"Manipulate the sleep cycles of yourself and your enemies." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/mentalism", generic = true, name = _t"mentalism", description = _t"Various mind based effects." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/feedback", generic = true, name = _t"feedback", description = _t"Store feedback as you get damaged and use it to protect and heal your body." } +newTalentType{ allow_random=true, is_mind=true, type="psionic/trance", generic = true, name = _t"trance", description = _t"Put your mind into a deep trance." } -- Level 0 wil tree requirements: psi_absorb = { diff --git a/game/modules/tome/data/talents/psionic/psychic-assault.lua b/game/modules/tome/data/talents/psionic/psychic-assault.lua index 2edaa656ab3bb0be211f6c27769ca95dcff998c5..ea830fc06a2e5cb94db4fb492be5ac91f4ebe2bc 100644 --- a/game/modules/tome/data/talents/psionic/psychic-assault.lua +++ b/game/modules/tome/data/talents/psionic/psychic-assault.lua @@ -53,7 +53,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Sends a telepathic attack, trying to destroy the brains of any target in the beam, doing %0.2f mind damage. - The damage will increase with your Mindpower.]]):format(damDesc(self, DamageType.MIND, damage)) + The damage will increase with your Mindpower.]]):tformat(damDesc(self, DamageType.MIND, damage)) end, } @@ -105,7 +105,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Inflicts %0.2f mind damage and cripples the target's higher mental functions, reducing cunning by %d and confusing (%d%% power) the target for %d turns. The damage, cunning penalty, and confusion power will scale with your Mindpower.]]): - format(damDesc(self, DamageType.MIND, (damage)), cunning_damage, power, duration) + tformat(damDesc(self, DamageType.MIND, (damage)), cunning_damage, power, duration) end, } @@ -134,7 +134,7 @@ newTalent{ local damage = t.getDamage(self, t) local radius = self:getTalentRadius(t) return ([[Sends out a blast of telepathic static in a %d radius, inflicting %0.2f mind damage. This attack can brainlock affected targets. - The damage will increase with your Mindpower.]]):format(radius, damDesc(self, DamageType.MIND, damage)) + The damage will increase with your Mindpower.]]):tformat(radius, damDesc(self, DamageType.MIND, damage)) end, } @@ -177,6 +177,6 @@ newTalent{ return ([[Cripples the target's mind, inflicting %0.2f mind damage and reducing its Mental Save by %d for 4 turns. This attack always hits, and the mental save reduction stacks. Against brainlocked targets, the damage and Mental Save reduction will be doubled. The damage and save reduction will scale with your Mindpower.]]): - format(damDesc(self, DamageType.MIND, (damage)), power) + tformat(damDesc(self, DamageType.MIND, (damage)), power) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/slumber.lua b/game/modules/tome/data/talents/psionic/slumber.lua index 49cc7cce8b277f316d802d9da545fba64b56b30d..2e9cab61e7b5b0e1e065a31c939dd9e992ee309d 100644 --- a/game/modules/tome/data/talents/psionic/slumber.lua +++ b/game/modules/tome/data/talents/psionic/slumber.lua @@ -75,7 +75,7 @@ newTalent{ local insomnia = t.getInsomniaPower(self, t) return([[Puts the target into a deep sleep for %d turns, rendering it unable to act. Every %d points of damage the target suffers will reduce the effect duration by one turn. When Slumber ends, the target will suffer from Insomnia for a number of turns equal to the amount of time it was asleep (up to ten turns max), granting it %d%% sleep immunity for each turn of the Insomnia effect. - The damage threshold will scale with your Mindpower.]]):format(duration, power, insomnia) + The damage threshold will scale with your Mindpower.]]):tformat(duration, power, insomnia) end, } @@ -94,7 +94,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return([[Targets you have slept take %0.2f mind damage each turn for five turns upon waking. - The damage will scale with your Mindpower.]]):format(damDesc(self, DamageType.MIND, (damage))) + The damage will scale with your Mindpower.]]):tformat(damDesc(self, DamageType.MIND, (damage))) end, } @@ -111,7 +111,7 @@ newTalent{ local insomnia = t.getInsomniaPower(self, t) return([[Increases the amount of damage you can deal to sleeping targets before reducing the effect duration by %d%%, and reduces the sleep immunity of your Insomnia effects by %d%%. These effects will be directly reflected in the appropriate talent descriptions. - The damage threshold bonus will scale with your Mindpower.]]):format(power_bonus * 100, insomnia) + The damage threshold bonus will scale with your Mindpower.]]):tformat(power_bonus * 100, insomnia) end, } @@ -244,6 +244,6 @@ newTalent{ Projections inflict 50%% less damage than the original, unless the target has Lucid Dreamer active. When the Dreamscape ends, for each projection destroyed, the target's life will be reduced by 10%% and it will be brainlocked for one turn. In the Dreamscape, your damage will be improved by %d%%. - The damage bonus will improve with your Mindpower.]]):format(duration, power) + The damage bonus will improve with your Mindpower.]]):tformat(duration, power) end, } diff --git a/game/modules/tome/data/talents/psionic/solipsism.lua b/game/modules/tome/data/talents/psionic/solipsism.lua index 3ce7c1ffed4a6c8125922947e312731972943c39..133ad338e9b39b114af28a1bedb4cfcfe10f1e86 100644 --- a/game/modules/tome/data/talents/psionic/solipsism.lua +++ b/game/modules/tome/data/talents/psionic/solipsism.lua @@ -60,7 +60,7 @@ newTalent{ You also have learned to overcome damage with your mind alone, and convert %d%% of all damage you receive into Psi damage and %d%% of your healing and life regen now recovers Psi instead of life. Converted Psi damage you take will be further reduced by %0.1f%% (%0.1f%% from character level with the remainder further reduced by %0.1f%% from talent level). The first talent point invested will also increase the amount of Psi you gain from Willpower by 0.5, but reduce the amount of life you gain from Constitution by 0.25. - The first talent point also increases your solipsism threshold by 20%% (currently %d%%), reducing your global speed by 1%% for each percentage your current Psi falls below this threshold.]]):format(conversion_ratio * 100, conversion_ratio * 100, psi_damage_resist, psi_damage_resist_base * 100, psi_damage_resist_talent, (self.solipsism_threshold or 0) * 100) + The first talent point also increases your solipsism threshold by 20%% (currently %d%%), reducing your global speed by 1%% for each percentage your current Psi falls below this threshold.]]):tformat(conversion_ratio * 100, conversion_ratio * 100, psi_damage_resist, psi_damage_resist_base * 100, psi_damage_resist_talent, (self.solipsism_threshold or 0) * 100) end, } @@ -98,7 +98,7 @@ newTalent{ local ratio = t.getBalanceRatio(self, t) * 100 return ([[You now substitute %d%% of your Mental Save for %d%% of your Physical and Spell Saves throws (so at 100%%, you would effectively use mental save for all saving throw rolls). The first talent point invested will also increase the amount of Psi you gain from Willpower by 0.5, but reduce the amount of life you gain from Constitution by 0.25. - Learning this talent also increases your solipsism threshold by 10%% (currently %d%%).]]):format(ratio, ratio, math.min((self.solipsism_threshold or 0),self.clarity_threshold or 1) * 100) + Learning this talent also increases your solipsism threshold by 10%% (currently %d%%).]]):tformat(ratio, ratio, math.min((self.solipsism_threshold or 0),self.clarity_threshold or 1) * 100) end, } @@ -141,7 +141,7 @@ newTalent{ end return ([[For every percent that your Psi pool exceeds %d%%, you gain 1%% global speed (up to a maximum of %+d%%). The first talent point invested will also increase the amount of Psi you gain from Willpower by 0.5, but reduce the amount of life you gain from Constitution by 0.25 and will increase your solipsism threshold by 10%% (currently %d%%).]]): - format(threshold * 100, (1-threshold)*100, math.min(self.solipsism_threshold or 0,threshold) * 100)..bonus + tformat(threshold * 100, (1-threshold)*100, math.min(self.solipsism_threshold or 0,threshold) * 100)..bonus end, } @@ -182,7 +182,7 @@ newTalent{ if self:checkHit(saving_throw, value) then local dismissed = value * (1 - (1 / self:mindCrit(2))) -- Diminishing returns on high crits game:delayedLogMessage(self, nil, "Dismissal", "#TAN##Source# mentally dismisses some damage!") - game:delayedLogDamage(src, self, 0, ("#TAN#(%d dismissed)#LAST#"):format(dismissed)) + game:delayedLogDamage(src, self, 0, ("#TAN#(%d dismissed)#LAST#"):tformat(dismissed)) return value - dismissed else return value @@ -192,6 +192,6 @@ newTalent{ local save_percentage = t.getSavePercentage(self, t) return ([[Each time you take damage, you roll %d%% of your mental save against it. A successful saving throw can crit and will reduce the damage by at least 50%%. The first talent point invested will also increase the amount of Psi you gain from Willpower by 0.5, but reduce the amount of life you gain from Constitution by 0.25. - The first talent point also increases your solipsism threshold by 10%% (currently %d%%).]]):format(save_percentage * 100, math.min(self.solipsism_threshold or 0,self.clarity_threshold or 1) * 100) + The first talent point also increases your solipsism threshold by 10%% (currently %d%%).]]):tformat(save_percentage * 100, math.min(self.solipsism_threshold or 0,self.clarity_threshold or 1) * 100) end, } diff --git a/game/modules/tome/data/talents/psionic/telekinetic-combat.lua b/game/modules/tome/data/talents/psionic/telekinetic-combat.lua index fdf30e8a65bd5dea8d4abce84f14ee4a155ec9bc..8de117f889ab3a21052ae9369163e48dd3ac2fba 100644 --- a/game/modules/tome/data/talents/psionic/telekinetic-combat.lua +++ b/game/modules/tome/data/talents/psionic/telekinetic-combat.lua @@ -58,6 +58,6 @@ newTalent{ return ([[Assault your target with all weapons, dealing two strikes with your telekinetically-wielded weapon for %d%% damage followed by an attack with your physical weapon for %d%% damage. This physical weapon attack uses your Willpower and Cunning instead of Strength and Dexterity to determine Accuracy and damage. Any active Aura damage bonusses will extend to your main weapons for this attack.]]): - format(100 * self:combatTalentWeaponDamage(t, 1.2, 1.9), 100 * self:combatTalentWeaponDamage(t, 1.5, 2.5)) + tformat(100 * self:combatTalentWeaponDamage(t, 1.2, 1.9), 100 * self:combatTalentWeaponDamage(t, 1.5, 2.5)) end, } diff --git a/game/modules/tome/data/talents/psionic/thermal-mastery.lua b/game/modules/tome/data/talents/psionic/thermal-mastery.lua index a090251d245863b131da5217a845bb83563def84..186757858a616fe1ba551baa03cc014a359da226 100644 --- a/game/modules/tome/data/talents/psionic/thermal-mastery.lua +++ b/game/modules/tome/data/talents/psionic/thermal-mastery.lua @@ -50,7 +50,7 @@ newTalent{ Thermal Leech will reduce enemy damage by %d%%. Thermal Strike will have its secondary cold/freeze explode in radius 1. The damage bonus and resistance penetration scale with your Mindpower. - Only one Transcendent talent may be in effect at a time.]]):format(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t), t.getDamagePenalty(self, t)) + Only one Transcendent talent may be in effect at a time.]]):tformat(t.getDuration(self, t), t.getPower(self, t), t.getPenetration(self, t), t.getDamagePenalty(self, t)) end, } @@ -91,7 +91,7 @@ newTalent{ return ([[Quickly drain the heat from your target's brain, dealing %0.1f Cold damage. Affected creatures will also be brainlocked for 4 turns, putting a random talent on cooldown, and freezing cooldowns. The damage and chance to brainlock increase with your Mindpower.]]): - format(damDesc(self, DamageType.COLD, dam)) + tformat(damDesc(self, DamageType.COLD, dam)) end, } @@ -146,7 +146,7 @@ newTalent{ Those afflicted will be dealt %0.1f Cold and %0.1f Fire damage, and be pinned (Frozen Feet) and disarmed for %d turns. Targets suffering both types of damage will also have have their Armour and saves reduced by %d. The chance to apply the effects and the duration increase with your Mindpower.]]): - format(rad, damDesc(self, DamageType.COLD, dam), damDesc(self, DamageType.FIRE, dam), dur, t.getArmor(self, t)) + tformat(rad, damDesc(self, DamageType.COLD, dam), damDesc(self, DamageType.FIRE, dam), dur, t.getArmor(self, t)) end, } @@ -189,7 +189,7 @@ newTalent{ You blast your foes with %0.1f Fire damage based on your current Psi, %0.1f Cold damage based on your max Psi minus your current Psi, in a radius %d ball. This sets your current Psi to half of your maximum Psi. The damage scales with your Mindpower.]]): - format(damDesc(self, DamageType.FIRE, dam2), damDesc(self, DamageType.COLD, dam1), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.FIRE, dam2), damDesc(self, DamageType.COLD, dam1), self:getTalentRadius(t)) end, } diff --git a/game/modules/tome/data/talents/psionic/thought-forms.lua b/game/modules/tome/data/talents/psionic/thought-forms.lua index b8eb34a4a9a5b9efa31d374dab727846848358cc..a12243863729bc5f2c18203a1556854e1ed2e0df 100644 --- a/game/modules/tome/data/talents/psionic/thought-forms.lua +++ b/game/modules/tome/data/talents/psionic/thought-forms.lua @@ -258,7 +258,7 @@ newTalent{ local stat = t.getStatBonus(self, t) return ([[Forge a bowman, clad in leather armor, from your thoughts. The bowman learns Bow Mastery, Combat Accuracy, Steady Shot, Crippling Shot, and Rapid Shot as it levels up, and has +%d Strength, +%d Dexterity, and +%d Constitution. Activating this talent will put all other thought-forms on cooldown. - The stat bonuses will improve with your Mindpower.]]):format(stat/2, stat, stat/2) + The stat bonuses will improve with your Mindpower.]]):tformat(stat/2, stat, stat/2) end, } @@ -360,7 +360,7 @@ newTalent{ local stat = t.getStatBonus(self, t) return ([[Forge a warrior wielding a battle-axe from your thoughts. The warrior learns Weapon Mastery, Combat Accuracy, Berserker, Death Dance, and Rush as it levels up, and has +%d Strength, +%d Dexterity, and +%d Constitution. Activating this talent will put all other thought-forms on cooldown. - The stat bonuses will improve with your Mindpower.]]):format(stat, stat/2, stat/2) + The stat bonuses will improve with your Mindpower.]]):tformat(stat, stat/2, stat/2) end, } @@ -464,7 +464,7 @@ newTalent{ local stat = t.getStatBonus(self, t) return ([[Forge a defender wielding a sword and shield from your thoughts. The solider learns Armor Training, Weapon Mastery, Combat Accuracy, Shield Pummel, and Shield Wall as it levels up, and has +%d Strength, +%d Dexterity, and +%d Constitution. Activating this talent will put all other thought-forms on cooldown. - The stat bonuses will improve with your Mindpower.]]):format(stat/2, stat/2, stat) + The stat bonuses will improve with your Mindpower.]]):tformat(stat/2, stat/2, stat) end, } @@ -506,7 +506,7 @@ newTalent{ return([[Forge a guardian from your thoughts alone. Your guardian's primary stat will be improved by %d, its two secondary stats by %d, and it will have Magic, Cunning, and Willpower equal to your own. At talent level one, you may forge a mighty bowman clad in leather armor; at level three a powerful warrior wielding a two-handed weapon; and at level five a strong defender using a sword and shield. Thought forms can only be maintained up to a range of %d, and will rematerialize next to you if this range is exceeded. - Only one thought-form may be active at a time, and the stat bonuses will improve with your Mindpower.]]):format(bonus, bonus/2, range) + Only one thought-form may be active at a time, and the stat bonuses will improve with your Mindpower.]]):tformat(bonus, bonus/2, range) end, } @@ -519,7 +519,7 @@ newTalent{ mode = "passive", info = function(self, t) local level = math.floor(self:getTalentLevel(t)) - return([[Your thought-forms now know Lucid Dreamer, Biofeedback, and Psychometry at talent level %d.]]):format(level) + return([[Your thought-forms now know Lucid Dreamer, Biofeedback, and Psychometry at talent level %d.]]):tformat(level) end, } @@ -598,7 +598,7 @@ newTalent{ return ([[Take direct control of your active thought-form, improving its damage, attack speed, and maximum life by %d%%, but leaving your body a defenseless shell. At talent level 1, any Feedback your Thought-Forms gain will be given to you as well. At level 3, your Thought-Forms gain a bonus to all saves equal to your Mental Save. At level 5, they gain a bonus to all damage equal to your bonus mind damage. The secondary bonuses apply whether or not this talent is currently active. - The life, damage, and speed bonus will improve with your Mindpower.]]):format(bonus) + The life, damage, and speed bonus will improve with your Mindpower.]]):tformat(bonus) end, } @@ -617,6 +617,6 @@ newTalent{ local defense = t.getDefensePower(self, t) local speed = t.getSpeedPower(self, t) return([[You now gain %d%% mind speed while Thought-Form: Bowman is active, %d Mindpower while Thought-Form: Warrior is active, and %d%% resist all while Thought-Form: Defender is active. - These bonuses scale with your Mindpower.]]):format(speed, offense, defense, speed) + These bonuses scale with your Mindpower.]]):tformat(speed, offense, defense, speed) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/trance.lua b/game/modules/tome/data/talents/psionic/trance.lua index 9fbc17daeb24934032f713e452d3a18aacd8627c..bd2884e2ad78d16babe68ca08d5c63b9debfca9c 100644 --- a/game/modules/tome/data/talents/psionic/trance.lua +++ b/game/modules/tome/data/talents/psionic/trance.lua @@ -84,7 +84,7 @@ newTalent{ local saves = t.getSavingThrows(self, t) return ([[Activate to purge negative status effects (100%% chance for the first effect, -%d%% less chance for each subsequent effect). While this talent is sustained all your saving throws are increased by %d. The chance to purge and saving throw bonus will scale with your mindpower. - Only one trance may be active at a time.]]):format(purge, saves) + Only one trance may be active at a time.]]):tformat(purge, saves) end, } @@ -135,7 +135,7 @@ newTalent{ local regen = t.getLifeRegen(self, t) return ([[Activate to heal yourself for %0.2f life. While this talent is sustained your healing modifier will be increased by %d%% and your life regen by %0.2f. The effects will scale with your mindpower. - Only one trance may be active at a time.]]):format(heal, healing_modifier, regen) + Only one trance may be active at a time.]]):tformat(heal, healing_modifier, regen) end, } @@ -175,7 +175,7 @@ newTalent{ local chance = t.getCriticalChance(self, t) return ([[Activate to increase your critical strike damage by %d%% for 10 turns. While this talent is sustained your critical strike chance is improved by +%d%%. The effects will scale with your mindpower. - Only one trance may be active at a time.]]):format(power, chance) + Only one trance may be active at a time.]]):tformat(power, chance) end, } @@ -187,6 +187,6 @@ newTalent{ mode = "passive", info = function(self, t) return ([[When you wield or wear an item infused by psionic, nature, or arcane-disrupting forces you improve all values under its 'when wielded/worn' field %d%%. - Note this doesn't change the item itself, but rather the effects it has on your person (the item description will not reflect the improved values).]]):format(1) + Note this doesn't change the item itself, but rather the effects it has on your person (the item description will not reflect the improved values).]]):tformat(1) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/psionic/voracity.lua b/game/modules/tome/data/talents/psionic/voracity.lua index bd13fa995e55411568033700a5c8bbd9d6ae1eb1..9cce8d548354e5f04c4344a1e6e5182e36da685b 100644 --- a/game/modules/tome/data/talents/psionic/voracity.lua +++ b/game/modules/tome/data/talents/psionic/voracity.lua @@ -80,7 +80,7 @@ newTalent{ This will slow all targets within radius %d by %d%% (max %d%%) for four turns, draining %0.1f (max %0.1f) stamina from each. You replenish %d (max %d) Psi from the first target, with each additional target restoring 20%% less than the one before it. The strength of these effects increases as your Psi depletes and with your Mindpower.]]) - :format(range, t.getSlow(self, t)*100, t.getSlow(self, t, 0)*100, t.getDam(self, t), t.getDam(self, t, 0), t.getLeech(self, t), t.getLeech(self, t, 0)) + :tformat(range, t.getSlow(self, t)*100, t.getSlow(self, t, 0)*100, t.getDam(self, t), t.getDam(self, t, 0), t.getLeech(self, t), t.getLeech(self, t, 0)) end, } @@ -140,7 +140,7 @@ newTalent{ This will freeze all targets within radius %d for %d (max %d) turns, and deal %0.1f (max %0.1f) Cold damage. You replenish %d (max %d) Psi from the first target, with each additional target restoring 20%% less than the one before it. The damage and the strength of these effects increases as your Psi depletes and with your Mindpower.]]) - :format(range, t.getDur(self, t), t.getDur(self, t, 0), damDesc(self, DamageType.COLD, t.getDam(self, t)), damDesc(self, DamageType.COLD, t.getDam(self, t, 0)), t.getLeech(self, t), t.getLeech(self, t, 0)) + :tformat(range, t.getDur(self, t), t.getDur(self, t, 0), damDesc(self, DamageType.COLD, t.getDam(self, t)), damDesc(self, DamageType.COLD, t.getDam(self, t, 0)), t.getLeech(self, t), t.getLeech(self, t, 0)) end, } @@ -209,7 +209,7 @@ newTalent{ This deals %0.1f (max %0.1f) Lightning damage to all targets around you within radius %d, and has a %d%% (max %d%%) chance to daze them for 3 turns. You replenish %d (max %d) Psi from the first target, with each additional target restoring 20%% less than the one before it. The strength of these effects increases as your Psi depletes and with your Mindpower.]]) - :format(t.getDam(self, t), t.getDam(self, t, 0), range, t.getDaze(self, t), t.getDaze(self, t, 0), t.getLeech(self, t), t.getLeech(self, t, 0)) + :tformat(t.getDam(self, t), t.getDam(self, t, 0), range, t.getDaze(self, t), t.getDaze(self, t, 0), t.getLeech(self, t), t.getLeech(self, t, 0)) end, } @@ -228,7 +228,7 @@ newTalent{ end, info = function(self, t) local recover = t.getPsiRecover(self, t) - return ([[Increases your maximum energy by %d. You also gain %0.1f Psi for each kill and %0.1f Psi for each mind critical.]]):format(5 * recover, 0.5*recover, recover) + return ([[Increases your maximum energy by %d. You also gain %0.1f Psi for each kill and %0.1f Psi for each mind critical.]]):tformat(5 * recover, 0.5*recover, recover) end, } diff --git a/game/modules/tome/data/talents/spells/acid-alchemy.lua b/game/modules/tome/data/talents/spells/acid-alchemy.lua index 47db2f84965ef67312c66755b2a0933a3ba14f0a..b5f173c31dcbbf04507c819e0cf4edf3b5bf3c33 100644 --- a/game/modules/tome/data/talents/spells/acid-alchemy.lua +++ b/game/modules/tome/data/talents/spells/acid-alchemy.lua @@ -43,7 +43,7 @@ newTalent{ return ([[When you throw your alchemist bombs, you infuse them with explosive acid that can blind. In addition all acid damage you do is increased by %d%%. You cannot have more than one alchemist infusion sustain active at once.]]): - format(daminc) + tformat(daminc) end, } @@ -69,7 +69,7 @@ newTalent{ return ([[While Acid Infusion is active, your bombs coat your golem in acid for %d turns when they hit it. While coated, any melee hit against your golem has a %d%% chance to trigger a radius 4 cone of acid towards the attacker that does %0.1f Acid damage to all caught inside. (This can only happen once per turn.) The effects increase with your talent level and with the Spellpower and damage modifiers of your golem.]]): - format(duration, chance, dam) + tformat(duration, chance, dam) end, } @@ -117,7 +117,7 @@ newTalent{ return ([[A radius %d pool of acid spawns at the target location, doing %0.1f Acid damage each turn for %d turns. All creatures caught in the mire will also suffer a %d%% slowness effect. The damage will increase with your Spellpower.]]): - format(radius, damDesc(self, DamageType.ACID, damage), duration, slow) + tformat(radius, damDesc(self, DamageType.ACID, damage), duration, slow) end, } @@ -185,6 +185,6 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Acid erupts all around your target, dealing %0.1f acid damage. The acid attack is extremely distracting, and may remove up to %d physical or mental temporary effects or mental sustains (depending on the Spell Save of the target). - The damage and chance to remove effects will increase with your Spellpower.]]):format(damDesc(self, DamageType.ACID, damage), t.getRemoveCount(self, t)) + The damage and chance to remove effects will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.ACID, damage), t.getRemoveCount(self, t)) end, } diff --git a/game/modules/tome/data/talents/spells/advanced-golemancy.lua b/game/modules/tome/data/talents/spells/advanced-golemancy.lua index d5ca95a3d53375143fdbe33739216ce6514dcc83..be0d72e0d24ca5a7ee1f0734ab5ef6455bd76ff9 100644 --- a/game/modules/tome/data/talents/spells/advanced-golemancy.lua +++ b/game/modules/tome/data/talents/spells/advanced-golemancy.lua @@ -56,7 +56,7 @@ newTalent{ info = function(self, t) local power=t.getPower(self, t) return ([[You tap into your golem's life energies to replenish your own. Drains %d life.]]): - format(power) + tformat(power) end, } @@ -70,7 +70,7 @@ newTalent{ info = function(self, t) return ([[Insert a pair of gems into your golem, providing it with the gem bonuses and changing its melee attack damage type. You may remove the gems and insert different ones; this does not destroy the gems you remove. Gem level usable: %d - Gem changing is done in the golem's inventory.]]):format(self:getTalentLevelRaw(t)) + Gem changing is done in the golem's inventory.]]):tformat(self:getTalentLevelRaw(t)) end, } @@ -121,7 +121,7 @@ newTalent{ return ([[You activate a special mode of your golem, boosting its regeneration rate by %0.2f life per turn for %d turns. If your golem was dead, it is instantly brought back to life with %d%% life. While supercharged, your golem is enraged and deals 25%% more damage.]]): - format(regen, turns, life) + tformat(regen, turns, life) end, } @@ -161,6 +161,6 @@ newTalent{ return ([[Increases your golem's life, mana and stamina regeneration rates by %0.2f. At level 1, 3 and 5, the golem also gains a new rune slot. Even without this talent, Golems start with three rune slots.]]): - format(self:getTalentLevelRaw(t)) + tformat(self:getTalentLevelRaw(t)) end, } diff --git a/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua b/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua index 15b883ec99d4f5833cc30662a22da2a5ef0fb00f..e216d3b6a0e12476debf0d8535d9a5fd5a94de34 100644 --- a/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua +++ b/game/modules/tome/data/talents/spells/advanced-necrotic-minions.lua @@ -206,7 +206,7 @@ newTalent{ return ([[Minions are only tools. You may dispose of them... Violently. Makes the targeted minion explode for %d%% of its maximum life in a radius of %d as blight damage. Beware! Don't get caught in the blast! (unless you know Dark Empthy: %d%% chance to ignore damage)]]): - format(t.getDamage(self, t),t.radius(self,t), self:getTalentLevelRaw(self.T_DARK_EMPATHY) * 20) + tformat(t.getDamage(self, t),t.radius(self,t), self:getTalentLevelRaw(self.T_DARK_EMPATHY) * 20) end, } @@ -300,7 +300,7 @@ newTalent{ At level 5, it makes an eternal bone giant. At level 6, it has a 20%% chance to produce a runed bone giant. Only %s can be active at any time.]]): - format(necroEssenceDead(self, true) and "two bone giants" or "one bone giant") + tformat(necroEssenceDead(self, true) and "two bone giants" or "one bone giant") end, } @@ -354,7 +354,7 @@ newTalent{ info = function(self, t) return ([[Sacrifice a bone giant minion. Using its bones, you make a temporary shield around you that prevents any attacks from doing more than %d%% of your total life. The effect lasts %d turns.]]): - format(t.getPower(self, t), t.getTurns(self, t)) + tformat(t.getPower(self, t), t.getTurns(self, t)) end, } @@ -366,6 +366,6 @@ newTalent{ mode = "passive", info = function(self, t) return ([[Each minion you summon has a chance to be a more advanced form of undead. Your chance for each type of minion is as follows:%s]]): - format(self:callTalent(self.T_CREATE_MINIONS,"MinionChancesDesc")) + tformat(self:callTalent(self.T_CREATE_MINIONS,"MinionChancesDesc")) end, } diff --git a/game/modules/tome/data/talents/spells/aegis.lua b/game/modules/tome/data/talents/spells/aegis.lua index a06b5bbc581e48fa44c4a58a4e3865019416003d..0aa0fb63e152e47339e526b90626c2e652c4de4e 100644 --- a/game/modules/tome/data/talents/spells/aegis.lua +++ b/game/modules/tome/data/talents/spells/aegis.lua @@ -43,7 +43,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[Imbues your body with arcane forces, reconstructing it to a default state, healing for %d life. The life healed will increase with your Spellpower.]]): - format(heal) + tformat(heal) end, } @@ -82,7 +82,7 @@ newTalent{ Every damage shield, time shield, displacement shield, and disruption shield affecting you has its power increased by %d%%. At level 5, it also increases the duration of all shields by 1 turn. The shield value will increase with your Spellpower.]]): - format(shield, dur) + tformat(shield, dur) end, } @@ -116,7 +116,7 @@ newTalent{ Each time you receive a direct heal (not a life regeneration effect), you automatically gain a damage shield equal to %d%% of the heal value for 3 turns. This will replace an existing damage shield if the new shield value and duration would be greater than or equal to the old. The shield value will increase with your Spellpower.]]): - format(shield) + tformat(shield) end, } @@ -175,6 +175,6 @@ newTalent{ Damage Shield, Time Shield, Displacement Shield: Increase the damage absorption value by %d%%. Disruption Shield: Tap into the stored energies to restore the shield (at a rate of 2 energy per 1 shield power). Any leftover energy is converted back into mana at a rate of %0.2f energy per mana. The charging will increase with your Spellpower.]]): - format(t.getNumEffects(self, t), shield, 100 / t.getDisruption(self, t)) + tformat(t.getNumEffects(self, t), shield, 100 / t.getDisruption(self, t)) end, } diff --git a/game/modules/tome/data/talents/spells/aether.lua b/game/modules/tome/data/talents/spells/aether.lua index 95730b19d9eeb21e1b5a2ba15b0825d8ed6de127..c0bb0486657c061609c3dc5c612e774980a0c607 100644 --- a/game/modules/tome/data/talents/spells/aether.lua +++ b/game/modules/tome/data/talents/spells/aether.lua @@ -139,7 +139,7 @@ newTalent{ The beam will also damage its epicenter each turn for 10%% of the damage (but it will not silence). The beam spins with incredible speed (1600%%) and can only hit the same target up to 3 times inbetween their turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ARCANE, dam)) + tformat(damDesc(self, DamageType.ARCANE, dam)) end, } @@ -184,7 +184,7 @@ newTalent{ Each explosion does %0.2f arcane damage in radius 2, and will each trigger at one turn intervals. Subsequent casts will stack but the explosions will still only occur once per turn and will be centered at the last area targeted. The damage will increase with your Spellpower.]]): - format(t.getNb(self, t), damDesc(self, DamageType.ARCANE, damage)) + tformat(t.getNb(self, t), damDesc(self, DamageType.ARCANE, damage)) end, } @@ -237,7 +237,7 @@ newTalent{ local list = {} for i = 1, 10 do if levels[i] then table.sort(levels[i]) - list[#list+1] = ("At level %d: #AQUAMARINE#%s#LAST#"):format(i, table.concatNice(levels[i], '#LAST#, #AQUAMARINE#', '#LAST# and #AQUAMARINE#')) + list[#list+1] = ("At level %d: #AQUAMARINE#%s#LAST#"):tformat(i, table.concatNice(levels[i], '#LAST#, #AQUAMARINE#', '#LAST# and #AQUAMARINE#')) end end return table.concat(list, "\n") end, @@ -257,7 +257,7 @@ newTalent{ Spells considered arcane for the purpose of not-losing mana are: %s]]): - format(t.getNb(self, t), t.getSpellsList(self, t)) + tformat(t.getNb(self, t), t.getSpellsList(self, t)) end, } @@ -301,6 +301,6 @@ newTalent{ local ressistpen = t.getResistPenalty(self, t) return ([[Surround yourself with Pure Aether, increasing all your arcane damage by %0.1f%% and ignoring %d%% arcane resistance of your targets. At level 5 casting Aether Avatar removes up to %d magical or physical detrimental effects.]]) - :format(damageinc, ressistpen, t.getNbRemove(self, t)) + :tformat(damageinc, ressistpen, t.getNbRemove(self, t)) end, } diff --git a/game/modules/tome/data/talents/spells/air.lua b/game/modules/tome/data/talents/spells/air.lua index 9f860e88e7aabe1c0c205425038818b144a1a44f..e43665cd9bbafd71e4269935cc787dc29406846c 100644 --- a/game/modules/tome/data/talents/spells/air.lua +++ b/game/modules/tome/data/talents/spells/air.lua @@ -51,7 +51,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Conjures up mana into a powerful beam of lightning, doing %0.2f to %0.2f damage (%0.2f average) The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHTNING, damage / 3), + tformat(damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) @@ -135,7 +135,7 @@ newTalent{ return ([[Invokes a forking beam of lightning doing %0.2f to %0.2f damage (%0.2f average) and forking to another target. It can hit up to %d targets up to 10 grids apart, and will never hit the same one twice; nor will it hit the caster. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHTNING, damage / 3), + tformat(damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2), targets) @@ -190,7 +190,7 @@ newTalent{ return ([[A gentle wind circles around the caster, increasing carrying capacity by %d, defense against projectiles by %d, pin immunity by %d%% and stun immunity by %d%%. At level 4 it also makes you levitate slightly above the ground, allowing you to ignore some traps. At level 5 it also grants %d%% movement speed and removes %d fatigue.]]): - format(encumberance, rangedef, pin*100, stun*100, t.getSpeed(self, t) * 100, t.getFatigue(self, t)) + tformat(encumberance, rangedef, pin*100, stun*100, t.getSpeed(self, t) * 100, t.getFatigue(self, t)) end, } @@ -246,6 +246,6 @@ newTalent{ return ([[Conjures a furious, raging lightning storm with a radius of 6 that follows you as long as this spell is active. Each turn, a random lightning bolt will hit up to %d of your foes for 1.00 to %0.2f damage (%0.2f average) in a radius of 1. The damage will increase with your Spellpower.]]): - format(targetcount, damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, damage / 2)) + tformat(targetcount, damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, damage / 2)) end, } diff --git a/game/modules/tome/data/talents/spells/animus.lua b/game/modules/tome/data/talents/spells/animus.lua index 5d1ddef888f6de2c6ec230724de0356c781fce4b..0a7ea9a262ebdb3120e0c290d9a79007fb3f124e 100644 --- a/game/modules/tome/data/talents/spells/animus.lua +++ b/game/modules/tome/data/talents/spells/animus.lua @@ -46,7 +46,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[Crush and consume one of your captured souls, healing you for %d life and restoring %d mana. The life and mana healed will increase with your Spellpower.]]): - format(heal, heal / 3) + tformat(heal, heal / 3) end, } @@ -66,7 +66,7 @@ newTalent{ local max, chance = t.getMax(self, t), t.getChance(self, t) return ([[Your hunger for souls grows ever more. When you kill a creature you rip away its animus with great force, granting you a %d%% chance to gain one additional soul. In addition you are able to store %d more souls.]]): - format(chance, max) + tformat(chance, max) end, } @@ -196,7 +196,7 @@ newTalent{ Only one husk can be controlled at any time, if this spell is cast again it will dispell the previous husk, even if no new one is created. Bosses, other undeads and summoned creatures can not be turned into husks. The damage and chance will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage), t.getMaxLife(self, t)) + tformat(damDesc(self, DamageType.DARKNESS, damage), t.getMaxLife(self, t)) end, } @@ -226,7 +226,7 @@ newTalent{ - Cold Flames: freeze chance increased to 100%% - Freeze: becomes a ball of radius 2 and makes all targets wet - Consume Soul: effect increased by 50%%]]): - format(nb) + tformat(nb) end, } @@ -261,6 +261,6 @@ newTalent{ info = function(self, t) local rad = self:getTalentRadius(t) return ([[The husk self-destructs, destroying itself and generating a blast of shadows in a radius of %d, doing %0.2f darkness damage. - This spell is only usable when the husk's master is dead.]]):format(rad, damDesc(self, DamageType.DARKNESS, 50 + 10 * self.level)) + This spell is only usable when the husk's master is dead.]]):tformat(rad, damDesc(self, DamageType.DARKNESS, 50 + 10 * self.level)) end, } diff --git a/game/modules/tome/data/talents/spells/arcane.lua b/game/modules/tome/data/talents/spells/arcane.lua index f07e33bef21d0346780780a9bfcce0443f9d5c80..8bcd8c247016a46ff98e224f307eccf021b7b263 100644 --- a/game/modules/tome/data/talents/spells/arcane.lua +++ b/game/modules/tome/data/talents/spells/arcane.lua @@ -57,7 +57,7 @@ newTalent{ return ([[Conjures up mana into a powerful bolt doing %0.2f arcane damage. At level 3, it becomes a beam. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ARCANE, damage)) + tformat(damDesc(self, DamageType.ARCANE, damage)) end, } @@ -91,7 +91,7 @@ newTalent{ info = function(self, t) local resist = self.sustain_talents[t.id] and self.sustain_talents[t.id].display_resist or t.getArcaneResist(self, t) return ([[Your mastery of magic allows you to enter a state of deep concentration, increasing your Spellpower by %d and arcane resistance by %d%%.]]): - format(t.getSpellpowerIncrease(self, t), resist) + tformat(t.getSpellpowerIncrease(self, t), resist) end, } @@ -127,7 +127,7 @@ newTalent{ If no foes are found, the target will take 50%% more arcane damage. If the target dies, the vortex explodes, releasing all remaining damage in a radius 2 ball of arcane force. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.ARCANE, dam)) + tformat(damDesc(self, DamageType.ARCANE, dam)) end, } @@ -217,12 +217,12 @@ newTalent{ self.disruption_shield_storage = self.disruption_shield_storage or 0 if cb.value <= self.disruption_shield_power then - game:delayedLogDamage(src, self, 0, ("#SLATE#(%d absorbed)#LAST#"):format(cb.value), false) + game:delayedLogDamage(src, self, 0, ("#SLATE#(%d absorbed)#LAST#"):tformat(cb.value), false) self.disruption_shield_power = self.disruption_shield_power - cb.value cb.value = 0 return true else - game:delayedLogDamage(src, self, 0, ("#SLATE#(%d absorbed)#LAST#"):format(cb.value), false) + game:delayedLogDamage(src, self, 0, ("#SLATE#(%d absorbed)#LAST#"):tformat(cb.value), false) self.disruption_shield_power = 0 cb.value = cb.value - self.disruption_shield_power end @@ -244,7 +244,7 @@ newTalent{ self:incMana(-mana_usage) self.disruption_shield_storage = math.min(self.disruption_shield_storage + store, t.getMaxDamage(self, t)) - game:delayedLogDamage(src, self, 0, ("#PURPLE#(%d mana)#LAST#"):format(store), false) + game:delayedLogDamage(src, self, 0, ("#PURPLE#(%d mana)#LAST#"):tformat(store), false) if do_explode then -- Deactivate without losing energy @@ -305,6 +305,6 @@ newTalent{ Current shield power: %d Current stored energy: %d]]): - format(t.getMaxAbsorb(self, t), t.getManaRatio(self, t), t.getMaxDamage(self, t), self:getTalentRadius(t), t.getMaxDamageLimit(self, t), self.disruption_shield_power or 0, self.disruption_shield_storage or 0) + tformat(t.getMaxAbsorb(self, t), t.getManaRatio(self, t), t.getMaxDamage(self, t), self:getTalentRadius(t), t.getMaxDamageLimit(self, t), self.disruption_shield_power or 0, self.disruption_shield_storage or 0) end, } diff --git a/game/modules/tome/data/talents/spells/conveyance.lua b/game/modules/tome/data/talents/spells/conveyance.lua index e111e95b9c9afeb0e1891aa174c4798dcefa3fad..81ae77038ed49c133912aaecb2ae1c5e75c7598e 100644 --- a/game/modules/tome/data/talents/spells/conveyance.lua +++ b/game/modules/tome/data/talents/spells/conveyance.lua @@ -163,7 +163,7 @@ newTalent{ At level 4, it allows you to specify which creature to teleport. At level 5, it allows you to choose the target area (radius %d). If the target area is not in line of sight, there is a chance the spell will partially fail and teleport the target randomly. - The range will increase with your Spellpower.]]):format(range, radius) + The range will increase with your Spellpower.]]):tformat(range, radius) end, } @@ -279,7 +279,7 @@ newTalent{ At level 5, it allows you to choose the target area (radius %d). If the target area is not in line of sight, there is a chance the spell will partially fail and teleport the target randomly. Random teleports have a minimum range of %d. - The range will increase with your Spellpower.]]):format(range, radius, t.minRange) + The range will increase with your Spellpower.]]):tformat(range, radius, t.minRange) end, } @@ -317,7 +317,7 @@ newTalent{ Any time the caster should take damage, there is a %d%% chance that it will instead be warped by the shield and hit the designated target. Once the maximum damage (%d) is absorbed, the time runs out (%d turns), or the target dies, the shield will crumble. The max damage the shield can absorb will increase with your Spellpower.]]): - format(chance, maxabsorb, duration) + tformat(chance, maxabsorb, duration) end, } @@ -350,6 +350,6 @@ newTalent{ Teleports up to %d grids. After a successful probability travel you are left unstable, unable to do it again for a number of turns equal to %d%% of the number of tiles you blinked through. The range will improve with your Spellpower.]]): - format(range, (2 + (5 - math.min(self:getTalentLevelRaw(t), 5)) / 2) * 100) + tformat(range, (2 + (5 - math.min(self:getTalentLevelRaw(t), 5)) / 2) * 100) end, } diff --git a/game/modules/tome/data/talents/spells/deeprock.lua b/game/modules/tome/data/talents/spells/deeprock.lua index 8a0535272081978f858ec6bdc2bd13adfeec0f7e..9dce99fe77e6e2dafa9bf5a77dc10ac9044c3bd8 100644 --- a/game/modules/tome/data/talents/spells/deeprock.lua +++ b/game/modules/tome/data/talents/spells/deeprock.lua @@ -43,21 +43,21 @@ newTalent{ local xsi = "" if self:knowTalent(self.T_VOLCANIC_ROCK) then xs = xs..(", Arcane damage by %0.1f%% and Arcane damage penetration by %0.1f%%"): - format(self:callTalent(self.T_VOLCANIC_ROCK, "getDam"), self:callTalent(self.T_VOLCANIC_ROCK, "getPen")) + tformat(self:callTalent(self.T_VOLCANIC_ROCK, "getDam"), self:callTalent(self.T_VOLCANIC_ROCK, "getPen")) end if self:knowTalent(self.T_BOULDER_ROCK) then xs = (", Nature damage by %0.1f%% and Nature damage penetration by %0.1f%%"): - format(self:callTalent(self.T_BOULDER_ROCK, "getDam"), self:callTalent(self.T_BOULDER_ROCK, "getPen"))..xs + tformat(self:callTalent(self.T_BOULDER_ROCK, "getDam"), self:callTalent(self.T_BOULDER_ROCK, "getPen"))..xs end if self:knowTalent(self.T_MOUNTAINHEWN) then xsi = (" and %d%% bleeding, poison, disease, and stun immunity"): - format(self:callTalent(self.T_MOUNTAINHEWN, "getImmune")*100) + tformat(self:callTalent(self.T_MOUNTAINHEWN, "getImmune")*100) end return ([[You call upon the very core of the world, harnessing its power to transform your body. For %d turns you become a Deeprock Elemental, gaining two size categories%s. This increases your Physical damage by %0.1f%% and Physical damage penetration by %0.1f%%%s, and armour by %d.%s The effects increase with spellpower.]]) - :format(t.getTime(self, t), xsi, t.getDam(self, t),t.getPen(self, t), xs, t.getArmor(self, t), self:getTalentLevel(self.T_MOUNTAINHEWN) >=5 and "\nIn addition, you use your physical resistance versus all damage against you." or "") + :tformat(t.getTime(self, t), xsi, t.getDam(self, t),t.getPen(self, t), xs, t.getArmor(self, t), self:getTalentLevel(self.T_MOUNTAINHEWN) >=5 and "\nIn addition, you use your physical resistance versus all damage against you." or "") end, } @@ -73,7 +73,7 @@ newTalent{ local tv = self:getTalentFromId(self.T_VOLCANO) return ([[When you turn into a Deeprock elemental your Arcane damage is increased by %0.1f%%, Arcane damage penetration by %0.1f%% and you gain the power to invoke volcanos: %s]]): - format(t.getDam(self, t),t.getPen(self, t), self:getTalentFullDescription(tv, self:getTalentLevelRaw(t) * 2):toString()) -- rescale volcano talent levels? + tformat(t.getDam(self, t),t.getPen(self, t), self:getTalentFullDescription(tv, self:getTalentLevelRaw(t) * 2):toString()) -- rescale volcano talent levels? end, } @@ -89,7 +89,7 @@ newTalent{ local tv = self:getTalentFromId(self.T_THROW_BOULDER) return ([[When you turn into a Deeprock elemental your Nature damage is increased by %0.1f%%, Nature damage penetration by %0.1f%% and you gain the power to throw boulders: %s]]): - format(t.getDam(self, t),t.getPen(self, t), self:getTalentFullDescription(tv, self:getTalentLevelRaw(t) * 2):toString()) + tformat(t.getDam(self, t),t.getPen(self, t), self:getTalentFullDescription(tv, self:getTalentLevelRaw(t) * 2):toString()) end, } @@ -103,6 +103,6 @@ newTalent{ info = function(self, t) return ([[While in deeprock form, you become indomitable, granting you %d%% resistance to cuts, poisons, diseases and stuns. At level 5 and higher, while Deeprock Form is active, all incoming damage is applied against physical resistance instead of the normal resistance type.]]): - format(t.getImmune(self, t)*100) + tformat(t.getImmune(self, t)*100) end, } diff --git a/game/modules/tome/data/talents/spells/divination.lua b/game/modules/tome/data/talents/spells/divination.lua index 70dba56e490544021f0c0a3619f30eeca4fa3595..3be5a6c4bd16d2c4140273e3e6835c40c58c12f8 100644 --- a/game/modules/tome/data/talents/spells/divination.lua +++ b/game/modules/tome/data/talents/spells/divination.lua @@ -51,7 +51,7 @@ newTalent{ Only one arcane eye can exist at any given time. At level 4, if cast on a creature it will follow it until it expires, or until the creature dies. At level 5, it will place a magical marker on the creatures, negating invisibility and stealth effects.]]): - format(duration, radius) + tformat(duration, radius) end, } @@ -88,7 +88,7 @@ newTalent{ return ([[You focus your senses, getting information from moments in the future. Improves your capacity to see invisible foes by +%d, to see through stealth by +%d, and to perform a critical spell cast by +%d%%. The effects will improve with your Spellpower.]]): - format(seeinvisible, seestealth, criticalchance) + tformat(seeinvisible, seestealth, criticalchance) end, } @@ -110,7 +110,7 @@ newTalent{ info = function(self, t) local radius = t.getRadius(self, t) return ([[Form a map of your surroundings in your mind in a radius of %d]]): - format(radius) + tformat(radius) end, } @@ -145,6 +145,6 @@ newTalent{ return ([[Echoes of the future flash before your eyes, allowing you to sense some incoming attacks. If the attack is not physical, you will erect a temporary shield that reduces all damage of this type by %d%% for 5 turns. This effect can only happen once every 5 turns, and happens before damage is taken. - The bonus will increase with your Spellpower.]]):format(resist) + The bonus will increase with your Spellpower.]]):tformat(resist) end, } diff --git a/game/modules/tome/data/talents/spells/earth.lua b/game/modules/tome/data/talents/spells/earth.lua index a9aa1f077b4a7c90bdf82b7f3f19bc3b29a3db9c..8b9074309163fd5ca9c99c030090f4d73b754c45 100644 --- a/game/modules/tome/data/talents/spells/earth.lua +++ b/game/modules/tome/data/talents/spells/earth.lua @@ -65,7 +65,7 @@ newTalent{ The beam continues to a range of %d, affecting any creatures in its path, dealing %0.2f physical damage to them. If any walls are dug, you gain %d%% physical damage bonus for 6 turns. The damage will increase with your Spellpower.]]): - format(nb, self:getTalentRange(t), damDesc(self, DamageType.PHYSICAL, damage), t.getBonus(self, t)) + tformat(nb, self:getTalentRange(t), damDesc(self, DamageType.PHYSICAL, damage), t.getBonus(self, t)) end, } @@ -118,7 +118,7 @@ newTalent{ return ([[The caster's skin grows as hard as stone, granting a %d bonus to Armour. Each time you are hit in melee, you have a %d%% chance to reduce the cooldown of an Earth or Stone spell by 2 (this effect can only happen once per turn). The bonus to Armour will increase with your Spellpower.]]): - format(armor, t.getCDChance(self, t)) + tformat(armor, t.getCDChance(self, t)) end, } @@ -152,7 +152,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Conjures a mudslide, dealing %0.2f physical damage in a radius of %d. Any creatures caught inside will be knocked back 8 spaces. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.PHYSICAL, damage), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.PHYSICAL, damage), self:getTalentRadius(t)) end, } @@ -259,6 +259,6 @@ newTalent{ At level 4, it becomes targetable. Any hostile creature caught in the radius will also suffer %0.2f physical damage. Duration and damage will improve with your Spellpower.]]): - format(duration, damDesc(self, DamageType.PHYSICAL, damage)) + tformat(duration, damDesc(self, DamageType.PHYSICAL, damage)) end, } diff --git a/game/modules/tome/data/talents/spells/eldritch-shield.lua b/game/modules/tome/data/talents/spells/eldritch-shield.lua index e4029f1fdd4e7a6c38e7643cc4a406c85d4180c8..674c0afed574b7c6047f53239bac73b8ba056c8a 100644 --- a/game/modules/tome/data/talents/spells/eldritch-shield.lua +++ b/game/modules/tome/data/talents/spells/eldritch-shield.lua @@ -59,7 +59,7 @@ newTalent{ If either attack hits, the target will be stunned for %d turns and you automatically Block. The chance for the attack to stun increases with your Physical Power, but it is considered a magical attack and thus is resisted with spell save, rather than physical save. Damage increases with Spellpower.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.6, (100 + self:combatTalentSpellDamage(t, 50, 300)) / 100), t.getDuration(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.6, (100 + self:combatTalentSpellDamage(t, 50, 300)) / 100), t.getDuration(self, t)) end, } @@ -98,7 +98,7 @@ newTalent{ return ([[Imbues your shields with arcane power, dealing %0.2f arcane damage with each melee strike and %0.2f arcane damage when hit. Allows counterstrikes after incomplete blocks and the cooldown of Block is reduced by %d turns. The damage will increase with Spellpower.]]): - format(damDesc(self, DamageType.ARCANE, dam), damDesc(self, DamageType.ARCANE, dam * 0.7), t.getBlockCD(self, t)) + tformat(damDesc(self, DamageType.ARCANE, dam), damDesc(self, DamageType.ARCANE, dam * 0.7), t.getBlockCD(self, t)) end, } @@ -142,7 +142,7 @@ newTalent{ return ([[Channel eldritch forces into a ferocious melee attack, hitting the target three times with your shields doing %d%% Nature damage. If any of the attacks hit, the target will be dazed for %d turns and your Block cooldown is reset. The chance for the attack to daze increases with you Physical Power, but it is considered a magical attack and thus is resisted with spell save, rather than physical save.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.6, 1.6), t.getDuration(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.6, 1.6), t.getDuration(self, t)) end, } @@ -184,7 +184,7 @@ newTalent{ You perform a melee attack for %d%% arcane damage against everyone within radius %d. Any creature hit by the attack will be submitted to a Counterstrike effect for 3 turns, as if you had blocked against them. At level 5 your Block cooldown is reset.]]) - :format(100 * self:combatTalentWeaponDamage(t, 1.3, 2.6), self:getTalentRadius(t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 1.3, 2.6), self:getTalentRadius(t)) end, } diff --git a/game/modules/tome/data/talents/spells/eldritch-stone.lua b/game/modules/tome/data/talents/spells/eldritch-stone.lua index b86fb4f109c1c42bb9341d0bc5b9de5d3831c9f4..76200f294d77a389afd735353f2f4b30a70eb8be 100644 --- a/game/modules/tome/data/talents/spells/eldritch-stone.lua +++ b/game/modules/tome/data/talents/spells/eldritch-stone.lua @@ -77,18 +77,18 @@ newTalent{ info = function(self, t) local xs = "" if self:knowTalent(self.T_POISONED_SPIKES) then - xs = ("poisoned for %0.1f Nature damage over 6 turns (%d%% healing reduction)"):format(damDesc(self, DamageType.NATURE, self:callTalent(self.T_POISONED_SPIKES, "getDamage")), self:callTalent(self.T_POISONED_SPIKES, "getHeal")) + xs = ("poisoned for %0.1f Nature damage over 6 turns (%d%% healing reduction)"):tformat(damDesc(self, DamageType.NATURE, self:callTalent(self.T_POISONED_SPIKES, "getDamage")), self:callTalent(self.T_POISONED_SPIKES, "getHeal")) end if self:knowTalent(self.T_ELDRITCH_SPIKES) then - xs = xs..(", blasted for %0.1f Arcane damage (and silenced for %d turns),"):format(damDesc(self, DamageType.ARCANE, self:callTalent(self.T_ELDRITCH_SPIKES, "getDamage")), self:callTalent(self.T_ELDRITCH_SPIKES, "getSilence")) + xs = xs..(", blasted for %0.1f Arcane damage (and silenced for %d turns),"):tformat(damDesc(self, DamageType.ARCANE, self:callTalent(self.T_ELDRITCH_SPIKES, "getDamage")), self:callTalent(self.T_ELDRITCH_SPIKES, "getSilence")) end if self:knowTalent(self.T_IMPALING_SPIKES) then - xs = xs..(" impaled for %0.1f Physical damage (and disarmed for %d turns),"):format(damDesc(self, DamageType.PHYSICAL, self:callTalent(self.T_IMPALING_SPIKES, "getDamage")), self:callTalent(self.T_IMPALING_SPIKES, "getDisarm")) + xs = xs..(" impaled for %0.1f Physical damage (and disarmed for %d turns),"):tformat(damDesc(self, DamageType.PHYSICAL, self:callTalent(self.T_IMPALING_SPIKES, "getDamage")), self:callTalent(self.T_IMPALING_SPIKES, "getDisarm")) end return ([[Stony spikes erupt from the ground in a radius %d cone. Creatures caught in the area will be %scut for %0.1f Physical damage dealt over 6 turns. The damage increases with your Spellpower, and the chance to apply the detrimental effect(s) improves with Spellpower or Physical Power, whichever is greater.]]) - :format(self:getTalentRadius(t), xs ~="" and xs.." and " or "", damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) + :tformat(self:getTalentRadius(t), xs ~="" and xs.." and " or "", damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t))) end, } @@ -106,7 +106,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Coats your stone spikes with insidious poison, dealing %0.1f total nature damage over 6 turns while reducing all healing by %d%%. The damage increases with Spellpower and the chance to poison and healing reduction increases with either Spellpower or Physical Power, whichever is greater.]]): - format(damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.getHeal(self, t)) + tformat(damDesc(self, DamageType.NATURE, t.getDamage(self, t)), t.getHeal(self, t)) end, } @@ -122,7 +122,7 @@ newTalent{ local dam = t.getDamage(self, t) return ([[Imbues your stone spikes with arcane forces, dealing %0.1f Arcane damage and silencing each target hit for %d turns. The damage increases with Spellpower and the chance to silence increases with either Spellpower or Physical Power, whichever is greater.]]): - format(damDesc(self, DamageType.ARCANE, t.getDamage(self, t)), t.getSilence(self, t)) + tformat(damDesc(self, DamageType.ARCANE, t.getDamage(self, t)), t.getSilence(self, t)) end, } @@ -137,7 +137,7 @@ newTalent{ info = function(self, t) return ([[Your stone spikes grow in length, instantly dealing %0.1f Physical damage and disarming targets hit for %d turns. The damage increases with Spellpower and the chance to disarm increases with either Spellpower or Physical Power, whichever is greater.]]): - format(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDisarm(self, t)) + tformat(damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), t.getDisarm(self, t)) end, } diff --git a/game/modules/tome/data/talents/spells/energy-alchemy.lua b/game/modules/tome/data/talents/spells/energy-alchemy.lua index b6285c16d9980665e80cbe7e6cab613a3f5ac35a..bd96c1a6c1a22d6b33776f705a2a0175ae2c77fd 100644 --- a/game/modules/tome/data/talents/spells/energy-alchemy.lua +++ b/game/modules/tome/data/talents/spells/energy-alchemy.lua @@ -43,7 +43,7 @@ newTalent{ return ([[When you throw your alchemist bombs, you infuse them with lightning damage that can daze your foes. In addition all lightning damage you do is increased by %d%%. You cannot have more than one alchemist infusion sustain active at once.]]): - format(daminc) + tformat(daminc) end, } @@ -73,7 +73,7 @@ newTalent{ info = function(self, t) return ([[While Lightning Infusion is active, your bombs energize your golem. All talents on cooldown on your golem have %d%% chance to be reduced by %d.]]): - format(t.getChance(self, t), t.getNb(self, t)) + tformat(t.getChance(self, t), t.getNb(self, t)) end, } @@ -132,7 +132,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[By crushing an alchemist gem you generate a thunderclap in a cone of radius %d dealing %0.2f physical damage and %0.2f lightning damage. All creatures caught inside are knocked back and disarmed for %d turns. - The duration and damage will increase with your Spellpower.]]):format(radius, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), t.getDuration(self, t)) + The duration and damage will increase with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.PHYSICAL, t.getDamage(self, t)), damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), t.getDuration(self, t)) end, } @@ -210,6 +210,6 @@ newTalent{ In addition, damage to your health will energize you. At the start of each turn in which you have lost at least %d life (20%% of your maximum life) since your last turn, you will gain %d%% of a turn. The effects increase with your Spellpower.]]): - format(speed, range, damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), self.max_life * 0.2, turn) + tformat(speed, range, damDesc(self, DamageType.LIGHTNING, t.getDamage(self, t)), self.max_life * 0.2, turn) end, } diff --git a/game/modules/tome/data/talents/spells/enhancement.lua b/game/modules/tome/data/talents/spells/enhancement.lua index a1acbdd1c34c2a787ee17c0a71ba0f48f07e02f4..486b351894b40130892809659ffd4cac5155b74f 100644 --- a/game/modules/tome/data/talents/spells/enhancement.lua +++ b/game/modules/tome/data/talents/spells/enhancement.lua @@ -61,7 +61,7 @@ newTalent{ return ([[Strike twice with your mainhand weapon dealing %d%% Arcane damage. If either of these attacks hit you gain %d mana. The mana gain will increase with your Spellpower.]]): - format(t.getDamage(self, t)*100, t.getMana(self, t)) + tformat(t.getDamage(self, t)*100, t.getMana(self, t)) end, } @@ -105,7 +105,7 @@ newTalent{ return ([[Engulfs your hands (and weapons) in a sheath of fire, dealing %0.2f fire damage per melee attack and increasing all fire damage dealt by %d%%. Each hit will also regenerate %0.2f stamina. The effects will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, firedamage), firedamageinc, self:getTalentLevel(t) / 3) + tformat(damDesc(self, DamageType.FIRE, firedamage), firedamageinc, self:getTalentLevel(t) / 3) end, } @@ -148,7 +148,7 @@ newTalent{ return ([[Engulfs your hands (and weapons) in a sheath of lightning, dealing %d lightning damage with a chance to daze (25%%) per melee attack and increasing all lightning damage dealt by %d%%. Each hit will also regenerate %0.2f mana. The effects will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHTNING, icedamage), icedamageinc, self:getTalentLevel(t) / 3) + tformat(damDesc(self, DamageType.LIGHTNING, icedamage), icedamageinc, self:getTalentLevel(t) / 3) end, } @@ -192,6 +192,6 @@ newTalent{ return ([[You concentrate on your inner self, increasing your Strength, Dexterity, Magic, and Cunning by %d. Additionally, you gain a shield absorbing %d damage before you take damage every %d turns. The stat increase and shield will improve with your Spellpower.]]): - format(statinc, absorb, self:getTalentCooldown(t) ) + tformat(statinc, absorb, self:getTalentCooldown(t) ) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/spells/explosives.lua b/game/modules/tome/data/talents/spells/explosives.lua index 553b41c0d0b0d31349af1812f13f6fe6704e953f..245f56fa1aeb6793bd40741976921160a1887469 100644 --- a/game/modules/tome/data/talents/spells/explosives.lua +++ b/game/modules/tome/data/talents/spells/explosives.lua @@ -144,7 +144,7 @@ newTalent{ return ([[Imbue an alchemist gem with an explosive charge of mana and throw it. The gem will explode for %0.1f %s damage. Each kind of gem will also provide a specific effect. - The damage will improve with better gems and with your Spellpower.]]):format(dam, DamageType:get(damtype).name) + The damage will improve with better gems and with your Spellpower.]]):tformat(dam, DamageType:get(damtype).name) end, } @@ -169,7 +169,7 @@ newTalent{ info = function(self, t) return ([[Grants %d%% protection to you, your golem and other friendly creatures against the elemental damage of your own bombs, and against external elemental damage (fire, cold, lightning and acid) by %d%%. At talent level 5 it also protects against all side effects of your bombs.]]): - format(math.min(100, self:getTalentLevelRaw(t) * 20), self:getTalentLevelRaw(t) * 3) + tformat(math.min(100, self:getTalentLevelRaw(t) * 20), self:getTalentLevelRaw(t) * 3) end, } @@ -199,7 +199,7 @@ newTalent{ local min, max = t.minmax(self, t) return ([[Your alchemist bombs now affect a radius of %d around them. Explosion damage may increase by %d%% (if the explosion is not contained) to %d%% if the area of effect is confined.]]): - format(t.getRadius(self, t), min*100, max*100) --I5 + tformat(t.getRadius(self, t), min*100, max*100) --I5 end, } @@ -299,6 +299,6 @@ newTalent{ return ([[Crush together two alchemist gems, making them extremely unstable. You then throw them to a target area, where they explode on impact, dealing %0.2f physical damage and knocking back any creatures in the blast radius. Each kind of gem will also provide a specific effect. - The damage will improve with better gems and with your Spellpower.]]):format(dam) + The damage will improve with better gems and with your Spellpower.]]):tformat(dam) end, } diff --git a/game/modules/tome/data/talents/spells/fire-alchemy.lua b/game/modules/tome/data/talents/spells/fire-alchemy.lua index 2ec15e1daed305baa3e7f6c12e3b9446d7fa3910..2c58a6c06f9ff3b924fe0102a5612c29a6aed073 100644 --- a/game/modules/tome/data/talents/spells/fire-alchemy.lua +++ b/game/modules/tome/data/talents/spells/fire-alchemy.lua @@ -43,7 +43,7 @@ newTalent{ return ([[When you throw your alchemist bombs, you infuse them with flames that burn for a few turns. In addition all fire damage you do is increased by %d%%. You cannot have more than one alchemist infusion sustain active at once.]]): - format(daminc) + tformat(daminc) end, } @@ -109,7 +109,7 @@ newTalent{ return ([[Throw a smoke bomb, blocking everyone's line of sight. The smoke dissipates after %d turns. If a creature inside is victim of fire burns the smoke will consume instantly, replicating the burns on all foes and increasing its duration by %d turns. Duration will increase with your Spellpower.]]): - format(duration, math.ceil(duration / 3)) + tformat(duration, math.ceil(duration / 3)) end, } @@ -154,7 +154,7 @@ newTalent{ return ([[A furious fire storm rages around the caster, doing %0.2f fire damage in a radius of 3 each turn for %d turns. You closely control the firestorm, preventing it from harming your party members. The damage and duration will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage), duration) + tformat(damDesc(self, DamageType.FIRE, damage), duration) end, } @@ -238,6 +238,6 @@ newTalent{ return ([[Turn your body into pure flame, increasing your fire resistance by %d%%, burning any creatures striking you in melee for %0.2f fire damage, and randomly launching up to %d slow-moving fire bolt(s) per turn at targets in sight, each dealing %0.2f fire damage. The projectiles safely go through your friends without harming them. The damage and resistance will increase with your Spellpower.]]): - format(res,onhitdam, t.getNumber(self, t), insightdam) + tformat(res,onhitdam, t.getNumber(self, t), insightdam) end, } diff --git a/game/modules/tome/data/talents/spells/fire.lua b/game/modules/tome/data/talents/spells/fire.lua index 83e80c57012df2663c4baffcb93d16789042da86..973eaaef0b20aa9699c2c902b90a07924e01b07b 100644 --- a/game/modules/tome/data/talents/spells/fire.lua +++ b/game/modules/tome/data/talents/spells/fire.lua @@ -71,7 +71,7 @@ newTalent{ return ([[Conjures up a bolt of fire, setting the target ablaze and doing %0.2f fire damage over 3 turns. At level 5, it will create a beam of flames. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage)) + tformat(damDesc(self, DamageType.FIRE, damage)) end, } @@ -121,7 +121,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Conjures up a cone of flame with radius %d. Any targets caught in the area will suffer Burning Shock, stunning them and dealing %0.2f fire damage over %d turns. The damage will increase with your Spellpower.]]): - format(radius, damDesc(self, DamageType.FIRE, damage), stunduration) + tformat(radius, damDesc(self, DamageType.FIRE, damage), stunduration) end, } @@ -167,7 +167,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Conjures up a bolt of fire that moves toward the target and explodes into a flash of fire, doing %0.2f fire damage in a radius of %d. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage), radius) + tformat(damDesc(self, DamageType.FIRE, damage), radius) end, } @@ -212,7 +212,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Raging flames burn foes and allies alike, doing %0.2f fire damage in a radius of %d each turn for %d turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage), radius, duration) + tformat(damDesc(self, DamageType.FIRE, damage), radius, duration) end, } diff --git a/game/modules/tome/data/talents/spells/frost-alchemy.lua b/game/modules/tome/data/talents/spells/frost-alchemy.lua index 9cd5010ed09f1ed209a81daea244381a79091366..e00e1a4caca4e917a6607c9130d6131fa374920a 100644 --- a/game/modules/tome/data/talents/spells/frost-alchemy.lua +++ b/game/modules/tome/data/talents/spells/frost-alchemy.lua @@ -43,7 +43,7 @@ newTalent{ return ([[When you throw your alchemist bombs, you infuse them with cold damage that can freeze your foes. In addition all cold damage you do is increased by %d%%. You cannot have more than one alchemist infusion sustain active at once.]]): - format(daminc) + tformat(daminc) end, } @@ -69,7 +69,7 @@ newTalent{ return ([[While Frost Infusion is active, your bombs deposit a layer of ice on your golem for %d turns when they hit it. This ice provides your golem with %d additional armour, melee attacks against it deal %0.1f Cold damage to the attacker, and 50%% of its damage is converted to Cold. The effects increase with your talent level and with the Spellpower and damage modifiers of your golem.]]): - format(duration, armor, dam) + tformat(duration, armor, dam) end, } @@ -101,7 +101,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Invoke a blast of cold all around you with a radius of %d, doing %0.1f Cold damage and freezing creatures to the ground for %d turns. Affected creatures can still act, but cannot move. - The duration will increase with your Spellpower.]]):format(radius, damDesc(self, DamageType.COLD, t.getDamage(self, t)), t.getDuration(self, t)) + The duration will increase with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.COLD, t.getDamage(self, t)), t.getDuration(self, t)) end, } @@ -139,6 +139,6 @@ newTalent{ return ([[Turn your body into pure ice, increasing your Cold damage affinity by %d%% and your physical resistance by %d%%. You have a %d%% chance to shrug off all direct critical hits (physical, mental, spell). The effects increase with your Spellpower.]]): - format(t.getAffinity(self, t), resist, crit) + tformat(t.getAffinity(self, t), resist, crit) end, } diff --git a/game/modules/tome/data/talents/spells/golem.lua b/game/modules/tome/data/talents/spells/golem.lua index 50505fb865b44d6beaf2e2a80ad0e1ba219b70f9..ff6b06a1ad06c9c3c7ad4dec74dda46e41feb088 100644 --- a/game/modules/tome/data/talents/spells/golem.lua +++ b/game/modules/tome/data/talents/spells/golem.lua @@ -80,7 +80,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Your golem rushes to the target, dealing %d%% damage and knocking it back. Knockback chance will increase with talent level. - While rushing the golem becomes ethereal, passing harmlessly through creatures on the path to its target.]]):format(100 * damage) + While rushing the golem becomes ethereal, passing harmlessly through creatures on the path to its target.]]):tformat(100 * damage) end, } @@ -119,7 +119,7 @@ newTalent{ return true end, info = function(self, t) - return ([[The golem taunts targets in a radius of %d, forcing them to attack it.]]):format(self:getTalentRadius(t)) + return ([[The golem taunts targets in a radius of %d, forcing them to attack it.]]):tformat(self:getTalentRadius(t)) end, } @@ -182,7 +182,7 @@ newTalent{ return ([[Your golem rushes to the target, crushing it into the ground for %d turns and doing %d%% damage. Pinning chance will increase with talent level. While rushing the golem becomes ethereal, passing harmlessly through creatures on the path to its target.]]): - format(duration, 100 * damage) + tformat(duration, 100 * damage) end, } @@ -250,7 +250,7 @@ newTalent{ return ([[Your golem rushes to the target and creates a shockwave with radius 2, dazing all foes for %d turns and doing %d%% damage. Daze chance increases with talent level. While rushing the golem becomes ethereal, passing harmlessly through creatures on the path to its target.]]): - format(duration, 100 * damage) + tformat(duration, 100 * damage) end, } @@ -304,7 +304,7 @@ newTalent{ return ([[Your golem fires a beam from his eyes, doing %0.2f fire damage, %0.2f cold damage or %0.2f lightning damage. The beam will always be the maximun range it can be and will not harm friendly creatures. The damage will increase with your golem's Spellpower.]]): - format(damDesc(self, DamageType.FIRE, damage), damDesc(self, DamageType.COLD, damage), damDesc(self, DamageType.LIGHTNING, damage)) + tformat(damDesc(self, DamageType.FIRE, damage), damDesc(self, DamageType.COLD, damage), damDesc(self, DamageType.LIGHTNING, damage)) end, } @@ -338,7 +338,7 @@ newTalent{ Any damage it takes is partly reflected (%d%%) to the attacker. The golem still takes full damage. Damage returned will increase with your golem's Spellpower.]]): - format(t.getReflect(self, t)) + tformat(t.getReflect(self, t)) end, } @@ -382,7 +382,7 @@ newTalent{ local rad = self:getTalentRadius(t) local dam = t.getDamage(self, t) return ([[Your golem pulls all foes within radius %d toward itself while dealing %0.2f arcane damage.]]): - format(rad, dam) + tformat(rad, dam) end, } @@ -425,7 +425,7 @@ newTalent{ Burning is cumulative; the longer they stay within range, they higher the fire damage they take. In addition the golem gains %d%% fire resistance. Molten Skin damage will not affect friendly creatures. - The damage and resistance will increase with your Spellpower.]]):format(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 12, 120)), 5 + self:getTalentLevel(t), 30 + self:combatTalentSpellDamage(t, 12, 60)) + The damage and resistance will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(t, 12, 120)), 5 + self:getTalentLevel(t), 30 + self:combatTalentSpellDamage(t, 12, 60)) end, } @@ -455,7 +455,7 @@ newTalent{ info = function(self, t) local rad = self:getTalentRadius(t) return ([[The golem self-destructs, destroying itself and generating a blast of fire in a radius of %d, doing %0.2f fire damage. - This spell is only usable when the golem's master is dead.]]):format(rad, damDesc(self, DamageType.FIRE, 50 + 10 * self.level)) + This spell is only usable when the golem's master is dead.]]):tformat(rad, damDesc(self, DamageType.FIRE, 50 + 10 * self.level)) end, } @@ -476,7 +476,7 @@ newTalent{ local dir = self:getTalentLevelRaw(t) >= 3 and "In" or "De" return ([[The golem automatically reconfigures heavy mail and massive armours designed for living creatures to protect its own vital areas. %screases armour value by %d, armour hardiness by %d%%, and provides %d%% critical hit reduction when wearing heavy mail or massive armour.]]): - format(dir, armor, hardiness, critreduce) + tformat(dir, armor, hardiness, critreduce) end, } @@ -506,6 +506,6 @@ newTalent{ end, info = function(self, t) return ([[Breathe poison on your foes, doing %d damage over a few turns. - The damage will increase with your Magic.]]):format(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "mag", 30, 460))) + The damage will increase with your Magic.]]):tformat(damDesc(self, DamageType.NATURE, self:combatTalentStatDamage(t, "mag", 30, 460))) end, } diff --git a/game/modules/tome/data/talents/spells/golemancy.lua b/game/modules/tome/data/talents/spells/golemancy.lua index 01707d6c5803cf4e1ec3f45207b408db43dd6b73..ad9a941c3179e63d497a767617c01bfe98a05d70 100644 --- a/game/modules/tome/data/talents/spells/golemancy.lua +++ b/game/modules/tome/data/talents/spells/golemancy.lua @@ -189,7 +189,7 @@ newTalent{ info = function(self, t) return ([[Interact with your golem to check its inventory, talents, ... Note: You can also do that while taking direct control of the golem.]]): - format() + tformat() end, } @@ -337,7 +337,7 @@ newTalent{ return ([[Take care of your golem: - If it is destroyed, you will take some time to reconstruct it (this takes 15 alchemist gems and 20 turns). - If it is alive but hurt, you will be able to repair it for %d (takes 2 alchemist gems). Spellpower, alchemist gem and Golem Power talent all influence the healing done.]]): - format(heal) + tformat(heal) end, } @@ -382,7 +382,7 @@ newTalent{ local damage = td.getPercentInc(self.alchemy_golem, td) self.alchemy_golem.talents[Talents.T_WEAPON_COMBAT], self.alchemy_golem.talents[Talents.T_WEAPONS_MASTERY] = olda, oldd return ([[Improves your golem's proficiency with weapons, increasing its Accuracy by %d, Physical Power by %d and damage by %d%%.]]): - format(attack, power, 100 * damage) + tformat(attack, power, 100 * damage) end, } @@ -423,7 +423,7 @@ newTalent{ return ([[Improves your golem's armour training, damage resistance, and healing efficiency. Increases all damage resistance by %d%%; increases Armour value by %d, Armour hardiness by %d%%, reduces chance to be critically hit by %d%% when wearing heavy mail or massive plate armour, and increases healing factor by %d%%. The golem can always use any kind of armour, including massive armours.]]): - format(res, heavyarmor, hardiness, crit, t.getHealingFactor(self, t)*100) + tformat(res, heavyarmor, hardiness, crit, t.getHealingFactor(self, t)*100) end, } @@ -461,7 +461,7 @@ newTalent{ info = function(self, t) local power=t.getPower(self, t) return ([[You invoke your golem to your side, granting it a temporary melee power increase of %d for 5 turns.]]): - format(power) + tformat(power) end, } @@ -505,6 +505,6 @@ newTalent{ end, info = function(self, t) return ([[Teleport to your golem, while your golem teleports to your location. Your foes will be confused, and those that were attacking you will have a %d%% chance to target your golem instead.]]): - format(math.min(100, self:getTalentLevelRaw(t) * 15 + 25)) + tformat(math.min(100, self:getTalentLevelRaw(t) * 15 + 25)) end, } diff --git a/game/modules/tome/data/talents/spells/grave.lua b/game/modules/tome/data/talents/spells/grave.lua index beb6bef49d38790619868ebf9caafcee703cd9fe..c5dc879c51b68eb177035840f1b8ab7eceb512d1 100644 --- a/game/modules/tome/data/talents/spells/grave.lua +++ b/game/modules/tome/data/talents/spells/grave.lua @@ -54,7 +54,7 @@ newTalent{ return ([[Conjures up a bolt of cold that moves toward the target and explodes into a chilly circle of death, doing %0.2f cold damage in a radius of %d. The damage will increase with your Spellpower. Additionally, when Will o' the Wisp is sustained, minions killed by this spell will spawn Wisps.]]): - format(damDesc(self, DamageType.COLD, damage), radius) + tformat(damDesc(self, DamageType.COLD, damage), radius) end, callbackOnKill = function(self, t, target, death_note) if not death_note then return end @@ -140,7 +140,7 @@ newTalent{ return ([[Surround yourself with undead energies. When one of your minions is destroyed while inside your necrotic aura, it has a %d%% chance to create a will o' the wisp. The will o' the wisp will take a random target in sight and home in on it. When it reaches the target, it will explode for %0.2f cold damage. The damage will increase with your Spellpower.]]): - format(chance, damDesc(self, DamageType.COLD, dam)) + tformat(chance, damDesc(self, DamageType.COLD, dam)) end, } @@ -332,7 +332,7 @@ newTalent{ local damage = t.getDamage(self, t) local darkCount = t.getDarkCount(self, t) return ([[Cold Flames slowly spread from %d spots in a radius of %d around the targeted location. The flames deal %0.2f cold damage, and have a chance of freezing. - Damage improves with your Spellpower.]]):format(darkCount, radius, damDesc(self, DamageType.COLD, damage)) + Damage improves with your Spellpower.]]):tformat(darkCount, radius, damDesc(self, DamageType.COLD, damage)) end, } @@ -371,6 +371,6 @@ newTalent{ local chance, val = t.getParams(self, t) return ([[Vampiric energies fill you; each time you deal damage, you have %d%% chance to heal for %d%% of the damage done. The absorption percent will increase with your Spellpower.]]): - format(chance, val) + tformat(chance, val) end, } diff --git a/game/modules/tome/data/talents/spells/ice.lua b/game/modules/tome/data/talents/spells/ice.lua index 5084ae0bf5837afad47103bca73fbe8d128e5e5e..2d15f0a3c70b13bb992c9ffe574cf52b7be4af5e 100644 --- a/game/modules/tome/data/talents/spells/ice.lua +++ b/game/modules/tome/data/talents/spells/ice.lua @@ -69,7 +69,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Condenses ambient water on a target, freezing it for %d turns and damaging it for %0.2f. If this is used on a friendly target the cooldown is reduced by 33%%.%s - The damage will increase with your Spellpower.]]):format(t.getDuration(self, t), damDesc(self, DamageType.COLD, damage), necroEssenceDead(self, true) and "\nAffects all creatures in radius 2." or "") + The damage will increase with your Spellpower.]]):tformat(t.getDuration(self, t), damDesc(self, DamageType.COLD, damage), necroEssenceDead(self, true) and "\nAffects all creatures in radius 2." or "") end, } @@ -102,7 +102,7 @@ newTalent{ return ([[Blast a wave of cold all around you with a radius of %d, doing %0.2f cold damage and freezing creatures to the ground for 4 turns. Affected creatures can still act, but cannot move. For each affected creature that is also wet the cooldown of Shatter decreases by 2. - The damage will increase with your Spellpower.]]):format(radius, damDesc(self, DamageType.COLD, damage)) + The damage will increase with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.COLD, damage)) end, } @@ -164,7 +164,7 @@ newTalent{ At most, it will affect %d foes. If you are yourself Frozen, it will instantly be destroyed. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.COLD, damage), targetcount) + tformat(damDesc(self, DamageType.COLD, damage), targetcount) end, } @@ -212,6 +212,6 @@ newTalent{ local pierce = t.getPierce(self, t) return ([[Surround yourself with Uttercold, increasing all your cold damage by %0.1f%% and ignoring %d%% cold resistance of your targets In addition you pierce through iceblocks easily, reducing damage absorbed from your attacks by iceblocks by %d%%.]]) - :format(damageinc, ressistpen, pierce) + :tformat(damageinc, ressistpen, pierce) end, } diff --git a/game/modules/tome/data/talents/spells/meta.lua b/game/modules/tome/data/talents/spells/meta.lua index 4553da6c995cbafd2a66a86f90c0820e2f8c5117..48c9ef6a8ae3abd0509f993e5311038e4a3a2897 100644 --- a/game/modules/tome/data/talents/spells/meta.lua +++ b/game/modules/tome/data/talents/spells/meta.lua @@ -115,7 +115,7 @@ newTalent{ At level 3, it can be targeted. ]]): -- At level 7, it takes no turn to cast. - format(count) + tformat(count) end, } @@ -144,7 +144,7 @@ newTalent{ return ([[You learn to finely craft and tune your offensive spells. You try to carve a hole in spells that affect an area to avoid damaging yourself. The chance of success is %d%%. In addition, you hone your damaging spells to spellshock their targets. Whenever you deal damage with a spell you attempt to spellshock them with %d more Spellpower than normal. Spellshocked targets suffer a temporary 20%% penalty to damage resistances.]]): - format(chance, self:combatTalentSpellDamage(t, 10, 320) / 4) + tformat(chance, self:combatTalentSpellDamage(t, 10, 320) / 4) end, } @@ -171,7 +171,7 @@ newTalent{ info = function(self, t) local cooldownred = t.getCooldownReduction(self, t) return ([[Reduces the cooldown of all spells by %d%%.]]): - format(cooldownred * 100) + tformat(cooldownred * 100) end, } @@ -220,6 +220,6 @@ newTalent{ local talentcount = t.getTalentCount(self, t) local maxlevel = t.getMaxLevel(self, t) return ([[Your mastery of arcane flows allow you to reset the cooldown of up to %d of your spells (that don't have a fixed cooldown) of tier %d or less.]]): - format(talentcount, maxlevel) + tformat(talentcount, maxlevel) end, } diff --git a/game/modules/tome/data/talents/spells/necrosis.lua b/game/modules/tome/data/talents/spells/necrosis.lua index 43c8a505d1349b26f424ffe58bd014c6243b6ab2..4eef9bf2d9befe10001ae9291be184a8c9dfd83c 100644 --- a/game/modules/tome/data/talents/spells/necrosis.lua +++ b/game/modules/tome/data/talents/spells/necrosis.lua @@ -47,7 +47,7 @@ newTalent{ end, info = function(self, t) return ([[The line between life and death blurs for you; you can only die when you reach -%d life.]]): - format(t.lifeBonus(self, t)) + tformat(t.lifeBonus(self, t)) end, } @@ -82,7 +82,7 @@ newTalent{ info = function(self, t) return ([[Your target's doom draws near. Its healing factor is reduced by 80%%, and will take %d%% of its remaining life (or %0.2f, whichever is lower) over 10 turns as arcane damage. The damage will increase with your Spellpower.]]): - format(t.getDamage(self, t), t.getMax(self, t)) + tformat(t.getDamage(self, t), t.getMax(self, t)) end, } @@ -153,7 +153,7 @@ newTalent{ local heal = t.getHeal(self, t) return ([[Absorb up to %d%% of the maximum life of each of your necrotic minions (even negative life, possibly destroying them). This will heal you for the greatest amount absorbed. The healing will increase with your Spellpower.]]): - format(heal) + tformat(heal) end, } @@ -292,6 +292,6 @@ newTalent{ The undead cannot use this talent. While active, it will drain 4 mana per turn. Once you die and turn into a Lich you can not invest any more in this talent.]]): - format() + tformat() end, } diff --git a/game/modules/tome/data/talents/spells/necrotic-minions.lua b/game/modules/tome/data/talents/spells/necrotic-minions.lua index e7281408d67efa756e525d330bed3c7d42ef41d7..d5440b7944dfc54bacbfde6661140048535a5e88 100644 --- a/game/modules/tome/data/talents/spells/necrotic-minions.lua +++ b/game/modules/tome/data/talents/spells/necrotic-minions.lua @@ -96,7 +96,7 @@ newTalent{ return ([[Emits a necrotic aura, sustaining your undead minions in a radius of %d. Minions outside the radius will lose %d%% life per turn. Any creature you or your minions kill within your aura will be absorbed as a soul that can be used to raise minions. Retch from your ghouls will also heal you, even if you are not undead.]]): - format(radius, decay) + tformat(radius, decay) end, } @@ -770,7 +770,7 @@ newTalent{ local c = getMinionChances(self) local chancelist = tstring({}) for i, k in ipairs(minion_order) do - if c[k] then chancelist:add(true,minions_list[k].name:capitalize(),(": %d%%"):format(c[k])) end + if c[k] then chancelist:add(true,minions_list[k].name:capitalize(),(": %d%%"):tformat(c[k])) end end return chancelist:toString() end, @@ -814,7 +814,7 @@ newTalent{ return ([[Fires powerful undead energies through your necrotic aura. For each recent death that happened inside your aura, you will raise an undead minion (up to %d minions). These minions will be raised within a cone that extends to the edge of your necrotic aura. The minions level is your level %+d. Each minion has a chance to be%s:%s]]): - format(nb, lev, mm, t.MinionChancesDesc(self, t)) + tformat(nb, lev, mm, t.MinionChancesDesc(self, t)) end, } @@ -836,7 +836,7 @@ newTalent{ info = function(self, t) return ([[Your dark power radiates further as you grow stronger. Increases the radius of your necrotic aura by %d, and reduces the decay rate of your minions outside the aura by %d%%. At level 3, necrotic minions inside your aura have a 25%% chance to refund their soul on death. If a minion turns into a will o' the wisp then the wisp will have that chance instead.]]): - format(math.floor(t.getbonusRadius(self, t)), math.min(7, self:getTalentLevelRaw(t))) + tformat(math.floor(t.getbonusRadius(self, t)), math.min(7, self:getTalentLevelRaw(t))) end, } @@ -872,7 +872,7 @@ newTalent{ info = function(self, t) return ([[A surge of power radiates to all your minions, increasing their Physical Power, Spellpower and Accuracy by %d, their Armour penetration by %d and their critical hit chance by %d for 6 turns. The effects will increase with your Spellpower.]]): - format(t.getPower(self, t), t.getAPR(self, t), t.getCrit(self, t)) + tformat(t.getPower(self, t), t.getAPR(self, t), t.getCrit(self, t)) end, } @@ -887,6 +887,6 @@ newTalent{ return ([[You share your powers with your minions, granting them %d%% of your resistances and saves. In addition all damage done by your minions to you or your other minions is reduced by %d%%. The effect will increase with your Spellpower.]]): - format(t.getPerc(self, t), self:getTalentLevelRaw(t) * 20) + tformat(t.getPerc(self, t), self:getTalentLevelRaw(t) * 20) end, } diff --git a/game/modules/tome/data/talents/spells/nightfall.lua b/game/modules/tome/data/talents/spells/nightfall.lua index 092061b52498ca68a6ed5e0ef98fe162d8d94d76..e59c7546cd632237593794e510d232c25d2c0809 100644 --- a/game/modules/tome/data/talents/spells/nightfall.lua +++ b/game/modules/tome/data/talents/spells/nightfall.lua @@ -72,7 +72,7 @@ newTalent{ At level 3, it will create a beam of shadows. At level 5, none of your Nightfall spells will hurt your minions. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage)) + tformat(damDesc(self, DamageType.DARKNESS, damage)) end, } @@ -119,7 +119,7 @@ newTalent{ Only one bane can affect a creature. Banes last for %d turns, and also deal %0.2f darkness damage. The damage will increase with your Spellpower.]]): - format(t.getBaneDur(self,t), damDesc(self, DamageType.DARKNESS, damage)) + tformat(t.getBaneDur(self,t), damDesc(self, DamageType.DARKNESS, damage)) end, } @@ -152,7 +152,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Invoke a cone dealing %0.2f darkness damage in a radius of %d. Any creatures caught inside must make check against their Mental Save or be knocked back 4 grids away. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage), self:getTalentRadius(t)) + tformat(damDesc(self, DamageType.DARKNESS, damage), self:getTalentRadius(t)) end, } @@ -190,6 +190,6 @@ newTalent{ Necrotic minions' damage against those creatures is increased by %d%%. The effects last for %d turns. The damage done and the minions' damage increase will increase with your Spellpower.]]): - format(damDesc(self, DamageType.DARKNESS, damage), self:getTalentRadius(t), speed, minion, dur) + tformat(damDesc(self, DamageType.DARKNESS, damage), self:getTalentRadius(t), speed, minion, dur) end, } diff --git a/game/modules/tome/data/talents/spells/phantasm.lua b/game/modules/tome/data/talents/spells/phantasm.lua index a9698d249bda38afb245226111d5bac8cf9ee0b5..f51b915ae72e2d6341bdf1c4b8f194661da6fc48 100644 --- a/game/modules/tome/data/talents/spells/phantasm.lua +++ b/game/modules/tome/data/talents/spells/phantasm.lua @@ -65,7 +65,7 @@ newTalent{ return ([[Creates a globe of pure light within a radius of %d that illuminates the area. At level 3, it also blinds all who see it (except the caster) for %d turns. At level 4, it also deals %0.2f light damage.]]): - format(radius, turn, damDesc(self, DamageType.LIGHT, dam)) + tformat(radius, turn, damDesc(self, DamageType.LIGHT, dam)) end, } @@ -95,7 +95,7 @@ newTalent{ local defence = t.getDefense(self, t) return ([[The caster's image blurs, granting a %d bonus to Defense. The bonus will increase with your Spellpower.]]): - format(defence) + tformat(defence) end, } @@ -129,7 +129,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[The caster is surrounded by a phantasmal shield granting 10%% chance to evade weapon attacks. If hit in melee, the shield will deal %d light damage to the attacker. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHT, damage)) + tformat(damDesc(self, DamageType.LIGHT, damage)) end, } @@ -178,6 +178,6 @@ newTalent{ As you become invisible, you fade out of phase with reality. All your damage is reduced by 70%%. This powerful spell constantly drains your mana (2 per turn) while active. The invisibility bonus will increase with your Spellpower.]]): - format(invisi) + tformat(invisi) end, } diff --git a/game/modules/tome/data/talents/spells/shades.lua b/game/modules/tome/data/talents/spells/shades.lua index 886971ad3db2cf07b53e854126dc9ab79c19206c..968383a9e32fc2edf6ab92d7ed57f46c4add8a3b 100644 --- a/game/modules/tome/data/talents/spells/shades.lua +++ b/game/modules/tome/data/talents/spells/shades.lua @@ -66,7 +66,7 @@ newTalent{ local chance = t.getChance(self, t) return ([[Surround your minions in a veil of darkness. The darkness will teleport them to you, and grant them %d%% evasion for 5 turns. The evasion chance will increase with your Spellpower.]]): - format(chance) + tformat(chance) end, } @@ -163,7 +163,7 @@ newTalent{ return ([[Reaches through the shadows into quieter places, summoning %d harmless creatures. Those creatures are then cursed with a Curse of Hate, making all hostile foes try to kill them. If the summoned creatures are killed by hostile foes, you have 70%% chance to gain a soul.]]): - format(math.ceil(self:getTalentLevel(t))) + tformat(math.ceil(self:getTalentLevel(t))) end, } @@ -200,7 +200,7 @@ newTalent{ ai_target = {actor=table.NIL_MERGE}, ai = "summoned", ai_real = "tactical", name = "Forgery of Haze ("..self.name..")", - desc = ([[A dark shadowy shape whose form resembles %s.]]):format(self.name), + desc = ([[A dark shadowy shape whose form resembles %s.]]):tformat(self.name), }) m:removeTimedEffectsOnClone() @@ -226,7 +226,7 @@ newTalent{ info = function(self, t) return ([[Through the shadows, you forge a temporary copy of yourself, existing for %d turns. The copy possesses your exact talents and stats, has %d%% life and deals %d%% damage.]]): - format(t.getDuration(self, t), t.getHealth(self, t) * 100, t.getDam(self, t) * 100) + tformat(t.getDuration(self, t), t.getHealth(self, t) * 100, t.getDam(self, t) * 100) end, } @@ -273,6 +273,6 @@ newTalent{ local affinity = t.getAffinity(self, t) return ([[Surround yourself with Frostdusk, increasing all your darkness and cold damage by %0.1f%%, and ignoring %d%% of the darkness resistance of your targets. In addition, all darkness damage you take heals you for %d%% of the damage.]]) - :format(damageinc, ressistpen, affinity) + :tformat(damageinc, ressistpen, affinity) end, } diff --git a/game/modules/tome/data/talents/spells/spells.lua b/game/modules/tome/data/talents/spells/spells.lua index 1d1d678df1f669fa14303ba4fb5b21dec9fb34d3..a516a8018dd95caa06248dbbf2862cacb9db69a8 100644 --- a/game/modules/tome/data/talents/spells/spells.lua +++ b/game/modules/tome/data/talents/spells/spells.lua @@ -18,59 +18,59 @@ -- darkgod@te4.org -- Archmage spells -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/arcane", name = "arcane", description = "Arcane studies manipulate the raw magic energies to shape them into both offensive and defensive spells." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/aether", name = "aether", description = "Tap on the core arcane forces of the aether, unleashing devastating effects on your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/arcane", name = _t"arcane", description = _t"Arcane studies manipulate the raw magic energies to shape them into both offensive and defensive spells." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/aether", name = _t"aether", description = _t"Tap on the core arcane forces of the aether, unleashing devastating effects on your foes." } -- Elemental spells -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/fire", name = "fire", description = "Harness the power of fire to burn your foes to ashes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/wildfire", name = "wildfire", min_lev = 10, description = "Harness the power of wildfire to burn your foes to ashes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/earth", name = "earth", description = "Harness the power of the earth to protect and destroy." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/stone", name = "stone", min_lev = 10, description = "Harness the power of the stone to protect and destroy." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/water", name = "water", description = "Harness the power of water to drown your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/ice", name = "ice", min_lev = 10, description = "Harness the power of ice to freeze and shatter your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/air", name = "air", description = "Harness the power of the air to fry your foes." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/storm", name = "storm", min_lev = 10, description = "Harness the power of the storm to incinerate your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/fire", name = _t"fire", description = _t"Harness the power of fire to burn your foes to ashes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/wildfire", name = _t"wildfire", min_lev = 10, description = _t"Harness the power of wildfire to burn your foes to ashes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/earth", name = _t"earth", description = _t"Harness the power of the earth to protect and destroy." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/stone", name = _t"stone", min_lev = 10, description = _t"Harness the power of the stone to protect and destroy." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/water", name = _t"water", description = _t"Harness the power of water to drown your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/ice", name = _t"ice", min_lev = 10, description = _t"Harness the power of ice to freeze and shatter your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/air", name = _t"air", description = _t"Harness the power of the air to fry your foes." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/storm", name = _t"storm", min_lev = 10, description = _t"Harness the power of the storm to incinerate your foes." } -- Various other magic schools -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/meta", name = "meta", description = "Meta spells alter the working of magic itself." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/temporal", name = "temporal", description = "The school of time manipulation." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/phantasm", name = "phantasm", description = "Control the power of tricks and illusions." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/enhancement", name = "enhancement", description = "Magical enhancement of your body." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/conveyance", name = "conveyance", generic = true, description = "Conveyance is the school of travel. It allows you to travel faster and to track others." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/divination", name = "divination", generic = true, description = "Divination allows the caster to sense its surroundings, and find hidden things." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/aegis", name = "aegis", generic = true, description = "Command the arcane forces into healing and protection." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/meta", name = _t"meta", description = _t"Meta spells alter the working of magic itself." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/temporal", name = _t"temporal", description = _t"The school of time manipulation." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/phantasm", name = _t"phantasm", description = _t"Control the power of tricks and illusions." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/enhancement", name = _t"enhancement", description = _t"Magical enhancement of your body." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/conveyance", name = _t"conveyance", generic = true, description = _t"Conveyance is the school of travel. It allows you to travel faster and to track others." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/divination", name = _t"divination", generic = true, description = _t"Divination allows the caster to sense its surroundings, and find hidden things." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/aegis", name = _t"aegis", generic = true, description = _t"Command the arcane forces into healing and protection." } -- Alchemist spells -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/explosives", name = "explosive admixtures", description = "Manipulate gems to turn them into explosive magical bombs." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/infusion", name = "infusion", description = "Infusion your gem bombs with the powers of the elements." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/golemancy-base", name = "golemancy", hide = true, description = "Learn to craft and upgrade your golem." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/golemancy", name = "golemancy", description = "Learn to craft and upgrade your golem." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/advanced-golemancy", name = "advanced-golemancy", min_lev = 10, description = "Advanced golem operations." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/war-alchemy", name = "fire alchemy", description = "Alchemical spells designed to wage war." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/fire-alchemy", name = "fire alchemy", description = "Alchemical control over fire." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/acid-alchemy", name = "acid alchemy", description = "Alchemical control over acid." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/frost-alchemy", name = "frost alchemy", description = "Alchemical control over frost." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/energy-alchemy", name = "energy alchemy", min_lev = 10, description = "Alchemical control over lightning energies." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/stone-alchemy-base", name = "stone alchemy", hide = true, description = "Manipulate gems, and imbue their powers into other objects." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/stone-alchemy", name = "stone alchemy", generic = true, description = "Alchemical control over stone and gems." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/staff-combat", name = "staff combat", generic = true, description = "Harness the power of magical staves." } -newTalentType{ type="golem/fighting", name = "fighting", description = "Golem melee capacity." } -newTalentType{ type="golem/arcane", no_silence=true, is_spell=true, name = "arcane", description = "Golem arcane capacity." } -newTalentType{ type="golem/golem", name = "golem", description = "Golem basic capacity." } -newTalentType{ type="golem/drolem", name = "drolem", description = "Drolem basic capacity." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/explosives", name = _t"explosive admixtures", description = _t"Manipulate gems to turn them into explosive magical bombs." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/infusion", name = _t"infusion", description = _t"Infusion your gem bombs with the powers of the elements." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/golemancy-base", name = _t"golemancy", hide = true, description = _t"Learn to craft and upgrade your golem." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/golemancy", name = _t"golemancy", description = _t"Learn to craft and upgrade your golem." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/advanced-golemancy", name = _t"advanced-golemancy", min_lev = 10, description = _t"Advanced golem operations." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/war-alchemy", name = _t"fire alchemy", description = _t"Alchemical spells designed to wage war." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/fire-alchemy", name = _t"fire alchemy", description = _t"Alchemical control over fire." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/acid-alchemy", name = _t"acid alchemy", description = _t"Alchemical control over acid." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/frost-alchemy", name = _t"frost alchemy", description = _t"Alchemical control over frost." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, mana_regen=true, type="spell/energy-alchemy", name = _t"energy alchemy", min_lev = 10, description = _t"Alchemical control over lightning energies." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/stone-alchemy-base", name = _t"stone alchemy", hide = true, description = _t"Manipulate gems, and imbue their powers into other objects." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/stone-alchemy", name = _t"stone alchemy", generic = true, description = _t"Alchemical control over stone and gems." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/staff-combat", name = _t"staff combat", generic = true, description = _t"Harness the power of magical staves." } +newTalentType{ type="golem/fighting", name = _t"fighting", description = _t"Golem melee capacity." } +newTalentType{ type="golem/arcane", no_silence=true, is_spell=true, name = _t"arcane", description = _t"Golem arcane capacity." } +newTalentType{ type="golem/golem", name = _t"golem", description = _t"Golem basic capacity." } +newTalentType{ type="golem/drolem", name = _t"drolem", description = _t"Drolem basic capacity." } -- Necromancer spells -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/necrotic-minions", name = "necrotic minions", description = "Create and empower dumb undead minions." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/advanced-necrotic-minions", name = "advanced necrotic minions", min_lev = 10, description = "Create and empower powerful undead minions." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/nightfall", name = "nightfall", description = "Manipulate darkness itself to slaughter your foes." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/shades", name = "shades", min_lev = 10, description = "Invoke and control shades." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/necrosis", name = "necrosis", description = "Gain control over death, eventually turning into a lich." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/grave", name = "grave", description = "Use the rotting cold doom of the tomb to fell your foes." } -newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/animus", name = "animus", description = "Crush the souls of your foes to improve yourself." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/necrotic-minions", name = _t"necrotic minions", description = _t"Create and empower dumb undead minions." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/advanced-necrotic-minions", name = _t"advanced necrotic minions", min_lev = 10, description = _t"Create and empower powerful undead minions." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/nightfall", name = _t"nightfall", description = _t"Manipulate darkness itself to slaughter your foes." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/shades", name = _t"shades", min_lev = 10, description = _t"Invoke and control shades." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/necrosis", name = _t"necrosis", description = _t"Gain control over death, eventually turning into a lich." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/grave", name = _t"grave", description = _t"Use the rotting cold doom of the tomb to fell your foes." } +newTalentType{ allow_random=true, no_silence=true, is_necromancy=true, is_spell=true, mana_regen=true, type="spell/animus", name = _t"animus", description = _t"Crush the souls of your foes to improve yourself." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/eldritch-shield", name = "eldritch shield", description = "Infuse arcane forces into your shield." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/eldritch-stone", name = "eldritch stone", description = "Summon stony spikes imbued with various powers." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/deeprock", name = "deeprock", description = "Harness the power of the world to turn into a Deeprock Form." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/eldritch-shield", name = _t"eldritch shield", description = _t"Infuse arcane forces into your shield." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/eldritch-stone", name = _t"eldritch stone", description = _t"Summon stony spikes imbued with various powers." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="spell/deeprock", name = _t"deeprock", description = _t"Harness the power of the world to turn into a Deeprock Form." } -- Generic requires for spells based on talent level spells_req1 = { diff --git a/game/modules/tome/data/talents/spells/staff-combat.lua b/game/modules/tome/data/talents/spells/staff-combat.lua index 7ab19fb763683c631b254ad4741133169036b9fe..6da44138743b1d0b0731cff1cbca034b9bd42776 100644 --- a/game/modules/tome/data/talents/spells/staff-combat.lua +++ b/game/modules/tome/data/talents/spells/staff-combat.lua @@ -86,7 +86,7 @@ newTalent{ The bolt will only hurt hostile targets, and pass safely through friendly ones. This attack always has a 100%% chance to hit, and ignores the target's Armour. When projecting a bolt with your staff its damage modifier is increased by 20%%.]]): - format(damagemod * 100) + tformat(damagemod * 100) end, } @@ -102,7 +102,7 @@ newTalent{ local damage = t.getDamage(self, t) local inc = t.getPercentInc(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using staves.]]): - format(100 * inc) + tformat(100 * inc) end, } @@ -134,7 +134,7 @@ newTalent{ info = function(self, t) local defense = t.getDefense(self, t) return ([[Adopt a defensive posture, increasing your Defense and Armour by %d.]]): - format(defense) + tformat(defense) end, } @@ -186,6 +186,6 @@ newTalent{ return ([[Hit a target for %d%% melee damage and stun it for %d turns. Stun chance will improve with Spellpower. At level 5, this attack cannot miss.]]): - format(100 * damage, dazedur) + tformat(100 * damage, dazedur) end, } diff --git a/game/modules/tome/data/talents/spells/stone-alchemy.lua b/game/modules/tome/data/talents/spells/stone-alchemy.lua index 75788777ffe2f504926826c00d07722f998d1f31..0f3db2e7b2f21422f7ec196f9a1ec5294cdd5e32 100644 --- a/game/modules/tome/data/talents/spells/stone-alchemy.lua +++ b/game/modules/tome/data/talents/spells/stone-alchemy.lua @@ -58,7 +58,7 @@ newTalent{ end, info = function(self, t) return ([[Carve 40 to 80 alchemist gems out of a natural gemstone. - Alchemist gems are used for many other spells, and each gem type creates a different effect.]]):format() + Alchemist gems are used for many other spells, and each gem type creates a different effect.]]):tformat() end, } @@ -109,7 +109,7 @@ newTalent{ if self:getTalentLevelRaw(t) >=4 then material=material.." -Stralite\n" end if self:getTalentLevelRaw(t) >=5 then material=material.." -Voratun" end return ([[Extract magical gems from metal weapons and armours. At this skill level you can work with: - %s]]):format(material) + %s]]):tformat(material) end, } @@ -150,7 +150,7 @@ newTalent{ end, info = function(self, t) return ([[Imbue %s with a gem (up to tier %d), granting it additional powers. - You can only imbue items once, and it is permanent.]]):format(self:knowTalent(self.T_CRAFTY_HANDS) and "body armour, a belt, or a head piece" or "a body armour", self:getTalentLevelRaw(t)) + You can only imbue items once, and it is permanent.]]):tformat(self:knowTalent(self.T_CRAFTY_HANDS) and "body armour, a belt, or a head piece" or "a body armour", self:getTalentLevelRaw(t)) end, } newTalent{ @@ -191,7 +191,7 @@ newTalent{ info = function(self, t) local range = t.getRange(self, t) return ([[Crush 5 alchemist gems into dust to mark impassable terrain next to you. You immediately enter it and appear on the other side of the obstacle, up to %d grids away.]]): - format(range) + tformat(range) end, } @@ -238,6 +238,6 @@ newTalent{ Stoned creatures are highly resistant to fire and lightning, and somewhat resistant to physical attacks. At level 3 the touch will become a beam. This spell may fail against creatures resistant to being stunned, that are specifically immune to stoning, or certain bosses.]]): - format(duration) + tformat(duration) end, } diff --git a/game/modules/tome/data/talents/spells/stone.lua b/game/modules/tome/data/talents/spells/stone.lua index 57d55a30517752bd2c43fb4e2643b32db0a60a13..18be9e54e8f5779c691d6601e7052b125698b8b9 100644 --- a/game/modules/tome/data/talents/spells/stone.lua +++ b/game/modules/tome/data/talents/spells/stone.lua @@ -66,7 +66,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Conjures %d missile-shaped rocks that you target individually at any target or targets in range. Each missile deals %0.2f physical damage, and an additional %0.2f bleeding damage every turn for 5 turns. At talent level 5, you can conjure one additional missile. - The damage will increase with your Spellpower.]]):format(count,damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/12)) + The damage will increase with your Spellpower.]]):tformat(count,damDesc(self, DamageType.PHYSICAL, damage/2), damDesc(self, DamageType.PHYSICAL, damage/12)) end, } @@ -130,7 +130,7 @@ newTalent{ * Reduces the cooldown of Earthen Missiles, Pulverizing Auger, Earthquake, and Mudslide by %d%%. * Grants %d%% Fire Resistance, %d%% Lightning Resistance, %d%% Acid Resistance, and %d%% Stun Resistance. Resistances scale with your Spellpower.]]) - :format(cooldownred, fireres, lightningres, acidres, stunres*100) + :tformat(cooldownred, fireres, lightningres, acidres, stunres*100) end, } @@ -177,7 +177,7 @@ newTalent{ local duration = t.getDuration(self, t) return ([[Causes a violent earthquake that deals %0.2f physical damage in a radius of %d each turn for %d turns, and potentially stuns any and all creatures it affects. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.PHYSICAL, damage), radius, duration) + tformat(damDesc(self, DamageType.PHYSICAL, damage), radius, duration) end, } @@ -223,6 +223,6 @@ newTalent{ local saves = t.getSaves(self, t) return ([[Concentrate on maintaining a Crystalline Focus, increasing all your physical damage by %0.1f%% and ignoring %d%% physical resistance of your targets. Also raises your physical and magical saves by %d.]]) - :format(damageinc, ressistpen, saves) + :tformat(damageinc, ressistpen, saves) end, } diff --git a/game/modules/tome/data/talents/spells/storm.lua b/game/modules/tome/data/talents/spells/storm.lua index 8b6ce50ba656d823000d223253a5d3438df8a496..b19388fbb9465fc33681763946a533c500b76c3c 100644 --- a/game/modules/tome/data/talents/spells/storm.lua +++ b/game/modules/tome/data/talents/spells/storm.lua @@ -61,7 +61,7 @@ newTalent{ local damage = t.getDamage(self, t) local radius = self:getTalentRadius(t) return ([[Lightning emanates from you in a circular wave with radius %d, doing %0.2f to %0.2f lightning damage (%0.2f average) and possibly dazing anyone affected (75%% chance). - The damage will increase with your Spellpower.]]):format(radius, + The damage will increase with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) @@ -94,7 +94,7 @@ newTalent{ return ([[Conjures up a bolt of lightning, doing %0.2f to %0.2f damage (%0.2f average) and dazing the target for 3 turns. If the target resists the daze effect it is instead shocked, which halves stun/daze/pin resistance, for 5 turns. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.LIGHTNING, damage / 3), + tformat(damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) end, @@ -138,7 +138,7 @@ newTalent{ local radius = t.getRadius(self, t) return ([[Each time one of your lightning spells dazes a target, it has a %d%% chance to creates a chain reaction that summons a mighty Hurricane that lasts for 10 turns around the target with a radius of %d. Each turn, the afflicted creature and all creatures around it will take %0.2f to %0.2f lightning damage (%0.2f average). - The damage will increase with your Spellpower.]]):format(chance, radius, + The damage will increase with your Spellpower.]]):tformat(chance, radius, damDesc(self, DamageType.LIGHTNING, damage / 3), damDesc(self, DamageType.LIGHTNING, damage), damDesc(self, DamageType.LIGHTNING, (damage + damage / 3) / 2)) @@ -185,6 +185,6 @@ newTalent{ local daze = t.getDaze(self, t) return ([[Surround yourself with a Tempest, increasing all your lightning damage by %d%% and ignoring %d%% lightning resistance of your targets. Your Lightning and Chain Lightning spells also gain a %d%% chance to daze, and your Thunderstorm spell gains a %d%% chance to daze.]]) - :format(damageinc, ressistpen, daze, daze / 2) + :tformat(damageinc, ressistpen, daze, daze / 2) end, } diff --git a/game/modules/tome/data/talents/spells/temporal.lua b/game/modules/tome/data/talents/spells/temporal.lua index ea4cc7379b4bb94d560fb5e436f69b10da53d052..4feca14a809fa6c4e31e35d1d7e3fe06fb9f8cbc 100644 --- a/game/modules/tome/data/talents/spells/temporal.lua +++ b/game/modules/tome/data/talents/spells/temporal.lua @@ -48,7 +48,7 @@ newTalent{ local slow = t.getSlow(self, t) local proj = t.getProj(self, t) return ([[Project a bolt of time distortion, decreasing the target's global speed by %d%% and all projectiles it fires by %d%% for 7 turns.]]): - format(100 * slow, proj) + tformat(100 * slow, proj) end, } @@ -80,7 +80,7 @@ newTalent{ Once either the maximum damage (%d) is absorbed, or the time runs out (%d turns), the stored damage will return as a temporal restoration field over time (5 turns). Each turn the restoration field is active, you get healed for 10%% of the absorbed damage (Aegis Shielding talent affects the percentage). The shield's max absorption will increase with your Spellpower.]]): - format(maxabsorb, duration) + tformat(maxabsorb, duration) end, } @@ -112,7 +112,7 @@ newTalent{ return ([[Removes the target from the flow of time for %d turns. In this state, the target can neither act nor be harmed. Time does not pass at all for the target, no talents will cooldown, no resources will regen, and so forth. The duration will increase with your Spellpower.]]): - format(duration) + tformat(duration) end, } @@ -141,6 +141,6 @@ newTalent{ info = function(self, t) local haste = t.getHaste(self, t) return ([[Increases the caster's global speed by %d%%.]]): - format(100 * haste) + tformat(100 * haste) end, } diff --git a/game/modules/tome/data/talents/spells/war-alchemy.lua b/game/modules/tome/data/talents/spells/war-alchemy.lua index 6a4923acade6c2e48c12c7f5e97ab7e02338d80e..32597ed0332c552cd6aa7281a5e7c4637975e109 100644 --- a/game/modules/tome/data/talents/spells/war-alchemy.lua +++ b/game/modules/tome/data/talents/spells/war-alchemy.lua @@ -43,6 +43,6 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Turn part of your target into fire, burning the rest for %0.2f fire damage over 8 turns. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.FIRE, damage)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.FIRE, damage)) end, } diff --git a/game/modules/tome/data/talents/spells/water.lua b/game/modules/tome/data/talents/spells/water.lua index c4ae5eea00b3db22f30887bb03c15ad25d484bc5..770bb77111920c1dfb3ae7af4cef805093219a48 100644 --- a/game/modules/tome/data/talents/spells/water.lua +++ b/game/modules/tome/data/talents/spells/water.lua @@ -63,7 +63,7 @@ newTalent{ If the target is wet the damage increases by 30%% and the ice freeze chance increases to 50%%. This spell will never hit the caster. The damage will increase with your Spellpower.]]): - format(necroEssenceDead(self, true) and "affects all foes on its path" or "travels slowly", damDesc(self, DamageType.COLD, damage)) + tformat(necroEssenceDead(self, true) and "affects all foes on its path" or "travels slowly", damDesc(self, DamageType.COLD, damage)) end, } @@ -107,7 +107,7 @@ newTalent{ return ([[Glacial fumes rise from the ground, doing %0.2f cold damage in a radius of 3 each turn for %d turns. Creatures that are wet will take 30%% more damage and have 15%% chance to get frozen. The damage will increase with your Spellpower.]]): - format(damDesc(self, DamageType.COLD, damage), duration) + tformat(damDesc(self, DamageType.COLD, damage), duration) end, } @@ -157,7 +157,7 @@ newTalent{ The tidal wave lasts for %d turns. All creatures hit gain the wet effect, which reduces their stun/freeze immunity by half and interacts with other cold spells. The damage and duration will increase with your Spellpower.]]): - format(radius, damDesc(self, DamageType.COLD, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2), duration) + tformat(radius, damDesc(self, DamageType.COLD, damage/2), damDesc(self, DamageType.PHYSICAL, damage/2), duration) end, } @@ -200,7 +200,7 @@ newTalent{ #AQUAMARINE#Ice storm:#LAST# %s]]): - format(dur, self:getTalentLevelRaw(t), power * 100, power * 100 / 2, 50 + power * 100, tostring(icestorm or "")) + tformat(dur, self:getTalentLevelRaw(t), power * 100, power * 100 / 2, 50 + power * 100, tostring(icestorm or "")) end, } @@ -245,6 +245,6 @@ newTalent{ return ([[A furious ice storm rages around the caster, doing %0.2f cold damage in a radius of 3 each turn for %d turns. It has a 25%% chance to freeze damaged targets. If the target is wet the damage increases by 30%% and the freeze chance increases to 50%%. - The damage and duration will increase with your Spellpower.]]):format(damDesc(self, DamageType.COLD, damage), duration) + The damage and duration will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.COLD, damage), duration) end, } diff --git a/game/modules/tome/data/talents/spells/wildfire.lua b/game/modules/tome/data/talents/spells/wildfire.lua index 6450a41ea9925c20ff2a32a2a79b30dbef1b14cd..b91626a01843bb491b9dc347fc33d284b9be107a 100644 --- a/game/modules/tome/data/talents/spells/wildfire.lua +++ b/game/modules/tome/data/talents/spells/wildfire.lua @@ -59,7 +59,7 @@ newTalent{ local damage = t.getDamage(self, t) local radius = self:getTalentRadius(t) return ([[A wave of fire emanates from you with a radius of %d, knocking back anything caught inside and setting them ablaze, doing %0.2f fire damage over 3 turns. - The damage will increase with your Spellpower.]]):format(radius, damDesc(self, DamageType.FIRE, damage)) + The damage will increase with your Spellpower.]]):tformat(radius, damDesc(self, DamageType.FIRE, damage)) end, } @@ -91,7 +91,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) return ([[Your Flame, Flameshock, Fireflash and Blastwave spells leave a burning wake on the ground, burning all within for %0.2f fire damage for 4 turns. - The damage will increase with your Spellpower.]]):format(damDesc(self, DamageType.FIRE, damage)) + The damage will increase with your Spellpower.]]):tformat(damDesc(self, DamageType.FIRE, damage)) end, } @@ -105,7 +105,7 @@ newTalent{ info = function(self, t) return ([[When your Burning Wake talent is active, your Inferno and Burning Wake effects have a %d%% chance, each turn, to remove a status effect (physical or magical) from the targets. If the target is hostile, it will remove a beneficial effect. - If the target is friendly, it will remove a detrimental effect (but still burn).]]):format(t.getChance(self, t)) + If the target is friendly, it will remove a detrimental effect (but still burn).]]):tformat(t.getChance(self, t)) end, } @@ -150,6 +150,6 @@ newTalent{ local ressistpen = t.getResistPenalty(self, t) local selfres = t.getResistSelf(self, t) return ([[Surround yourself with Wildfire, increasing all your fire damage by %0.1f%%, ignoring %d%% fire resistance of your targets and reducing self-inflicted fire damage by %d%%.]]) - :format(damageinc, ressistpen, selfres) + :tformat(damageinc, ressistpen, selfres) end, } diff --git a/game/modules/tome/data/talents/techniques/2h-assault.lua b/game/modules/tome/data/talents/techniques/2h-assault.lua index 30c18c42c6abf2fd4523c4eda07702aef7e54668..546caed9fc75fc81b25ca4858fa7128ff9eec116 100644 --- a/game/modules/tome/data/talents/techniques/2h-assault.lua +++ b/game/modules/tome/data/talents/techniques/2h-assault.lua @@ -57,7 +57,7 @@ newTalent{ info = function(self, t) return ([[Hit the target twice with your two-handed weapon, doing %d%% damage. Each hit will try to stun the target for %d turns. The stun chance increases with your Physical Power.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.5, 0.7), t.getDuration(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.5, 0.7), t.getDuration(self, t)) end, } @@ -106,7 +106,7 @@ newTalent{ info = function(self, t) local damage = t.getDamage(self, t) * 100 return ([[Take a step toward your foes then use the momentum to cleave all creatures adjacent to you for %d%% weapon damage.]]) - :format(damage) + :tformat(damage) end, } @@ -157,7 +157,7 @@ newTalent{ end, info = function(self, t) return ([[Spin around, extending your weapon in radius %d and damaging all targets around you for %d%% weapon damage. - At level 3 all damage done will also make the targets bleed for an additional %d%% damage over 5 turns]]):format(self:getTalentRadius(t), 100 * self:combatTalentWeaponDamage(t, 1.4, 2.1), t.getBleed(self, t) * 100) + At level 3 all damage done will also make the targets bleed for an additional %d%% damage over 5 turns]]):tformat(self:getTalentRadius(t), 100 * self:combatTalentWeaponDamage(t, 1.4, 2.1), t.getBleed(self, t) * 100) end, } @@ -199,6 +199,6 @@ newTalent{ return ([[Takes advantage of a wounded foe to perform a killing strike. This attack is an automatic critical hit that does %0.1f%% extra weapon damage for each %% of life the target is below maximum. (A victim with 30%% remaining life (70%% damaged) would take %0.1f%% weapon damage.) If an enemy dies from this attack then two of your talent cooldowns are reduced by 2 turns and Execution's cooldown is reset.]]): - format(t.getPower(self, t), 100 + t.getPower(self, t) * 70) + tformat(t.getPower(self, t), 100 + t.getPower(self, t) * 70) end, } diff --git a/game/modules/tome/data/talents/techniques/2hweapon.lua b/game/modules/tome/data/talents/techniques/2hweapon.lua index f056f7890359acf74511493041e43b59baad5ce5..507cf3f33cedd9cd73008b3f95e4892036e861eb 100644 --- a/game/modules/tome/data/talents/techniques/2hweapon.lua +++ b/game/modules/tome/data/talents/techniques/2hweapon.lua @@ -55,7 +55,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Spin around, extending your weapon and damaging all targets around you for %d%% weapon damage.]]):format(100 * self:combatTalentWeaponDamage(t, 1.4, 2.1)) + return ([[Spin around, extending your weapon and damaging all targets around you for %d%% weapon damage.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1.4, 2.1)) end, } @@ -102,7 +102,7 @@ newTalent{ return ([[You enter an aggressive battle stance, increasing Accuracy by %d and Physical Power by %d, at the cost of -10 Defense and -10 Armour. While berserking, you are nearly unstoppable, granting you %d%% stun and pinning resistance. The Accuracy bonus increases with your Dexterity, and the Physical Power bonus with your Strength.]]): - format( t.getAtk(self, t), t.getDam(self, t), t.getImmune(self, t)*100) + tformat( t.getAtk(self, t), t.getDam(self, t), t.getImmune(self, t)*100) end, } @@ -146,7 +146,7 @@ newTalent{ end, info = function(self, t) return ([[Shout your warcry in a frontal cone of radius %d. Any targets caught inside will be confused (power %d%%) for %d turns.]]): - format(self:getTalentRadius(t),t.getConfusion(self, t), t.getDuration(self, t)) + tformat(self:getTalentRadius(t),t.getConfusion(self, t), t.getDuration(self, t)) end, } @@ -203,7 +203,7 @@ newTalent{ info = function(self, t) return ([[Tries to perform a killing blow, doing %d%% weapon damage and dealing an automatic critical hit. If the target ends up with low enough life (<20%%), it might be instantly killed. At level 4, it drains half your remaining stamina, and uses it to increase the blow damage by 100%% of it. - The chance to instantly kill will increase with your Physical Power.]]):format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3)) + The chance to instantly kill will increase with your Physical Power.]]):tformat(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3)) end, } @@ -251,7 +251,7 @@ newTalent{ info = function(self, t) return ([[Hits the target with your weapon, doing %d%% damage. If the attack hits, the target is stunned for %d turns. The stun chance increases with your Physical Power.]]) - :format(100 * self:combatTalentWeaponDamage(t, 1, 1.5), t.getDuration(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.5), t.getDuration(self, t)) end, } @@ -317,7 +317,7 @@ newTalent{ return ([[Hits the target with your weapon, doing %d%% damage. If the attack hits, the target's armour and saves are reduced by %d for %d turns. Also if the target is protected by a temporary damage shield there is %d%% chance to shatter it. Armor reduction chance increases with your Physical Power.]]) - :format(100 * self:combatTalentWeaponDamage(t, 1, 1.5),t.getArmorReduc(self, t), t.getDuration(self, t), t.getShatter(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.5),t.getArmorReduc(self, t), t.getDuration(self, t), t.getShatter(self, t)) end, } @@ -358,7 +358,7 @@ newTalent{ info = function(self, t) return ([[Hits the target with your weapon, doing %d%% damage. If the attack hits, the target's Accuracy is reduced by %d for %d turns. Accuracy reduction chance increases with your Physical Power.]]) - :format( + :tformat( 100 * self:combatTalentWeaponDamage(t, 1, 1.5), 3 * self:getTalentLevel(t), t.getDuration(self, t)) end, } @@ -399,6 +399,6 @@ newTalent{ info = function(self, t) return ([[Enter a blood frenzy, draining stamina quickly (-2 stamina/turn). Each time you kill a foe while in the blood frenzy, you gain a cumulative bonus to Physical Power of %d. Each turn, this bonus decreases by 2.]]): - format(t.bonuspower(self,t)) + tformat(t.bonuspower(self,t)) end, } diff --git a/game/modules/tome/data/talents/techniques/acrobatics.lua b/game/modules/tome/data/talents/techniques/acrobatics.lua index c4b85f48d3ee2ba38ab824bdfe97aa1db93e100c..8dd6ba54909f7b7d19c5c7a67b9b1180f058c80e 100644 --- a/game/modules/tome/data/talents/techniques/acrobatics.lua +++ b/game/modules/tome/data/talents/techniques/acrobatics.lua @@ -120,7 +120,7 @@ newTalent { return ([[Use an adjacent friend or foe as a springboard, vaulting over them to another tile within range. This maneuver grants you a burst of speed from your momentum, allowing you run %d%% faster (movement speed bonus) in the same direction you vaulted for 3 turns. The increased speed ends if you change directions or stop moving. - ]]):format(t.speed_bonus(self, t) * 100) + ]]):tformat(t.speed_bonus(self, t) * 100) end, } @@ -183,7 +183,7 @@ newTalent { end, info = function(self, t) return ([[Move to a spot within range, bounding around, over, or through any enemies in the way. - This maneuver can surprise your foes and improves your tactical position, improving your physical critical chance by %d%% for 1 turn.]]):format(t.combat_physcrit(self, t)) + This maneuver can surprise your foes and improves your tactical position, improving your physical critical chance by %d%% for 1 turn.]]):tformat(t.combat_physcrit(self, t)) end } @@ -248,7 +248,7 @@ newTalent { Any time you would lose more than %d%% of your maximum life in a single hit, you instead duck out of the way and assume a defensive posture. This reduces the triggering damage and all further damage in the same turn by %d%%. You need %0.1f Stamina and an adjacent open tile to perform this feat (though it does not cause you to move).]]) - :format(trigger, reduce, cost) + :tformat(trigger, reduce, cost) end, } @@ -269,6 +269,6 @@ newTalent { info = function(self, t) return ([[You gain greater facility with your acrobatic moves, lowering the cooldowns of Vault, Tumble, and Trained Reactions by %d, and their stamina costs by %0.1f. At Rank 3 you also gain 10%% global speed for 1 turn after Trained Reactions activates. At rank 5 this speed bonus improves to 20%% and lasts for 2 turns.]]) - :format(t.cooldown_bonus(self, t), t.stamina_bonus(self, t)) + :tformat(t.cooldown_bonus(self, t), t.stamina_bonus(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/agility.lua b/game/modules/tome/data/talents/techniques/agility.lua index 38f25b692fcaeeb1b9395ca2351a6f157bc9a47c..1fc42f8ff5ea33b2e2bab03feef9f0184c1a9252 100644 --- a/game/modules/tome/data/talents/techniques/agility.lua +++ b/game/modules/tome/data/talents/techniques/agility.lua @@ -68,14 +68,14 @@ newTalent{ dam = math.max(dam - reduce, 0) print("[PROJECTOR] after static reduction dam", dam) - game:delayedLogDamage(src or self, self, 0, ("%s(%d deflected)#LAST#"):format(DamageType:get(type).text_color or "#aaaaaa#", lastdam - dam), false) + game:delayedLogDamage(src or self, self, 0, ("%s(%d deflected)#LAST#"):tformat(DamageType:get(type).text_color or "#aaaaaa#", lastdam - dam), false) return {dam=dam} end, info = function(self, t) local chance = t.getChance(self, t) return ([[You are trained in an agile, mobile fighting technique combining sling and shield. This allows shields to be equipped, using Dexterity instead of Strength as a requirement. While you have a shield equip and your Block talent is not on cooldown, you have a %d%% chance to deflect any incoming damage, reducing it by 50%% of your shield’s block value.]]) - :format(chance) + :tformat(chance) end, } @@ -160,7 +160,7 @@ newTalent{ return ([[Leap onto an adjacent target with your shield, striking them for %d%% damage and dazing them for 2 turns, then using them as a springboard to leap to a tile within range %d. The shield bash will use Dexterity instead of Strength for the shield's bonus damage. At talent level 5, you will immediately enter a blocking stance on landing.]]) - :format(dam, range) + :tformat(dam, range) end, } @@ -235,7 +235,7 @@ newTalent{ The shot does %d%% weapon damage and knocks back your target by %d. The cooldown of this talent is reduced by 1 each time you move. This requires a sling to use.]]): - format(t.getDamage(self,t)*100, t.getDist(self, t)) + tformat(t.getDamage(self,t)*100, t.getDist(self, t)) end, } @@ -297,6 +297,6 @@ newTalent{ return ([[Enter a fluid, mobile shooting stance that excels at close combat. Your ranged attack speed is increased by %d%% and each time you shoot you gain %d%% increased movement speed for 2 turns. Ranged attacks against targets will also grant you up to %d%% of a turn. This is 100%% effective against targets within 3 tiles, and decreases by 20%% for each tile beyond that (to 0%% at 8 tiles). This cannot occur more than once per turn. Requires a sling to use.]]): - format(atk, move, turn) + tformat(atk, move, turn) end, } diff --git a/game/modules/tome/data/talents/techniques/archery.lua b/game/modules/tome/data/talents/techniques/archery.lua index 1bbfe897046c050888cac2cb8a0ae05bf6a8a719..df5fc7e5fbd51bce995a2cdfe4ef44f33c32fb8c 100644 --- a/game/modules/tome/data/talents/techniques/archery.lua +++ b/game/modules/tome/data/talents/techniques/archery.lua @@ -216,7 +216,7 @@ newTalent{ local chance = t.getChance(self,t) return ([[Fire a steady shot, doing %d%% damage with a %d%% chance to mark the target. If Steady Shot is not on cooldown, this talent will automatically replace your normal attacks (and trigger the cooldown).]]): - format(dam, chance) + tformat(dam, chance) end, } @@ -269,7 +269,7 @@ newTalent{ return ([[You fire a shot for %d%% damage that attempts to pin your target to the ground for %d turns, as well as giving your next Steady Shot or Shoot 100%% increased chance to critically hit and mark (regardless of whether the pin succeeds). This shot has a 20%% chance to mark the target. The chance to pin increases with your Accuracy.]]): - format(dam, dur, mark, chance) + tformat(dam, dur, mark, chance) end, } @@ -324,7 +324,7 @@ newTalent{ return ([[Fires a shot that explodes into a radius %d ball of razor sharp fragments on impact, dealing %d%% weapon damage and leaving targets crippled for %d turns, reducing their attack, spell and mind speed by %d%%. Each target struck has a %d%% chance to be marked. The status chance increases with your Accuracy.]]) - :format(rad, dam, dur, speed, chance) + :tformat(rad, dam, dur, speed, chance) end, } @@ -415,7 +415,7 @@ newTalent{ return ([[Fires a wave of projectiles in a radius %d cone, dealing %d%% weapon damage. All targets struck by this will be knocked back to the maximum range of the cone and stunned for %d turns. Each target struck has a %d%% chance to be marked. The chance to knockback and stun increases with your Accuracy.]]) - :format(rad, dam, dur, chance) + :tformat(rad, dam, dur, chance) end, } @@ -490,7 +490,7 @@ newTalent{ local dam = t.getDamage(self,t)*100 return ([[Fire a precise shot dealing %d%% weapon damage, with 100 increased accuracy. This shot will bypass other enemies between you and your target. Only usable against marked targets, and consumes the mark on hit.]]): - format(dam) + tformat(dam) end, } @@ -583,7 +583,7 @@ newTalent{ local dam = t.getDamage(self,t)*100 return ([[You fire countless shots into the sky to rain down around your target, inflicting %d%% weapon damage to all within radius %d. If the primary target is marked, you consume the mark to fire a second volley of arrows for %d%% damage at no ammo cost.]]) - :format(dam, rad, dam*0.75) + :tformat(dam, rad, dam*0.75) end, } @@ -666,7 +666,7 @@ newTalent{ return ([[You fire a disabling shot at a target's throat (or equivalent), dealing %d%% weapon damage and silencing them for %d turns. If the target is marked, you consume the mark to fire two secondary shots at their arms and legs (or other appendages) dealing %d%% damage, reducing their movement speed by 50%% and disarming them for the duration. The status chance increases with your Accuracy.]]): - format(dam, dur, dam*0.25) + tformat(dam, dur, dam*0.25) end, } @@ -712,7 +712,7 @@ newTalent{ local nb = t.getTalentCount(self,t) local cd = t.getCooldown(self,t) return ([[Each time you consume a mark, you gain %d%% increased attack speed for 2 turns and the cooldown of %d random techniques are reduced by %d turns.]]): - format(speed, nb, cd) + tformat(speed, nb, cd) end, } @@ -741,7 +741,7 @@ newTalent{ end, info = function(self, t) return ([[You fire a shot without putting much strength into it, doing %d%% damage. - That brief moment of relief allows you to regain %d stamina.]]):format(self:combatTalentWeaponDamage(t, 0.5, 1.1) * 100, 12 + self:getTalentLevel(t) * 8) + That brief moment of relief allows you to regain %d stamina.]]):tformat(self:combatTalentWeaponDamage(t, 0.5, 1.1) * 100, 12 + self:getTalentLevel(t) * 8) end, } @@ -770,7 +770,7 @@ newTalent{ end, info = function(self, t) return ([[You fire a crippling shot, doing %d%% damage and reducing your target's speed by %d%% for 7 turns. - The status power and status hit chance improve with your Accuracy.]]):format(self:combatTalentWeaponDamage(t, 1, 1.5) * 100, util.bound((self:combatAttack() * 0.15 * self:getTalentLevel(t)) / 100, 0.1, 0.4) * 100) + The status power and status hit chance improve with your Accuracy.]]):tformat(self:combatTalentWeaponDamage(t, 1, 1.5) * 100, util.bound((self:combatAttack() * 0.15 * self:getTalentLevel(t)) / 100, 0.1, 0.4) * 100) end, } @@ -805,7 +805,7 @@ newTalent{ info = function(self, t) return ([[You fire a pinning shot, doing %d%% damage and pinning your target to the ground for %d turns. The pinning chance increases with your Dexterity.]]) - :format(self:combatTalentWeaponDamage(t, 1, 1.4) * 100, + :tformat(self:combatTalentWeaponDamage(t, 1, 1.4) * 100, t.getDur(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/assassination.lua b/game/modules/tome/data/talents/techniques/assassination.lua index f3bf0f50ee42b9bc655659089af215ef5b3544c2..3e916dfc2d582dcb7b9f6c820ca48a0b9220cb17 100644 --- a/game/modules/tome/data/talents/techniques/assassination.lua +++ b/game/modules/tome/data/talents/techniques/assassination.lua @@ -82,7 +82,7 @@ newTalent{ perc = t.getPercent(self,t)*100 return ([[Attempt to finish off a wounded enemy, striking them with both weapons for %d%% increased by 50%% if their life is below 30%%. A target brought below 20%% of its maximum life must make a physical save against your Accuracy or be instantly slain. You may take advantage of finishing your foe this way to activate stealth (if known).]]): - format(dam, perc) + tformat(dam, perc) end, } @@ -108,7 +108,7 @@ newTalent{ return ([[When you exit stealth, you reveal yourself dramatically, intimidating foes around you. All foes within radius %d that witness you leaving stealth will be stricken with terror, which randomly inflicts stun, slow (40%% power), or confusion (50%% power) for %d turns. The chance to terrorize improves with your combat accuracy.]]) - :format(radius, duration) + :tformat(radius, duration) end, } @@ -148,7 +148,7 @@ newTalent{ return ([[When attacking from stealth, you slip a garrote over the target’s neck (or other vulnerable part). This strangles for %d turns and silences for %d turns. Strangled targets are pinned and suffer an automatic unarmed attack for %d%% damage each turn. Your chance to apply the garrote increases with your Accuracy and you must stay adjacent to your target to maintain it. This talent has a cooldown.]]) - :format(dur, sdur, damage) + :tformat(dur, sdur, damage) end, } @@ -190,6 +190,6 @@ newTalent{ If a target dies while marked, the cooldown of this ability is reset and the cost refunded. This ability can be used without breaking stealth. The base damage dealt will increase with your Dexterity.]]): - format(power, damDesc(self, DamageType.PHYSICAL, dam), perc) + tformat(power, damDesc(self, DamageType.PHYSICAL, dam), perc) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/battle-tactics.lua b/game/modules/tome/data/talents/techniques/battle-tactics.lua index 96dd82c5ac2e1c26cb13a46dd86822dae28903cb..c4edb7eb02ea339b810163069c9cbf066718d80c 100644 --- a/game/modules/tome/data/talents/techniques/battle-tactics.lua +++ b/game/modules/tome/data/talents/techniques/battle-tactics.lua @@ -36,7 +36,7 @@ newTalent{ info = function(self, t) return ([[Concentrate on your blows; for %d turns, each strike you land on your target in melee range has a %d%% chance to trigger another, similar strike. This works for all blows, even those from other talents and from shield bashes, but you can gain no more than one extra blow with each weapon during a turn. - The chance increases with your Dexterity.]]):format(t.getdur(self, t), t.getchance(self, t)) + The chance increases with your Dexterity.]]):tformat(t.getdur(self, t), t.getchance(self, t)) end, } @@ -49,7 +49,7 @@ newTalent{ -- Doesn't scale past level 5, could use some bonus for higher talent info = function(self, t) return ([[After killing a foe, you have a %d%% chance to gain a 1000%% movement speed bonus for 1 game turn. The bonus disappears as soon as any action other than moving is done. - Note: since you will be moving very fast, game turns will pass very slowly.]]):format(math.min(100, self:getTalentLevelRaw(t) * 20)) + Note: since you will be moving very fast, game turns will pass very slowly.]]):tformat(math.min(100, self:getTalentLevelRaw(t) * 20)) end, } @@ -93,7 +93,7 @@ newTalent{ local heal = t.healloss(self,t) return ([[Lashes at the target, doing %d%% weapon damage. If the attack hits, the target will bleed for %d%% weapon damage over 7 turns, and all healing will be reduced by %d%%.]]): - format(100 * self:combatTalentWeaponDamage(t, 1, 1.7), 100 * self:combatTalentWeaponDamage(t, 2, 3.2), heal) + tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.7), 100 * self:combatTalentWeaponDamage(t, 2, 3.2), heal) end, } @@ -172,6 +172,6 @@ newTalent{ In addition, your all damage resistance cap increases %0.1f%% closer to 100%%. This consumes stamina rapidly the longer it is sustained (%0.1f stamina/turn, increasing by 0.3/turn). The resist is recalculated each time you take damage.]]): - format(resistC, resistC*0.7, t.getCapApproach(self, t)*100, drain) + tformat(resistC, resistC*0.7, t.getCapApproach(self, t)*100, drain) end, } diff --git a/game/modules/tome/data/talents/techniques/bloodthirst.lua b/game/modules/tome/data/talents/techniques/bloodthirst.lua index f731bd8d5c154a74fc4a9c97f87fce474aa5d4d3..b41d233eac9af936c0c2d459bf0031190b9f7134 100644 --- a/game/modules/tome/data/talents/techniques/bloodthirst.lua +++ b/game/modules/tome/data/talents/techniques/bloodthirst.lua @@ -47,7 +47,7 @@ newTalent{ return ([[Your mighty blows inspire utter terror on your foes. Any melee strike you do that deals more than %d%% of the target's total life puts them in a mortal terror, dazing them for 5 turns. Your critical strike chance also increase by %d%%. The daze chance increase with your Physical Power.]]): - format(t.threshold(self, t), self:getTalentLevelRaw(t) * 2.8) + tformat(t.threshold(self, t), self:getTalentLevelRaw(t) * 2.8) end, } @@ -71,7 +71,7 @@ newTalent{ local max_health = t.getHealth(self,t) return ([[Delight in spilling the blood of your foes. After scoring a critical hit, your maximum hit points will be increased by %d%%, your life regeneration by %0.2f per turn, and your stamina regeneration by %0.2f per turn for %d turns. The life and stamina regeneration will stack up to five times, for a maximum of %0.2f and %0.2f each turn, respectively.]]): - format(t.getHealth(self, t), regen, regen/5, t.getDuration(self, t),max_regen, max_regen/5) + tformat(t.getHealth(self, t), regen, regen/5, t.getDuration(self, t),max_regen, max_regen/5) end, } @@ -87,7 +87,7 @@ newTalent{ return ([[You delight in the inflicting of wounds, providing %d physical power. In addition when you make a creature bleed its physical damage resistance is reduced by %d%% (but never below 0%%). Physical power depends on your Strength stat.]]): - format(t.getDam(self, t), t.getResist(self, t)) + tformat(t.getDam(self, t), t.getResist(self, t)) end, } @@ -121,6 +121,6 @@ newTalent{ return ([[You enter a battle frenzy for %d turns. During that time, you can not use items, healing has no effect, and your health cannot drop below 1. At the end of the frenzy, you regain %d%% of your health per foe slain during the frenzy. While Unstoppable is active, Berserker Rage critical bonus is disabled as you lose the thrill of the risk of death.]]): - format(t.getDuration(self, t), t.getHealPercent(self,t)) + tformat(t.getDuration(self, t), t.getHealPercent(self,t)) end, } diff --git a/game/modules/tome/data/talents/techniques/bow.lua b/game/modules/tome/data/talents/techniques/bow.lua index 627d73a25e64211dfecdb23ed6cbf2ed6ad58fdd..ae02b4110efa5e19c02fee49750bc72a25ed7870 100644 --- a/game/modules/tome/data/talents/techniques/bow.lua +++ b/game/modules/tome/data/talents/techniques/bow.lua @@ -36,7 +36,7 @@ newTalent{ local inc = t.getPercentInc(self, t) local reloads = t.ammo_mastery_reload(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using bows. - Also, increases your reload rate by %d.]]):format(inc * 100, reloads) + Also, increases your reload rate by %d.]]):tformat(inc * 100, reloads) end, } @@ -61,7 +61,7 @@ newTalent{ return true end, info = function(self, t) - return ([[You fire an arrow that cuts right through anything, piercing multiple targets if possible with nigh infinite armor penetration, doing %d%% damage.]]):format(100 * self:combatTalentWeaponDamage(t, 1, 1.5)) + return ([[You fire an arrow that cuts right through anything, piercing multiple targets if possible with nigh infinite armor penetration, doing %d%% damage.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.5)) end, } @@ -91,7 +91,7 @@ newTalent{ end, info = function(self, t) return ([[You fire two arrows at your target, hitting it and a nearby foe if possible, doing %d%% damage - This talent does not use any stamina.]]):format(100 * self:combatTalentWeaponDamage(t, 1.2, 1.9)) + This talent does not use any stamina.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1.2, 1.9)) end, } @@ -123,6 +123,6 @@ newTalent{ end, info = function(self, t) return ([[You fire multiple arrows at an area of %d radius, doing %d%% damage with each arrow.]]) - :format(self:getTalentRadius(t), 100 * self:combatTalentWeaponDamage(t, 0.6, 1.3)) + :tformat(self:getTalentRadius(t), 100 * self:combatTalentWeaponDamage(t, 0.6, 1.3)) end, } diff --git a/game/modules/tome/data/talents/techniques/buckler-training.lua b/game/modules/tome/data/talents/techniques/buckler-training.lua index 748d2ec084ec399cd4eef07b9a77a7947d53af09..51642d41e596ceb26e078c1b84aaf60d56cd78ba 100644 --- a/game/modules/tome/data/talents/techniques/buckler-training.lua +++ b/game/modules/tome/data/talents/techniques/buckler-training.lua @@ -65,7 +65,7 @@ newTalent { When you are attacked in melee, you have a %d%% chance to deflect the attack with your shield, completely evading it. In addition, as long as you are wearing armour no heavier than leather, you gain %d Armour and %d%% Armour hardiness. The chance to deflect increases with your Cunning.]]) - :format(block, armour, hardiness) + :tformat(block, armour, hardiness) end, } @@ -165,7 +165,7 @@ newTalent { local tiles = t.getDist(self, t) local slingMult = t.getSlingMult(self, t) * 100 return ([[Bash an enemy in melee range with your shield (twice for talent level 5 or more), doing %d%% damage and knocking them back %d squares. You may then follow with a deadly short-range sling attack, dealing %d%% damage. The shield bash will use Dexterity instead of Strength for the shield's bonus damage.]]) - :format(shieldMult, tiles, slingMult) + :tformat(shieldMult, tiles, slingMult) end, } @@ -195,7 +195,7 @@ newTalent { end end return ([[When you are hit by a projectile, physical or otherwise, you have a %d%% chance to deflect it up to %d squares away.%s]]) - :format(chance, range, crit) + :tformat(chance, range, crit) end, } @@ -251,6 +251,6 @@ newTalent { --local stamina = t.getStaminaPerShot(self, t) return ([[Any time you block an attack with Buckler Expertise or Buckler Mastery you instantly counterattack with your sling for %d%% damage This can only occur up to %d time(s) per turn. ]]) - :format(mult, blocks) + :tformat(mult, blocks) end, } diff --git a/game/modules/tome/data/talents/techniques/combat-techniques.lua b/game/modules/tome/data/talents/techniques/combat-techniques.lua index 64730446447d92b606d80dd53aaf346c3506eea3..47e708280a970ee55ea7350ae015b28c58ca5731 100644 --- a/game/modules/tome/data/talents/techniques/combat-techniques.lua +++ b/game/modules/tome/data/talents/techniques/combat-techniques.lua @@ -118,7 +118,7 @@ newTalent{ info = function(self, t) return ([[You focus your strikes, reducing your attack speed by %d%% and increasing your Accuracy by %d and critical chance by %d%%. The effects will increase with your Dexterity.]]): - format(10, t.getAtk(self, t), t.getCrit(self, t)) + tformat(10, t.getAtk(self, t), t.getCrit(self, t)) end, } @@ -139,7 +139,7 @@ newTalent{ return true end, info = function(self, t) - return ([[You have learned to focus your blows to hit your target, granting +%d accuracy and allowing you to attack creatures you cannot see without penalty for the next %d turns.]]):format(t.getAtk(self, t), t.getDuration(self, t)) + return ([[You have learned to focus your blows to hit your target, granting +%d accuracy and allowing you to attack creatures you cannot see without penalty for the next %d turns.]]):tformat(t.getAtk(self, t), t.getDuration(self, t)) end, } @@ -164,7 +164,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Through rigorous training, you have learned to focus your actions for a short while, increasing your speed by %d%% for 5 turns.]]):format(100*t.getSpeed(self, t)) + return ([[Through rigorous training, you have learned to focus your actions for a short while, increasing your speed by %d%% for 5 turns.]]):tformat(100*t.getSpeed(self, t)) end, } @@ -182,7 +182,7 @@ newTalent{ self:talentTemporaryValue(p, "stamina_regen", t.getStamRecover(self, t)) end, info = function(self, t) - return ([[Your combat focus allows you to regenerate stamina faster (+%0.1f stamina/turn).]]):format(t.getStamRecover(self, t)) + return ([[Your combat focus allows you to regenerate stamina faster (+%0.1f stamina/turn).]]):tformat(t.getStamRecover(self, t)) end, } @@ -197,7 +197,7 @@ newTalent{ self:talentTemporaryValue(p, "life_regen", t.getRegen(self, t)) end, info = function(self, t) - return ([[Your combat focus allows you to regenerate life faster (+%0.1f life/turn).]]):format(t.getRegen(self, t)) + return ([[Your combat focus allows you to regenerate life faster (+%0.1f life/turn).]]):tformat(t.getRegen(self, t)) end, } @@ -212,7 +212,7 @@ newTalent{ self:talentTemporaryValue(p, "combat_spellresist", t.getSaves(self,t)) end, info = function(self, t) - return ([[Rigorous training allows you to be more resistant to some spell effects (+%d spell save).]]):format(t.getSaves(self,t)) + return ([[Rigorous training allows you to be more resistant to some spell effects (+%d spell save).]]):tformat(t.getSaves(self,t)) end, } @@ -225,6 +225,6 @@ newTalent{ getStamRecover = function(self, t) return self:combatTalentScale(t, 5, 20, 0.5) end, -- Lower scaling than other recovery talents because it effectively scales with character speed and can trigger more than once a turn points = 5, info = function(self, t) - return ([[You revel in the death of your foes, regaining %0.1f stamina with each death you cause.]]):format(t.getStamRecover(self, t)) + return ([[You revel in the death of your foes, regaining %0.1f stamina with each death you cause.]]):tformat(t.getStamRecover(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/combat-training.lua b/game/modules/tome/data/talents/techniques/combat-training.lua index b6e8e2ea62bdadaedb3a4380ccaf82451fd90921..3b0ecb88721e70efc499eb1786738a6976f23d9f 100644 --- a/game/modules/tome/data/talents/techniques/combat-training.lua +++ b/game/modules/tome/data/talents/techniques/combat-training.lua @@ -31,7 +31,7 @@ newTalent{ info = function(self, t) local res = t.getRes(self, t) return ([[Your skin becomes more resilient to damage. Increases resistance to all damage by %0.1f%%.]]): - format(res) + tformat(res) end, } @@ -108,7 +108,7 @@ newTalent{ At level 1, it allows you to wear heavy mail armour, gauntlets, helms, and heavy boots. At level 2, it allows you to wear shields. At level 3, it allows you to wear massive plate armour. - %s]]):format(armor, hardiness, criticalreduction, classrestriction) + %s]]):tformat(armor, hardiness, criticalreduction, classrestriction) end, } @@ -154,7 +154,7 @@ newTalent{ return ([[You learn to maintain your agility and manage your combat posture while wearing light armour. When wearing armour no heavier than leather in your main body slot, you gain %d Defense, %d%% Armour hardiness, and %d%% reduced Fatigue. In addition, when you step adjacent to a (visible) enemy, you use the juxtaposition to increase your total Defense by %d for 2 turns. The Defense bonus scales with your Dexterity.]]): - format(defense, t.getArmorHardiness(self,t), t.getFatigue(self, t, true), defense/2) + tformat(defense, t.getArmorHardiness(self,t), t.getFatigue(self, t, true), defense/2) end, } @@ -169,7 +169,7 @@ newTalent{ info = function(self, t) local attack = t.getAttack(self, t) return ([[Increases the accuracy of unarmed, melee and ranged weapons by %d.]]): - format(attack) + tformat(attack) end, } @@ -186,7 +186,7 @@ newTalent{ local damage = t.getDamage(self, t) local inc = t.getPercentInc(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using swords, axes or maces.]]): - format(100*inc) + tformat(100*inc) end, } @@ -204,7 +204,7 @@ newTalent{ local damage = t.getDamage(self, t) local inc = t.getPercentInc(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using daggers.]]): - format(100*inc) + tformat(100*inc) end, } @@ -222,6 +222,6 @@ newTalent{ local damage = t.getDamage(self, t) local inc = t.getPercentInc(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using exotic weapons.]]): - format(100*inc) + tformat(100*inc) end, } diff --git a/game/modules/tome/data/talents/techniques/conditioning.lua b/game/modules/tome/data/talents/techniques/conditioning.lua index 8a75e72efd9efa3eae8c82ae6d89a4c8019de09c..e27396164d948e4eaf88fb9577ad1426c04f0b06 100644 --- a/game/modules/tome/data/talents/techniques/conditioning.lua +++ b/game/modules/tome/data/talents/techniques/conditioning.lua @@ -43,7 +43,7 @@ newTalent{ return ([[You recover faster from poisons, diseases and wounds, reducing the duration of all such effects by %d%%. Whenever your life falls below 50%%, your life regeneration increases by %0.1f for %d turns (%d total). This effect can only happen once every %d turns. The regeneration scales with your Constitution.]]): - format(wounds, baseheal, duration, baseheal*duration, self:getTalentCooldown(t)) + tformat(wounds, baseheal, duration, baseheal*duration, self:getTalentCooldown(t)) end, } @@ -87,7 +87,7 @@ newTalent{ return ([[You've learned to recover quickly from effects that would disable you. Each turn, you have a %d%% chance to recover from a single stun effect. At talent level 2 you may also recover from blindness, at level 3 confusion, level 4 pins, and level 5 slows and wounds. Only one effect may be recovered from each turn, and the chance to recover from an effect scales with your Constitution.]]): - format(chance) + tformat(chance) end, } @@ -131,7 +131,7 @@ newTalent{ return ([[Enemies are intimidated by your very presence. Enemies within radius %d have their Physical Power, Mindpower, and Spellpower reduced by %d. The power of the intimidation effect improves with your Physical power]]): - format(radius, penalty) + tformat(radius, penalty) end, } @@ -160,6 +160,6 @@ newTalent{ You may continue to use stamina based talents while at zero stamina at the cost of life. The Physical Power increase will scale with your Constitution. Using this talent does not take a turn.]]): - format(attack_power, duration) + tformat(attack_power, duration) end, } diff --git a/game/modules/tome/data/talents/techniques/dualweapon.lua b/game/modules/tome/data/talents/techniques/dualweapon.lua index 78ef396f666bc5eaeda4806a99598e35b99b93df..5d046ddd8e2b7bcd29151c1f4a17e88b1b3d5d44 100644 --- a/game/modules/tome/data/talents/techniques/dualweapon.lua +++ b/game/modules/tome/data/talents/techniques/dualweapon.lua @@ -32,7 +32,7 @@ newTalent{ return self:combatTalentLimit(t, 1, 0.65, 0.85)-- limit <100% end, info = function(self, t) - return ([[Increases the damage of your off-hand weapon to %d%%.]]):format(100 * t.getoffmult(self,t)) + return ([[Increases the damage of your off-hand weapon to %d%%.]]):tformat(100 * t.getoffmult(self,t)) end, } @@ -85,7 +85,7 @@ newTalent{ -- Note: classes: Temporal Warden, Rogue, Shadowblade, Marauder When dual wielding, your defense is increased by %d. Up to %0.1f times a turn, you have a %d%% chance to parry up to %d damage (based on your your offhand weapon damage) from a melee attack. A successful parry reduces damage like armour (before any attack multipliers) and prevents critical strikes. Partial parries have a proportionally reduced chance to succeed. It is difficult to parry attacks from unseen attackers and you cannot parry with a mindstar. - The defense and chance to parry improve with Dexterity. The number of parries increases with Cunning.]]):format(t.getDefense(self, t), t.getDeflects(self, t, true), t.getDeflectChance(self,t), t.getDamageChange(self, t, true)) + The defense and chance to parry improve with Dexterity. The number of parries increases with Cunning.]]):tformat(t.getDefense(self, t), t.getDeflects(self, t, true), t.getDeflectChance(self,t), t.getDamageChange(self, t, true)) end, } @@ -147,7 +147,7 @@ newTalent{ return ([[You have learned how to carefully manage contact between you and your opponent. When striking in melee with your dual wielded weapons, you automatically avoid up to %d damage dealt to you from each of your target's on hit effects. This improves with your Dexterity, but is not possible with mindstars. In addition, while this talent is active, you redirect %d%% of the damage you avoid this way back to your target.]]): - format(t.getReflectArmour(self, t), t.getPercent(self, t)) + tformat(t.getReflectArmour(self, t), t.getPercent(self, t)) end, } @@ -205,7 +205,7 @@ newTalent{ return ([[With a quick shift of your momentum, you execute a surprise unarmed strike in place of your normal offhand attack. This allows you to attack with your mainhand weapon for %d%% damage and unarmed for %d%% damage. If the unarmed attack hits, the target is confused (%d%% power) for %d turns. The chance to confuse increases with your Accuracy.]]) - :format(dam, dam*1.25, t.getConfusePower(self, t), t.getConfuseDuration(self, t)) + :tformat(dam, dam*1.25, t.getConfusePower(self, t), t.getConfuseDuration(self, t)) end, } @@ -257,7 +257,7 @@ newTalent{ info = function(self, t) return ([[Attack with your offhand weapon for %d%% damage. If the attack hits, the target is stunned for %d turns, and you hit it with your mainhand weapon doing %d%% damage. The stun chance increases with your Accuracy.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.7, 1.5), t.getStunDuration(self, t), 100 * self:combatTalentWeaponDamage(t, 0.7, 1.5)) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.7, 1.5), t.getStunDuration(self, t), 100 * self:combatTalentWeaponDamage(t, 0.7, 1.5)) end, } @@ -291,7 +291,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Lashes out with a flurry of blows, hitting your target three times with each weapon for %d%% damage.]]):format(100 * self:combatTalentWeaponDamage(t, 0.4, 1.0)) + return ([[Lashes out with a flurry of blows, hitting your target three times with each weapon for %d%% damage.]]):tformat(100 * self:combatTalentWeaponDamage(t, 0.4, 1.0)) end, } @@ -359,7 +359,7 @@ newTalent{ dam = t.getDamage(self,t)*100 crit = t.getCrit(self,t) return ([[Swiftly leap to your target and strike at their vital points with both weapons, dealing %d%% weapon damage. This attack deals %d%% increased critical strike damage.]]): - format(dam, crit) + tformat(dam, crit) end, } @@ -451,7 +451,7 @@ newTalent{ local damage = t.getDamage(self, t) local range = self:getTalentRange(t) return ([[You quickly move up to %d tiles to arrive adjacent to a target location you can see, leaping around or over anyone in your way. During your movement, you attack all foes within one grid of your path with both weapons for %d%% weapon damage, causing those struck to bleed for 50%% of the damage dealt over 5 turns.]]): - format(range, damage*100) + tformat(range, damage*100) end, } diff --git a/game/modules/tome/data/talents/techniques/duelist.lua b/game/modules/tome/data/talents/techniques/duelist.lua index d58fd59412cd7c9467c48e5dbf5396d0864e90c0..65663a783b55b35b67b3b354c1ecafc811fc1107 100644 --- a/game/modules/tome/data/talents/techniques/duelist.lua +++ b/game/modules/tome/data/talents/techniques/duelist.lua @@ -72,7 +72,7 @@ newTalent{ return ([[Your offhand weapon damage penalty is reduced to %d%%. Up to %0.1f times a turn, you have a %d%% chance to parry up to %d damage (based on your offhand weapon damage) from a melee or ranged attack. The number of parries increases with your Cunning. (A fractional parry has a reduced chance to succeed.) A successful parry reduces damage like armour (before any attack multipliers) and prevents critical strikes. It is difficult to parry attacks from unseen attackers and you cannot parry with a mindstar.]]): - format(100 - mult, t.getDeflects(self, t, true), chance, block) + tformat(100 - mult, t.getDeflects(self, t, true), chance, block) end, } @@ -115,7 +115,7 @@ newTalent{ return ([[The flow of battle invigorates you, allowing you to press your advantage as the fight progresses. Up to once each per turn, while dual wielding, you may: Riposte -- If a melee or archery attack misses you or you parry it, you instantly restore %0.1f stamina and gain %d%% of a turn. - Recover -- On performing a critical strike with your offhand weapon, you instantly restore %0.1f stamina.]]):format(sta, speed, sta) + Recover -- On performing a critical strike with your offhand weapon, you instantly restore %0.1f stamina.]]):tformat(sta, speed, sta) end, } @@ -179,7 +179,7 @@ newTalent{ return ([[Make a cunning feint that tricks your target into swapping places with you. While moving, you take the opportunity to trip them, pinning and dazing them for 2 turns. Switching places distracts your foes and allows you to improve your defenses: For %d turns, Dual Weapon Mastery yields one extra parry each turn and you are %d%% less likely to miss your parry opportunities. The chance to pin and to daze increases with your Accuracy]]): - format(t.getDuration(self, t), t.getParryEfficiency(self, t)) + tformat(t.getDuration(self, t), t.getParryEfficiency(self, t)) end, } @@ -232,6 +232,6 @@ newTalent{ return ([[Exploiting a gap in your target's defenses, you make a lethal strike with your offhand weapon for %d%% damage that causes them to drop their weapon, disarming them for %d turns. Tempo will reduce the cooldown of this talent by 1 turn each time it is triggered defensively. The chance to disarm increases with your Accuracy.]]): - format(dam*100, dur) + tformat(dam*100, dur) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/excellence.lua b/game/modules/tome/data/talents/techniques/excellence.lua index cc9cf588bc0e6b9be09153981d46b8987c998348..ac4f3bd3acceb52866d3045e018d955868563c05 100644 --- a/game/modules/tome/data/talents/techniques/excellence.lua +++ b/game/modules/tome/data/talents/techniques/excellence.lua @@ -63,7 +63,7 @@ newTalent{ info = function(self, t) return ([[Your reflexes are lightning-fast, if you spot a projectile (arrow, shot, spell, ...) you can instantly shoot at it without taking a turn to take it down. You can shoot down up to %d projectiles.]]): - format(t.getNb(self, t)) + tformat(t.getNb(self, t)) end, } @@ -127,7 +127,7 @@ newTalent{ info = function(self, t) return ([[You rush toward your foe, readying your shot. If you reach the enemy, you release the shot, imbuing it with great power. The shot does %d%% weapon damage and knocks back your target by %d.]]): - format(self:combatTalentWeaponDamage(t, 1.5, 2.8) * 100, t.getDist(self, t)) + tformat(self:combatTalentWeaponDamage(t, 1.5, 2.8) * 100, t.getDist(self, t)) end, } @@ -176,7 +176,7 @@ newTalent{ info = function(self, t) return ([[Activating this talent enhances your reflexes to incredible levels. Each time you are attacked in melee, you have a %d%% chance get a defensive shot off in time to intercept the attack, fully disrupting it (including extra blows from certain talents), dealing %d%% archery damage, and knocking the attacker back %d tiles. Activating this talent will not interrupt reloading.]]) - :format(t.getChance(self, t), self:combatTalentWeaponDamage(t, 0.4, 0.9) * 100, t.getDist(self, t)) + :tformat(t.getChance(self, t), self:combatTalentWeaponDamage(t, 0.4, 0.9) * 100, t.getDist(self, t)) end, } @@ -215,6 +215,6 @@ newTalent{ info = function(self, t) return ([[You fire a shot at your target's throat, mouth, or equivalent body part, doing %d%% damage and silencing it for %d turns. The silence chance increases with your Accuracy.]]) - :format(self:combatTalentWeaponDamage(t, 0.9, 1.7) * 100, t.getDur(self,t)) + :tformat(self:combatTalentWeaponDamage(t, 0.9, 1.7) * 100, t.getDur(self,t)) end, } diff --git a/game/modules/tome/data/talents/techniques/field-control.lua b/game/modules/tome/data/talents/techniques/field-control.lua index a2b0de7983c5506e6f45048f07c3e805d3d92a1b..04204ffc49bf16a7ee3c21c426d8db4a38db2d3b 100644 --- a/game/modules/tome/data/talents/techniques/field-control.lua +++ b/game/modules/tome/data/talents/techniques/field-control.lua @@ -44,7 +44,7 @@ -- return true -- end, -- info = function(self, t) --- return ([[Jump away %d grids from your target.]]):format(t.getDist(self, t)) +-- return ([[Jump away %d grids from your target.]]):tformat(t.getDist(self, t)) -- end, --} -- @@ -69,7 +69,7 @@ -- info = function(self, t) -- local rad = self:getTalentRadius(t) -- return ([[Sense foes around you in a radius of %d for %d turns. --- The radius will increase with your Cunning.]]):format(rad, 3 + self:getTalentLevel(t)) +-- The radius will increase with your Cunning.]]):tformat(rad, 3 + self:getTalentLevel(t)) -- end, --} @@ -111,7 +111,7 @@ newTalent{ return ([[A mighty kick that pushes your target away %d grids. If another creature is in the way, it will also be pushed away. The Knockback chance increases with your Accuracy or your Physical Power, whichever is greater.]]) - :format(t.getDist(self, t)) + :tformat(t.getDist(self, t)) end, } @@ -137,6 +137,6 @@ newTalent{ end, info = function(self, t) return ([[Your great dexterity allows you to see incoming projectiles (spells, arrows, ...), effectively slowing them down by %d%%.]]): - format(math.min(90, 15 + self:getDex(10, true) * self:getTalentLevel(t))) + tformat(math.min(90, 15 + self:getDex(10, true) * self:getTalentLevel(t))) end, } diff --git a/game/modules/tome/data/talents/techniques/finishing-moves.lua b/game/modules/tome/data/talents/techniques/finishing-moves.lua index 2c7c06ad6be6a934b866688aff41ca83ef543f12..ad2c6b9969e4429dde85b607220f875ef5ee4aee 100644 --- a/game/modules/tome/data/talents/techniques/finishing-moves.lua +++ b/game/modules/tome/data/talents/techniques/finishing-moves.lua @@ -68,7 +68,7 @@ newTalent{ return ([[A finishing uppercut that deals %d%% damage, and attempts to stun your target for %d to %d turns, depending on the amount of combo points you've accumulated. The stun chance will improve with your Physical Power. Using this talent removes your combo points.]]) - :format(damage, stun, stunmax) + :tformat(damage, stun, stunmax) end, } @@ -125,7 +125,7 @@ newTalent{ return ([[A powerful concussive punch that deals %d%% weapon damage to your target. If the punch hits, all targets in a radius of %d will take %0.2f to %0.2f damage, depending on the amount of combo points you've accumulated. The area damage will scale with your Strength, and the radius will increase by 1 per combo point. Using this talent removes your combo points.]]) - :format(damage, radius, damDesc(self, DamageType.PHYSICAL, area), damDesc(self, DamageType.PHYSICAL, areamax)) + :tformat(damage, radius, damDesc(self, DamageType.PHYSICAL, area), damDesc(self, DamageType.PHYSICAL, areamax)) end, } @@ -193,7 +193,7 @@ newTalent{ end, info = function(self, t) return ([[You spin into a flying leap and deliver a powerful kick dealing %d%% weapon damage to all enemies in a radius of 1 as you land. The range will increase by 1 per combo point and total damage will increase by 10%% per combo point. - Using this talent removes your combo points and you must have at least 1 combo point to use it.]]):format(t.getDamage(self, t)*100) + Using this talent removes your combo points and you must have at least 1 combo point to use it.]]):tformat(t.getDamage(self, t)*100) end, } @@ -262,6 +262,6 @@ newTalent{ return ([[A vicious finishing strike that deals %d%% damage increased by 20%% per combo point you have up to a max of %d%%. If the target ends up with low enough life (<20%%), it might be instantly killed. Killing a target with Haymaker will instantly restore %d%% to %d%% of your maximum stamina, depending on the amount of combo points you've accumulated. Using this talent removes your combo points.]]) - :format(damage, maxDamage, stamina, staminamax) + :tformat(damage, maxDamage, stamina, staminamax) end, } diff --git a/game/modules/tome/data/talents/techniques/grappling.lua b/game/modules/tome/data/talents/techniques/grappling.lua index f478f5c21027f84a71c8443905a558a439aaf17a..4f9ebcb6277e77fd3603ac27de8c7bb4b9da0c61 100644 --- a/game/modules/tome/data/talents/techniques/grappling.lua +++ b/game/modules/tome/data/talents/techniques/grappling.lua @@ -49,7 +49,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Increases your Physical Save by %d and your Physical Power by %d. The bonuses will scale with your Strength.]]) - :format(save, damage) + :tformat(save, damage) end, } @@ -104,7 +104,7 @@ newTalent{ return ([[Make a melee attack for %d%% damage and then attempt to grapple a target up to one size category larger than yourself for %d turns. A grappled opponent will be unable to move, take %d damage each turn, and %d%% of the damage you receive from any source will be redirected to them as physical damage. Any movement from the target or you will break the grapple. Maintaining a grapple drains %d stamina per turn. You may only grapple a single target at a time, and using any targeted unarmed talent on a target that you're not grappling will break the grapple.]]) - :format(damage, duration, power, share, drain) + :tformat(damage, duration, power, share, drain) end, } @@ -145,7 +145,7 @@ newTalent{ #RED#Talent Level 1: Reduces physical power by %d Talent Level 3: Silences Talent Level 5: Reduces global action speed by %d%%]]) - :format(reduction, slow*100) + :tformat(reduction, slow*100) end, } @@ -238,7 +238,7 @@ newTalent{ local slam = t.getSlam(self, t) return ([[Rushes forward and attempts to take the target to the ground, making a melee attack for %d%% damage then attempting to grapple them. If you're already grappling the target you'll instead slam them into the ground creating a radius 5 shockwave for %d physical damage and breaking your grapple. The grapple effects and duration will be based off your grapple talent, if you have it, and the damage will scale with your Physical Power.]]) - :format(damDesc(self, DamageType.PHYSICAL, (takedown)), damDesc(self, DamageType.PHYSICAL, (slam))) + :tformat(damDesc(self, DamageType.PHYSICAL, (takedown)), damDesc(self, DamageType.PHYSICAL, (slam))) end, } @@ -333,6 +333,6 @@ newTalent{ info = function(self, t) return ([[In a mighty show of strength you whirl your grappled victim around and throw them into the air causing %d%% damage to them and enemies in radius %d on landing. If at least 1 other enemy is hit the thrown enemy will be shaken by the impact losing a full turn. - You can only throw enemies that could move normally.]]):format(t.getDamage(self, t)*100, self:getTalentRadius(t)) + You can only throw enemies that could move normally.]]):tformat(t.getDamage(self, t)*100, self:getTalentRadius(t)) end, } diff --git a/game/modules/tome/data/talents/techniques/magical-combat.lua b/game/modules/tome/data/talents/techniques/magical-combat.lua index 8daef56a2854d07f1e76901705bcb8e5bec75085..25151e600d475a3858ece476a12063387d0eab4d 100644 --- a/game/modules/tome/data/talents/techniques/magical-combat.lua +++ b/game/modules/tome/data/talents/techniques/magical-combat.lua @@ -159,7 +159,7 @@ newTalent{ The chance increases with your Cunning. Allowed spells: %s %s]]): - format(t.getChance(self, t), talent_list, talent_selected) + tformat(t.getChance(self, t), talent_list, talent_selected) end, } @@ -175,7 +175,7 @@ newTalent{ local spellpower = t.getSpellpower(self, t) local bonus = self:getCun()*spellpower/100 return ([[The user gains a bonus to Spellpower equal to %d%% of your Cunning (Current bonus: %d).]]): - format(spellpower, bonus) + tformat(spellpower, bonus) end, } @@ -207,7 +207,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Regenerates %0.2f mana per turn, and increases physical and spell critical chance by %d%% while active.]]):format(t.getManaRegen(self, t), t.getCritChance(self, t)) + return ([[Regenerates %0.2f mana per turn, and increases physical and spell critical chance by %d%% while active.]]):tformat(t.getManaRegen(self, t), t.getCritChance(self, t)) end, } @@ -228,6 +228,6 @@ newTalent{ If you are dual wielding this will only occur 50%% of the time. At level 5 the ball becomes radius 2. ]]): - format(t.getSPMult(self, t)*100, self:getMag() * t.getSPMult(self, t), self:getTalentRadius(t), damDesc(self, DamageType.ARCANE, t.getDamage(self, t)) ) + tformat(t.getSPMult(self, t)*100, self:getMag() * t.getSPMult(self, t), self:getTalentRadius(t), damDesc(self, DamageType.ARCANE, t.getDamage(self, t)) ) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/marksmanship.lua b/game/modules/tome/data/talents/techniques/marksmanship.lua index 383d91e809d81bce66c9cfffdfaa23dc5551d01c..200927fac9065f077340d392fc21ff1063eadbfc 100644 --- a/game/modules/tome/data/talents/techniques/marksmanship.lua +++ b/game/modules/tome/data/talents/techniques/marksmanship.lua @@ -66,7 +66,7 @@ newTalent{ local sta = t.getStamina(self,t) return ([[You take advantage of unwary foes (those at or above 90%% life). Against these targets, Shoot, Steady Shot and Headshot bleed targets for %d%% additional damage over 5 turns and have a 50%% increased chance to mark (if capable of marking). In addition, your Steady Shot, Shoot and Headshot now restore %0.1f stamina on hit.]]) - :format(bleed, sta) + :tformat(bleed, sta) end, } @@ -115,7 +115,7 @@ newTalent{ local def = t.getDefensePenalty(self,t) return ([[Fire a shot at the target tile that blinds enemies for %d turns, marks them for 2 turns and illuminates the area within radius %d for %d turns. Enemies within the illuminated area lose %d defence and stealth power and cannot benefit from concealment. The status chance increases with your Accuracy, and the defense reduction with your Dexterity.]]) - :format(blind, rad, dur, def) + :tformat(blind, rad, dur, def) end, } @@ -143,6 +143,6 @@ newTalent{ local speed = t.getSpeed(self,t)*100 local mark = t.getMarkChance(self,t) return ([[Enter a state of heightened focus for %d turns. While in this state your ranged attack speed is increased by %d%%, your shots do not consume ammo, and all shots capable of marking have their chance to mark increased by %d%%.]]): - format(dur, speed, mark) + tformat(dur, speed, mark) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/mobility.lua b/game/modules/tome/data/talents/techniques/mobility.lua index 15ed7a3f834343cc048fbe8f695f0d660c68d650..f125bdab93379391d0627016f15f73fe24ce67f2 100644 --- a/game/modules/tome/data/talents/techniques/mobility.lua +++ b/game/modules/tome/data/talents/techniques/mobility.lua @@ -197,7 +197,7 @@ newTalent{ You must disengage in a nearly straight line directly away from your target (which you must be able to see). After moving, you gain %d%% increased movement speed for 3 turns (which ends if you take any actions other than movement), and you may reload your ammo (if any). The extra speed and maximum distance you can move are reduced by your Fatigue level.]]): - format(t.getDist(self, t), t.getSpeed(self,t), t.getNb(self,t)) + tformat(t.getDist(self, t), t.getSpeed(self,t), t.getNb(self,t)) end, } @@ -230,7 +230,7 @@ newTalent{ local chance, def = t.getChanceDef(self,t) return ([[Your quick wit and reflexes allow you to anticipate attacks against you, granting you a %d%% chance to evade melee and ranged attacks and %d increased defense for %d turns. The chance to evade and defense bonus increase with your Dexterity.]]): - format(chance, def,t.getDur(self,t)) + tformat(chance, def,t.getDur(self,t)) end, } @@ -277,7 +277,7 @@ newTalent { end, info = function(self, t) return ([[In an extreme feat of agility, you move to a spot you can see within range, bounding around, over, or through any enemies in the way. - This talent cannot be used while wearing heavy armor, and leaves you exhausted. The exhaustion increases the cost of your activated Mobility talents by %d%% (stacking), but fades over %d turns.]]):format(t.getExhaustion(self, t), t.getDuration(self, t)) + This talent cannot be used while wearing heavy armor, and leaves you exhausted. The exhaustion increases the cost of your activated Mobility talents by %d%% (stacking), but fades over %d turns.]]):tformat(t.getExhaustion(self, t), t.getDuration(self, t)) end } @@ -330,7 +330,7 @@ newTalent { stam, stam_cost = self:getStamina(), stam_cost or t.getStamina(self, t) local lt = t.getLifeTrigger(self, t)/100 if stam_cost == 0 or dam > self.max_life*lt then - --print(("[PROJECTOR: Trained Reactions] PASSED life/stam test for %s: %s %s damage (%s) (%0.1f/%0.1f stam) from %s (state:%s)"):format(self.name, dam, type, is_attk, stam_cost, stam, src.name, state)) -- debugging + --print(("[PROJECTOR: Trained Reactions] PASSED life/stam test for %s: %s %s damage (%s) (%0.1f/%0.1f stam) from %s (state:%s)"):tformat(self.name, dam, type, is_attk, stam_cost, stam, src.name, state)) -- debugging self.turn_procs[t.id] = state self:incStamina(-stam_cost) -- Note: force_talent_ignore_ressources has no effect on this @@ -339,8 +339,8 @@ newTalent { dam = dam - reduce print("[PROJECTOR] dam after callbackOnTakeDamage", t.id, dam) local d_color = DamageType:get(type).text_color or "#FIREBRICK#" - local stam_txt = stam_cost > 0 and (" #ffcc80#, -%d stam#LAST#"):format(stam_cost) or "" - game:delayedLogDamage(src, self, 0, ("%s(%d reacted#LAST#%s%s)#LAST#"):format(d_color, reduce, stam_txt, d_color), false) + local stam_txt = stam_cost > 0 and (" #ffcc80#, -%d stam#LAST#"):tformat(stam_cost) or "" + game:delayedLogDamage(src, self, 0, ("%s(%d reacted#LAST#%s%s)#LAST#"):tformat(d_color, reduce, stam_txt, d_color), false) if not is_attk then self.turn_procs.gen_trained_reactions = true end return {dam = dam} end @@ -363,7 +363,7 @@ newTalent { This requires %0.1f stamina and reduces the damage by %d%%. Your reactions are too slow for this if you are wearing heavy armour. The damage reduction improves with your Defense.]]) - :format(trigger, stam, reduce) + :tformat(trigger, stam, reduce) end, } diff --git a/game/modules/tome/data/talents/techniques/munitions.lua b/game/modules/tome/data/talents/techniques/munitions.lua index 9575a17ceeed4cc33b728f1cbaff3523fbb982aa..b8810ffe7eecf5a471b781d6bbe8d45f01899fea 100644 --- a/game/modules/tome/data/talents/techniques/munitions.lua +++ b/game/modules/tome/data/talents/techniques/munitions.lua @@ -67,7 +67,7 @@ Venomous - Shots deal %0.2f nature damage and inflict numbing poison, dealing a Piercing - Shots reduce armor and saves by %d for 3 turns, and your physical penetration is increased by %d%%. You can only have 1 type of ammunition loaded at a time. The poison damage dealt, armor penetration and save reduction will increase with your Physical Power.]]): - format(t.getIncendiaryDamage(self, t)*100, t.getIncendiaryRadius(self,t), damDesc(self, DamageType.NATURE, t.getPoisonDamage(self, t)/5), damDesc(self, DamageType.NATURE, t.getPoisonDamage(self, t)), t.getNumb(self, t), t.getArmorSaveReduction(self, t), t.getResistPenalty(self,t)) + tformat(t.getIncendiaryDamage(self, t)*100, t.getIncendiaryRadius(self,t), damDesc(self, DamageType.NATURE, t.getPoisonDamage(self, t)/5), damDesc(self, DamageType.NATURE, t.getPoisonDamage(self, t)), t.getNumb(self, t), t.getArmorSaveReduction(self, t), t.getResistPenalty(self,t)) end, } @@ -153,7 +153,7 @@ newTalent{ local radius = self:getTalentRadius(t) return ([[Load incendiary ammunition, causing attacks to deal an additional %d%% weapon damage as fire in a radius %d ball around your target. This cannot trigger more than once per turn. - The damage will scale with your Physical Power.]]):format(damage, radius) + The damage will scale with your Physical Power.]]):tformat(damage, radius) end, } @@ -217,7 +217,7 @@ newTalent{ local damage = t.getPoisonDamage(self, t) local numb = t.getNumb(self,t) return ([[Load venomous ammunition, causing ranged attacks to deal %0.2f nature damage and inflict numbing poison, dealing %0.2f nature damage over 5 turns and reducing all damage dealt by %d%%. - The damage will scale with your Physical Power.]]):format(damDesc(self, DamageType.NATURE, damage/5), damDesc(self, DamageType.NATURE, damage), numb) + The damage will scale with your Physical Power.]]):tformat(damDesc(self, DamageType.NATURE, damage/5), damDesc(self, DamageType.NATURE, damage), numb) end, } @@ -268,7 +268,7 @@ newTalent{ local reduce = t.getArmorSaveReduction(self, t) local resist = t.getResistPenalty(self,t) return ([[Load piercing ammunition, causing attacks to reduce the target's armor and saves by %d for 3 turns, and increasing your physical penetration by %d%%. - The armor and save reduction will scale with your Physical Power.]]):format(reduce, resist) + The armor and save reduction will scale with your Physical Power.]]):tformat(reduce, resist) end, } @@ -390,7 +390,7 @@ Incendiary - Fire a shot that deals %d%% weapon damage as fire and covers target Venomous - Fire a shot that deals %d%% weapon damage as nature and explodes into a radius %d cloud of crippling poison for %d turns, dealing %0.2f nature damage each turn and giving affected targets a %d%% chance to fail talent usage. Piercing - Fire a shot that explodes into a radius %d burst of shredding shrapnel, dealing %d%% weapon damage as physical and removing %d beneficial physical effects or sustains. The poison damage dealt increases with your Physical Power, and status chance increases with your Accuracy.]]): - format(dam, radius, dur, slow, fire, dam, radius, dur, damDesc(self, DamageType.NATURE, poison), fail, radius, dam, nb) + tformat(dam, radius, dur, slow, fire, dam, radius, dur, damDesc(self, DamageType.NATURE, poison), fail, radius, dam, nb) end, } @@ -415,7 +415,7 @@ Venomous - Inflicts leeching poison, dealing %0.2f nature damage over 3 turns an Piercing - Punctures the target’s armor, increasing all damage they take by %d%% for 3 turns. You only have a limited amount of this ammo, causing this talent to have a cooldown. The damage dealt will increase with your Physical Power, and status chance increases with your Accuracy.]]): - format(damDesc(self, DamageType.FIRE, fire), damDesc(self, DamageType.NATURE, poison), resist) + tformat(damDesc(self, DamageType.FIRE, fire), damDesc(self, DamageType.NATURE, poison), resist) end, } @@ -443,6 +443,6 @@ Incendiary - Targets struck by the explosion have their armor and saves reduced Venomous - Shots deal an additional %d%% weapon damage as nature in a radius %d ball, which applies numbing poison as per Exotic Munitions. This cannot occur more than once per turn. Piercing - Shots deal %0.2f physical damage and maim the target, bleeding them for a further %0.2f physical damage over 5 turns and reducing all damage dealt by %d%%. The physical damage dealt, armor penetration and save reduction will increase with your Physical Power.]]): - format(armor, resist, poison, radius, bleed/5, bleed, numb) + tformat(armor, resist, poison, radius, bleed/5, bleed, numb) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/pugilism.lua b/game/modules/tome/data/talents/techniques/pugilism.lua index 9d3aafd6f7b1d5e26afa2b26981713ad092a2f3b..609b3330085267ae4631dd5aaec51a68a75ab309 100644 --- a/game/modules/tome/data/talents/techniques/pugilism.lua +++ b/game/modules/tome/data/talents/techniques/pugilism.lua @@ -65,7 +65,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Increases your Accuracy by %d, the damage multiplier of your striking talents (Pugilism and Finishing Moves) by %d%%, and reduces all damage taken by %d. The offensive bonuses scale with your Dexterity and the damage reduction with your Strength.]]): - format(attack, damage, t.getFlatReduction(self, t)) + tformat(attack, damage, t.getFlatReduction(self, t)) end, } @@ -147,7 +147,7 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[Deliver two quick punches that deal %d%% damage each, and switch your stance to Striking Stance. If you already have Striking Stance active and Double Strike isn't on cooldown, this talent will automatically replace your normal attacks (and trigger the cooldown). If either jab connects, you earn one combo point. At talent level 4 or greater, if both jabs connect, you'll earn two combo points.]]) - :format(damage) + :tformat(damage) end, } @@ -259,7 +259,7 @@ newTalent{ local charge =t.chargeBonus(self, t, t.range(self, t)-1)*100 return ([[Attack your foes in a frontal arc with a spinning backhand, doing %d%% damage. If you're not adjacent to the target, you'll step forward as you spin, gaining up to %d%% bonus damage, which increases the farther you move. This attack will remove any grapples you're maintaining, and earn one combo point (or one combo point per attack that connects, if the talent level is 4 or greater).]]) - :format(damage, charge) + :tformat(damage, charge) end, } @@ -316,7 +316,7 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[Deliver a devastating axe kick dealing %d%% damage. If the blow connects your target is brain damaged, causing all talents to fail for %d turns and earning 2 combo points. This effect cannot be saved against, though it can be dodged and checks confusion immunity.]]) - :format(damage, t.getDuration(self, t)) + :tformat(damage, t.getDuration(self, t)) end, } @@ -380,6 +380,6 @@ newTalent{ local damage = t.getDamage(self, t) * 100 return ([[Lashes out at the target with three quick punches that each deal %d%% damage. Earns one combo point. If your talent level is 4 or greater, this instead earns one combo point per blow that connects.]]) - :format(damage) + :tformat(damage) end, } diff --git a/game/modules/tome/data/talents/techniques/reflexes.lua b/game/modules/tome/data/talents/techniques/reflexes.lua index cfe680530139aeefbf4af99ec8dc3aef74b92ff3..82e42019c0185e79f8af30afb90a9ceebaaafc1b 100644 --- a/game/modules/tome/data/talents/techniques/reflexes.lua +++ b/game/modules/tome/data/talents/techniques/reflexes.lua @@ -74,7 +74,7 @@ newTalent{ return ([[Your reflexes are lightning-fast, if you spot a projectile (arrow, shot, spell, ...) you can instantly shoot at it without taking a turn to take it down. You can shoot down up to %d projectiles. In addition, your heightened senses also reduce the speed of incoming projectiles by %d%%, and prevents your own projectiles from striking you.]]): - format(t.getNb(self, t), t.getSlow(self,t)) + tformat(t.getNb(self, t), t.getSlow(self,t)) end, } @@ -117,7 +117,7 @@ newTalent{ local dam = t.getDamage(self,t)*100 return ([[Activating this talent enhances your reflexes to incredible levels. Each time you are attacked in melee, you have a %d%% chance to fire off a defensive shot off in time to intercept the attack, evading it and dealing %d%% archery damage. This cannot damage the same target more than once per turn.]]) - :format(chance, dam) + :tformat(chance, dam) end, } @@ -173,7 +173,7 @@ newTalent{ local cd = t.getCooldown(self,t) return ([[You take close notice of the target for the next 5 turns. If they attempt to use a non-instant talent you react with incredible speed, firing a shot dealing 25%% damage that causes the talent to fail and go on cooldown. This shot is instant, cannot miss, and puts %d other talents on cooldown for %d turns.]]): - format(nb, cd) + tformat(nb, cd) end, } @@ -202,6 +202,6 @@ newTalent{ local speed = t.getSpeed(self,t) return ([[You put all your focus into escaping combat for 4 turns. While under this effect you gain %d%% increased resistance to all damage, %0.1f increased stamina regeneration, immunity to stun, pin, daze and slowing effects and %d%% increased movement speed. Any action other than movement will cancel this effect.]]): - format(power, sta, speed) + tformat(power, sta, speed) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/skirmisher-slings.lua b/game/modules/tome/data/talents/techniques/skirmisher-slings.lua index be939028d1be7888b1887b632564c58d9effcc35..850bac99363a75cc62f4e9c126ccdb995038c328 100644 --- a/game/modules/tome/data/talents/techniques/skirmisher-slings.lua +++ b/game/modules/tome/data/talents/techniques/skirmisher-slings.lua @@ -35,7 +35,7 @@ newTalent { local inc = t.getPercentInc(self, t) local reloads = t.ammo_mastery_reload(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using slings. - Also, increases your reload rate by %d.]]):format(inc * 100, reloads) + Also, increases your reload rate by %d.]]):tformat(inc * 100, reloads) end, } @@ -67,7 +67,7 @@ newTalent { getAttackSpeed = function(self,t) return self:combatTalentLimit(t, 40, 10, 25) end, display_speed = function(self, t) return ("Double Archery (#LIGHT_GREEN#%d%%#LAST# of a turn)"): - format(self:getSpeed('archery') * 50) + tformat(self:getSpeed('archery') * 50) end, action = function(self, t) local targets = self:archeryAcquireTargets(nil, {one_shot=true, add_speed=self.combat_physspeed}) @@ -89,7 +89,7 @@ newTalent { info = function(self, t) return ([[Fire off a quick sling bullet for %d%% damage at double your normal attack speed, as well as increasing your attack speed by %d%% for 5 turns. Each time you move, the cooldown of this talent is reduced by 1.]]) - :format(t.getDamage(self, t) * 100, t.getAttackSpeed(self,t)) + :tformat(t.getDamage(self, t) * 100, t.getAttackSpeed(self,t)) end, } @@ -170,7 +170,7 @@ newTalent { return fired end, info = function(self, t) - return ([[Take aim and unload up to %d shots for %d%% weapon damage each against random enemies inside a cone. Each enemy can only be hit once (twice for talent level 3 and higher). Using Swift Shot lowers the cooldown by 1.]]):format(t.limit_shots(self, t), t.damage_multiplier(self, t) * 100) + return ([[Take aim and unload up to %d shots for %d%% weapon damage each against random enemies inside a cone. Each enemy can only be hit once (twice for talent level 3 and higher). Using Swift Shot lowers the cooldown by 1.]]):tformat(t.limit_shots(self, t), t.damage_multiplier(self, t) * 100) end, } @@ -200,6 +200,6 @@ newTalent { deactivate = function(self, t, p) return true end, info = function(self, t) return ([[Your Shoot talent now costs %d stamina but fires %d times for %d%% damage per shot.]]) - :format(t.shot_stamina(self, t), t.bullet_count(self, t), t.damage_multiplier(self, t) * 100 ) + :tformat(t.shot_stamina(self, t), t.bullet_count(self, t), t.damage_multiplier(self, t) * 100 ) end, } diff --git a/game/modules/tome/data/talents/techniques/sling.lua b/game/modules/tome/data/talents/techniques/sling.lua index d8fcf5c6da9d5d8117586c507729ae5ac7b02744..5f77553b6b4089cc00e3dae29d12017972ab9b3c 100644 --- a/game/modules/tome/data/talents/techniques/sling.lua +++ b/game/modules/tome/data/talents/techniques/sling.lua @@ -36,7 +36,7 @@ newTalent{ local inc = t.getPercentInc(self, t) local reloads = t.ammo_mastery_reload(self, t) return ([[Increases weapon damage by %d%% and physical power by 30 when using slings. - Also, increases your reload rate by %d.]]):format(inc * 100, reloads) + Also, increases your reload rate by %d.]]):tformat(inc * 100, reloads) end, } @@ -71,7 +71,7 @@ newTalent{ info = function(self, t) return ([[You fire a shot into your target's eyes, blinding it for %d turns and doing %d%% damage. The blind chance increases with your Accuracy.]]) - :format(t.getBlindDur(self, t), 100 * self:combatTalentWeaponDamage(t, 1, 1.5)) + :tformat(t.getBlindDur(self, t), 100 * self:combatTalentWeaponDamage(t, 1, 1.5)) end, } @@ -106,7 +106,7 @@ newTalent{ end, info = function(self, t) return ([[You fire a mighty shot at your target, doing %d%% damage and knocking it back. - The knockback chance increases with your Accuracy.]]):format(100 * self:combatTalentWeaponDamage(t, 1, 1.5)) + The knockback chance increases with your Accuracy.]]):tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.5)) end, } @@ -135,6 +135,6 @@ newTalent{ return true end, info = function(self, t) - return ([[You fire an average of %0.1f shots at your target, doing %d%% damage with each shot.]]):format(t.getShots(self, t, true), 100 * self:combatTalentWeaponDamage(t, 0.3, 0.7)) + return ([[You fire an average of %0.1f shots at your target, doing %d%% damage with each shot.]]):tformat(t.getShots(self, t, true), 100 * self:combatTalentWeaponDamage(t, 0.3, 0.7)) end, } diff --git a/game/modules/tome/data/talents/techniques/sniper.lua b/game/modules/tome/data/talents/techniques/sniper.lua index b0856a1a748b6049df10be386c1fae3d146377fb..257ada624530334a72732837489c7c32adf250b0 100644 --- a/game/modules/tome/data/talents/techniques/sniper.lua +++ b/game/modules/tome/data/talents/techniques/sniper.lua @@ -93,7 +93,7 @@ newTalent{ return ([[Enter a concealed sniping stance, increasing your weapon's attack range and vision range by %d, giving all incoming damage a %d%% chance to miss you, and causing your Headshot, Volley and Called Shots to behave as if the target was marked. Any non-instant, non-movement action will break concealment, but the increased range and vision and damage avoidance will persist for 3 turns, with the damage avoidance decreasing in power by 33%% each turn. This requires a bow to use, and cannot be used if there are foes in sight within range %d.]]): - format(range, avoid, radius) + tformat(range, avoid, radius) end, } @@ -146,7 +146,7 @@ newTalent{ return ([[Fire an arrow tipped with a smoke bomb inflicting %d%% damage and creating a radius %d cloud of thick, disorientating smoke. Those caught within will have their vision range reduced by %d for 5 turns. The distraction caused by this effect reduces the cooldown of your Concealment by %d turns. If the cooldown is reduced to 0, you instantly activate Concealment regardless of whether foes are too close. The chance for the smoke bomb to affect your targets increases with your Accuracy. This requires a bow to use.]]): - format(dam, radius, sight, cooldown) + tformat(dam, radius, sight, cooldown) end, } @@ -194,7 +194,7 @@ newTalent{ return ([[Enter a calm, focused stance, increasing physical power and accuracy by %d, projectile speed by %d%% and the chance to mark targets by an additional %d%%. This makes your shots more effective at range, increasing all damage dealt by %0.1f%% per tile travelled beyond 3, to a maximum of %0.1f%% damage at range 8. The physical power and accuracy increase with your Dexterity. This requires a bow to use.]]): - format(power, speed, mark, dam, dam*5) + tformat(power, speed, mark, dam, dam*5) end, } @@ -228,7 +228,7 @@ newTalent{ return ([[Take aim for 1 turn, preparing a deadly shot. During the next turn, this talent will be replaced with the ability to fire a lethal shot dealing %d%% damage and marking the target. While aiming, your intense focus causes you to shrug off %d%% incoming damage and all negative effects. This requires a bow to use.]]): - format(dam, reduction) + tformat(dam, reduction) end, } @@ -269,6 +269,6 @@ newTalent{ end, info = function(self, t) return ([[Fire a lethal shot. This shot will bypass other enemies between you and your target, and gains 100 increased accuracy.]]): - format(dam, reduction) + tformat(dam, reduction) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/strength-of-the-berserker.lua b/game/modules/tome/data/talents/techniques/strength-of-the-berserker.lua index 2c80b3559641829a831393dfd1110ae215492780..2c21ac4a68ed8ddb19050fd5950a81293a0ce6d2 100644 --- a/game/modules/tome/data/talents/techniques/strength-of-the-berserker.lua +++ b/game/modules/tome/data/talents/techniques/strength-of-the-berserker.lua @@ -53,7 +53,7 @@ newTalent{ end, info = function(self, t) return ([[Shout your warcry in a frontal cone of radius %d. Any targets caught inside will be confused (50%% confusion power) for %d turns.]]): - format(self:getTalentRadius(t), t.getDuration(self, t)) + tformat(self:getTalentRadius(t), t.getDuration(self, t)) end, } @@ -139,7 +139,7 @@ newTalent{ Sustaining this rage takes its toll on your body, decreasing your life by 2%% each turn, but for every 1%% of life missing you gain 0.5%% critical hit chance. Even when sustained, this talent is only active when foes are in sight. The Accuracy bonus increases with your Dexterity, and the Physical Power bonus with your Strength.]]): - format( t.getAtk(self, t), t.getDam(self, t), t.getImmune(self, t)*100) + tformat( t.getAtk(self, t), t.getDam(self, t), t.getImmune(self, t)*100) end, } @@ -201,7 +201,7 @@ newTalent{ return ([[Hits the target with your weapon, doing %d%% damage. If the attack hits, the target's armour and saves are reduced by %d for %d turns. Also if the target is protected by a temporary damage shield there is %d%% chance to shatter it. Armor reduction chance increases with your Physical Power.]]) - :format(100 * self:combatTalentWeaponDamage(t, 0.8, 1.5), t.getArmorReduc(self, t), t.getDuration(self, t), t.getShatter(self, t)) + :tformat(100 * self:combatTalentWeaponDamage(t, 0.8, 1.5), t.getArmorReduc(self, t), t.getDuration(self, t), t.getShatter(self, t)) end, } @@ -235,6 +235,6 @@ newTalent{ For %d turns you gain %d stamina per turn and %d%% movement and attack speed. Only usable at 30%% or lower stamina. Stamina regeneration is based on your Constitution stat.]]): - format(t.getDur(self, t), t.getStamina(self, t), t.getSpeed(self, t)) + tformat(t.getDur(self, t), t.getStamina(self, t), t.getSpeed(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/superiority.lua b/game/modules/tome/data/talents/techniques/superiority.lua index d2f58817bf26e78e5a7733dec6620339fc1b5838..c7beb98bdab530fb6b29ddff4177705086299afa 100644 --- a/game/modules/tome/data/talents/techniques/superiority.lua +++ b/game/modules/tome/data/talents/techniques/superiority.lua @@ -37,7 +37,7 @@ newTalent{ info = function(self, t) return ([[Concentrate on the battle, ignoring some of the damage you take. Improves physical damage reduction by %d%% and provides a %d%% chance to shrug off critical damage for 20 turns.]]): - format(t.getResist(self,t), t.critResist(self, t)) + tformat(t.getResist(self,t), t.critResist(self, t)) end, } @@ -67,7 +67,7 @@ newTalent{ info = function(self, t) return ([[Take an offensive stance. As you attack your foes, you knock your target and foes adjacent to them in a frontal arc back (up to %d grids). This consumes stamina rapidly (-1 stamina/turn).]]): - format(t.range(self, t)) + tformat(t.range(self, t)) end, } @@ -102,7 +102,7 @@ newTalent{ return true end, info = function(self, t) - return ([[Call all foes in a radius of %d around you into battle, getting them into melee range in an instant.]]):format(t.radius(self,t)) + return ([[Call all foes in a radius of %d around you into battle, getting them into melee range in an instant.]]):tformat(t.radius(self,t)) end, } @@ -129,6 +129,6 @@ newTalent{ info = function(self, t) return ([[Put all of your strength into your weapon blows, creating shockwaves that deal %d%% Physical weapon damage to all nearby targets. Only one shockwave will be created per action, and the primary target does not take extra damage. Each shattering impact will drain 8 stamina.]]): - format(100*t.weaponDam(self, t)) + tformat(100*t.weaponDam(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/techniques.lua b/game/modules/tome/data/talents/techniques/techniques.lua index b7179ef727bdbebf0d4bd2ac9b2e99bbee2c917e..d2ea47e6d6b922858c725a45956f07a36b1288c2 100644 --- a/game/modules/tome/data/talents/techniques/techniques.lua +++ b/game/modules/tome/data/talents/techniques/techniques.lua @@ -18,39 +18,39 @@ -- darkgod@te4.org -- Physical combat -newTalentType{ allow_random=true, type="technique/2hweapon-assault", name = "two-handed assault", description = "Specialized two-handed techniques." } -newTalentType{ allow_random=true, type="technique/strength-of-the-berserker", name = "berserker's strength", description = "Fear nothing!" } -newTalentType{ allow_random=true, type="technique/2hweapon-offense", name = "two-handed weapons", description = "Specialized two-handed techniques." } -newTalentType{ allow_random=true, type="technique/2hweapon-cripple", name = "two-handed maiming", description = "Specialized two-handed techniques." } -newTalentType{ allow_random=true, type="technique/shield-offense", name = "shield offense", speed = "shield", description = "Specialized weapon and shield techniques." } -newTalentType{ allow_random=true, type="technique/shield-defense", name = "shield defense", speed = "shield", description = "Specialized weapon and shield techniques." } -newTalentType{ allow_random=true, type="technique/dualweapon-training", name = "dual weapons", description = "Specialized dual wielding techniques." } -newTalentType{ allow_random=true, type="technique/dualweapon-attack", name = "dual techniques", description = "Specialized dual wielding techniques." } -newTalentType{ allow_random=true, type="technique/archery-base", name = "archery - base", description = "Ability to shoot." } -newTalentType{ allow_random=true, type="technique/archery-bow", name = "archery - bows", description = "Specialized bow techniques." } -newTalentType{ allow_random=true, type="technique/archery-sling", name = "archery - slings", description = "Specialized sling techniques." } -newTalentType{ allow_random=true, type="technique/archery-training", name = "archery training", description = "Generic archery techniques." } -newTalentType{ allow_random=true, type="technique/archery-utility", name = "archery prowess", description = "Specialized archery techniques to maim your targets." } -newTalentType{ allow_random=true, type="technique/archery-excellence", name = "archery excellence", min_lev = 10, description = "Specialized archery techniques that result from honed training." } -newTalentType{ allow_random=true, type="technique/superiority", name = "superiority", min_lev = 10, description = "Advanced combat techniques." } -newTalentType{ allow_random=true, type="technique/battle-tactics", name = "battle tactics", min_lev = 10, description = "Advanced combat tactics." } -newTalentType{ allow_random=true, type="technique/warcries", name = "warcries", no_silence = true, min_lev = 10, description = "Master the warcries to improve yourself and weaken others." } -newTalentType{ allow_random=true, type="technique/bloodthirst", name = "bloodthirst", min_lev = 10, description = "Delight in the act of battle and the spilling of blood." } -newTalentType{ allow_random=true, type="technique/field-control", name = "field control", generic = true, description = "Control the battlefield using various techniques." } -newTalentType{ allow_random=true, type="technique/combat-techniques-active", name = "combat techniques", description = "Generic combat oriented techniques." } -newTalentType{ allow_random=true, type="technique/combat-techniques-passive", name = "combat veteran", description = "Generic combat oriented techniques." } -newTalentType{ allow_random=true, type="technique/combat-training", name = "combat training", generic = true, description = "Teaches to use various armours, weapons and improves health." } -newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="technique/magical-combat", name = "magical combat", description = "The blending together of magic and melee prowess." } -newTalentType{ allow_random=true, type="technique/mobility", name = "mobility", generic = true, description = "Training and techniques to improve mobility and evade your enemies. On the battlefield, positioning is paramount." } -newTalentType{ allow_random=true, type="technique/thuggery", name = "thuggery", generic = true, description = "Whatever wins the day, wins the day." } -newTalentType{ allow_random=true, type="technique/assassination", name = "assassination", min_lev=10, description = "Bring death from the shadows." } -newTalentType{ allow_random=true, type="technique/throwing-knives", name = "throwing knives", description = "Master the art of throwing knives to fight from a distance." } -newTalentType{ allow_random=true, type="technique/duelist", name = "duelist", description = "Use your dual weapons to parry and counter." } -newTalentType{ allow_random=true, type="technique/marksmanship", name = "marksmanship", description = "Training in the use of bows and slings." } -newTalentType{ allow_random=true, type="technique/reflexes", name = "reflexes", description = "Use your reflexes to evade and counter." } -newTalentType{ allow_random=true, type="technique/munitions", min_lev = 10, name = "munitions", description = "Equip specialised ammunition." } -newTalentType{ allow_random=true, type="technique/agility", min_lev = 10, name = "agility", description = "Take advantage of speed and shield to fight in close quarters." } -newTalentType{ allow_random=true, type="technique/sniper", min_lev = 10, name = "sniper", description = "Stealth and specialised long range archery techniques." } +newTalentType{ allow_random=true, type="technique/2hweapon-assault", name = _t"two-handed assault", description = _t"Specialized two-handed techniques." } +newTalentType{ allow_random=true, type="technique/strength-of-the-berserker", name = _t"berserker's strength", description = _t"Fear nothing!" } +newTalentType{ allow_random=true, type="technique/2hweapon-offense", name = _t"two-handed weapons", description = _t"Specialized two-handed techniques." } +newTalentType{ allow_random=true, type="technique/2hweapon-cripple", name = _t"two-handed maiming", description = _t"Specialized two-handed techniques." } +newTalentType{ allow_random=true, type="technique/shield-offense", name = _t"shield offense", speed = "shield", description = _t"Specialized weapon and shield techniques." } +newTalentType{ allow_random=true, type="technique/shield-defense", name = _t"shield defense", speed = "shield", description = _t"Specialized weapon and shield techniques." } +newTalentType{ allow_random=true, type="technique/dualweapon-training", name = _t"dual weapons", description = _t"Specialized dual wielding techniques." } +newTalentType{ allow_random=true, type="technique/dualweapon-attack", name = _t"dual techniques", description = _t"Specialized dual wielding techniques." } +newTalentType{ allow_random=true, type="technique/archery-base", name = _t"archery - base", description = _t"Ability to shoot." } +newTalentType{ allow_random=true, type="technique/archery-bow", name = _t"archery - bows", description = _t"Specialized bow techniques." } +newTalentType{ allow_random=true, type="technique/archery-sling", name = _t"archery - slings", description = _t"Specialized sling techniques." } +newTalentType{ allow_random=true, type="technique/archery-training", name = _t"archery training", description = _t"Generic archery techniques." } +newTalentType{ allow_random=true, type="technique/archery-utility", name = _t"archery prowess", description = _t"Specialized archery techniques to maim your targets." } +newTalentType{ allow_random=true, type="technique/archery-excellence", name = _t"archery excellence", min_lev = 10, description = _t"Specialized archery techniques that result from honed training." } +newTalentType{ allow_random=true, type="technique/superiority", name = _t"superiority", min_lev = 10, description = _t"Advanced combat techniques." } +newTalentType{ allow_random=true, type="technique/battle-tactics", name = _t"battle tactics", min_lev = 10, description = _t"Advanced combat tactics." } +newTalentType{ allow_random=true, type="technique/warcries", name = _t"warcries", no_silence = true, min_lev = 10, description = _t"Master the warcries to improve yourself and weaken others." } +newTalentType{ allow_random=true, type="technique/bloodthirst", name = _t"bloodthirst", min_lev = 10, description = _t"Delight in the act of battle and the spilling of blood." } +newTalentType{ allow_random=true, type="technique/field-control", name = _t"field control", generic = true, description = _t"Control the battlefield using various techniques." } +newTalentType{ allow_random=true, type="technique/combat-techniques-active", name = _t"combat techniques", description = _t"Generic combat oriented techniques." } +newTalentType{ allow_random=true, type="technique/combat-techniques-passive", name = _t"combat veteran", description = _t"Generic combat oriented techniques." } +newTalentType{ allow_random=true, type="technique/combat-training", name = _t"combat training", generic = true, description = _t"Teaches to use various armours, weapons and improves health." } +newTalentType{ allow_random=true, no_silence=true, is_spell=true, type="technique/magical-combat", name = _t"magical combat", description = _t"The blending together of magic and melee prowess." } +newTalentType{ allow_random=true, type="technique/mobility", name = _t"mobility", generic = true, description = _t"Training and techniques to improve mobility and evade your enemies. On the battlefield, positioning is paramount." } +newTalentType{ allow_random=true, type="technique/thuggery", name = _t"thuggery", generic = true, description = _t"Whatever wins the day, wins the day." } +newTalentType{ allow_random=true, type="technique/assassination", name = _t"assassination", min_lev=10, description = _t"Bring death from the shadows." } +newTalentType{ allow_random=true, type="technique/throwing-knives", name = _t"throwing knives", description = _t"Master the art of throwing knives to fight from a distance." } +newTalentType{ allow_random=true, type="technique/duelist", name = _t"duelist", description = _t"Use your dual weapons to parry and counter." } +newTalentType{ allow_random=true, type="technique/marksmanship", name = _t"marksmanship", description = _t"Training in the use of bows and slings." } +newTalentType{ allow_random=true, type="technique/reflexes", name = _t"reflexes", description = _t"Use your reflexes to evade and counter." } +newTalentType{ allow_random=true, type="technique/munitions", min_lev = 10, name = _t"munitions", description = _t"Equip specialised ammunition." } +newTalentType{ allow_random=true, type="technique/agility", min_lev = 10, name = _t"agility", description = _t"Take advantage of speed and shield to fight in close quarters." } +newTalentType{ allow_random=true, type="technique/sniper", min_lev = 10, name = _t"sniper", description = _t"Stealth and specialised long range archery techniques." } -- Skirmisher newTalentType { @@ -83,14 +83,14 @@ newTalentType { } -- Unarmed Combat -newTalentType{ is_unarmed=true, allow_random=true, type="technique/pugilism", name = "pugilism", description = "Unarmed Boxing techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } -newTalentType{ is_unarmed=true, allow_random=true, type="technique/finishing-moves", name = "finishing moves", description = "Finishing moves that use combo points and may not be practiced in massive armor or while a weapon or shield is equipped." } -newTalentType{ is_unarmed=true, allow_random=true, type="technique/grappling", name = "grappling", description = "Grappling techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } -newTalentType{ is_unarmed=true, allow_random=true, type="technique/unarmed-discipline", name = "unarmed discipline", description = "Advanced unarmed techniques including kicks and blocks that may not be practiced in massive armor or while a weapon or shield is equipped." } -newTalentType{ is_unarmed=true, allow_random=true, generic = true, type="technique/unarmed-training", name = "unarmed training", description = "Teaches various martial arts techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } -newTalentType{ allow_random=true, type="technique/conditioning", name = "conditioning", generic = true, description = "Physical conditioning." } +newTalentType{ is_unarmed=true, allow_random=true, type="technique/pugilism", name = _t"pugilism", description = _t"Unarmed Boxing techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } +newTalentType{ is_unarmed=true, allow_random=true, type="technique/finishing-moves", name = _t"finishing moves", description = _t"Finishing moves that use combo points and may not be practiced in massive armor or while a weapon or shield is equipped." } +newTalentType{ is_unarmed=true, allow_random=true, type="technique/grappling", name = _t"grappling", description = _t"Grappling techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } +newTalentType{ is_unarmed=true, allow_random=true, type="technique/unarmed-discipline", name = _t"unarmed discipline", description = _t"Advanced unarmed techniques including kicks and blocks that may not be practiced in massive armor or while a weapon or shield is equipped." } +newTalentType{ is_unarmed=true, allow_random=true, generic = true, type="technique/unarmed-training", name = _t"unarmed training", description = _t"Teaches various martial arts techniques that may not be practiced in massive armor or while a weapon or shield is equipped." } +newTalentType{ allow_random=true, type="technique/conditioning", name = _t"conditioning", generic = true, description = _t"Physical conditioning." } -newTalentType{ is_unarmed=true, type="technique/unarmed-other", name = "unarmed other", generic = true, description = "Base martial arts attack and stances." } +newTalentType{ is_unarmed=true, type="technique/unarmed-other", name = _t"unarmed other", generic = true, description = _t"Base martial arts attack and stances." } @@ -327,11 +327,11 @@ archeryWeaponCheck = function(self, weapon, ammo, silent, weapon_type) -- ammo contains error message game.logPlayer(self, ({ ["disarmed"] = "You are currently disarmed and cannot use this talent.", - ["no shooter"] = ("You require a %s to use this talent."):format(weapon_type or "missile launcher"), + ["no shooter"] = ("You require a %s to use this talent."):tformat(weapon_type or "missile launcher"), ["no ammo"] = "You require ammo to use this talent.", ["bad ammo"] = "Your ammo cannot be used.", ["incompatible ammo"] = "Your ammo is incompatible with your missile launcher.", - ["incompatible missile launcher"] = ("You require a %s to use this talent."):format(weapon_type or "bow"), + ["incompatible missile launcher"] = ("You require a %s to use this talent."):tformat(weapon_type or "bow"), })[ammo] or "You require a missile launcher and ammo for this talent.") end return false diff --git a/game/modules/tome/data/talents/techniques/throwing-knives.lua b/game/modules/tome/data/talents/techniques/throwing-knives.lua index 8d08f34dc3b993c9c304739452da47ca2213c65c..43e4167a60d94ba93be136b5b3a7fbc55908f09f 100644 --- a/game/modules/tome/data/talents/techniques/throwing-knives.lua +++ b/game/modules/tome/data/talents/techniques/throwing-knives.lua @@ -186,7 +186,7 @@ newTalent{ if talented == "knife" and self:knowTalent(self.T_LETHALITY) then if name == "Str" then name = "Cun" end end - stat_desc[#stat_desc+1] = ("%d%% %s"):format(i * 100, name) + stat_desc[#stat_desc+1] = ("%d%% %s"):tformat(i * 100, name) end stat_desc = table.concat(stat_desc, ", ") return ([[Range: %d @@ -196,7 +196,7 @@ APR: %d Crit Chance: %+d%% Crit mult: %d%% Uses Stats: %s -]]):format(t.range(self, t), dmg, dmg*damrange, atk, talented, apr, crit, crit_mult, stat_desc) +]]):tformat(t.range(self, t), dmg, dmg*damrange, atk, talented, apr, crit, crit_mult, stat_desc) end, info = function(self, t) local nb = t.getNb(self,t) @@ -212,7 +212,7 @@ Uses Stats: %s Throwing Knives count as melee attacks for the purpose of on-hit effects. Effective Throwing Knife Stats: -%s]]):format(nb, reload, t.knivesInfo(self, t)) +%s]]):tformat(nb, reload, t.knivesInfo(self, t)) end, } @@ -260,7 +260,7 @@ newTalent{ local proj = throw(self, self:getTalentRadius(t), t.getDamage(self,t), tgt.act.x, tgt.act.y, nil, nil, 1) proj.name = "Fan of Knives" tgt.cnt = tgt.cnt + 1 - print(("Fan of Knives #%d: target:%s (%s, %s) = %d"):format(count, tgt.act.name, tgt.act.x, tgt.act.y, tgt.cnt)) + print(("Fan of Knives #%d: target:%s (%s, %s) = %d"):tformat(count, tgt.act.name, tgt.act.x, tgt.act.y, tgt.cnt)) count = count - 1 if tgt.cnt >= tgt_max then table.remove(tgts, id) end end @@ -273,7 +273,7 @@ newTalent{ info = function(self, t) return ([[You keep a special stash of %d throwing knives in your bandolier, which you can throw all at once at enemies within a radius %d cone, for %d%% damage each. Each target can be hit up to 5 times, if the number of knives exceeds the number of enemies. Creatures block knives from hitting targets behind them.]]): - format(t.getNb(self,t), self:getTalentRadius(t), t.getDamage(self, t)*100) + tformat(t.getNb(self,t), self:getTalentRadius(t), t.getDamage(self, t)*100) end, } @@ -293,7 +293,7 @@ newTalent{ local chance = t.getChance(self,t) return ([[You are able to target your throwing knives with pinpoint accuracy, increasing their critical strike chance by %d%% and critical strike damage by %d%%. In addition, your critical strikes with throwing knives have a %d%% chance to randomly disable your target, possibly disarming, silencing or pinning them for 2 turns.]]) - :format(crit, power, chance) + :tformat(crit, power, chance) end, } @@ -344,7 +344,7 @@ newTalent{ local chance = t.getChance(self, t) return ([[You can throw knives with lightning speed, increasing your attack speed with them by %d%% and giving you a %d%% chance when striking a target in melee to throw a knife at a random foe within 7 tiles for 100%% damage. This bonus attack can only trigger once per turn, and does not trigger from throwing knife attacks.]]): - format(speed, chance) + tformat(speed, chance) end, } @@ -394,6 +394,6 @@ newTalent{ %s Using this talent puts your Venomous Strike talent on cooldown.]]): - format(dam, desc) + tformat(dam, desc) end, } \ No newline at end of file diff --git a/game/modules/tome/data/talents/techniques/thuggery.lua b/game/modules/tome/data/talents/techniques/thuggery.lua index 92df31f13c38e28db8fe6d70ec8810db240e10e1..457264bb94bf902119eebaa0aee7f9a526b49f8a 100644 --- a/game/modules/tome/data/talents/techniques/thuggery.lua +++ b/game/modules/tome/data/talents/techniques/thuggery.lua @@ -44,7 +44,7 @@ newTalent{ local talented_mod = math.sqrt((self:getTalentLevel(t) + (o and o.material_level or 1)) / 10) + 1 local power = math.max(self.combat_dam + add, 1) power = (math.sqrt(power / 10) - 1) * 0.8 + 1 --- print(("[COMBAT HEAD DAMAGE] power(%f) totstat(%f) talent_mod(%f)"):format(power, totstat, talented_mod)) +-- print(("[COMBAT HEAD DAMAGE] power(%f) totstat(%f) talent_mod(%f)"):tformat(power, totstat, talented_mod)) return self:rescaleDamage(totstat / 1.5 * power * talented_mod) end, action = function(self, t) @@ -75,7 +75,7 @@ newTalent{ If the attack hits, the target is confused (%d%% effect) for %d turns. Damage done increases with the quality of your headgear, your Strength, and your physical damage bonuses. Confusion power increases with your Dexterity, and chance increases with Accuracy.]]): - format(dam, t.getConfusion(self, t), duration) + tformat(dam, t.getConfusion(self, t), duration) end, } @@ -93,7 +93,7 @@ newTalent{ end, info = function(self, t) return ([[Your attunement to violence has given you %d%% resistance to stuns and confusion arising in battle.]]): - format(t.getImmune(self, t)*100) + tformat(t.getImmune(self, t)*100) end, } newTalent{ @@ -110,7 +110,7 @@ newTalent{ end, info = function(self, t) return ([[You know how to hit the right places, gaining +%d%% critical damage modifier and %d armour penetration.]]): - format(t.critpower(self, t), t.getAPR(self, t)) + tformat(t.critpower(self, t), t.getAPR(self, t)) end, } @@ -163,6 +163,6 @@ newTalent{ You gain +%d%% attack speed, +%d%% critical chance and +%d%% physical resistance penetration, but this talent drains 6 stamina each turn. This effect is disabled automatically on rest or run. ]]): - format(t.getSpeed(self,t)*100, t.getCrit(self, t), t.getPen(self, t)) + tformat(t.getSpeed(self,t)*100, t.getCrit(self, t), t.getPen(self, t)) end, } diff --git a/game/modules/tome/data/talents/techniques/tireless-combatant.lua b/game/modules/tome/data/talents/techniques/tireless-combatant.lua index f9d1e98262996d71dffe0372c64ed2357be877d6..bec5b29cf122a904fdbdfd2e79a1d140ffa319d1 100644 --- a/game/modules/tome/data/talents/techniques/tireless-combatant.lua +++ b/game/modules/tome/data/talents/techniques/tireless-combatant.lua @@ -68,7 +68,7 @@ newTalent { info = function(self, t) local stamina = t.getRestoreRate(self, t) return ([[Any time you do not have an opponent in a square adjacent to you, you gain %0.1f Stamina regeneration. With the third talent point, you also gain an equal amount of life regen when Breathing Room is active.]]) - :format(stamina) + :tformat(stamina) end, } @@ -105,7 +105,7 @@ newTalent { local slow = t.getSlow(self, t) * 100 local reduction = t.getReduction(self, t) return ([[Control your movements to conserve your energy. While this talent is activated, you are globally slowed by %0.1f%%, and your fatigue is decreased by %d%% (to a minimum of 0%%).]]) - :format(slow, reduction) + :tformat(slow, reduction) end, } @@ -163,7 +163,7 @@ newTalent { local stamina = t.getStaminaRate(self, t) local health = t.getLifeRate(self, t) return ([[When the going gets tough, you get tougher. You gain %0.1f Stamina regen per enemy in sight, and beginning with the third talent point, you also gain %0.1f life regen per enemy. The bonuses cap at 4 enemies.]]) - :format(stamina, health) + :tformat(stamina, health) end, } @@ -215,6 +215,6 @@ newTalent { local mult = (t.getMult(self, t, true) - 1) * 100 return ([[For each turn you spend stamina, you gain %0.1f%% resist all and %0.1f%% all resistances cap for %d turns. The buff stacks up to %d times, and each new application refreshes the duration. Additionally, at the fifth talent point, Breathing Room and Dauntless Challenger are %d%% more effective.]]) - :format(resist, cap, duration, max, mult) + :tformat(resist, cap, duration, max, mult) end, } diff --git a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua index 78cf55307365911d26ba4345e01ed7e29d2f5c46..a4e1076baf75f1bd2e6cc67b03e160d5339c5940 100644 --- a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua +++ b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua @@ -103,7 +103,7 @@ newTalent{ At talent level 3 #DARK_ORCHID#Magical#LAST# sustains will also be effected. At talent level 5 #YELLOW#Mental#LAST# sustains will also be effected. Using this talent removes your combo points.]]) - :format(damage) + :tformat(damage) end, } @@ -119,7 +119,7 @@ newTalent{ local stamina = t.getStamina(self, t) local chance = t.getChance(self, t) return ([[When gaining a combo point, you have a %d%% chance to gain an extra combo point. Additionally, every time you earn a combo point, you will regain %0.2f stamina, or %0.2f stamina if you would exceed 5 combo points.]]) - :format(chance, stamina, stamina*2) + :tformat(chance, stamina, stamina*2) end, } @@ -151,7 +151,7 @@ newTalent{ Current block value: %d Using this talent removes your combo points. The damage absorbed scales with your Physical Power.]]) - :format(block, block * 5, block * self:getCombo()) + :tformat(block, block * 5, block * self:getCombo()) end, } @@ -214,7 +214,7 @@ newTalent{ return ([[Using your deep knowledge of anatomy, you strike a target in a vital pressure point for %d%% weapon damage, bypassing their defense and evasion. This strike inflicts terrible wounds inside the target's body, causing them to take physical damage equal to 100%% of any damage dealt during the attack each turn for 4 turns, increasing by %d%% each turn (so after 4 turns, they would have taken a total of %d%% damage). If the target dies while under or from this effect their body will explode in a radius %d shower of bone and gore, inflicting physical damage equal to the current tick to all enemies and granting you 4 combo points.]]) - :format(damage, mult, finaldam, radius, life) + :tformat(damage, mult, finaldam, radius, life) end, } diff --git a/game/modules/tome/data/talents/techniques/unarmed-training.lua b/game/modules/tome/data/talents/techniques/unarmed-training.lua index d54419792fa55587e792d8a1de999aae63698795..8a97a71ec67eda7b7e88092b3fb8ddd2f43fc82f 100644 --- a/game/modules/tome/data/talents/techniques/unarmed-training.lua +++ b/game/modules/tome/data/talents/techniques/unarmed-training.lua @@ -49,7 +49,7 @@ newTalent{ local damage = t.getDamage(self, t) return ([[Grants %d Physical Power when fighting unarmed (or with gloves or gauntlets). This talent's effects will scale with your level.]]): - format(damage) + tformat(damage) end, } @@ -66,7 +66,7 @@ newTalent{ local inc = t.getPercentInc(self, t) return ([[Increases all unarmed damage by %d%% and physical power by 30 (including grapples and kicks). Note that brawlers naturally gain 0.5 Physical Power per character level while unarmed (current brawler physical power bonus: %0.1f) and attack 20%% faster while unarmed.]]): - format(100*inc, self.level * 0.5) + tformat(100*inc, self.level * 0.5) end, } @@ -88,7 +88,7 @@ newTalent{ end end, info = function(self, t) - return ([[Your mastery of unarmed combat unifies your body. Increases your Strength by %d based on Cunning and your Constitution by %d based on Dexterity.]]):format(t.getStr(self, t), t.getCon(self, t)) + return ([[Your mastery of unarmed combat unifies your body. Increases your Strength by %d based on Cunning and your Constitution by %d based on Dexterity.]]):tformat(t.getStr(self, t), t.getCon(self, t)) end } @@ -105,7 +105,7 @@ newTalent{ info = function(self, t) local power = t.getPower(self, t) return ([[When you're targeted by a projectile, your global speed is increased by %d%% for 1 turn. Taking any action other than movement will break the effect.]]): - format(power * 100) + tformat(power * 100) end, } @@ -122,7 +122,7 @@ newTalent{ end, info = function(self, t) return ([[Your understanding of physiology allows you to apply your reflexes in new ways, increasing the flat damage reduction granted by Striking Stance by %d%% and causing direct critical hits (physical, mental, spells) against you to have a %d%% lower Critical multiplier (but always do at least normal damage).]]): - format(t.getFlatReduction(self,t), t.critResist(self,t) ) + tformat(t.getFlatReduction(self,t), t.critResist(self,t) ) end } diff --git a/game/modules/tome/data/talents/techniques/warcries.lua b/game/modules/tome/data/talents/techniques/warcries.lua index 281adcfc9d6373a837344d5128e0f5d8392d0f99..cbf1724ce6c2abd8e350c7c97f2fddc144d64a1e 100644 --- a/game/modules/tome/data/talents/techniques/warcries.lua +++ b/game/modules/tome/data/talents/techniques/warcries.lua @@ -55,7 +55,7 @@ newTalent{ return ([[Release a powerful shout, doing %0.2f physical damage in a radius %d cone in front of you. At level 5 the shout is so strong it shatters all incomming projectiles caught inside. The damage increases with your Strength.]]) - :format(damDesc(self, DamageType.PHYSICAL, t.getdamage(self,t)), t.radius(self,t)) + :tformat(damDesc(self, DamageType.PHYSICAL, t.getdamage(self,t)), t.radius(self,t)) end, } @@ -74,7 +74,7 @@ newTalent{ end, info = function(self, t) return ([[Take a deep breath to recover %d stamina. The stamina recovery improves with your Strength and Willpower.]]): - format(t.getStamina(self, t)) + tformat(t.getStamina(self, t)) end, } @@ -95,7 +95,7 @@ newTalent{ info = function(self, t) return ([[Boost your life and stamina by %0.1f%% for %d turns by bellowing your battle shout. When the effect ends, the additional life and stamina will be lost.]]): - format(t.getPower(self, t), t.getdur(self, t)) + tformat(t.getPower(self, t), t.getdur(self, t)) end, } @@ -129,6 +129,6 @@ newTalent{ return ([[Your battle cry shatters the will of your foes within a radius of %d, lowering their Defense by %d for 7 turns, making them easier to hit. All evasion and concealment bonuses are also disabled. The chance to hit increases with your Physical Power.]]): - format(self:getTalentRadius(t), 7 * self:getTalentLevel(t)) + tformat(self:getTalentRadius(t), 7 * self:getTalentLevel(t)) end, } diff --git a/game/modules/tome/data/talents/techniques/weaponshield.lua b/game/modules/tome/data/talents/techniques/weaponshield.lua index 80f899864ca3a79f9919808cb472c88862bcb649..ca80f0357290020943b081109587dee27e4aa5d0 100644 --- a/game/modules/tome/data/talents/techniques/weaponshield.lua +++ b/game/modules/tome/data/talents/techniques/weaponshield.lua @@ -64,7 +64,7 @@ newTalent{ info = function(self, t) return ([[Hits the target with two shield strikes, doing %d%% and %d%% shield damage. If it hits a second time, it stuns the target for %d turns. The stun chance increases with your Accuracy and your Strength.]]) - :format(100 * self:combatTalentWeaponDamage(t, 1, 1.7, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), + :tformat(100 * self:combatTalentWeaponDamage(t, 1, 1.7, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), 100 * self:combatTalentWeaponDamage(t, 1.2, 2.1, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), t.getStunDuration(self, t)) end, @@ -91,7 +91,7 @@ newTalent{ Allows counterstrikes after incomplete blocks. Increases the duration of the counterstrike debuff on attackers by %d turn%s. Increases the number of counterstrikes you can perform on a target while they're vulnerable by %d. - Increases the crit chance of counterstrikes by %d%%. This increase scales with your Dexterity.]]):format(inc, (inc > 1 and "s" or ""), inc, t.getCritInc(self, t)) + Increases the crit chance of counterstrikes by %d%%. This increase scales with your Dexterity.]]):tformat(inc, (inc > 1 and "s" or ""), inc, t.getCritInc(self, t)) end, } @@ -133,7 +133,7 @@ newTalent{ info = function(self, t) local damage = t.getShieldDamage(self, t)*100 return ([[Hit your target with your shield 3 times for %d%% damage then quickly return to a blocking position. The bonus block will not check or trigger Block cooldown.]]) - :format(damage) + :tformat(damage) end, } @@ -179,7 +179,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, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), 100 * self:combatTalentWeaponDamage(t, 0.8, 1.3)) + tformat(100 * self:combatTalentWeaponDamage(t, 0.8, 1.3, self:getTalentLevel(self.T_SHIELD_EXPERTISE)), 100 * self:combatTalentWeaponDamage(t, 0.8, 1.3)) end, } @@ -232,7 +232,7 @@ newTalent{ Increases Armour by %d, Block value by %d, and reduces Block cooldown by 2. Increases stun and knockback resistance by %d%%. The Armor and Block bonuses increase equally with your Dexterity and Strength.]]): - format(t.getArmor(self, t), t.getBlock(self, t), 100*t.stunKBresist(self, t)) + tformat(t.getArmor(self, t), t.getBlock(self, t), 100*t.stunKBresist(self, t)) end, } @@ -284,7 +284,7 @@ newTalent{ 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. 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)) + The distance increases with your talent level, and the Daze duration with your Strength.]]):tformat(t.getShieldDamage(self, t)*100, t.getDist(self, t), t.getDuration(self, t)) end, } @@ -301,7 +301,7 @@ newTalent{ self:talentTemporaryValue(p, "combat_spellresist", t.getSpell(self, t)) end, info = function(self, t) - 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)) + return ([[Improves your damage with shield-based skills, and increases your Spell (+%d) and Physical (+%d) Saves.]]):tformat(t.getSpell(self, t), t.getPhysical(self, t)) end, } @@ -371,6 +371,6 @@ newTalent{ Your stand lets you concentrate on every blow, allowing you to avoid death from normally fatal wounds. You can only die when reaching -%d life. If your life is below 0 when Last Stand ends it will be set to 1. The increase in Defense and Armor is based on your Dexterity, and the increase in life is based on your Constitution and normal maximum life.]]): - format(t.getDefense(self, t), hp, hp) + tformat(t.getDefense(self, t), hp, hp) end, } diff --git a/game/modules/tome/data/talents/uber/const.lua b/game/modules/tome/data/talents/uber/const.lua index d4e0a6352653c9ef7d17bd8e0cbbcec4759ec76b..e959bdc5cd58a94006e0feb53a0966ab5b0096d8 100644 --- a/game/modules/tome/data/talents/uber/const.lua +++ b/game/modules/tome/data/talents/uber/const.lua @@ -31,7 +31,7 @@ uberTalent{ end, info = function(self, t) return ([[Your body hardens and recovers quickly. When pushed below 30%% life, you instantly restore 40%% of your total life.]]) - :format() + :tformat() end, } @@ -60,7 +60,7 @@ uberTalent{ info = function(self, t) return ([[When a single blow deals more than 15%% of your total life, a torrent of blood gushes from your body, creating a bloody tidal wave for 4 turns that deals %0.2f blight damage, heals you for 50%% of the damage done, and knocks foes back. The damage increases with your Constitution.]]) - :format(100 + self:getCon() * 3) + :tformat(100 + self:getCon() * 3) end, } @@ -70,7 +70,7 @@ uberTalent{ require = { special={desc="Know the Block talent", fct=function(self) return self:knowTalent(self.T_BLOCK) end} }, info = function(self, t) return ([[Your Block talent now lasts for 2 game turns and you can apply Counterstrike to any number of enemies.]]) - :format() + :tformat() end, } @@ -91,7 +91,7 @@ uberTalent{ return true end, info = function(self, t) - return ([[While this talent is active, you dig deep into your stamina reserves, allowing you to move without taking a turn. However, this costs 12 stamina for each tile that you cross.]]):format() + return ([[While this talent is active, you dig deep into your stamina reserves, allowing you to move without taking a turn. However, this costs 12 stamina for each tile that you cross.]]):tformat() end, } @@ -115,7 +115,7 @@ uberTalent{ Any time you deal darkness damage, you will unlight both the target tile and yours. Passively increases your stealth rating by %d. The armor bonus scales with your Constitution.]]) - :format(t.ArmourBonus(self,t), t.getStealth(self, t)) + :tformat(t.ArmourBonus(self,t), t.getStealth(self, t)) end, } @@ -128,7 +128,7 @@ uberTalent{ end, info = function(self, t) return ([[Your back is as hard as stone. Each time that you are affected by a physical effect, your body hardens, making you immune to all other physical effects for 5 turns.]]) - :format() + :tformat() end, } @@ -168,7 +168,7 @@ uberTalent{ You may use this prodigy to release the power as a heal (never more than %d life) and remove up to 10 detrimental magical effects. Fungal power lasts for up to 6 turns, losing the greater of 10 potency or 10%% of its power each turn. The amount of fungal power produced and the maximum heal possible increase with your Constitution and maximum life.]]) - :format(t.fungalPower(self, t), t.healmax(self,t)) + :tformat(t.fungalPower(self, t), t.healmax(self,t)) end, } @@ -195,6 +195,6 @@ uberTalent{ return ([[Thanks to your newfound knowledge of corruption, you've learned some tricks for toughening your body... but only if you are healthy enough to withstand the strain from the changes. Improves your life by 500, your defense by %d, your armour by %d, your armour hardiness by 20%% and your saves by %d as your natural toughness and reflexes are pushed beyond their normal limits. Your saves armour and defense will improve with your Constitution.]]) - :format(self:getCon() / 3, self:getCon() / 3.5, self:getCon() / 3) + :tformat(self:getCon() / 3, self:getCon() / 3.5, self:getCon() / 3) end, } diff --git a/game/modules/tome/data/talents/uber/cun.lua b/game/modules/tome/data/talents/uber/cun.lua index 1ee78c75597b910d731c618b132c50ffa132434a..5c077cd6083d975ffd485d6c120a1a0cd3536b83 100644 --- a/game/modules/tome/data/talents/uber/cun.lua +++ b/game/modules/tome/data/talents/uber/cun.lua @@ -65,7 +65,7 @@ uberTalent{ return ([[When moving over 800%% speed for at least 3 steps in the same direction, you become so fast you can blink through obstacles as if they were not there. While moving this fast you have 50%% chances to fully ignore an attack by displacing yourself (this may only happen once per turn). Changing direction will break the effect.]]) - :format() + :tformat() end, } @@ -78,7 +78,7 @@ uberTalent{ info = function(self, t) return ([[You are full of tricks and surprises; your Antimagic Shield can absorb %d%% more damage. The increase scales with your Cunning.]]) - :format(t.shieldmult(self)*100) + :tformat(t.shieldmult(self)*100) end, } @@ -202,7 +202,7 @@ uberTalent{ Each effect can only happen once per 10 player turns. This does not count as a typical cooldown. The damage and effect power increase with your Cunning, the threshold with your level, and the apply power is the highest of your mind or spell power. %s]]) - :format(t.getThreshold(self, t), t.getDamage(self, t), self:getTalentRadius(t), t.getAcid(self, t), blight_dam, blight_disease, t.getDarkness(self, t), t.getTemporal(self, t), t.getMind(self, t), str) + :tformat(t.getThreshold(self, t), t.getDamage(self, t), self:getTalentRadius(t), t.getAcid(self, t), blight_dam, blight_disease, t.getDarkness(self, t), t.getTemporal(self, t), t.getMind(self, t), str) end, } @@ -240,7 +240,7 @@ uberTalent{ end, info = function(self, t) return ([[You have obtained the three parts of the Staff of Telos and studied them carefully. You believe that you can merge them back into a single highly potent staff.]]) - :format() + :tformat() end, } @@ -365,7 +365,7 @@ uberTalent{ Each effect can only happen once per 10 player turns. This does not count as a typical cooldown. The damage and some effect powers increase with your Cunning and the threshold with your level. %s]]) - :format(t.getThreshold(self, t), t.getDamage(self, t), self:getTalentRadius(t), t.getFire(self, t), cold.armor, cold.dam, t.getLightning(self, t), str) + :tformat(t.getThreshold(self, t), t.getDamage(self, t), self:getTalentRadius(t), t.getFire(self, t), cold.armor, cold.dam, t.getLightning(self, t), str) end, } @@ -422,7 +422,7 @@ uberTalent{ for _, d in pairs(eye_of_the_tiger_data) do list[#list+1] = d.desc end return ([[%s This can only happen once per turn per type, and cannot affect the talent that triggers it.]]) - :format(table.concat(list, "\n")) + :tformat(table.concat(list, "\n")) end, } @@ -461,7 +461,7 @@ uberTalent{ - Corruption / Curses - Celestial / Chants - Chronomancy / Chronomancy]]) - :format() + :tformat() end, } @@ -472,7 +472,7 @@ uberTalent{ cant_steal = true, info = function(self, t) return ([[Your talent masteries are increased by 0.3. Note that many talents will not benefit from this increase.]]) - :format() + :tformat() end, passives = function(self, t, tmptable) self:talentTemporaryValue(tmptable, "talents_mastery_bonus", {all = 0.3}) @@ -508,6 +508,6 @@ uberTalent{ return ([[You have friends in low places and have learned some underhanded tricks. Gain 0.2 Category Mastery to the Cunning/Stealth Category (or unlock it, if you have the tree and it is locked), and either gain +0.1 to the Cunning/Scoundrel category or learn and unlock the category at 0.9 if you lack it. Additionally, all of your damage penalties from invisibility are permanently halved.]]): - format() + tformat() end, } diff --git a/game/modules/tome/data/talents/uber/dex.lua b/game/modules/tome/data/talents/uber/dex.lua index b4399e7a2adb6e1254dd561cd8250a2085b0f10b..bfecc031440c8e76515e820b7fff48fb531b2464 100644 --- a/game/modules/tome/data/talents/uber/dex.lua +++ b/game/modules/tome/data/talents/uber/dex.lua @@ -30,7 +30,7 @@ uberTalent{ end, info = function(self, t) return ([[Each time that you make a melee attack you have a 50%% chance to execute an additional unarmed strike.]]) - :format() + :tformat() end, } @@ -84,7 +84,7 @@ uberTalent{ - you can never damage your friends or neutral creatures while this talent is active. - you love being surrounded by friends; for each friendly creature in sight you gain +10 to all saves and +3%% to global speed (max 15%%) - every party member is also automatically granted Through The Crowd]]) - :format() + :tformat() end, } @@ -105,7 +105,7 @@ uberTalent{ return ([[You have very agile hands; swapping equipment sets (default q key) takes no time, nor does equipping/unequipping items. The free item switch may only happen once per turn. The cooldown for equipping activatable equipment is removed.]]) - :format() + :tformat() end, } @@ -139,7 +139,7 @@ uberTalent{ end, info = function(self, t) return ([[You spin madly, generating a sharp gust of wind with your weapons that deals 320%% weapon damage to all targets within radius 4 and disarms them for 4 turns.]]) - :format() + :tformat() end, } @@ -162,7 +162,7 @@ uberTalent{ info = function(self, t) return ([[You are attuned with Nature, and she helps you in your fight against the arcane forces. You gain 20%% permanent global speed, 10%% cooldowns reduction and do not trigger pressure traps.]]) - :format() + :tformat() end, } @@ -176,7 +176,7 @@ uberTalent{ end} }, info = function(self, t) return ([[You are very crafty. You can now also embed gems into helms and belts.]]) - :format() + :tformat() end, } @@ -206,7 +206,7 @@ uberTalent{ So long as you can move, you find a way to dodge, evade, deflect or otherwise reduce physical damage against you by %d%%. Once per turn, when you get hit by a melee or archery attack you move back one tile for free and gain 200%% movement speed for a turn. The damage avoidance scales with your Dexterity and applies after resistances.]]) - :format(100*(1-t.getMult(self, t))) + :tformat(100*(1-t.getMult(self, t))) end, } @@ -234,6 +234,6 @@ uberTalent{ info = function(self, t) return ([[You fire a shot straight at your enemy's vital areas, wounding them terribly. Enemies hit by this shot will take 450%% weapon damage and will be stunned and crippled (losing 50%% physical, magical and mental attack speeds) for five turns due to the devastating impact of the shot. - The stun and cripple chances increase with your Accuracy.]]):format() + The stun and cripple chances increase with your Accuracy.]]):tformat() end, } diff --git a/game/modules/tome/data/talents/uber/mag.lua b/game/modules/tome/data/talents/uber/mag.lua index 92c73cd62c615e0395e5c0bcd2eebd473f111535..57a4309679519496716ee4568b82919cc17e996d 100644 --- a/game/modules/tome/data/talents/uber/mag.lua +++ b/game/modules/tome/data/talents/uber/mag.lua @@ -32,7 +32,7 @@ uberTalent{ end, info = function(self, t) return ([[By infusing your shield with raw magic, your block can now block any damage type.]]) - :format() + :tformat() end, } @@ -62,7 +62,7 @@ uberTalent{ info = function(self, t) return ([[You gain 25%% absolute damage resistance and 25%% all damage penetration. Each time you are struck by a weapon these bonuses are reduced by 5%% but fully recovered after 8 turns. Additionally, you gain 70%% of the highest of your Magic or Dexterity stat as defense (%d)]]) - :format(math.max(self:getMag(), self:getDex()) * 0.7) + :tformat(math.max(self:getMag(), self:getDex()) * 0.7) end, } @@ -86,7 +86,7 @@ uberTalent{ info = function(self, t) return ([[You manifest a thin layer of aether all around you. Any attack passing through it will check arcane resistance instead of the incoming damage resistance. In effect, all of your resistances are equal to 66%% of your arcane resistance, which is increased by 20%% (and cap increased by 10%%).]]) - :format() + :tformat() end, } @@ -108,7 +108,7 @@ uberTalent{ for i, tid in pairs(t.autolearn_talent) do local bonus_t = self:getTalentFromId(tid) if bonus_t then - descs = ("%s\n#YELLOW#%s#LAST#\n%s\n"):format(descs, bonus_t.name, self:callTalent(bonus_t.id, "info")) + descs = ("%s\n#YELLOW#%s#LAST#\n%s\n"):tformat(descs, bonus_t.name, self:callTalent(bonus_t.id, "info")) end end return ([[Your study of arcane forces has let you develop a new way of applying your aptitude for trapping and poisons. @@ -119,7 +119,7 @@ uberTalent{ You learn the following talents: %s]]) - :format(descs) + :tformat(descs) end, } @@ -132,7 +132,7 @@ uberTalent{ Equipped weapons are treated as having an additional 50%% Magic modifier; Your raw Physical Power is increased by 100%% of your raw Spellpower; Your physical critical chance is increased by 25%% of your bonus spell critical chance.]]) - :format() + :tformat() end, } @@ -155,7 +155,7 @@ uberTalent{ return ([[You can wrap temporal threads around you, assuming the form of a telugoroth for 10 turns. While in this form you gain pinning, bleeding, blindness and stun immunity, 30%% temporal resistance, your temporal damage bonus is set to your current highest damage bonus + 30%%, 50%% of the damage you deal becomes temporal, and you gain 20%% temporal resistance penetration. You also are able to cast anomalies: Anomaly Rearrange, Anomaly Temporal Storm, Anomaly Flawed Design, Anomaly Gravity Pull and Anomaly Wormhole.]]) - :format() + :tformat() end, } @@ -260,7 +260,7 @@ uberTalent{ - Ghouls: Virulent Disease - Vampires / Liches: Blood Grasp and Blood Boil - Ghosts / Wights: Blood Fury and Curse of Death - ]]):format() + ]]):tformat() end, } @@ -290,7 +290,7 @@ uberTalent{ return ([[You can now control the recent past. Upon using this prodigy you gain a temporal effect for 20 turns. While this effect holds you can use the prodigy again to rewrite history. This prodigy splits the timeline. Attempting to use another spell that also splits the timeline while this effect is active will be unsuccessful.]]) - :format() + :tformat() end, } newTalent{ @@ -310,7 +310,7 @@ newTalent{ end, info = function(self, t) return ([[Rewrite the recent past to go back to when you cast Revisionist History.]]) - :format() + :tformat() end, } diff --git a/game/modules/tome/data/talents/uber/str.lua b/game/modules/tome/data/talents/uber/str.lua index a9a196365a51ca05de81843fc6b753a7fa404440..6055e430c4cc4d75f75c660f04e188eaedb91bae 100644 --- a/game/modules/tome/data/talents/uber/str.lua +++ b/game/modules/tome/data/talents/uber/str.lua @@ -75,7 +75,7 @@ uberTalent{ info = function(self, t) return ([[You accurately jump to the target and deal 200%% weapon damage to all foes within radius 1 on impact as well as dazing them for 3 turns. When you jump you free yourself from any stun, daze and pinning effects.]]) - :format() + :tformat() end, } @@ -119,7 +119,7 @@ uberTalent{ return ([[You deal a massive blow to your foe, smashing it for 350%% weapon damage, knocking it back 5 tiles, and knocking aside all foes in its path. All targets affected are stunned for 3 turns. For each size category over 'big' you gain an additional +80%% weapon damage.]]) - :format() + :tformat() end, } @@ -157,7 +157,7 @@ uberTalent{ info = function(self, t) return ([[You deal a massive blow to your foe, smashing it for 150%% weapon damage and knocking it back 4 tiles (ignoring knockback resistance or physical save). If the knockback makes it hit a wall, it will smash down the wall, deal an additional 350%% weapon damage and apply the Counterstrike effect.]]) - :format() + :tformat() end, } @@ -169,7 +169,7 @@ uberTalent{ return ([[When you rush, the creature you rush to is marked. If you kill it in the next two turns then your rush cooldown is reset. Each time that this effect triggers you gain a stacking +20%% damage buff, up to 100%%. Rush now only costs 2 stamina.]]) - :format() + :tformat() end, } @@ -195,7 +195,7 @@ uberTalent{ return ([[For 8 turns you gain the mass and power of a star, drawing all creatures within radius 5 toward you and dealing %0.2f fire, %0.2f light and %0.2f physical damage to all foes and reducing their damage dealt by 30%%. Foes closer to you take up to 150%% damage. The damage will increase with your Strength.]]) - :format(damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.PHYSICAL, dam)) + :tformat(damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.LIGHT, dam), damDesc(self, DamageType.PHYSICAL, dam)) end, } @@ -216,7 +216,7 @@ uberTalent{ info = function(self, t) return ([[Your strength is legendary; fatigue and physical exertion mean nothing to you. Your fatigue is permanently set to 0, carrying capacity increased by 500, and strength increased by 50 and you gain a size category.]]) - :format() + :tformat() end, } @@ -262,7 +262,7 @@ uberTalent{ return ([[You have sided with Slasul and helped him vanquish Ukllmswwik. You are now able to breathe underwater with ease. You have also learned to use tridents and other exotic weapons easily (talent level %d of Exotic Weapon Mastery), and can Spit Poison (talent level %d) as nagas do. These are bonus talent levels that increase with your character level. In addition, should Slasul still live, he may have a further reward for you as thanks...]]) - :format(level, level) + :tformat(level, level) end, } @@ -273,6 +273,6 @@ uberTalent{ return ([[A strong body is key to a strong mind, and a strong mind can be powerful enough to make a strong body. This prodigy grants a Mindpower bonus equal to 60%% of your Strength. Additionally, you treat all weapons as having an additional 40%% Willpower modifier.]]) - :format() + :tformat() end, } diff --git a/game/modules/tome/data/talents/uber/uber.lua b/game/modules/tome/data/talents/uber/uber.lua index f929115f212581c7663e229929e376ea5270fc57..021716c35c60b797b11dd2f3f279b45b20e33fcc 100644 --- a/game/modules/tome/data/talents/uber/uber.lua +++ b/game/modules/tome/data/talents/uber/uber.lua @@ -17,13 +17,13 @@ -- Nicolas Casalini "DarkGod" -- darkgod@te4.org -newTalentType{ hide = true, type="uber/strength", name = "strength", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/dexterity", name = "dexterity", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/constitution", name = "constitution", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/magic", name = "magic", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/willpower", name = "willpower", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/cunning", name = "cunning", description = "Ultimate talents you may only know one." } -newTalentType{ hide = true, type="uber/other", name = "other", description = "Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/strength", name = _t"strength", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/dexterity", name = _t"dexterity", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/constitution", name = _t"constitution", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/magic", name = _t"magic", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/willpower", name = _t"willpower", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/cunning", name = _t"cunning", description = _t"Ultimate talents you may only know one." } +newTalentType{ hide = true, type="uber/other", name = _t"other", description = _t"Ultimate talents you may only know one." } knowRessource = function(self, r, v) diff --git a/game/modules/tome/data/talents/uber/wil.lua b/game/modules/tome/data/talents/uber/wil.lua index 42028a8f6033956c06a6c174b71ce1de473ef693..a21c4f158d8bdff331d33c79e58f299182c6d5f0 100644 --- a/game/modules/tome/data/talents/uber/wil.lua +++ b/game/modules/tome/data/talents/uber/wil.lua @@ -32,7 +32,7 @@ uberTalent{ info = function(self, t) return ([[Your body is like that of a drake, easily resisting detrimental effects. For 5 turns, no detrimental effects may target you.]]) - :format() + :tformat() end, } @@ -141,7 +141,7 @@ uberTalent{ Additionally, your fire damage bonus and resistance penetration is set to your current highest damage bonus and resistance penetration. This applies to all fire damage you deal. The damage scales with your Spellpower or Mindpower.]]) - :format(damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.PHYSICAL, dam), damDesc(self, DamageType.FIRE, t.getLava(self, t))) + :tformat(damDesc(self, DamageType.FIRE, dam), damDesc(self, DamageType.PHYSICAL, dam), damDesc(self, DamageType.FIRE, t.getLava(self, t))) end, } @@ -172,7 +172,7 @@ uberTalent{ end} }, info = function(self, t) return ([[Garkul's spirit is with you. You now deal 1000%% more damage to constructs and 20%% more damage to humanoids and giants.]]) - :format() + :tformat() end, } @@ -196,7 +196,7 @@ uberTalent{ info = function(self, t) return ([[You focus your mind on the task at hand, regardless of how dire the situation is. For 5 turns, none of your talents use any resources.]]) - :format() + :tformat() end, } @@ -216,7 +216,7 @@ uberTalent{ end, info = function(self, t) return ([[Every day is your lucky day! You gain a permanent +40 luck bonus and 10%% to move out of the way of every attack.]]) - :format() + :tformat() end, } @@ -232,7 +232,7 @@ uberTalent{ info = function(self, t) return ([[Your will is so strong that you simply ignore mental effects used against you. This effect can only occur once every 5 turns.]]) - :format() + :tformat() end, } @@ -257,7 +257,7 @@ uberTalent{ Each time that you take damage from a spell, you punish the spellcaster with %0.2f mind damage. Also, they will suffer a 35%% spell failure chance (with duration equal to the cooldown of the spell they used on you). Note: this talent has a cooldown.]]) - :format(damDesc(self, DamageType.MIND, 20 + self:getWil() * 2)) + :tformat(damDesc(self, DamageType.MIND, 20 + self:getWil() * 2)) end, } @@ -292,6 +292,6 @@ uberTalent{ return ([[Transcend the physical and rule over all with an iron will! While this sustain is active, 33%% of your damage is converted into mind damage. Additionally, you gain +30%% mind resistance penetration, and +10%% mind damage.]]): - format() + tformat() end, } diff --git a/game/modules/tome/data/talents/undeads/ghoul.lua b/game/modules/tome/data/talents/undeads/ghoul.lua index 0ff33c26436522da389b0204e38ec199f6af3fd9..74c77181af6a0dac9879d92379ea203d59954719 100644 --- a/game/modules/tome/data/talents/undeads/ghoul.lua +++ b/game/modules/tome/data/talents/undeads/ghoul.lua @@ -33,7 +33,7 @@ newTalent{ info = function(self, t) return ([[Improves your ghoulish body, increasing Strength and Constitution by %d. Your body also becomes incredibly resilient to damage; you can never take a blow that deals more than %d%% of your maximum life.]]) - :format(t.statBonus(self, t), t.getMaxDamage(self, t)) + :tformat(t.statBonus(self, t), t.getMaxDamage(self, t)) end, } @@ -85,7 +85,7 @@ newTalent{ end, info = function(self, t) return ([[Leap toward your target. - When you land your global speed is increased by %d%% for 4 turns.]]):format(t.getSpeed(self, t)) + When you land your global speed is increased by %d%% for 4 turns.]]):tformat(t.getSpeed(self, t)) end, } @@ -133,7 +133,7 @@ newTalent{ return ([[Vomit on the ground around you, healing any undead in the area and damaging anyone else. Lasts %d turns and deals %d blight damage or heals %d life. Creatures standing in the retch also have %d%% chance to remove a physical effect each turn; undeads will be stripped from a detrimental effect while others will be stripped from a beneficial effect. - When you stand in your own retch your racial -20%% global speed is cancelled.]]):format(t.getduration(self, t), damDesc(self, DamageType.BLIGHT, dam), dam * 1.5, t.getPurgeChance(self, t)) + When you stand in your own retch your racial -20%% global speed is cancelled.]]):tformat(t.getduration(self, t), damDesc(self, DamageType.BLIGHT, dam), dam * 1.5, t.getPurgeChance(self, t)) end, } @@ -253,6 +253,6 @@ newTalent{ Targets suffering from Ghoul Rot rise as friendly ghouls when slain. Ghouls last for %d turns and can use Gnaw, Ghoulish Leap, Stun, and Rotting Disease. The blight damage scales with your Constitution.]]): - format(100 * damage, duration, damDesc(self, DamageType.BLIGHT, disease_damage), ghoul_duration) + tformat(100 * damage, duration, damDesc(self, DamageType.BLIGHT, disease_damage), ghoul_duration) end, } diff --git a/game/modules/tome/data/talents/undeads/skeleton.lua b/game/modules/tome/data/talents/undeads/skeleton.lua index 8f7dbae72d0e5ba4510d3f9e086153120e7a6b19..2ece882bddbd9fafb73c2cd55c09659fd8fdfba8 100644 --- a/game/modules/tome/data/talents/undeads/skeleton.lua +++ b/game/modules/tome/data/talents/undeads/skeleton.lua @@ -30,7 +30,7 @@ newTalent{ end, info = function(self, t) return ([[Improves your skeletal condition, increasing Strength and Dexterity by %d.]]): - format(t.statBonus(self, t)) + tformat(t.statBonus(self, t)) end, } @@ -52,7 +52,7 @@ newTalent{ info = function(self, t) return ([[Creates a shield of bones, absorbing %d damage. Lasts for 10 turns. The total damage the shield can absorb increases with your Dexterity.]]): - format(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100) + tformat(t.getShield(self, t) * (100 + (self:attr("shield_factor") or 0)) / 100) end, } @@ -67,7 +67,7 @@ newTalent{ durresist = function(self, t) return self:combatTalentLimit(t, 1, 0.1, 5/12) end, -- Limit < 100% info = function(self, t) return ([[Your undead bones are very resilient, reducing the duration of all detrimental effects on you by up to %d%%.]]): - format(100 * t.durresist(self, t)) + tformat(100 * t.durresist(self, t)) end, } @@ -97,6 +97,6 @@ newTalent{ short_name = "SKELETON_REASSEMBLE", info = function(self, t) return ([[Reposition some of your bones, healing yourself for %d. At level 5, you will gain the ability to completely re-assemble your body should it be destroyed (can only be used once).]]): - format(t.getHeal(self, t)) + tformat(t.getHeal(self, t)) end, } diff --git a/game/modules/tome/data/talents/undeads/undeads.lua b/game/modules/tome/data/talents/undeads/undeads.lua index e7a99a3d480e805ae0174c4c88910ddc0a8337f1..2d2f686c1f47946740203089e6a437ac753c1cab 100644 --- a/game/modules/tome/data/talents/undeads/undeads.lua +++ b/game/modules/tome/data/talents/undeads/undeads.lua @@ -18,11 +18,11 @@ -- darkgod@te4.org -- Undead talents -newTalentType{ type="undead/base", name = "base", generic = true, description = "Undead's innate abilities." } -newTalentType{ type="undead/ghoul", name = "ghoul", generic = true, description = "Ghoul's innate abilities." } -newTalentType{ type="undead/skeleton", name = "skeleton", generic = true, description = "Skeleton's innate abilities." } -newTalentType{ type="undead/vampire", name = "vampire", generic = true, description = "Vampire's innate abilities." } -newTalentType{ type="undead/lich", name = "lich", generic = true, description = "Liches innate abilities." } +newTalentType{ type="undead/base", name = _t"base", generic = true, description = _t"Undead's innate abilities." } +newTalentType{ type="undead/ghoul", name = _t"ghoul", generic = true, description = _t"Ghoul's innate abilities." } +newTalentType{ type="undead/skeleton", name = _t"skeleton", generic = true, description = _t"Skeleton's innate abilities." } +newTalentType{ type="undead/vampire", name = _t"vampire", generic = true, description = _t"Vampire's innate abilities." } +newTalentType{ type="undead/lich", name = _t"lich", generic = true, description = _t"Liches innate abilities." } -- Generic requires for undeads based on talent level undeads_req1 = {