restructure

This commit is contained in:
2021-11-10 08:48:00 -05:00
parent d3eac6b70e
commit aaa089715d
12018 changed files with 6424 additions and 135034 deletions

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3011 = class({})
local public = modifier_bb_buff_3011
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3011"
end

View File

@@ -0,0 +1,40 @@
modifier_bb_buff_3011_effect = class({})
local public = modifier_bb_buff_3011_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local target = self:GetParent()
local playerid = target:GetPlayerOwnerID()
local bonus = GameRules.player_bb_buff[playerid]["item_3011_effect"]
target:AddDamageOutgoingPhysical(bonus, "thtd_hero_3011_damage_up")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingPhysical("thtd_hero_3011_damage_up")
end
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3012 = class({})
local public = modifier_bb_buff_3012
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3012"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3013 = class({})
local public = modifier_bb_buff_3013
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3013"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3014 = class({})
local public = modifier_bb_buff_3014
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3014"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3015 = class({})
local public = modifier_bb_buff_3015
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3015"
end

View File

@@ -0,0 +1,40 @@
modifier_bb_buff_3015_effect = class({})
local public = modifier_bb_buff_3015_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local target = self:GetParent()
local playerid = target:GetPlayerOwnerID()
local bonus = GameRules.player_bb_buff[playerid]["item_3015_effect"]
target:AddDamageOutgoingPure(bonus, "thtd_hero_3015_damage_up")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingPure("thtd_hero_3015_damage_up")
end
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3016 = class({})
local public = modifier_bb_buff_3016
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3016"
end

View File

@@ -0,0 +1,41 @@
modifier_bb_buff_3016_effect = class({})
local public = modifier_bb_buff_3016_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:DeclareFunctions()
local funcs = {
MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE,
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
}
return funcs
end
--------------------------------------------------------------------------------
function public:GetModifierBaseAttack_BonusDamage()
return 200 * self:GetStackCount()
end
function public:GetModifierAttackSpeedBonus_Constant()
return 40 * self:GetStackCount()
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3017 = class({})
local public = modifier_bb_buff_3017
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3017"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3018 = class({})
local public = modifier_bb_buff_3018
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3018"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3019 = class({})
local public = modifier_bb_buff_3019
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3019"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3020 = class({})
local public = modifier_bb_buff_3020
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3020"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3021 = class({})
local public = modifier_bb_buff_3021
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3021"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3023 = class({})
local public = modifier_bb_buff_3023
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3023"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3024 = class({})
local public = modifier_bb_buff_3024
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3024"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3025 = class({})
local public = modifier_bb_buff_3025
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3025"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3026 = class({})
local public = modifier_bb_buff_3026
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3026"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3027 = class({})
local public = modifier_bb_buff_3027
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3027"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3028 = class({})
local public = modifier_bb_buff_3028
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3028"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3029 = class({})
local public = modifier_bb_buff_3029
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3029"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3030 = class({})
local public = modifier_bb_buff_3030
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3030"
end

View File

@@ -0,0 +1,23 @@
modifier_bb_buff_3031 = class({})
local public = modifier_bb_buff_3031
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetAttributes()
return MODIFIER_ATTRIBUTE_MULTIPLE
end
function public:GetTexture()
return "item_3031"
end

View File

@@ -0,0 +1,19 @@
modifier_fairy_count = class({})
local public = modifier_fairy_count
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return ""
end

View File

@@ -0,0 +1,76 @@
modifier_bosses_alice = class({})
local public = modifier_bosses_alice
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
-- 分裂效果造成游戏卡顿崩溃,改为免死符
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
if caster.left_death_count == nil then
caster.left_death_count = 3
end
if caster.effect_index == nil then
local effectName = "particles/units/heroes/hero_monkey_king/monkey_king_quad_tap_stack.vpcf"
local effectIndex = ParticleManager:CreateParticle(effectName, PATTACH_OVERHEAD_FOLLOW, caster)
ParticleManager:SetParticleControlEnt(effectIndex , 0, caster, PATTACH_OVERHEAD_FOLLOW, "attach_hitloc", Vector(0, 0, 0), true)
ParticleManager:SetParticleControl(effectIndex, 1, Vector(0, caster.left_death_count, 0))
caster.effect_index = effectIndex
else
ParticleManager:SetParticleControl(caster.effect_index, 1, Vector(0, caster.left_death_count, 1))
end
self:SetStackCount(caster.left_death_count)
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
if caster.diseble_buff == true then return end
caster.thtd_damage_lock = true
local health = caster:GetMaxHealth()
if caster.left_death_count == 3 then
health = health * 0.33
end
caster:SetBaseMaxHealth(health)
caster:SetMaxHealth(health)
caster:SetHealth(health)
caster:SetModelScale(caster:GetModelScale() * 0.9)
local effectIndex = ParticleManager:CreateParticle("particles/econ/events/ti6/hero_levelup_ti6_godray.vpcf", PATTACH_CUSTOMORIGIN_FOLLOW, caster)
ParticleManager:SetParticleControl(effectIndex, 0, caster:GetOrigin())
ParticleManager:DestroyParticleSystem(effectIndex, false)
caster.left_death_count = caster.left_death_count - 1
if caster.left_death_count <= 0 then
ParticleManager:DestroyParticleSystem(caster.effect_index, true)
else
caster:AddNewModifier(caster, nil, "modifier_bosses_alice", {})
end
caster.thtd_damage_lock = nil
end
end

View File

@@ -0,0 +1,21 @@
modifier_bosses_aya = class({})
local public = modifier_bosses_aya
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,59 @@
modifier_bosses_hina = class({})
local public = modifier_bosses_hina
--------------------------------------------------------------------------------
function public:IsDebuff()
return true
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return true
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_hina_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_ENEMY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1500
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_bosses_hina_aura_effect = class({})
local public = modifier_bosses_hina_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():AddExtraStarDamagePercentage(4505000, "modifier_bosses_hina_aura_effect")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddExtraStarDamagePercentage("modifier_bosses_hina_aura_effect")
end
end

View File

