Advertisement
varkarrus

Test Killer

Dec 14th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3.  
  4. <fighter name="Nameless">
  5. <stats maxhp="110" atk="10" def="6" pow="11" res="4" eva="13" acc="12" />
  6. <tags />
  7.  
  8. <resource name="Tranquility" max="20" start="10">
  9. <aspects>
  10. <resource name="Fury" max="20" start="10">
  11. <spend>self.val = self.val-amount; resource = a:getResource("tranquility"); resource.val = self.max - self.val</spend>
  12. </resource>
  13. <buff name="Balance">
  14. <onTurnEnd>
  15. fury = a:getResource("fury").val; tranq = a:getResource("tranquility").val
  16. if fury == 10 and tranq == 10 then self.name="Balanced"; fury = 1.15; tranq = 1.15 else
  17. if fury &gt; 10 then self.name="Furious"; fury = 1 + (fury-10)/10 * 0.5 else fury = 0.25 + fury/10 * 0.75 end
  18. if tranq &gt; 10 then self.name="Tranquil"; tranq = 1 + (tranq-10)/10 * 0.5 else tranq = 0.25 + tranq/10 * 0.75 end
  19. end
  20. self.mult.atk = fury; self.mult.def = tranq; self.mult.pow = fury; self.mult.res = tranq; self.mult.acc = fury; self.mult.eva = tranq;
  21. </onTurnEnd>
  22. </buff>
  23. </aspects>
  24. <onStart>self:grantAspect(a,"Fury"); self:applyBuff(a,"Balance")</onStart>
  25. <spend>self.val = self.val-amount; resource = a:getResource("fury"); resource.val = self.max - self.val</spend>
  26. </resource>
  27.  
  28.  
  29. <ability name="Spear Attack">
  30. <validTarget>enemy</validTarget>
  31. <power>1</power>
  32. <tags>#basic #physical</tags>
  33. </ability>
  34. <ability name="Overwhelm" cooldown="2">
  35. <cost resource="Fury" amount="6" />
  36. <validTarget>enemy</validTarget>
  37. <power>1.25</power>
  38. <tags>#physical</tags>
  39. <calcDamage>
  40. self.power = math.clamp(0,a.hp/a.stats["maxhp"],1)*0.6 + 1.15
  41. </calcDamage>
  42. </ability>
  43. <ability name="Pinpoint Weakness" cooldown="3">
  44. <cost resource ="Tranquility" amount="5" />
  45. <aspects>
  46. <buff name="Weakness Pinpointed">
  47. <onTakeDamage>
  48. if a == self.source and string.find(tags,"#physical") and damage &gt; 0 then
  49. damage = damage*1.3
  50. end
  51. </onTakeDamage>
  52. <buffStatus>return "("..self.source:getName()..")"</buffStatus>
  53. <duration>3</duration>
  54. <onStart>outputMessage("Weakness Pinpointed")</onStart>
  55. </buff>
  56.  
  57. </aspects>
  58. <validTarget>enemy</validTarget>
  59. <prevalidateTarget>
  60. if b:hasBuff("Weakness Pinpointed",a) then return false else return true end
  61. </prevalidateTarget>
  62. <effect>
  63. outputMessage(a:getName() .. " scopes out " .. b:getName() .. "'s weaknesses!")
  64. self.buff = self:applyBuff(b,"Weakness Pinpointed")
  65. </effect>
  66. </ability>
  67. <ability name="Disengage">
  68. <cost resource="Tranquility" amount="6" />
  69. <aspects>
  70. <buff name="Disengaged">
  71. <onStart>self.used = false; self.mult.atk = 1.25; self.mult.eva = 1.7;</onStart>
  72. <onTurnEnd>
  73. if self.used == true then
  74. outputMessage(a:getName() .. " is no longer disengaged!")
  75. self.remove()
  76. end
  77. </onTurnEnd>
  78. <onDealDamage>
  79. if string.find(tags, "#physical") then
  80. self.used = true
  81. end
  82. </onDealDamage>
  83. </buff>
  84. </aspects>
  85. <validTarget>self</validTarget>
  86. <effect>
  87. outputMessage(a:getName().." disengages!")
  88. self:applyBuff(a,"Disengaged")
  89. </effect>
  90. <checkCanUse>
  91. if self.fighter:hasBuff("disengaged") then
  92. self.useStatus = "already disengaged"
  93. return false
  94. end
  95. </checkCanUse>
  96. </ability>
  97. <passive name="Health Twofold">
  98. <aspects>
  99. <buff name="Dying Frenzy">
  100. <onTakeDamage>if damage &gt; 0 then damage=damage+a.stats["maxhp"]/20 end</onTakeDamage>
  101. <onRoundStart>
  102. val = a.stats["maxhp"]/5
  103. outputMessage(a:getName().."'s vigor is fading, for "..val.." damage...")
  104. a.hp = a.hp-val
  105. </onRoundStart>
  106. </buff>
  107. </aspects>
  108. <onStart>self.applied=false</onStart>
  109. <onDeath>
  110. if not self.applied then
  111. self:applyBuff(a,"Dying Frenzy"); a.hp = a.stats["maxhp"]; outputMessage(a:getName().." enters a dying frenzy!")
  112. self.applied=true
  113. end
  114. </onDeath>
  115. </passive>
  116. <passive name ="Kar's Blessing">
  117. <aspects>
  118. <buff name="Kar's Venom">
  119. <onStart>self.stacks = {}</onStart>
  120. <onTurnEnd>
  121. poisonDamage = 0;
  122. if #(self.stacks) &gt; 0 then
  123. for i = #(self.stacks), 1, -1 do
  124. v = self.stacks[i]
  125. poisonDamage = poisonDamage + v.dam
  126. v.dur = v.dur - 1
  127. if v.dur &lt;= 0 then table.remove(self.stacks,i) end
  128. end
  129. poisonDamage = math.max(0,poisonDamage - a.stats["res"]/3)
  130. if poisonDamage &gt; 0 then outputMessage(a:getName().." is worn down by poison") end
  131. self.source:damage(poisonDamage, a, "#poison #power")
  132. else
  133. self.remove()
  134. end
  135. </onTurnEnd>
  136. <buffStatus>
  137. poisonDamage = 0;
  138. stacks = #(self.stacks) or 0
  139. for i = #(self.stacks), 1, -1 do; poisonDamage = poisonDamage + self.stacks[i].dam; end
  140. return "Stacks: "..stacks.." DoT: "..math.round(poisonDamage)
  141. </buffStatus>
  142. </buff>
  143. </aspects>
  144. <onDealDamage>
  145. if damage &gt; 0 and string.find(tags, "#physical") then
  146. buff = b:getBuff("Kar's Venom",a)
  147. if buff == nil then buff = self:applyBuff(b,"Kar's Venom") end
  148. poisonDamage = a.stats["pow"]/6 * Random:variance(0.3)
  149. outputMessage(a:getName().." has applied ".. poisonDamage .. " poison damage")
  150. table.insert(buff.stacks,{["dam"] = poisonDamage, ["dur"] = 5})
  151. end
  152. </onDealDamage>
  153. <onTakeDamage>
  154. if string.find(tags,"#poison") then damage = damage/4 end
  155. </onTakeDamage>
  156. </passive>
  157.  
  158. <getName>
  159. local myTable = {"Nameless", "The Nameless Amazon", "N/A", "_______", "Error 404: Name Not Found", "Tall Gal", "Slenderzon", "██████", "The Faceless Hunter", "The Nameless Wanderer", "nil", "nullptr exception", "uh", "hot babe", "&lt;https://youtu.be/fq3abPnEEGE&gt;", "missingno.","🤫","[REDACTED]","The Masked Warrior","Disciple of Kar","の","Amazonymous","#0x000FF","Probably Not Kevin"}
  160. return myTable[Random:valMax(#myTable)]
  161. </getName>
  162. </fighter>
  163. </DB>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement