| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- local Bruju = {}
- Bruju.name = 'Bruju'
- Bruju.description = 'A treant with spiritual powers. Specializes in dealing high damage and regenerating health.'
- ----------------
- -- Stats
- ----------------
- Bruju.width = 48
- Bruju.health = 85
- Bruju.damage = 18
- Bruju.range = 12
- Bruju.attackSpeed = 1.1
- Bruju.speed = 45
- Bruju.haste = 1
- Bruju.spirit = 0
- Bruju.cost = 10
- Bruju.attackParticleBone = 'region_righthand'
- ----------------
- -- Upgrades
- ----------------
- Bruju.upgrades = {
- siphon = {
- level = 0,
- maxLevel = 5,
- costs = {100, 150, 200, 250, 300},
- levelRequirement = 1,
- name = 'Siphon',
- description = 'Bruju siphon life from their enemies with every strike, granting lifesteal.',
- x = -1,
- y = 0,
- values = {
- [1] = '8% lifesteal',
- [2] = '12% lifesteal',
- [3] = '16% lifesteal',
- [4] = '20% lifesteal',
- [5] = '24% lifesteal',
- },
- bonuses = function()
- return data.ability.bruju.siphon:bonuses()
- end,
- apply = function(self, unit)
- if self.level > 0 then
- unit:addAbility('siphon')
- end
- end
- },
- burst = {
- level = 0,
- maxLevel = 5,
- costs = {100, 150, 200, 250, 300},
- levelRequirement = 1,
- name = 'Burst',
- description = 'Bruju burst into a spirit flame on death, damaging nearby enemies.',
- x = 0,
- y = 0,
- values = {
- [1] = '20 damage',
- [2] = '40 damage',
- [3] = '70 damage',
- [4] = '110 damage',
- [5] = '160 damage',
- },
- bonuses = function(self)
- return data.ability.bruju.burst:bonuses()
- end,
- apply = function(self, unit)
- if self.level > 0 then
- unit:addAbility('burst')
- end
- end
- },
- retaliation = {
- level = 0,
- maxLevel = 1,
- costs = {250},
- levelRequirement = 1,
- name = 'Retaliation',
- description = 'Bruju gains attack speed while Muju is in the juju realm.',
- x = 1,
- y = 0,
- values = {
- [1] = '30% attack speed'
- },
- bonuses = function()
- return data.ability.bruju.retaliation:bonuses()
- end,
- apply = function(self, unit)
- if self.level > 0 then
- unit:addAbility('retaliation')
- end
- end
- },
- equilibrium = {
- level = 0,
- maxLevel = 1,
- costs = {500},
- prerequisites = {siphon = 3},
- levelRequirement = 5,
- name = 'Equilibrium',
- description = 'Bruju gains double lifesteal from Siphon when below 40% health.',
- x = -1,
- y = 1,
- connectedTo = {'siphon'},
- values = {
- [1] = '200% lifesteal when low on health'
- }
- },
- eruption = {
- level = 0,
- maxLevel = 3,
- costs = {100, 150, 200},
- prerequisites = {burst = 1},
- levelRequirement = 3,
- name = 'Eruption',
- description = 'The range of burst is increased',
- x = 0,
- y = 1,
- connectedTo = {'burst'},
- values = {
- [0] = '60 range',
- [1] = '80 range',
- [2] = '110 range',
- [3] = '150 range'
- }
- },
- rewind = {
- level = 0,
- maxLevel = 3,
- costs = {300, 300, 300},
- levelRequirement = 5,
- name = 'Rewind',
- description = 'Bruju has a chance to quickly heal any damage taken.',
- x = 1,
- y = 1,
- values = {
- [1] = '5% chance',
- [2] = '10% chance',
- [3] = '15% chance'
- },
- bonuses = function()
- return data.ability.bruju.rewind:bonuses()
- end,
- apply = function(self, unit)
- if self.level > 0 then
- unit:addAbility('rewind')
- end
- end
- },
- fortify = {
- level = 0,
- maxLevel = 3,
- costs = {300, 300, 300},
- levelRequirement = 10,
- name = 'Fortify',
- description = 'Bruju\'s maximum health is increased.',
- x = -1,
- y = 2,
- values = {
- [1] = '30% increase',
- [2] = '50% increase',
- [3] = '70% increase'
- },
- apply = function(self, unit)
- if self.level > 0 then
- local modifiers = {1.3, 1.5, 1.7}
- unit.health = unit.health * modifiers[self.level]
- end
- end
- },
- impulse = {
- level = 0,
- maxLevel = 1,
- costs = {1000},
- prerequisites = {burst = 1, rewind = 1},
- levelRequirement = 10,
- name = 'Impulse',
- description = 'Every time rewind is triggered, Bruju ruptures the fabric of time, casting Burst.',
- x = 1,
- y = 2,
- connectedTo = {'rewind'},
- values = {
- [1] = 'So much burst.',
- }
- },
- clarity = {
- level = 0,
- maxLevel = 1,
- costs = {500},
- prerequisites = {fortify = 1},
- levelRequirement = 15,
- name = 'Clarity',
- description = 'Reduces the duration of crowd control effects.',
- x = -1,
- y = 3,
- connectedTo = {'fortify'},
- values = {
- [1] = '50% reduction',
- },
- apply = function(self, unit)
- if self.level > 0 then
- unit.buffs:add('clarity')
- end
- end
- },
- sanctuary = {
- level = 0,
- maxLevel = 1,
- costs = {1000},
- prerequisites = {burst = 1, eruption = 1},
- levelRequirement = 15,
- name = 'Sanctuary',
- description = 'Burst also heals allies for a portion of the damage dealt.',
- x = 0,
- y = 3,
- connectedTo = {'eruption'},
- values = {
- [1] = '50% of the damage heals',
- }
- },
- moxie = {
- level = 0,
- maxLevel = 1,
- costs = {1500},
- levelRequirement = 20,
- name = 'Moxie',
- description = 'Bruju gains damage proportional to his maximum health.',
- x = -1,
- y = 4,
- values = {
- [1] = '10% maximum health converted to damage',
- },
- apply = function(self, unit)
- if self.level > 0 then
- unit.damage = unit.damage + (unit.health * .1)
- end
- end
- },
- conduction = {
- level = 0,
- maxLevel = 1,
- costs = {1500},
- levelRequirement = 20,
- name = 'Conduction',
- description = 'All healing is increased.',
- x = 0,
- y = 4,
- values = {
- [1] = '10% increased healing from all sources',
- },
- apply = function(self, unit)
- if self.level > 0 then
- unit.buffs:add('conduction')
- end
- end
- }
- }
- Bruju.featured = {
- {'siphon', 'Steal health from enemies with every attack.'},
- {'burst', 'Explode on death to damage enemies.'},
- {'rewind', 'Move backwards in time to avoid taking damage.'},
- {'moxie', 'Convert health into damage.'}
- }
- return Bruju
|