@@ -0,0 +1,60 @@
modifier_bosses_kaguya = class({})
local public = modifier_bosses_kaguya
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
if caster.diseble_buff == true then return end
caster:AddNewModifier(caster,nil,"modifier_touhoutd_pause",{})
caster:StartGesture(ACT_DOTA_DIE)
caster.thtd_damage_lock = true
caster:SetContextThink(DoUniqueString("thtd_modifier_kaguya_renew"),
function()
if GameRules:IsGamePaused() then return 0.1 end
if caster == nil or caster:IsNull() or caster:IsAlive() == false or caster.diseble_buff == true then
return nil
end
if caster:GetHealth() >= caster:GetMaxHealth() then
caster.thtd_damage_lock = false
caster:RemoveGesture(ACT_DOTA_DIE)
caster:RemoveModifierByName("modifier_touhoutd_pause")
return nil
end
caster:SetHealth(caster:GetHealth()+caster:GetMaxHealth()*0.04)
return 0.04
end,
0)
end
end

View File

@@ -0,0 +1,68 @@
modifier_bosses_keine = class({})
local public = modifier_bosses_keine
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
local max_health = caster:GetMaxHealth()
caster:SetContextThink(DoUniqueString("thtd_bosses_keine_buff"),
function()
if GameRules:IsGamePaused() then return 0.1 end
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
if caster:GetHealth() < max_health * 0.7 then
local count = 50
caster:SetContextThink(DoUniqueString("thtd_bosses_keine_back_buff"),
function()
if GameRules:IsGamePaused() then return 0.1 end
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
count = count - 1
if count > 0 then return 0.1 end
caster:SetHealth(max_health * 0.7)
local effectIndex = ParticleManager:CreateParticle("particles/bosses/thtd_keine/ability_bosses_keine.vpcf", PATTACH_CUSTOMORIGIN, caster)
ParticleManager:SetParticleControl(effectIndex, 0, caster:GetOrigin())
ParticleManager:SetParticleControl(effectIndex, 1, caster:GetOrigin())
ParticleManager:SetParticleControl(effectIndex, 2, caster:GetOrigin())
ParticleManager:DestroyParticleSystem(effectIndex,false)
return nil
end,
0.1)
return nil
end
return 0.1
end,
0.1)
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
end
end

View File

@@ -0,0 +1,29 @@
modifier_bosses_kisume = class({})
local public = modifier_bosses_kisume
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():AddDamageBlockAll(600, "bosses_kisume_block_damage")
end
end

View File

@@ -0,0 +1,75 @@
modifier_bosses_marisa = class({})
local public = modifier_bosses_marisa
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
local effectIndex = ParticleManager:CreateParticle("particles/heroes/marisa/marisa_01_rocket_a.vpcf", PATTACH_CUSTOMORIGIN, caster)
ParticleManager:SetParticleControlEnt(effectIndex , 0, caster, 5, "follow_origin", Vector(0,0,0), true)
ParticleManager:SetParticleControlForward(effectIndex,0,caster:GetForwardVector())
ParticleManager:SetParticleControl(effectIndex, 15, Vector(0,60,255))
local count = 5
if caster.first_delay == nil then
caster.first_delay = 0.3
else
caster.first_delay = 0
end
caster:SetContextThink(DoUniqueString("thtd_marisa_delay"),
function ()
if GameRules:IsGamePaused() then return 0.03 end
if count <= 0 then
caster:RemoveModifierByName("modifier_bosses_marisa")
ParticleManager:DestroyParticleSystem(effectIndex,true)
if caster~=nil and caster:IsNull()==false and caster:IsAlive() then
FindClearSpaceForUnit(caster, caster:GetOrigin(), false)
end
return nil
end
if caster:IsStunned() == false and caster:IsRooted() == false then
caster:SetAbsOrigin(caster:GetOrigin() + caster:GetForwardVector() * 50)
end
count = count - 1
return 0.06
end,
caster.first_delay)
end
end
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
local count = 27
caster:SetContextThink(DoUniqueString("thtd_marisa_delay"),
function ()
if GameRules:IsGamePaused() then return 0.03 end
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
count = count - 1
if count > 0 then return 0.1 end
caster:AddNewModifier(caster,caster,"modifier_bosses_marisa",nil)
return nil
end,
0.1)
end
end

View File

@@ -0,0 +1,58 @@
modifier_bosses_minoriko = class({})
local public = modifier_bosses_minoriko
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
local count = 100
local max_health = caster:GetMaxHealth()
caster:SetContextThink(DoUniqueString("thtd_bosses_minoriko_buff"),
function()
if GameRules:IsGamePaused() then return 0.03 end
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
count = count - 1
if count == 0 then
caster:SetHealth(math.min(caster:GetHealth() + max_health * 0.3, max_health))
local effectIndex = ParticleManager:CreateParticle("particles/heroes/minoriko/ability_minoriko_04.vpcf", PATTACH_CUSTOMORIGIN, caster)
ParticleManager:SetParticleControl(effectIndex, 0, caster:GetOrigin())
ParticleManager:DestroyParticleSystem(effectIndex,false)
count = 100
end
return 0.1
end,
0.1)
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
end
end

View File

@@ -0,0 +1,59 @@
modifier_bosses_mokou = class({})
local public = modifier_bosses_mokou
--------------------------------------------------------------------------------
function public:IsDebuff()
return true
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return true
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_mokou_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_ENEMY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1500
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_bosses_mokou_aura_effect = class({})
local public = modifier_bosses_mokou_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():THTD_AddCritChance(-85, "modifier_bosses_mokou_aura_effect")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():THTD_AddCritChance("modifier_bosses_mokou_aura_effect")
end
end

View File

@@ -0,0 +1,63 @@
modifier_bosses_random_attack_speed_aura = class({})
local public = modifier_bosses_random_attack_speed_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_random_attack_speed_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_ENEMY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1200
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "random_boss_buff_attack_speed"
end

View File

@@ -0,0 +1,42 @@
modifier_bosses_random_attack_speed_effect = class({})
local public = modifier_bosses_random_attack_speed_effect
local m_modifier_funcs=
{
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
}
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "random_boss_buff_attack_speed"
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierAttackSpeedBonus_Constant()
return -self:GetStackCount()
end
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
local playerid = caster:GetPlayerOwnerID()
if GameRules.player_bb_buff[playerid]["item_3013"] > 0 then
self:SetStackCount(math.floor(GameRules.player_bb_buff[playerid]["item_3013"] * 50))
end
end
end

View File

@@ -0,0 +1,64 @@
modifier_bosses_random_aura_dark = class({})
local public = modifier_bosses_random_aura_dark
--------------------------------------------------------------------------------
function public:IsDebuff()
return true
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return true
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_random_aura_dark_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_ENEMY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1200
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "touhoutd/thtd_suika_02"
end

View File

