Guest User

Broken Talents!

a guest
Jul 19th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.79 KB | None | 0 0
  1. newTalent{
  2. name = "Unseen Heckler", shortname = "UNSEEN_HECKLER",
  3. type = {"spell/shadowkin", 3},
  4. require = spells_req3,
  5. points = 5,
  6. random_ego = "attack",
  7. cooldown = 6,
  8. hate = 12,
  9. range = 5,
  10. tactical = { ATTACK = { MIND = 2 } },
  11. no_break_stealth= true,
  12. direct_hit = true,
  13. requires_target = true,
  14. getDuration = function(self, t)
  15. return 4
  16. end,
  17. getDamage = function(self, t)
  18. return 0.5 * self:combatTalentMindDamage(t, 50, 300) + 0.5 * self:combatTalentSpellDamage(t, 50, 300)
  19. end,
  20. getJumpRange = function(self, t)
  21. return math.min(6, math.sqrt(self:getTalentLevel(t) * 2))
  22. end,
  23. getJumpCount = function(self, t)
  24. return math.min(3, self:getTalentLevelRaw(t))
  25. end,
  26. getJumpChance = function(self, t)
  27. return math.min(40, 15 * math.sqrt(self:getTalentLevel(t)))
  28. end,
  29. getJumpDuration = function(self, t)
  30. return 30
  31. end,
  32. getHateGain = function(self, t)
  33. return 2
  34. end,
  35. action = function(self, t)
  36. local range = self:getTalentRange(t)
  37. local tg = {type="hit", range=range}
  38. local x, y, target = self:getTarget(tg)
  39. if not x or not y or not target or core.fov.distance(self.x, self.y, x, y) > range or target:hasEffect(target.EFF_HATEFUL_WHISPER) then return nil end
  40.  
  41. local duration = t.getDuration(self, t)
  42. local damage = self:mindCrit(t.getDamage(self, t))
  43. local mindpower = self:combatMindpower()
  44. local jumpRange = t.getJumpRange(self, t)
  45. local jumpCount = t.getJumpCount(self, t)
  46. local jumpChance = t.getJumpChance(self, t)
  47. local jumpDuration = t.getJumpDuration(self, t)
  48. local hateGain = t.getHateGain(self, t)
  49. target:setEffect(target.EFF_HATEFUL_WHISPER, duration, {
  50. src = self,
  51. damage = damage,
  52. duration = duration,
  53. mindpower = mindpower,
  54. jumpRange = jumpRange,
  55. jumpCount = jumpCount,
  56. jumpChance = jumpChance,
  57. jumpDuration = jumpDuration,
  58. hateGain = hateGain
  59. })
  60. game.level.map:particleEmitter(target.x, target.y, 1, "reproach", { dx = self.x - target.x, dy = self.y - target.y })
  61.  
  62. return true
  63. end,
  64. info = function(self, t)
  65. local damage = t.getDamage(self, t)
  66. local jumpRange = t.getJumpRange(self, t)
  67. local jumpCount = t.getJumpCount(self, t)
  68. local jumpChance = t.getJumpChance(self, t)
  69. local hateGain = t.getHateGain(self, t)
  70. return ([[Send a whisper filled with hate to spread throughout your foes. When the whisper is first heard, they will suffer %d darkness 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.
  71. The damage increases with your Spellpower and Mindpower.]]):format(self.damDesc(self, DamageType.DARKNESS, damage), hateGain, jumpCount, jumpRange, jumpChance)
  72. end,
  73. }
  74.  
  75.  
  76.  
  77. newTalent{
  78. name = "Twist the Veil", shortname = "TWIST_THE_VEIL",
  79. type = {"cunning/dark-veil",3},
  80. require = cuns_req3,
  81. no_energy = false,
  82. points = 5,
  83. mana = 135,
  84. cooldown = 20,
  85. tactical = { DEFEND = 2 },
  86.  
  87. action = function(self, t)
  88. self:teleportRandom(self.x, self.y, 2)
  89. self:setEffect(self.EFF_INVISIBILITY, 1, {power=1000})
  90. self.talents_cd.T_STEALTH = nil
  91. return true
  92. end,
  93. info = function(self, t)
  94. return ([[Twist the veil of darkness around yourself, randomly moving %d%% grids away from your current posistion, and becoming invisble for one turn.
  95. This also resets the cooldown of your Stealth talent.]]):
  96. format(range))
  97. end,
  98. }
  99.  
  100.  
  101.  
  102. newTalent{
  103. name = "Unveil", shortname = "UNVEIL",
  104. type = {"spell/vile-tactics", 4},
  105. require = make_require(4),
  106. no_energy = "false",
  107. points = 5,
  108. cooldown = 10,
  109. mana = 30,
  110. hate = 5,
  111. range = 0,
  112. radius = function(self, t) return math.floor(self:combatTalentScale(t, 3, 7)) end,
  113. target = function(self, t)
  114. return {type="ball", range=self:getTalentRange(t), radius=self:getTalentRadius(t), friendlyfire=false, talent=t}
  115. end,
  116. action = function(src, x, y, type, dam, tmp)
  117. local target = game.level.map(x, y, Map.ACTOR)
  118. tmp = tmp or {}
  119. -- extra damage on hiding targets
  120. if target and target:attr("stealth") then
  121. dam = dam * 2
  122. if target and target:attr("invisible") then
  123. dam = dam * 2
  124. -- Dont lit magically unlit grids
  125. local a = game.level.map(x, y, Map.ACTOR)
  126. if a then
  127. a:setEffect(a.EFF_LUMINESCENCE, math.ceil(dam.turns), {power=dam.power, no_ct_effect=true})
  128. end}
  129.  
  130. self:project(tg, self.x, self.y, DamageType.DARKNESS, self:mindCrit(self:combatTalentStatDamage(t, "cun", 40, 400)))
  131. self:project(tg, self.x, self.y, DamageType.CONFUSION, {
  132. dur=3,
  133. dam=40 + 6 * self:getTalentLevel(t),
  134. power_check=function() return self:combatPhysicalpower() end,
  135. resist_check=self.combatMindResist,
  136. })
  137. game.level.map:particleEmitter(self.x, self.y, self:getTalentRadius(t), "shout", {additive=true, life=10, size=3, distorion_factor=0.5, radius=self:getTalentRadius(t), nb_circles=8, rm=0.8, rM=1, gm=0, gM=0, bm=0.1, bM=0.2, am=0.4, aM=0.6})
  138. return true
  139. end,
  140. info = function(self, t)
  141. local radius = self:getTalentRadius(t)
  142. return ([[None can hide from you. Deals %d%% darkness damage in a radius of %d%%. This reveals hidden targets, and does double damage to them.
  143. The damage will scaling with your cunning]]):format(radius, self:combatTalentStatDamage(t, "cun", 40, 400))
  144. end,
  145. }
Advertisement
Add Comment
Please, Sign In to add comment