Commit da2b82dcfd853de8c37a34794e4bf702114d200f

Authored by DarkGod
2 parents 1f1187d0 ab977354

Merge branch 'misc1.6' into 'master'

Minor bug fixes and typos

Mostly fixes for various typos and grammatical errors, but also has a few small bug fixes:

-"of mastery" and "of perfection" amulets now check for conflicts between amulet power source and the category boosted

-Dwarf's Stone Walking racial is no longer usable to target an empty space and move one tile

-Added a long_desc to the stun effect noggin knocker gives to prevent an error when the player is hit by it

See merge request !528
... ... @@ -100,12 +100,16 @@ newEntity{
100 100 rarity = 6,
101 101 cost = 2,
102 102 wielder = {},
103   - resolvers.generic(function(e)
  103 + resolvers.genericlast(function(e)
104 104 local tts = {}
105 105 local p = game:getPlayer(true)
106 106 for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do
107   - if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end
108   - end
  107 + if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then
  108 + if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then
  109 + tts[#tts+1] = def.type
  110 + end
  111 + end
  112 + end
109 113 local tt = tts[rng.range(1, #tts)]
110 114
111 115 e.wielder.talents_types_mastery = {}
... ... @@ -533,12 +537,16 @@ newEntity{
533 537 greater_ego = 1,
534 538 cost = 2,
535 539 wielder = {},
536   - resolvers.generic(function(e)
  540 + resolvers.genericlast(function(e)
537 541 local tts = {}
538 542 local p = game:getPlayer(true)
539 543 for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do
540   - if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end
541   - end
  544 + if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then
  545 + if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then
  546 + tts[#tts+1] = def.type
  547 + end
  548 + end
  549 + end
542 550 --local tt = tts[rng.range(1, #tts)]
543 551 local tt = rng.tableRemove(tts)
544 552 local tt2 = rng.tableRemove(tts)
... ...
... ... @@ -87,7 +87,7 @@ newEntity{
87 87
88 88 newEntity{
89 89 power_source = {arcane=true},
90   - name = " of arcana(#REGEN#)", suffix=true, instant_resolve=true,
  90 + name = " of arcana (#REGEN#)", suffix=true, instant_resolve=true,
91 91 keywords = {arcana=true},
92 92 level_range = {1, 50},
93 93 rarity = 6,
... ...
... ... @@ -52,7 +52,7 @@ newTalent{
52 52 local damage = t.getDamage(self, t)
53 53 local duration = t.getDuration(self, t)
54 54 local radius = self:getTalentRadius(t)
55   - return ([[Creates a circle of radius %d at your feet; the circle increases your Defense by %d, and deals %0.2f darkness damage per turn to everyone else with in its radius. The circle lasts %d turns.
  55 + return ([[Creates a circle of radius %d at your feet; the circle increases your Defense by %d and deals %0.2f darkness damage per turn to everyone else within its radius. The circle lasts %d turns.
56 56 The damage will increase with your Spellpower.]]):
57 57 format(radius, damage, (damDesc (self, DamageType.DARKNESS, damage)), duration)
58 58 end,
... ... @@ -167,7 +167,7 @@ newTalent{
167 167 info = function(self, t)
168 168 local duration = t.getDuration(self, t)
169 169 local radius = self:getTalentRadius(t)
170   - return ([[Creates a circle of radius %d at your feet; the circle protects you from silence effects while you remain in its radius, and silences everyone else who enters. The circle lasts %d turns.]]):
  170 + return ([[Creates a circle of radius %d at your feet; the circle protects you from silence effects while you remain within its radius and silences everyone else who enters. The circle lasts %d turns.]]):
171 171 format(radius, duration)
172 172 end,
173 173 }
... ... @@ -207,7 +207,7 @@ newTalent{
207 207 local damage = t.getDamage(self, t)
208 208 local duration = t.getDuration(self, t)
209 209 local radius = self:getTalentRadius(t)
210   - 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.
  210 + 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.
211 211 The effects will increase with your Spellpower.]]):
212 212 format(radius, damage*5, (damDesc (self, DamageType.LIGHT, damage)), (damDesc (self, DamageType.DARKNESS, damage)), duration)
213 213 end,
... ...
... ... @@ -73,7 +73,7 @@ newTalent{
73 73 return true
74 74 end,
75 75 info = function(self, t)
76   - return ([[Curses your target, decreasing all damage they do by %d%% for 10 turns.
  76 + return ([[Curses your target, decreasing all damage it does by %d%% for 10 turns.
77 77 The effects will improve with your Spellpower.]]):format(t.imppower(self,t))
78 78 end,
79 79 }
... ...
... ... @@ -50,7 +50,7 @@ newTalent{
50 50 return true
51 51 end,
52 52 info = function(self, t)
53   - return ([[Hexes your target, dazing it and everything in a 2 radius ball around it for 3 turns, and giving %d%% chance to daze affected targets again each turn for 20 turns.
  53 + 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.
54 54 The chance will increase with your Spellpower.]]):format(t.getchance(self,t))
55 55 end,
56 56 }
... ...
... ... @@ -81,7 +81,7 @@ newTalent{
81 81 return ([[While Highers are not meant to rule other humans - and show no particular will to do so - they are frequently called to higher duties.
82 82 Their nature grants them better senses than other humans.
83 83 Increase blindness immunity by %d%%, maximum sight range by %d, and increases existing infravision, and heightened senses range by %d.
84   - At level 5 each time you hit a target you gain telepathy to all similar creatures in radius 15 for 5 turns.]]):
  84 + At talent level 5, each time you hit a target you gain telepathy to all similar creatures in radius 15 for 5 turns.]]):
85 85 format(t.getImmune(self, t) * 100, t.getSight(self, t), t.getESight(self, t))
86 86 end,
87 87 }
... ... @@ -106,8 +106,8 @@ newTalent{
106 106 info = function(self, t)
107 107 local netpower = t.power(self, t)
108 108 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.
109   - Increase spell save by +%d and arcane resistance by %d%%.
110   - 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.)]]):
  109 + Increase spell save by %d and arcane resistance by %d%%.
  110 + 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.)]]):
111 111 format(t.getSave(self, t), netpower)
112 112 end,
113 113 }
... ... @@ -152,8 +152,8 @@ newTalent{
152 152 end,
153 153 info = function(self, t)
154 154 local duration = t.getDuration(self, t)
155   - 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.
156   - Your resources must still be high enough to initially power the talent, and failure rates (etc.) still apply.
  155 + 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.
  156 + Your resources must still be high enough to initially power the talent and failure rates (etc.) still apply.
157 157 ]]):format(duration)
158 158 end,
159 159 }
... ... @@ -177,7 +177,7 @@ newTalent{
177 177 return true
178 178 end,
179 179 info = function(self, t)
180   - return ([[Call upon the grace of the Eternals to increase your general speed by %d%% for 5 turns.
  180 + return ([[Call upon the grace of the Eternals to increase your global speed by %d%% for 5 turns.
181 181 The speed bonus will increase with your Dexterity or Magic (whichever is higher).]]):
182 182 format(t.getSpeed(self, t) * 100)
183 183 end,
... ... @@ -196,7 +196,7 @@ newTalent{
196 196 self:talentTemporaryValue(p, "combat_critical_power", t.critPower(self, t))
197 197 end,
198 198 info = function(self, t)
199   - return ([[Reality bends slightly in the presence of a Shaloren, due to their inherent magical nature.
  199 + return ([[Reality bends slightly in the presence of a Shaloren due to their inherent magical nature.
200 200 Increases critical chance by %d%% and critical strike power by %d%%.]]):
201 201 format(t.critChance(self, t), t.critPower(self, t))
202 202 end,
... ... @@ -229,8 +229,8 @@ newTalent{
229 229 return true
230 230 end,
231 231 info = function(self, t)
232   - return ([[As the only immortal race of Eyal, Shaloren have learnt, over the long years, to use their innate inner magic to protect themselves.
233   - %d%% chance to become invisible (power %d) for 5 turns, when hit by a blow doing at least 10%% of their total life.]]):
  232 + return ([[As the only immortal race of Eyal, Shaloren have learnt over the long years to use their innate inner magic to protect themselves.
  233 + %d%% chance to become invisible (power %d) for 5 turns when hit by a blow doing at least 10%% of your total life.]]):
234 234 format(t.getChance(self, t), t.getInvis(self, t))
235 235 end,
236 236 }
... ... @@ -344,7 +344,7 @@ newTalent{
344 344 })
345 345 end,
346 346 info = function(self, t)
347   - return ([[Thaloren have an affinity for natural elements allowing them to heal for a portion of damage taken from them.
  347 + return ([[Thaloren have an affinity for natural elements, allowing them to heal for a portion of damage taken from them.
348 348 You gain %d%% Nature and Acid damage affinity.]]):
349 349 format(t.getAffinity(self, t))
350 350 end,
... ... @@ -365,7 +365,7 @@ newTalent{
365 365 self:talentTemporaryValue(p, "resists",{all=t.getAllResist(self, t)})
366 366 end,
367 367 info = function(self, t)
368   - return ([[You are part of the wood; it shields you from corruption.
  368 + return ([[Thaloren are part of the wood; it shields them from corruption.
369 369 Increase disease immunity by %d%%, blight resistance by %0.1f%%, and all resistances by %0.1f%%.]]):
370 370 format(t.getDiseaseImmune(self, t)*100, t.getBResist(self, t), t.getAllResist(self, t))
371 371 end,
... ... @@ -446,9 +446,9 @@ newTalent{
446 446 end,
447 447 info = function(self, t)
448 448 local base_stats = self:combatScale(self:getWil() * self:getTalentLevel(t), 25, 0, 125, 500, 0.75)
449   - return ([[Nature is with you; you can always feel the call of the woods.
  449 + return ([[Nature is with the Thaloren; they can always feel the call of the woods.
450 450 Summons two elite Treants to your side for 8 turns.
451   - The treants have a global resistance equal to your blight resistance, and can stun, knockback and taunt your foes.
  451 + The treants have a global resistance equal to your blight resistance and can stun, knockback, and taunt foes.
452 452 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.
453 453 Your increased damage, damage penetration, and many other stats will be inherited.]]):format(self:getWil())
454 454 end,
... ... @@ -481,8 +481,8 @@ newTalent{
481 481 end,
482 482 info = function(self, t)
483 483 local params = t.getParams(self, t)
484   - return ([[Call upon the legendary resilience of the Dwarven race to increase your armour (+%d), armour hardiness (+%d%%), spell (+%d) and physical (+%d) saves for 8 turns.
485   - The bonus will increase with your Constitution.]]):
  484 + 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.
  485 + The bonuses will increase with your Constitution.]]):
486 486 format(params.armor, params.armor_hardiness, params.physical, params.spell)
487 487 end,
488 488 }
... ... @@ -498,9 +498,9 @@ newTalent{
498 498 self:talentTemporaryValue(p, "auto_stoneskin", t.armor(self, t))
499 499 end,
500 500 info = function(self, t)
501   - return ([[Dwarf skin is a complex structure, it can automatically react to physical blows to harden itself.
  501 + return ([[Dwarf skin is a complex structure; it can automatically react to physical blows and harden itself.
502 502 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.
503   - There is no cooldown to this effect, it can happen while already active.]]):
  503 + There is no cooldown to this effect; it can happen while already active.]]):
504 504 format(t.armor(self, t))
505 505 end,
506 506 }
... ... @@ -537,21 +537,28 @@ newTalent{
537 537 return math.max(1, math.floor(self:combatScale(0.04*self:getCon() + self:getTalentLevel(t), 2.4, 1.4, 10, 9)))
538 538 end,
539 539 action = function(self, t)
540   - local tg = {type="bolt", range=self:getTalentRange(t), nolock=true, simple_dir_request=true, talent=t}
  540 + local tg = {type="bolt", range=self:getTalentRange(t), nolock=true, talent=t, simple_dir_request=true}
541 541 local x, y = self:getTarget(tg)
542 542 if not x or not y then return nil end
543 543 local _ _, x, y = self:canProject(tg, x, y)
  544 +
544 545 local ox, oy = self.x, self.y
545   - self:probabilityTravel(x, y, t.getRange(self, t), function(tx, ty) return game.level.map(tx, ty, Map.ACTOR) and true or false end)
546   - if ox == self.x and oy == self.y then return nil end
  546 + local l = line.new(self.x, self.y, x, y)
  547 + local nextx, nexty = l()
  548 + if not nextx or not game.level.map:checkEntity(nextx, nexty, Map.TERRAIN, "block_move", self) then return end
  549 +
  550 + self:probabilityTravel(x, y, t.getRange(self, t))
  551 +
  552 + if ox == self.x and oy == self.y then return end
  553 +
547 554 game:playSoundNear(self, "talents/earth")
548 555 return true
549 556 end,
550 557 info = function(self, t)
551 558 local range = t.getRange(self, t)
552   - return ([[While the origins of the dwarves remain clouded in mysteries to the other races, it is obvious they share strong ties to the stone.
553   - You can target any wall and immediately enter it and appear on the other side of the obstacle.
554   - Works up to %d grids away (increases with Constitution and talent level).]]):
  559 + 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.
  560 + You can target any wall and immediately enter it, appearing on the other side.
  561 + This can pass through up to %d tiles (increases with Constitution and talent level).]]):
555 562 format(range)
556 563 end,
557 564 }
... ... @@ -605,8 +612,8 @@ newTalent{
605 612 local threshold = t.getThreshold(self, t)
606 613 local evasion = t.getEvasionChance(self, t)
607 614 local duration = t.getDuration(self, t)
608   - return ([[Your incredible luck kicks in at just the right moment to save your skin.
609   - Whenever you take %d%% or more of your life from a single attack, you gain Evasion (%d%%) and %d additional defense (based on your luck and other defensive stats) for the next %d turns.]]):
  615 + return ([[Halfling's incredible luck always kicks in at just the right moment to save their skin.
  616 + 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.]]):
610 617 format(threshold * 100, evasion, t.getDefense(self), duration)
611 618 end,
612 619 }
... ... @@ -680,8 +687,8 @@ newTalent{
680 687 info = function(self, t)
681 688 local duration = t.getDuration(self, t)
682 689 local count = t.getRemoveCount(self, t)
683   - return ([[Halflings have one of the most powerful military forces in the known world and they have been at war with most other races for thousand of years.
684   - Removes %d stun, daze, or pin effects, and makes you immune to stuns, dazes and pins for %d turns.]]):format(duration, count)
  690 + 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.
  691 + Removes %d stun, daze, or pin effects and grants immunity to stuns, dazes and pins for %d turns.]]):format(duration, count)
685 692 end,
686 693 }
687 694
... ... @@ -724,7 +731,7 @@ newTalent{
724 731 return true
725 732 end,
726 733 info = function(self, t)
727   - return ([[Summons your lust for blood and destruction, especially when the odds are against you.
  734 + return ([[Summons your lust for blood and destruction; especially when the odds are against you.
728 735 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.
729 736 The damage bonus will increase with your Constitution.]]):
730 737 format(t.getPower(self, t), 10 + t.getPower(self, t) * 5)
... ... @@ -756,7 +763,7 @@ newTalent{
756 763 info = function(self, t)
757 764 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.
758 765 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 10 turns.
759   - Also increase physical save by +%d.]]):
  766 + Also increases physical save by +%d.]]):
760 767 format(t.getDebuff(self, t), t.getSaves(self, t))
761 768 end,
762 769 }
... ... @@ -779,8 +786,8 @@ newTalent{
779 786 info = function(self, t)
780 787 return ([[Orcs have seen countless battles, and won many of them.
781 788 You revel in the defeat of your foes, gaining %d%% damage resistance for 2 turns each time you kill an enemy.
782   - The resistance will scale with your talent level and Constitution.
783   - Passively increase all damage penetration by %d%%.]]):
  789 + The resistance will scale with talent level and your Constitution.
  790 + Additionally, passively increase all damage penetration by %d%%.]]):
784 791 format(t.getResist(self, t), t.getPen(self, t))
785 792 end,
786 793 }
... ... @@ -839,7 +846,7 @@ newTalent{
839 846 info = function(self, t)
840 847 return ([[Call upon the will of all of the Orc Prides to survive this battle.
841 848 You remove up to %d detrimental effect(s) then heal for %d life.
842   - The healing will increase with your talent level and Willpower.]]):
  849 + The healing will increase with talent level and your Willpower.]]):
843 850 format(t.remcount(self,t), t.heal(self, t))
844 851 end,
845 852 }
... ... @@ -914,7 +921,7 @@ newTalent{
914 921 end,
915 922 info = function(self, t)
916 923 return ([[Your mind becomes more attuned to the Way, and is shielded from outside effects.
917   - Increase confusion and silence immunities by %d%%, and your Mental Save by +%d.]]):
  924 + Increase confusion and silence immunities by %d%% and Mental Save by %d.]]):
918 925 format(100*t.getImmune(self, t), t.getSave(self, t))
919 926 end,
920 927 }
... ... @@ -1048,7 +1055,7 @@ newTalent{
1048 1055 mode = "passive",
1049 1056 on_learn = function(self, t) self.auto_id = 100 end,
1050 1057 info = function(self, t)
1051   - return ([[You merge your mind with the rest of the Way for a brief moment; the sum of all yeek knowledge gathers in your mind,
  1058 + return ([[You merge your mind with the rest of the Way for a brief moment; the sum of all yeek knowledge gathers in your mind
1052 1059 and allows you to identify any item you could not recognize yourself.]])
1053 1060 end,
1054 1061 }
... ... @@ -1077,7 +1084,7 @@ newTalent{
1077 1084 end,
1078 1085 info = function(self, t)
1079 1086 return ([[You enter an ogric wrath for %d turns, increasing your stun and pinning resistances by 20%% and all damage done by 10%%.
1080   - 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, each lasts 7 turns).
  1087 + 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).
1081 1088 Each charge grants 20%% critical damage power and 5%% critical strike chance.
1082 1089 You lose a charge each time you deal a critical strike.
1083 1090 The duration will increase with your Strength.]]):format(t.getduration(self))
... ... @@ -1107,7 +1114,7 @@ newTalent{
1107 1114 return ([[An ogre's body is acclimated to spells and inscriptions.
1108 1115 Increases spell save by %d and improves the contribution of primary stats on infusions and runes by %d%%.
1109 1116 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.
1110   - 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}#; also all damage procs from your weapons are reduced by 50%%.]]):
  1117 + 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%%.]]):
1111 1118 format(t.getSave(self, t), t.getMult(self, t) * 100)
1112 1119 end,
1113 1120 }
... ... @@ -1169,7 +1176,7 @@ newTalent{
1169 1176 end,
1170 1177 info = function(self, t)
1171 1178 return ([[Instantly removes runic and infusion saturations.
1172   - For %d turns your inscriptions cooldown twice as fast.
  1179 + For %d turns your inscriptions cool down twice as fast.
1173 1180 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).]]):
1174 1181 format(t.getDuration(self, t))
1175 1182 end,
... ...
... ... @@ -32,7 +32,7 @@ newTalent{
32 32 end,
33 33 info = function(self, t)
34 34 return ([[Improves your ghoulish body, increasing Strength and Constitution by %d.
35   - Your body also becomes incredibly resilient to damage, you can never take a blow that deals more than %d%% of your maximum life.]])
  35 + Your body also becomes incredibly resilient to damage; you can never take a blow that deals more than %d%% of your maximum life.]])
36 36 :format(t.statBonus(self, t), t.getMaxDamage(self, t))
37 37 end,
38 38 }
... ... @@ -131,10 +131,9 @@ newTalent{
131 131 info = function(self, t)
132 132 local dam = 10 + self:combatTalentStatDamage(t, "con", 10, 60)
133 133 return ([[Vomit on the ground around you, healing any undead in the area and damaging anyone else.
134   - Lasts %d turns, and deals %d blight damage or heals %d life.
135   - Creatures standing in the retch also have %d%% chance to remove a physical effect each turn.
136   - When you stand in your own retch your racial -20%% global speed is cancelled.
137   - Undeads will be stripped from a detrimental effect while others will be stripped from a beneficial effect.]]):format(t.getduration(self, t), damDesc(self, DamageType.BLIGHT, dam), dam * 1.5, t.getPurgeChance(self, t))
  134 + Lasts %d turns and deals %d blight damage or heals %d life.
  135 + 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.
  136 + 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))