@@ -0,0 +1,55 @@
modifier_bosses_random_aura_dark_effect = class({})
local public = modifier_bosses_random_aura_dark_effect
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
function public:IsDebuff()
return true
end
function public:IsPurgable()
return true
end
function public:GetEffectName()
return "particles/units/towers/aura_dark.vpcf"
end
function public:GetEffectAttachType()
return PATTACH_ABSORIGIN_FOLLOW
end
function public:GetTexture()
return "touhoutd/thtd_suika_02"
end
function public:OnCreated( kv )
if not IsServer() then
return
end
local target = self:GetParent()
local bonus = -25
target:THTD_AddPowerPercentage(bonus, "thtd_boss_random_dark_aura")
target:THTD_AddAttackPercentage(bonus, "thtd_boss_random_dark_aura")
target:THTD_AddCritDamage(bonus, "thtd_boss_random_dark_aura")
target:THTD_AddCritChance(bonus, "thtd_boss_random_dark_aura")
end
function public:OnDestroy()
if not IsServer() then
return
end
local target = self:GetParent()
target:THTD_AddPowerPercentage("thtd_boss_random_dark_aura")
target:THTD_AddAttackPercentage("thtd_boss_random_dark_aura")
target:THTD_AddCritDamage("thtd_boss_random_dark_aura")
target:THTD_AddCritChance("thtd_boss_random_dark_aura")
end

View File

@@ -0,0 +1,58 @@
modifier_bosses_random_dead_heal = class({})
local public = modifier_bosses_random_dead_heal
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
local point = caster:GetOrigin()
local hero = GameRules.HeroList[caster.thtd_player_index]
local time = 5
local effectIndex = ParticleManager:CreateParticle("particles/heroes/thtd_suwako/ability_suwako_02.vpcf", PATTACH_CUSTOMORIGIN, hero)
ParticleManager:SetParticleControl(effectIndex, 0, point)
ParticleManager:SetParticleControl(effectIndex, 1, Vector(200,1,1))
ParticleManager:DestroyParticleSystemTime(effectIndex,5.0)
hero:SetContextThink(DoUniqueString("random_boss_buff_dead_heal"),
function()
if GameRules:IsGamePaused() then return 0.3 end
if time <= 0 then return nil end
local targets = THTD_FindUnitsInRadius(hero,point,300)
for k,v in pairs(targets) do
if v ~= nil and v:IsNull() == false and v:IsAlive() then
v:SetHealth(math.min(v:GetMaxHealth(), v:GetHealth() + v:GetMaxHealth() * 0.05))
end
end
time = time - 1
return 1
end,
1)
end
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "random_boss_buff_dead_heal"
end

View File

@@ -0,0 +1,63 @@
modifier_bosses_random_health_aura = class({})
local public = modifier_bosses_random_health_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_random_health_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 500
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "random_boss_buff_health"
end

View File

@@ -0,0 +1,55 @@
modifier_bosses_random_health_effect = class({})
local public = modifier_bosses_random_health_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
if caster.random_boss_health_buff ~= true then
caster.random_boss_health_buff = true
local health = math.min(MAX_HEALTH, caster:GetMaxHealth()*1.25)
caster.random_health_factor = health/caster:GetMaxHealth()
caster:SetBaseMaxHealth(health)
caster:SetMaxHealth(health)
caster:SetHealth(caster:GetHealth()*caster.random_health_factor)
end
end
end
function public:OnDestroy(kv)
if IsServer() then
local caster = self:GetParent()
if caster.random_boss_health_buff == true and caster.random_health_factor ~= nil then
local health = caster:GetMaxHealth()/caster.random_health_factor
caster:SetBaseMaxHealth(health)
caster:SetMaxHealth(health)
caster:SetHealth(caster:GetHealth()/caster.random_health_factor)
caster.random_boss_health_buff = false
end
end
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "random_boss_buff_health"
end

View File

@@ -0,0 +1,63 @@
modifier_bosses_random_move_aura = class({})
local public = modifier_bosses_random_move_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_random_move_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 500
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "random_boss_buff_move_speed"
end

View File

@@ -0,0 +1,32 @@
modifier_bosses_random_move_effect = class({})
local public = modifier_bosses_random_move_effect
local m_modifier_funcs=
{
MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE,
}
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierMoveSpeedBonus_Percentage()
return 25
end
function public:GetTexture()
return "random_boss_buff_move_speed"
end

View File

@@ -0,0 +1,63 @@
modifier_bosses_random_resist_aura = class({})
local public = modifier_bosses_random_resist_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_bosses_random_resist_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 500
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "touhoutd/thtd_suika_02"
end

View File

@@ -0,0 +1,32 @@
modifier_bosses_random_resist_effect = class({})
-- 实际对自定义的控制不起作用
local public = modifier_bosses_random_resist_effect
local m_modifier_funcs=
{
MODIFIER_PROPERTY_STATUS_RESISTANCE,
}
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierStatusResistance()
return 25
end
function public:GetTexture()
return "touhoutd/thtd_hatate_01"
end

View File

@@ -0,0 +1,44 @@
modifier_bosses_rumia = class({})
local public = modifier_bosses_rumia
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:OnCreated(kv)
if IsServer() then
local caster = self:GetParent()
local count = 40
caster:SetContextThink(DoUniqueString("thtd_rumia_think"),
function ()
if GameRules:IsGamePaused() then return 0.03 end
if caster==nil or caster:IsNull() or caster:IsAlive()==false then return nil end
count = count - 1
if count > 10 then
caster.thtd_damage_lock = false
elseif count == 10 then
caster.thtd_damage_lock = true
local effectIndex = ParticleManager:CreateParticle("particles/thd2/heroes/rumia/ability_rumia01_effect.vpcf", PATTACH_CUSTOMORIGIN, caster)
ParticleManager:SetParticleControlEnt(effectIndex , 0, caster, 5, "follow_origin", Vector(0,0,0), true)
ParticleManager:DestroyParticleSystemTime(effectIndex,1.0)
elseif count == 0 then
count = 40
end
return 0.1
end,
0.1)
end
end

View File

@@ -0,0 +1,21 @@
modifier_bosses_yuugi = class({})
local public = modifier_bosses_yuugi
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,31 @@
if modifier_courier_fx == nil then
modifier_courier_fx = class({})
end
local public = modifier_courier_fx
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:IsPurgeException()
return false
end
function public:AllowIllusionDuplicate()
return false
end
function public:RemoveOnDeath()
return false
end
function public:OnCreated(params)
if IsServer() then
local iParticleID = ParticleManager:CreateParticle("particles/imagine_assets/courier_fx/courier_fx_2.vpcf", PATTACH_CUSTOMORIGIN, self:GetParent())
ParticleManager:SetParticleControlEnt(iParticleID, 0, self:GetParent(), PATTACH_POINT_FOLLOW, "attach_hitloc", self:GetParent():GetAbsOrigin(), true)
self:AddParticle(iParticleID, false, false, -1, false, false)
end
end

