local ____lualib = require("lualib_bundle") local __TS__Class = ____lualib.__TS__Class local __TS__ClassExtends = ____lualib.__TS__ClassExtends local __TS__Decorate = ____lualib.__TS__Decorate local ____exports = {} local ____dota_ts_adapter = require("lib.dota_ts_adapter") local BaseItem = ____dota_ts_adapter.BaseItem local BaseModifier = ____dota_ts_adapter.BaseModifier local registerAbility = ____dota_ts_adapter.registerAbility local registerModifier = ____dota_ts_adapter.registerModifier ____exports.item_mini_bfury = __TS__Class() local item_mini_bfury = ____exports.item_mini_bfury item_mini_bfury.name = "item_mini_bfury" item_mini_bfury.____file_path = "scripts/vscripts/items/default_items/item_mini_bfury.lua" __TS__ClassExtends(item_mini_bfury, BaseItem) function item_mini_bfury.prototype.GetIntrinsicModifierName(self) return "modifier_mini_bfury" end function item_mini_bfury.prototype.GetAOERadius(self) return self:GetSpecialValueFor("tree") end function item_mini_bfury.prototype.OnSpellStart(self) if not IsServer() then return end local caster = self:GetCaster() local point = self:GetCursorPosition() local trees = GridNav:GetAllTreesAroundPoint( point, self:GetSpecialValueFor("tree"), true ) if trees and #trees > 0 then self:CutTree(caster, point) end end function item_mini_bfury.prototype.CutTree(self, caster, position) GridNav:DestroyTreesAroundPoint( position, self:GetSpecialValueFor("tree"), true ) end item_mini_bfury = __TS__Decorate( item_mini_bfury, item_mini_bfury, {registerAbility(nil)}, {kind = "class", name = "item_mini_bfury"} ) ____exports.item_mini_bfury = item_mini_bfury ____exports.modifier_mini_bfury = __TS__Class() local modifier_mini_bfury = ____exports.modifier_mini_bfury modifier_mini_bfury.name = "modifier_mini_bfury" modifier_mini_bfury.____file_path = "scripts/vscripts/items/default_items/item_mini_bfury.lua" __TS__ClassExtends(modifier_mini_bfury, BaseModifier) function modifier_mini_bfury.prototype.IsHidden(self) return true end function modifier_mini_bfury.prototype.IsDebuff(self) return false end function modifier_mini_bfury.prototype.IsPurgable(self) return false end function modifier_mini_bfury.prototype.GetAttributes(self) return MODIFIER_ATTRIBUTE_MULTIPLE end function modifier_mini_bfury.prototype.DeclareFunctions(self) return {MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE, MODIFIER_EVENT_ON_ATTACK_LANDED} end function modifier_mini_bfury.prototype.OnAttackLanded(self, event) if not IsServer() then return end if self:GetParent():IsRangedAttacker() then return end local parent = event.attacker if parent ~= self:GetParent() then return end local ability = self:GetAbility() if not ability then return end local target = event.target local attackDamage = parent:GetAverageTrueAttackDamage(target) local cleaveDamage = attackDamage * (self:GetAbility():GetSpecialValueFor("cleave_damage") / 100) DoCleaveAttack( parent, target, ability, cleaveDamage, self:GetAbility():GetSpecialValueFor("cleave_starting_width"), self:GetAbility():GetSpecialValueFor("cleave_ending_width"), self:GetAbility():GetSpecialValueFor("cleave_distance"), "particles/items_fx/battlefury_cleave.vpcf" ) end function modifier_mini_bfury.prototype.GetModifierPreAttack_BonusDamage(self) return self:GetAbility():GetSpecialValueFor("bonus_damage") end modifier_mini_bfury = __TS__Decorate( modifier_mini_bfury, modifier_mini_bfury, {registerModifier(nil)}, {kind = "class", name = "modifier_mini_bfury"} ) ____exports.modifier_mini_bfury = modifier_mini_bfury return ____exports