138 137 end,
139 138 }
140 139
... ...
... ... @@ -95,8 +95,8 @@ newTalent{ short_name = "SKELETON_REASSEMBLE",
95 95 return true
96 96 end,
97 97 info = function(self, t)
98   - return ([[Re-position some of your bones, healing yourself for %d.
99   - At level 5, you will gain the ability to completely re-assemble your body should it be destroyed (can only be used once)]]):
  98 + return ([[Reposition some of your bones, healing yourself for %d.
  99 + At level 5, you will gain the ability to completely re-assemble your body should it be destroyed (can only be used once).]]):
100 100 format(t.getHeal(self, t))
101 101 end,
102 102 }
... ...
... ... @@ -2965,6 +2965,7 @@ newEffect {
2965 2965 newEffect {
2966 2966 name = "SKIRMISHER_STUN_INCREASE",
2967 2967 desc = "Stun Lengthen",
  2968 + long_desc = function(self, eff) return ([[This should not be shown, oops.]]) end,
2968 2969 type = "physical",
2969 2970 subtype = {stun = true},
2970 2971 status = "detrimental",
... ...
... ... @@ -941,12 +941,12 @@ function _M:getTalentDesc(item)
941 941 local unlearnable, could_unlearn = self:isUnlearnable(t, true)
942 942 if unlearnable then
943 943 local max = tostring(self.actor:lastLearntTalentsMax(t.generic and "generic" or "class"))
944   - text:add({"color","LIGHT_BLUE"}, "This talent was recently learnt, you can still unlearn it.", true, "The last ", max, t.generic and " generic" or " class", " talents you learnt are always unlearnable.", {"color","LAST"}, true, true)
  944 + text:add({"color","LIGHT_BLUE"}, "This talent was recently learnt; you can still unlearn it.", true, "The last ", max, t.generic and " generic" or " class", " talents you learnt are always unlearnable.", {"color","LAST"}, true, true)
945 945 elseif t.no_unlearn_last then
946   - text:add({"color","YELLOW"}, "This talent can alter the world in a permanent way, as such you can never unlearn it once known.", {"color","LAST"}, true, true)
  946 + text:add({"color","YELLOW"}, "This talent can alter the world in a permanent way; as such, you can never unlearn it once known.", {"color","LAST"}, true, true)
947 947 elseif could_unlearn then
948 948 local max = tostring(self.actor:lastLearntTalentsMax(t.generic and "generic" or "class"))
949   - text:add({"color","LIGHT_BLUE"}, "This talent was recently learnt, you can still unlearn it if you are in a quiet area like a #{bold}#town#{normal}#.", true, "The last ", max, t.generic and " generic" or " class", " talents you learnt are always unlearnable.", {"color","LAST"}, true, true)
  949 + text:add({"color","LIGHT_BLUE"}, "This talent was recently learnt; you can still unlearn it if you are in a quiet area like a #{bold}#town#{normal}#.", true, "The last ", max, t.generic and " generic" or " class", " talents you learnt are always unlearnable.", {"color","LAST"}, true, true)
950 950 end
951 951
952 952 local traw = self.actor:getTalentLevelRaw(t.id)
... ...