View File

@@ -0,0 +1,31 @@
if modifier_rainbow_tail == nil then
modifier_rainbow_tail = class({})
end
local public = modifier_rainbow_tail
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:IsPurgeException()
return false
end
function public:AllowIllusionDuplicate()
return false
end
function public:RemoveOnDeath()
return false
end
function public:OnCreated(params)
if IsServer() then
local iParticleID = ParticleManager:CreateParticle("particles/particles/imagine_assets/courier_fx/rainbow_tail.vpcf", PATTACH_CUSTOMORIGIN, self:GetParent())
ParticleManager:SetParticleControlEnt(iParticleID, 0, self:GetParent(), PATTACH_POINT_FOLLOW, "attach_hitloc", self:GetParent():GetAbsOrigin(), true)
self:AddParticle(iParticleID, false, false, -1, false, false)
end
end

View File

@@ -0,0 +1,34 @@
-- 攻速增加或降低800以上为降低
modifier_attack_speed = class({})
local public = modifier_attack_speed
local m_modifier_funcs=
{
MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierAttackSpeedBonus_Constant()
if self:GetStackCount() <= 800 then
return self:GetStackCount()
else
return -(self:GetStackCount() - 800)
end
end

View File

@@ -0,0 +1,28 @@
modifier_attack_time = class({})
local public = modifier_attack_time
local m_modifier_funcs=
{
MODIFIER_PROPERTY_BASE_ATTACK_TIME_CONSTANT,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierBaseAttackTimeConstant()
return self:GetStackCount()*0.1
end

View File

@@ -0,0 +1,38 @@
-- 基础攻击力百分比提升或降低每层1%5000层以上取负值
modifier_base_attack_bonus_percent = class({})
local public = modifier_base_attack_bonus_percent
local m_modifier_funcs=
{
MODIFIER_PROPERTY_BASEDAMAGEOUTGOING_PERCENTAGE,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierBaseDamageOutgoing_Percentage()
if self:GetStackCount() <= 5000 then
return self:GetStackCount()
else
return -(self:GetStackCount() - 5000)
end
end

View File

@@ -0,0 +1,34 @@
-- CD降低或延长超过800负面
modifier_cooldown_reduce = class({})
local public = modifier_cooldown_reduce
local m_modifier_funcs=
{
MODIFIER_PROPERTY_COOLDOWN_PERCENTAGE,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierPercentageCooldown()
if self:GetStackCount() <= 800 then
return self:GetStackCount()
else
return -(self:GetStackCount() - 800)
end
end

View File

@@ -0,0 +1,23 @@
modifier_hidden_bar = class({})
local public = modifier_hidden_bar
local m_modifier_states = {
[MODIFIER_STATE_NO_HEALTH_BAR] = true
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,93 @@
modifier_item_2005_attack_aura = class({})
local public = modifier_item_2005_attack_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return false
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:GetTexture()
return "item_2005"
end
--------------------------------------------------------------------------------
-- function public:IsAura()
-- return true
-- end
--------------------------------------------------------------------------------
-- function public:GetModifierAura()
-- return "modifier_item_2005_attack_aura_effect"
-- end
--------------------------------------------------------------------------------
-- function public:GetAuraSearchTeam()
-- return DOTA_UNIT_TARGET_TEAM_FRIENDLY
-- end
--------------------------------------------------------------------------------
-- function public:GetAuraSearchType()
-- return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
-- end
--------------------------------------------------------------------------------
-- function public:GetAuraSearchFlags()
-- return DOTA_UNIT_TARGET_FLAG_NONE
-- end
--------------------------------------------------------------------------------
-- function public:GetAuraRadius()
-- return 1200
-- end
--------------------------------------------------------------------------------
function public:OnCreated( kv )
if IsServer() then
self:OnIntervalThink()
self:StartIntervalThink( 0.2 )
end
end
-----------------------------------------------------------------------
function public:OnIntervalThink()
if not IsServer() then
return
end
local caster = self:GetCaster()
local targets = THTD_FindFriendlyUnitsInRadius(caster,caster:GetAbsOrigin(),1200)
for k,v in pairs(targets) do
local modifier = v:FindModifierByName("modifier_item_2005_attack_aura_effect")
-- 持续时间比think大一点
if modifier == nil then
v:AddNewModifier(caster, nil, "modifier_item_2005_attack_aura_effect", {Duration = 0.3})
else
modifier:SetDuration(0.3, false)
end
end
end

View File

@@ -0,0 +1,41 @@
modifier_item_2005_attack_aura_effect = class({})
local public = modifier_item_2005_attack_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated( kv )
if not IsServer() then
return
end
self:GetParent():THTD_AddAttackPercentage(50, "thtd_item_2005_bonus")
end
--------------------------------------------------------------------------------
function public:OnDestroy()
if not IsServer() then
return
end
self:GetParent():THTD_AddAttackPercentage("thtd_item_2005_bonus")
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,59 @@
modifier_item_2006_mana_regen_aura = class({})
local public = modifier_item_2006_mana_regen_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_item_2006_mana_regen_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1000
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_item_2006_mana_regen_aura_effect = class({})
local public = modifier_item_2006_mana_regen_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():THTD_AddManaRegenPercentage(20, "thtd_item_2006_mana_regen_bonus")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():THTD_AddManaRegenPercentage("thtd_item_2006_mana_regen_bonus")
end
end

View File

@@ -0,0 +1,59 @@
modifier_item_2008_slow_aura = class({})
local public = modifier_item_2008_slow_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_item_2008_slow_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_ENEMY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1000
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_item_2008_slow_aura_effect = class({})
local public = modifier_item_2008_slow_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:DeclareFunctions()
return {
MODIFIER_PROPERTY_MOVESPEED_BONUS_PERCENTAGE
}
end
--------------------------------------------------------------------------------
function public:GetModifierMoveSpeedBonus_Percentage()
return -10
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,15 @@
modifier_item_2009_damage = class({})
local public = modifier_item_2009_damage
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,15 @@
modifier_item_2010_damage = class({})
local public = modifier_item_2010_damage
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,48 @@
modifier_item_2011_attack_stun = class({})
local public = modifier_item_2011_attack_stun
local m_modifier_funcs = {
MODIFIER_EVENT_ON_ATTACK_LANDED,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:OnAttackLanded(kv)
if IsServer() then
if kv.attacker ~= self:GetParent() or self:GetParent():IsIllusion() then
return
end
local caster = self:GetCaster()
local target = kv.target
local targets = THTD_FindUnitsInRadius(caster,target:GetOrigin(),400)
local damage = caster:THTD_GetAttack()
for k,v in pairs(targets) do
local DamageTable_aoe = {
ability = nil,
victim = v,
attacker = caster,
damage = damage,
damage_type = DAMAGE_TYPE_PHYSICAL,
damage_flags = DOTA_DAMAGE_FLAG_NONE
}
UnitDamageTarget(DamageTable_aoe)
end
end
end

View File

@@ -0,0 +1,59 @@
modifier_item_2012_magical_damage_aura = class({})
local public = modifier_item_2012_magical_damage_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_item_2012_magical_damage_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1000
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_item_2012_magical_damage_aura_effect = class({})
local public = modifier_item_2012_magical_damage_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingMagical(20, "thtd_item_2012_damage_up")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingMagical("thtd_item_2012_damage_up")
end
end

View File

@@ -0,0 +1,59 @@
modifier_item_2013_physical_damage_aura = class({})
local public = modifier_item_2013_physical_damage_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_item_2013_physical_damage_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1000
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_item_2013_physical_damage_aura_effect = class({})
local public = modifier_item_2013_physical_damage_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingPhysical(20, "thtd_item_2013_damage_up")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingPhysical("thtd_item_2013_damage_up")
end
end

View File

@@ -0,0 +1,59 @@
modifier_item_2014_damage_aura = class({})
local public = modifier_item_2014_damage_aura
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:IsAura()
return true
end
--------------------------------------------------------------------------------
function public:GetModifierAura()
return "modifier_item_2014_damage_aura_effect"
end
--------------------------------------------------------------------------------
function public:GetAuraSearchTeam()
return DOTA_UNIT_TARGET_TEAM_FRIENDLY
end
--------------------------------------------------------------------------------
function public:GetAuraSearchType()
return DOTA_UNIT_TARGET_HERO + DOTA_UNIT_TARGET_BASIC
end
--------------------------------------------------------------------------------
function public:GetAuraSearchFlags()
return DOTA_UNIT_TARGET_FLAG_NONE
end
--------------------------------------------------------------------------------
function public:GetAuraRadius()
return 1000
end
--------------------------------------------------------------------------------

View File

@@ -0,0 +1,37 @@
modifier_item_2014_damage_aura_effect = class({})
local public = modifier_item_2014_damage_aura_effect
--------------------------------------------------------------------------------
function public:IsDebuff()
return false
end
--------------------------------------------------------------------------------
function public:IsHidden()
return true
end
--------------------------------------------------------------------------------
function public:IsPurgable()
return false
end
--------------------------------------------------------------------------------
function public:OnCreated(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingAll(15, "thtd_item_2014_bonus")
end
end
--------------------------------------------------------------------------------
function public:OnDestroy(kv)
if IsServer() then
self:GetParent():AddDamageOutgoingAll("thtd_item_2014_bonus")
end
end

View File

@@ -0,0 +1,28 @@
modifier_item_2018_bonus_attack_range = class({})
local public = modifier_item_2018_bonus_attack_range
local m_modifier_funcs=
{
MODIFIER_PROPERTY_ATTACK_RANGE_BONUS,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierAttackRangeBonus()
return 300
end

View File

@@ -0,0 +1,28 @@
modifier_magical_armor = class({})
local public = modifier_magical_armor
local m_modifier_funcs=
{
MODIFIER_PROPERTY_MAGICAL_RESISTANCE_BONUS,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierMagicalResistanceBonus()
return self:GetStackCount()/2*5
end

View File

@@ -0,0 +1,30 @@
-- 魔法消耗降低百分比每层1%最高99%
modifier_manacost_reduce_percent = class({})
local public = modifier_manacost_reduce_percent
local m_modifier_funcs=
{
MODIFIER_PROPERTY_MANACOST_PERCENTAGE,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierPercentageManacost()
return math.min(99, self:GetStackCount())
end

View File

@@ -0,0 +1,34 @@
modifier_move_max_speed = class({})
local public = modifier_move_max_speed
local m_modifier_funcs=
{
-- MODIFIER_PROPERTY_MOVESPEED_MAX, -- 7.20失效
MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE_MAX,
MODIFIER_PROPERTY_MOVESPEED_ABSOLUTE,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierMoveSpeed_AbsoluteMax()
return 2000
end
function public:GetModifierMoveSpeed_Absolute()
return 2000
end

View File

@@ -0,0 +1,34 @@
-- 速度增加或降低固定值每层加1超过800层则降低1
modifier_move_speed = class({})
local public = modifier_move_speed
local m_modifier_funcs=
{
MODIFIER_PROPERTY_MOVESPEED_BONUS_CONSTANT,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierMoveSpeedBonus_Constant()
if self:GetStackCount() <= 800 then
return self:GetStackCount()
else --减速
return -(self:GetStackCount() - 800)
end
end

View File

@@ -0,0 +1,27 @@
modifier_root_hidden_info = class({})
local public = modifier_root_hidden_info
local m_modifier_states = {
[MODIFIER_STATE_NOT_ON_MINIMAP] = true,
[MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES] = true,
[MODIFIER_STATE_NO_HEALTH_BAR] = true,
[MODIFIER_STATE_NO_UNIT_COLLISION] = true,
[MODIFIER_STATE_ROOTED] = true,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,24 @@
modifier_touhoutd_building = class({})
local public = modifier_touhoutd_building
local m_modifier_states = {
[MODIFIER_STATE_STUNNED] = true,
[MODIFIER_STATE_FROZEN] = true,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,16 @@
modifier_touhoutd_crit_chance = class({})
local public = modifier_touhoutd_crit_chance
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,15 @@
modifier_touhoutd_crit_damage = class({})
local public = modifier_touhoutd_crit_damage
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_incoming_magical = class({})
local public = modifier_touhoutd_damage_incoming_magical
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_yoshika_02"
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_incoming_physical = class({})
local public = modifier_touhoutd_damage_incoming_physical
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_satori_02"
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_incoming_pure = class({})
local public = modifier_touhoutd_damage_incoming_pure
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_sunny_02"
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_outgoing_magical = class({})
local public = modifier_touhoutd_damage_outgoing_magical
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_yuyuko_03"
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_outgoing_physical = class({})
local public = modifier_touhoutd_damage_outgoing_physical
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_flandre_02" -- thtd_kokoro_03
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_damage_outgoing_pure = class({})
local public = modifier_touhoutd_damage_outgoing_pure
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_reimu_04"
end

View File

@@ -0,0 +1,49 @@
modifier_touhoutd_luck = class({})
local public = modifier_touhoutd_luck
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "luck"
end
--------------------------------------------------------------------------------
function public:OnCreated( kv )
if not IsServer() then
return
end
local target = self:GetParent()
target:SetModelScale(target:GetModelScale() * 1.25)
local bonus = GameRules.GameData.luck_crit
self:SetStackCount(bonus)
target:THTD_AddCritDamage(bonus, "thtd_luck_day_bonus")
target:THTD_AddCritChance(math.floor(bonus/10), "thtd_luck_day_bonus")
end
--------------------------------------------------------------------------------
function public:OnDestroy()
if not IsServer() then
return
end
local target = self:GetParent()
target:SetModelScale(target:GetModelScale() / 1.25)
target:THTD_AddCritDamage("thtd_luck_day_bonus")
target:THTD_AddCritChance("thtd_luck_day_bonus")
end

View File

@@ -0,0 +1,23 @@
modifier_touhoutd_pause = class({})
local public = modifier_touhoutd_pause
local m_modifier_states = {
[MODIFIER_STATE_STUNNED] = true,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,19 @@
modifier_touhoutd_poison = class({})
local public = modifier_touhoutd_poison
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_medicine_01"
end

View File

@@ -0,0 +1,28 @@
modifier_touhoutd_release_hidden = class({})
local public = modifier_touhoutd_release_hidden
local m_modifier_states = {
[MODIFIER_STATE_STUNNED] = true,
[MODIFIER_STATE_NOT_ON_MINIMAP] = true,
[MODIFIER_STATE_NO_UNIT_COLLISION] = true,
[MODIFIER_STATE_NOT_ON_MINIMAP_FOR_ENEMIES] = true,
[MODIFIER_STATE_INVULNERABLE] = true,
[MODIFIER_STATE_OUT_OF_GAME] = true,
}
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,26 @@
modifier_touhoutd_root = class({})
local public = modifier_touhoutd_root
local m_modifier_states = {
[MODIFIER_STATE_ROOTED] = true,
}
-- 这个不受玩家控制
-- MODIFIER_STATE_COMMAND_RESTRICTED
function public:IsHidden()
return true
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:CheckState()
return m_modifier_states
end

View File

@@ -0,0 +1,21 @@
modifier_touhoutd_unlimited_resist = class({})
local public = modifier_touhoutd_unlimited_resist
function public:IsHidden()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:GetTexture()
return "touhoutd/thtd_eirin_03"
end
-- 待增加创建时的特效

View File

@@ -0,0 +1,147 @@
modifier_ability_power_byakuren = class({})
local public = modifier_ability_power_byakuren
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_byakuren_01"] = {
[1] = {
["damage_up"] = 20,
},
[2] = {
["damage_up"] = 40,
},
[3] = {
["damage_up"] = 60,
},
[4] = {
["damage_up"] = 160,
},
[5] = {
["damage_up"] = 160,
["power_damage"] = 5,
},
},
["thtd_byakuren_02"] = {
[1] = {
["damage_up"] = 20,
},
[2] = {
["damage_up"] = 40,
},
[3] = {
["damage_up"] = 60,
},
[4] = {
["damage_up"] = 160,
},
[5] = {
["damage_up"] = 160,
["power_damage"] = 5,
},
},
["thtd_byakuren_04"] = {
[1] = {
["power_bonus"] = 20,
},
[2] = {
["power_bonus"] = 40,
},
[3] = {
["power_bonus"] = 60,
},
[4] = {
["power_bonus"] = 160,
},
[5] = {
["power_bonus"] = 160,
["power_damage"] = 5,
},
},
}
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
-- function public:OnCreated( kv )
-- if not IsServer() then return end
-- self:OnRefresh( kv )
-- end
-- function public:OnRefresh( kv )
-- if not IsServer() then return end
-- end
-- function public:OnDestroy(kv)
-- if not IsServer() then return end
-- end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if valueName == "power_damage" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
end
end

View File

@@ -0,0 +1,128 @@
-- 此通用方法会加重资源消耗,改为单个
modifier_ability_power_common = class({})
local public = modifier_ability_power_common
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
-- 有个显示bug_Description描述中引用了值名称的不会变单独的会变
}
-- function public:IsHidden()
-- return true
-- end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:OnCreated( kv )
-- self.bDirty = true --本地时在其它函数不起作用
if IsServer() then
-- local playerId = self:GetParent():GetPlayerOwnerID()
-- CustomNetTables:SetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(playerId), GameRules.player_power_enabled[playerId])
-- print("---- is Server")
-- DeepPrintTable(GameRules.player_power_enabled[playerId])
-- else --这里可以生效,但在其它函数里失效
-- self:GetParent().PowerAbilityUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
-- print("---- not Server")
-- DeepPrintTable(self:GetParent().PowerAbilityUpgrades)
end
end
-- function public:OnCreated( kv )
-- if not IsServer() then return end
-- self:OnRefresh( kv )
-- end
-- function public:OnRefresh( kv )
-- -- 设置层数仅本地会触发无层数设置为1层时不触发
-- -- 使用 modifier:ForceRefresh() 会双端触发
-- if not IsServer() then return end
-- end
function public:GetModifierOverrideAbilitySpecial( params )
-- 这两个必须在双端跑
if self:GetParent() == nil or params.ability == nil then
return 0
end
-- 本地取值失效并且从NetTable取值后每次生成新的一张table下同
-- local hUpgrades = self:GetParent().PowerAbilityUpgrades
-- if hUpgrades == nil then
-- hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
-- print("---- hUpgrades == nil CustomNetTables:GetTableValue")
-- print(hUpgrades)
-- end
local hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
local szUnitName = self:GetParent():GetUnitName()
local szAbilityName = params.ability:GetAbilityName()
local szSpecialValueName = params.ability_special_value
if hUpgrades == nil or hUpgrades[szUnitName] == nil or hUpgrades[szUnitName][szAbilityName] == nil then
return 0
end
if hUpgrades[szUnitName][szAbilityName][szSpecialValueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
-- 这两个必须在双端跑
local hUpgrades = CustomNetTables:GetTableValue("CustomGameInfo", "PowerAbilityValue"..tostring(self:GetParent():GetPlayerOwnerID()))
local szUnitName = self:GetParent():GetUnitName()
local szAbilityName = params.ability:GetAbilityName()
local szSpecialValueName = params.ability_special_value
local nSpecialLevel = params.ability_special_level
if hUpgrades == nil or hUpgrades[szUnitName] == nil or hUpgrades[szUnitName][szAbilityName] == nil then
return 0
end
local flBaseValue = params.ability:GetLevelSpecialValueNoOverride(szSpecialValueName, nSpecialLevel)
local SpecialValueUpgrade = hUpgrades[szUnitName][szAbilityName][szSpecialValueName]
if SpecialValueUpgrade ~= nil then
return flBaseValue + SpecialValueUpgrade
-- 本地不起作用
-- if self.bDirty == false and SpecialValueUpgrade["cached_result"] ~= nil and SpecialValueUpgrade["cached_result"][nSpecialLevel] ~= nil then
-- print("---- return cached_result")
-- return SpecialValueUpgrade["cached_result"][nSpecialLevel]
-- end
-- local flResult = flBaseValue + SpecialValueUpgrade["value"]
-- if SpecialValueUpgrade["cached_result"] == nil then
-- SpecialValueUpgrade["cached_result"] = {}
-- end
-- SpecialValueUpgrade["cached_result"][nSpecialLevel] = flResult
-- self.bDirty = false
-- return flResult
end
return flBaseValue
end

View File

@@ -0,0 +1,131 @@
modifier_ability_power_daiyousei = class({})
local public = modifier_ability_power_daiyousei
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_daiyousei_02"] = {
[1] = {
["mana_reg"] = 1,
},
[2] = {
["mana_reg"] = 2,
},
[3] = {
["mana_reg"] = 3,
},
},
["thtd_daiyousei_03"] = {
[1] = {
["damage_up"] = 10,
["crino_up"] = 10,
},
[2] = {
["damage_up"] = 20,
["crino_up"] = 20,
},
[3] = {
["damage_up"] = 30,
["crino_up"] = 30,
},
},
}
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
-- function public:OnCreated( kv )
-- self:ForceRefresh()
-- end
-- function public:OnRefresh( kv )
-- if not IsServer() then return end
-- end
function public:OnDestroy(kv)
if not IsServer() then return end
self:OnStackCountChanged(0)
end
function public:OnStackCountChanged( iStackCount )
-- 双端触发iStackCount为改变前的层数
if not IsServer() then return end
local caster = self:GetParent()
if caster ~= nil and caster:IsNull() == false then
if caster.ability_daiyousei_03_target1 ~= nil and caster.ability_daiyousei_03_target1:HasModifier("modifier_daiyousei_03") then
caster.ability_daiyousei_03_target1:RemoveModifierByName("modifier_daiyousei_03")
caster:FindAbilityByName("thtd_daiyousei_03"):ApplyDataDrivenModifier(caster, caster.ability_daiyousei_03_target1, "modifier_daiyousei_03", nil)
end
if caster.ability_daiyousei_03_target2 ~= nil and caster.ability_daiyousei_03_target2:HasModifier("modifier_daiyousei_03") then
caster.ability_daiyousei_03_target2:RemoveModifierByName("modifier_daiyousei_03")
caster:FindAbilityByName("thtd_daiyousei_03"):ApplyDataDrivenModifier(caster, caster.ability_daiyousei_03_target2, "modifier_daiyousei_03", nil)
end
end
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
end

View File

@@ -0,0 +1,184 @@
modifier_ability_power_eirin = class({})
local public = modifier_ability_power_eirin
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_eirin_01"] = {
[1] = {
["power_damage"] = 2,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[2] = {
["power_damage"] = 4,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[3] = {
["power_damage"] = 6,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[4] = {
["power_damage"] = 5,
["power_bonus"] = 5,
["crit_bonus"] = 5,
["crit_chance"] = 5,
},
[5] = {
["power_damage"] = 5,
["power_bonus"] = 5,
["crit_bonus"] = 5,
["crit_chance"] = 5,
},
},
["thtd_eirin_02"] = {
[1] = {
["power_damage"] = 2,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[2] = {
["power_damage"] = 4,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[3] = {
["power_damage"] = 6,
["power_bonus"] = 1,
["crit_bonus"] = 1,
["crit_chance"] = 1,
},
[4] = {
["power_damage"] = 5,
["power_bonus"] = 5,
["crit_bonus"] = 5,
["crit_chance"] = 5,
},
[5] = {
["power_damage"] = 5,
["power_bonus"] = 5,
["crit_bonus"] = 5,
["crit_chance"] = 5,
},
},
["thtd_eirin_04"] = {
[1] = {
["power_damage"] = 5,
},
[2] = {
["power_damage"] = 10,
},
[3] = {
["power_damage"] = 15,
},
},
}
local power999_bonus = 1200
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
-- function public:OnCreated( kv )
-- if not IsServer() then return end
-- self:OnRefresh( kv )
-- end
-- function public:OnRefresh( kv )
-- if not IsServer() then return end
-- end
function public:OnDestroy(kv)
if not IsServer() then return end
local caster = self:GetParent()
caster:THTD_AddBasePower("thtd_eirin_power_999")
caster:THTD_AddBaseAttack("thtd_eirin_power_999")
end
function public:OnStackCountChanged( iStackCount )
-- 双端触发iStackCount为改变前的层数
if not IsServer() then return end
local caster = self:GetParent()
if self:GetStackCount() == 5 then
caster:THTD_AddBasePower(power999_bonus, "thtd_eirin_power_999")
caster:THTD_AddBaseAttack(power999_bonus, "thtd_eirin_power_999")
end
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if valueName == "power_damage" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
end
end

View File

@@ -0,0 +1,123 @@
modifier_ability_power_flandre = class({})
local public = modifier_ability_power_flandre
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT,
}
local power_bonus = {
["thtd_flandre_03"] = {
[1] = {
["damage_up"] = 1,
},
[2] = {
["damage_up"] = 2,
},
[3] = {
["damage_up"] = 3,
},
},
["thtd_flandre_04"] = {
[1] = {
["cd"] = 1,
},
[2] = {
["cd"] = 2,
},
[3] = {
["cd"] = 3,
},
[4] = {
["cd"] = 3,
["power_damage"] = 4,
},
[5] = {
["cd"] = 3,
["power_damage"] = 4,
},
},
}
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if abilityName == "thtd_flandre_03" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
end
end
function public:GetModifierCooldownReduction_Constant( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
if params.ability:GetAbilityName() == "thtd_flandre_04" then
return power_bonus["thtd_flandre_04"][self:GetStackCount()]["cd"] or 0
else
return 0
end
end

View File

@@ -0,0 +1,124 @@
modifier_ability_power_hecatia = class({})
local public = modifier_ability_power_hecatia
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_hecatia_01"] = {
[4] = {
["power_up"] = 3,
},
[5] = {
["power_up"] = 3,
},
},
["thtd_hecatia_02"] = {
[4] = {
["chance"] = 3,
["crit"] = 3,
},
[5] = {
["chance"] = 3,
["crit"] = 3,
},
},
["thtd_hecatia_03"] = {
[4] = {
["damage_up"] = 3,
},
[5] = {
["damage_up"] = 3,
},
},
["thtd_hecatia_04"] = {
[1] = {
["power_damage"] = 5,
},
[2] = {
["power_damage"] = 10,
},
[3] = {
["power_damage"] = 15,
},
[4] = {
["power_damage"] = 15,
},
[5] = {
["power_damage"] = 15,
["power_bonus"] = 900,
},
},
}
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if abilityName == "thtd_hecatia_04" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
end
end

View File

@@ -0,0 +1,135 @@
modifier_ability_power_junko = class({})
local public = modifier_ability_power_junko
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_junko_02"] = {
[1] = {
["power_damage"] = 5,
},
[2] = {
["power_damage"] = 10,
},
[3] = {
["power_damage"] = 15,
},
},
["thtd_junko_04"] = {
[1] = {
["power_damage1"] = 10,
["power_damage2"] = 2,
},
[2] = {
["power_damage1"] = 20,
["power_damage2"] = 4,
},
[3] = {
["power_damage1"] = 30,
["power_damage2"] = 6,
},
},
}
local power666_bonus = 4
local power999_bonus = 400
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
-- function public:OnCreated( kv )
-- if not IsServer() then return end
-- self:OnRefresh( kv )
-- end
-- function public:OnRefresh( kv )
-- if not IsServer() then return end
-- end
function public:OnDestroy(kv)
if not IsServer() then return end
local caster = self:GetParent()
caster:THTD_AddPowerPercentage("thtd_junko_power_999")
caster:THTD_AddAttackPercentage("thtd_junko_power_999")
end
function public:OnStackCountChanged( iStackCount )
-- 双端触发iStackCount为改变前的层数
if not IsServer() then return end
local caster = self:GetParent()
if self:GetStackCount() == 5 then
caster:THTD_AddPowerPercentage(power999_bonus, "thtd_junko_power_999")
caster:THTD_AddAttackPercentage(power999_bonus, "thtd_junko_power_999")
end
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if self:GetStackCount() >= 4 then
return (params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]) * power666_bonus
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
end
end

View File

@@ -0,0 +1,148 @@
modifier_ability_power_kanako = class({})
local public = modifier_ability_power_kanako
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_kanako_02"] = {
[1] = {
["power_damage"] = 2,
},
[2] = {
["power_damage"] = 4,
},
[3] = {
["power_damage"] = 8,
},
},
["thtd_kanako_04"] = {
[1] = {
["power_damage1"] = 50,
["power_damage2"] = 50,
["damage_up"] = 0,
},
[2] = {
["power_damage1"] = 100,
["power_damage2"] = 100,
["damage_up"] = 0,
},
[3] = {
["power_damage1"] = 200,
["power_damage2"] = 200,
["damage_up"] = 0,
},
[4] = {
["power_damage1"] = 200,
["power_damage2"] = 200,
["damage_up"] = 0.6,
},
[5] = {
["power_damage1"] = 200,
["power_damage2"] = 200,
["damage_up"] = 0.6,
},
},
}
local power999_bonus = 600
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
-- function public:OnCreated( kv )
-- self:ForceRefresh()
-- end
-- function public:OnRefresh( kv )
-- if not IsServer() then return end
-- end
function public:OnDestroy(kv)
if not IsServer() then return end
local caster = self:GetParent()
caster:THTD_AddCritDamage("thtd_kanako_04_crit_999")
end
function public:OnStackCountChanged( iStackCount )
-- 双端触发iStackCount为改变前的层数
if not IsServer() then return end
local caster = self:GetParent()
if self:GetStackCount() == 5 then
caster:THTD_AddCritDamage(power999_bonus, "thtd_kanako_04_crit_999")
end
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if abilityName == "thtd_kanako_02" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
elseif abilityName == "thtd_kanako_04" then
if valueName == "power_damage1" or valueName == "power_damage2" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * (1 + power_bonus[abilityName][level][valueName] / 100)
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
end
end
end

View File

@@ -0,0 +1,111 @@
modifier_ability_power_koishi = class({})
local public = modifier_ability_power_koishi
local m_modifier_funcs=
{
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
}
local power_bonus = {
["thtd_koishi_03"] = {
[1] = {
["self_crit"] = 1,
},
[2] = {
["self_crit"] = 2,
},
[3] = {
["self_crit"] = 3,
},
},
["thtd_koishi_04"] = {
[1] = {
["duration_time"] = 2,
},
[2] = {
["duration_time"] = 4,
},
[3] = {
["duration_time"] = 8,
},
[4] = {
["power_base"] = 1000,
["duration_time"] = 9,
},
[5] = {
["power_base"] = 1000,
["power_up"] = 300,
["duration_time"] = 9,
},
},
}
function public:IsHidden()
return true
end
function public:IsPermanent()
return true
end
function public:RemoveOnDeath()
return false
end
function public:IsDebuff()
return false
end
function public:IsPurgable()
return false
end
function public:DeclareFunctions()
return m_modifier_funcs
end
function public:GetModifierOverrideAbilitySpecial( params )
if self:GetParent() == nil or params.ability == nil then
return 0
end
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
if power_bonus[abilityName] == nil then
return 0
end
if power_bonus[abilityName][level] == nil then
level = 3
end
if power_bonus[abilityName][level] == nil then
return 0
end
if power_bonus[abilityName][level][valueName] == nil then
return 0
end
return 1
end
function public:GetModifierOverrideAbilitySpecialValue( params )
local abilityName = params.ability:GetAbilityName()
local level = self:GetStackCount()
local valueName = params.ability_special_value
local specialLevel = params.ability_special_level
if power_bonus[abilityName][level] == nil then
level = 3
end
if abilityName == "thtd_koishi_01" then
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
else
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
end
end

Some files were not shown because too many files have changed in this diff Show More