initial commit

This commit is contained in:
2021-10-24 15:36:18 -04:00
commit b9a5a8fe23
11982 changed files with 220468 additions and 0 deletions

View File

@@ -0,0 +1,179 @@
modifier_ascension = class({})
-----------------------------------------------------------------------------------------
function modifier_ascension:IsHidden()
return true
end
-----------------------------------------------------------------------------------------
function modifier_ascension:IsPurgable()
return false
end
----------------------------------------
function modifier_ascension:OnCreated( kv )
self:OnRefresh( kv )
end
----------------------------------------
function modifier_ascension:OnRefresh( kv )
if self:GetAbility() == nil then
return
end
self.bonus_magic_resist = self:GetAbility():GetSpecialValueFor( "bonus_magic_resist" )
self.min_bonus_armor = self:GetAbility():GetSpecialValueFor( "min_bonus_armor" )
self.max_bonus_armor = self:GetAbility():GetSpecialValueFor( "max_bonus_armor" )
self.crit_chance = self:GetAbility():GetSpecialValueFor( "crit_chance" )
self.crit_multiplier = self:GetAbility():GetSpecialValueFor( "crit_multiplier" )
self.bonus_attack_speed = self:GetAbility():GetSpecialValueFor( "bonus_attack_speed" )
self.bonus_hp = self:GetAbility():GetSpecialValueFor( "bonus_hp" )
self.bonus_cooldown = self:GetAbility():GetSpecialValueFor( "bonus_cooldown" )
self.bonus_outgoing_damage = self:GetAbility():GetSpecialValueFor( "bonus_outgoing_damage" )
self.attack_speed_reduction_pct = self:GetAbility():GetSpecialValueFor( "attack_speed_reduction_pct" )
self.move_speed_reduction_pct = self:GetAbility():GetSpecialValueFor( "move_speed_reduction_pct" )
self.act_1_modifier = self:GetAbility():GetSpecialValueFor( "act_1_modifier" )
self.act_2_modifier = self:GetAbility():GetSpecialValueFor( "act_2_modifier" )
self.flActModifier = self:CalculateActModifier()
end
--------------------------------------------------------------------------------
function modifier_ascension:DeclareFunctions()
local funcs =
{
MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS,
MODIFIER_PROPERTY_PHYSICAL_ARMOR_BONUS,
MODIFIER_PROPERTY_PREATTACK_CRITICALSTRIKE,
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
MODIFIER_PROPERTY_EXTRA_HEALTH_PERCENTAGE,
MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE,
MODIFIER_PROPERTY_TOTALDAMAGEOUTGOING_PERCENTAGE,
MODIFIER_PROPERTY_ATTACKSPEED_REDUCTION_PERCENTAGE,
MODIFIER_PROPERTY_MOVESPEED_REDUCTION_PERCENTAGE,
}
return funcs
end
function modifier_ascension:CalculateActModifier()
if IsServer() == false then
return 0
end
if self:GetParent().Encounter == nil or self:GetParent().Encounter:GetRoom() == nil then
return 0
end
local nAct = self:GetParent().Encounter:GetRoom():GetAct()
if nAct == 1 then
return self.act_1_modifier
end
if nAct == 2 then
return self.act_2_modifier
end
return 0
end
----------------------------------------
function modifier_ascension:GetDepth()
if IsServer() == false then
return 0
end
if self:GetParent().Encounter == nil then
return 0
end
return self:GetParent().Encounter:GetRoom():GetDepth()
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierMagicalResistanceBonus( params )
return self.bonus_magic_resist
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierPhysicalArmorBonus( params )
if self:GetDepth() == 0 then
return 0
end
local flArmor = Lerp( ( self:GetDepth() - 2.0 ) / ( GameRules.Aghanim:GetMaxDepth() - 2.0 ), self.min_bonus_armor, self.max_bonus_armor )
return flArmor
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierTotalDamageOutgoing_Percentage( params )
if IsServer() then
return self.bonus_outgoing_damage + self.flActModifier
end
return self.bonus_outgoing_damage
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierPreAttack_CriticalStrike( params )
if IsServer() then
local hTarget = params.target
local hAttacker = params.attacker
if hTarget and ( hTarget:IsBuilding() == false ) and ( hTarget:IsOther() == false ) and hAttacker and ( hAttacker:GetTeamNumber() ~= hTarget:GetTeamNumber() ) then
if RandomFloat( 1, 100 ) <= self.crit_chance then -- expose RollPseudoRandomPercentage?
self.bIsCrit = true
return self.crit_multiplier
end
end
end
return 0.0
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierAttackSpeedBonus_Constant( params )
return self.bonus_attack_speed
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierExtraHealthPercentage( params )
if IsServer() then
return self.bonus_hp + self.flActModifier
end
return self.bonus_hp
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierPercentageCooldown( params )
return self.bonus_cooldown
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierAttackSpeedReductionPercentage( params )
if self:GetParent():IsConsideredHero() then
return self.attack_speed_reduction_pct
end
return 100
end
--------------------------------------------------------------------------------
function modifier_ascension:GetModifierMoveSpeedReductionPercentage( params )
if self:GetParent():IsConsideredHero() then
return self.move_speed_reduction_pct
end
return 100
end