Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <DB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <fighter name="Nameless">
- <stats maxhp="110" atk="10" def="6" pow="11" res="4" eva="13" acc="12" />
- <tags />
- <resource name="Tranquility" max="20" start="10">
- <aspects>
- <resource name="Fury" max="20" start="10">
- <spend>self.val = self.val-amount; resource = a:getResource("tranquility"); resource.val = self.max - self.val</spend>
- </resource>
- <buff name="Balance">
- <onTurnEnd>
- fury = a:getResource("fury").val; tranq = a:getResource("tranquility").val
- if fury == 10 and tranq == 10 then self.name="Balanced"; fury = 1.15; tranq = 1.15 else
- if fury > 10 then self.name="Furious"; fury = 1 + (fury-10)/10 * 0.5 else fury = 0.25 + fury/10 * 0.75 end
- if tranq > 10 then self.name="Tranquil"; tranq = 1 + (tranq-10)/10 * 0.5 else tranq = 0.25 + tranq/10 * 0.75 end
- end
- self.mult.atk = fury; self.mult.def = tranq; self.mult.pow = fury; self.mult.res = tranq; self.mult.acc = fury; self.mult.eva = tranq;
- </onTurnEnd>
- </buff>
- </aspects>
- <onStart>self:grantAspect(a,"Fury"); self:applyBuff(a,"Balance")</onStart>
- <spend>self.val = self.val-amount; resource = a:getResource("fury"); resource.val = self.max - self.val</spend>
- </resource>
- <ability name="Spear Attack">
- <validTarget>enemy</validTarget>
- <power>1</power>
- <tags>#basic #physical</tags>
- </ability>
- <ability name="Overwhelm" cooldown="2">
- <cost resource="Fury" amount="6" />
- <validTarget>enemy</validTarget>
- <power>1.25</power>
- <tags>#physical</tags>
- <calcDamage>
- self.power = math.clamp(0,a.hp/a.stats["maxhp"],1)*0.6 + 1.15
- </calcDamage>
- </ability>
- <ability name="Pinpoint Weakness" cooldown="3">
- <cost resource ="Tranquility" amount="5" />
- <aspects>
- <buff name="Weakness Pinpointed">
- <onTakeDamage>
- if a == self.source and string.find(tags,"#physical") and damage > 0 then
- damage = damage*1.3
- end
- </onTakeDamage>
- <buffStatus>return "("..self.source:getName()..")"</buffStatus>
- <duration>3</duration>
- <onStart>outputMessage("Weakness Pinpointed")</onStart>
- </buff>
- </aspects>
- <validTarget>enemy</validTarget>
- <prevalidateTarget>
- if b:hasBuff("Weakness Pinpointed",a) then return false else return true end
- </prevalidateTarget>
- <effect>
- outputMessage(a:getName() .. " scopes out " .. b:getName() .. "'s weaknesses!")
- self.buff = self:applyBuff(b,"Weakness Pinpointed")
- </effect>
- </ability>
- <ability name="Disengage">
- <cost resource="Tranquility" amount="6" />
- <aspects>
- <buff name="Disengaged">
- <onStart>self.used = false; self.mult.atk = 1.25; self.mult.eva = 1.7;</onStart>
- <onTurnEnd>
- if self.used == true then
- outputMessage(a:getName() .. " is no longer disengaged!")
- self.remove()
- end
- </onTurnEnd>
- <onDealDamage>
- if string.find(tags, "#physical") then
- self.used = true
- end
- </onDealDamage>
- </buff>
- </aspects>
- <validTarget>self</validTarget>
- <effect>
- outputMessage(a:getName().." disengages!")
- self:applyBuff(a,"Disengaged")
- </effect>
- <checkCanUse>
- if self.fighter:hasBuff("disengaged") then
- self.useStatus = "already disengaged"
- return false
- end
- </checkCanUse>
- </ability>
- <passive name="Health Twofold">
- <aspects>
- <buff name="Dying Frenzy">
- <onTakeDamage>if damage > 0 then damage=damage+a.stats["maxhp"]/20 end</onTakeDamage>
- <onRoundStart>
- val = a.stats["maxhp"]/5
- outputMessage(a:getName().."'s vigor is fading, for "..val.." damage...")
- a.hp = a.hp-val
- </onRoundStart>
- </buff>
- </aspects>
- <onStart>self.applied=false</onStart>
- <onDeath>
- if not self.applied then
- self:applyBuff(a,"Dying Frenzy"); a.hp = a.stats["maxhp"]; outputMessage(a:getName().." enters a dying frenzy!")
- self.applied=true
- end
- </onDeath>
- </passive>
- <passive name ="Kar's Blessing">
- <aspects>
- <buff name="Kar's Venom">
- <onStart>self.stacks = {}</onStart>
- <onTurnEnd>
- poisonDamage = 0;
- if #(self.stacks) > 0 then
- for i = #(self.stacks), 1, -1 do
- v = self.stacks[i]
- poisonDamage = poisonDamage + v.dam
- v.dur = v.dur - 1
- if v.dur <= 0 then table.remove(self.stacks,i) end
- end
- poisonDamage = math.max(0,poisonDamage - a.stats["res"]/3)
- if poisonDamage > 0 then outputMessage(a:getName().." is worn down by poison") end
- self.source:damage(poisonDamage, a, "#poison #power")
- else
- self.remove()
- end
- </onTurnEnd>
- <buffStatus>
- poisonDamage = 0;
- stacks = #(self.stacks) or 0
- for i = #(self.stacks), 1, -1 do; poisonDamage = poisonDamage + self.stacks[i].dam; end
- return "Stacks: "..stacks.." DoT: "..math.round(poisonDamage)
- </buffStatus>
- </buff>
- </aspects>
- <onDealDamage>
- if damage > 0 and string.find(tags, "#physical") then
- buff = b:getBuff("Kar's Venom",a)
- if buff == nil then buff = self:applyBuff(b,"Kar's Venom") end
- poisonDamage = a.stats["pow"]/6 * Random:variance(0.3)
- outputMessage(a:getName().." has applied ".. poisonDamage .. " poison damage")
- table.insert(buff.stacks,{["dam"] = poisonDamage, ["dur"] = 5})
- end
- </onDealDamage>
- <onTakeDamage>
- if string.find(tags,"#poison") then damage = damage/4 end
- </onTakeDamage>
- </passive>
- <getName>
- 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", "<https://youtu.be/fq3abPnEEGE>", "missingno.","🤫","[REDACTED]","The Masked Warrior","Disciple of Kar","の","Amazonymous","#0x000FF","Probably Not Kevin"}
- return myTable[Random:valMax(#myTable)]
- </getName>
- </fighter>
- </DB>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement