initial commit
This commit is contained in:
147
scripts/vscripts/modifiers/power/modifier_ability_power_byakuren.lua
Executable file
147
scripts/vscripts/modifiers/power/modifier_ability_power_byakuren.lua
Executable 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
|
||||
128
scripts/vscripts/modifiers/power/modifier_ability_power_common.lua
Executable file
128
scripts/vscripts/modifiers/power/modifier_ability_power_common.lua
Executable 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
|
||||
131
scripts/vscripts/modifiers/power/modifier_ability_power_daiyousei.lua
Executable file
131
scripts/vscripts/modifiers/power/modifier_ability_power_daiyousei.lua
Executable 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
|
||||
184
scripts/vscripts/modifiers/power/modifier_ability_power_eirin.lua
Executable file
184
scripts/vscripts/modifiers/power/modifier_ability_power_eirin.lua
Executable 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
|
||||
123
scripts/vscripts/modifiers/power/modifier_ability_power_flandre.lua
Executable file
123
scripts/vscripts/modifiers/power/modifier_ability_power_flandre.lua
Executable 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
|
||||
124
scripts/vscripts/modifiers/power/modifier_ability_power_hecatia.lua
Executable file
124
scripts/vscripts/modifiers/power/modifier_ability_power_hecatia.lua
Executable 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
|
||||
135
scripts/vscripts/modifiers/power/modifier_ability_power_junko.lua
Executable file
135
scripts/vscripts/modifiers/power/modifier_ability_power_junko.lua
Executable 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
|
||||
148
scripts/vscripts/modifiers/power/modifier_ability_power_kanako.lua
Executable file
148
scripts/vscripts/modifiers/power/modifier_ability_power_kanako.lua
Executable 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
|
||||
111
scripts/vscripts/modifiers/power/modifier_ability_power_koishi.lua
Executable file
111
scripts/vscripts/modifiers/power/modifier_ability_power_koishi.lua
Executable 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
|
||||
155
scripts/vscripts/modifiers/power/modifier_ability_power_komachi.lua
Executable file
155
scripts/vscripts/modifiers/power/modifier_ability_power_komachi.lua
Executable file
@@ -0,0 +1,155 @@
|
||||
modifier_ability_power_komachi = class({})
|
||||
|
||||
local public = modifier_ability_power_komachi
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_komachi_01"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 6,
|
||||
},
|
||||
},
|
||||
["thtd_komachi_04"] = {
|
||||
[1] = {
|
||||
["hp_kill"] = 1,
|
||||
["attack_speed"] = 1,
|
||||
["damage_up"] = 1,
|
||||
["duration_time"] = 2,
|
||||
["bonus_power"] = 0,
|
||||
},
|
||||
[2] = {
|
||||
["hp_kill"] = 1,
|
||||
["attack_speed"] = 1,
|
||||
["damage_up"] = 1,
|
||||
["duration_time"] = 4,
|
||||
["bonus_power"] = 0,
|
||||
},
|
||||
[3] = {
|
||||
["hp_kill"] = 1,
|
||||
["attack_speed"] = 1,
|
||||
["damage_up"] = 1,
|
||||
["duration_time"] = 6,
|
||||
["bonus_power"] = 0,
|
||||
},
|
||||
[4] = {
|
||||
["hp_kill"] = 2,
|
||||
["attack_speed"] = 2,
|
||||
["damage_up"] = 2,
|
||||
["duration_time"] = 6,
|
||||
["bonus_power"] = 0,
|
||||
},
|
||||
[5] = {
|
||||
["hp_kill"] = 2,
|
||||
["attack_speed"] = 2,
|
||||
["damage_up"] = 2,
|
||||
["duration_time"] = 6,
|
||||
["bonus_power"] = 4,
|
||||
},
|
||||
},
|
||||
}
|
||||
local power999_bonus = 40
|
||||
|
||||
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_AddCritChance("thtd_komachi_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_AddCritChance(power999_bonus, "thtd_komachi_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" or valueName == "bonus_power" or valueName == "duration_time" 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
|
||||
122
scripts/vscripts/modifiers/power/modifier_ability_power_lily.lua
Executable file
122
scripts/vscripts/modifiers/power/modifier_ability_power_lily.lua
Executable file
@@ -0,0 +1,122 @@
|
||||
modifier_ability_power_lily = class({})
|
||||
|
||||
local public = modifier_ability_power_lily
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_lily_02"] = {
|
||||
[1] = {
|
||||
["radius"] = 150,
|
||||
},
|
||||
[2] = {
|
||||
["radius"] = 300,
|
||||
},
|
||||
[3] = {
|
||||
["radius"] = 450,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local thtd_lily_01_mana_cost = {
|
||||
[1] = 10,
|
||||
[2] = 20,
|
||||
[3] = 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 )
|
||||
-- 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:OnStackCountChanged( iStackCount )
|
||||
-- 双端触发,iStackCount为改变前的层数
|
||||
if not IsServer() then return end
|
||||
|
||||
local level = math.max(1, math.min(3, self:GetStackCount()))
|
||||
local caster = self:GetParent()
|
||||
caster:AddManaCostReducePercent(thtd_lily_01_mana_cost[level], "thtd_lily_01_power_level_buff")
|
||||
caster.lily_max_mana = 100 - caster:GetManaCostReducePercent()
|
||||
end
|
||||
|
||||
function public:OnDestroy(kv)
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
caster:AddManaCostReducePercent("thtd_lily_01_power_level_buff")
|
||||
caster.lily_max_mana = 100 - caster:GetManaCostReducePercent()
|
||||
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
|
||||
132
scripts/vscripts/modifiers/power/modifier_ability_power_miko.lua
Executable file
132
scripts/vscripts/modifiers/power/modifier_ability_power_miko.lua
Executable file
@@ -0,0 +1,132 @@
|
||||
modifier_ability_power_miko = class({})
|
||||
|
||||
local public = modifier_ability_power_miko
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_miko_03"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 6,
|
||||
},
|
||||
[4] = {
|
||||
["power_damage"] = 18,
|
||||
},
|
||||
[5] = {
|
||||
["power_damage"] = 18,
|
||||
},
|
||||
},
|
||||
["thtd_miko_04"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 20,
|
||||
},
|
||||
[4] = {
|
||||
["power_damage"] = 20,
|
||||
},
|
||||
[5] = {
|
||||
["power_damage"] = 190,
|
||||
},
|
||||
},
|
||||
}
|
||||
local power666_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:OnDestroy(kv)
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
caster:THTD_AddCritDamage("thtd_miko_power_666")
|
||||
end
|
||||
|
||||
function public:OnStackCountChanged( iStackCount )
|
||||
-- 双端触发,iStackCount为改变前的层数
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
if self:GetStackCount() >= 4 then
|
||||
caster:THTD_AddCritDamage(power666_bonus, "thtd_miko_power_666")
|
||||
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_miko_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
|
||||
117
scripts/vscripts/modifiers/power/modifier_ability_power_minoriko.lua
Executable file
117
scripts/vscripts/modifiers/power/modifier_ability_power_minoriko.lua
Executable file
@@ -0,0 +1,117 @@
|
||||
modifier_ability_power_minoriko = class({})
|
||||
|
||||
local public = modifier_ability_power_minoriko
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_minoriko_01"] = {
|
||||
[1] = {
|
||||
["grow_time"] = 10,
|
||||
},
|
||||
[2] = {
|
||||
["grow_time"] = 20,
|
||||
},
|
||||
[3] = {
|
||||
["grow_time"] = 30,
|
||||
},
|
||||
},
|
||||
["thtd_minoriko_02"] = {
|
||||
[1] = {
|
||||
["max_count"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["max_count"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["max_count"] = 3,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
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 abilityName == "thtd_minoriko_01" then
|
||||
return math.floor(params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * (1 - power_bonus[abilityName][level][valueName]/100))
|
||||
elseif abilityName == "thtd_minoriko_02" then
|
||||
-- local bonus = math.max(0, math.floor((self:GetParent():GetPhysicalArmorBaseValue() - 100)/50))
|
||||
-- return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName] + bonus
|
||||
return math.floor(params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
|
||||
end
|
||||
end
|
||||
100
scripts/vscripts/modifiers/power/modifier_ability_power_nazrin.lua
Executable file
100
scripts/vscripts/modifiers/power/modifier_ability_power_nazrin.lua
Executable file
@@ -0,0 +1,100 @@
|
||||
modifier_ability_power_nazrin = class({})
|
||||
|
||||
local public = modifier_ability_power_nazrin
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_nazrin_01"] = {
|
||||
[1] = {
|
||||
["bonus_chance"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["bonus_chance"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["bonus_chance"] = 15,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
|
||||
end
|
||||
126
scripts/vscripts/modifiers/power/modifier_ability_power_reimu.lua
Executable file
126
scripts/vscripts/modifiers/power/modifier_ability_power_reimu.lua
Executable file
@@ -0,0 +1,126 @@
|
||||
modifier_ability_power_reimu = class({})
|
||||
|
||||
local public = modifier_ability_power_reimu
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_reimu_03"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 15,
|
||||
},
|
||||
},
|
||||
["thtd_reimu_04"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 15,
|
||||
},
|
||||
[4] = {
|
||||
["power_damage"] = 15,
|
||||
},
|
||||
[5] = {
|
||||
["power_damage"] = 15,
|
||||
["power_up"] = 7,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
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 abilityName == "thtd_reimu_03" then
|
||||
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
|
||||
else
|
||||
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
|
||||
end
|
||||
161
scripts/vscripts/modifiers/power/modifier_ability_power_remilia.lua
Executable file
161
scripts/vscripts/modifiers/power/modifier_ability_power_remilia.lua
Executable file
@@ -0,0 +1,161 @@
|
||||
modifier_ability_power_remilia = class({})
|
||||
|
||||
local public = modifier_ability_power_remilia
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_remilia_01"] = {
|
||||
[1] = {
|
||||
["power_bonus"] = 1,
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["power_bonus"] = 1,
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["power_bonus"] = 1,
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[4] = {
|
||||
["power_bonus"] = 6,
|
||||
["duration_time"] = 6,
|
||||
},
|
||||
[5] = {
|
||||
["power_bonus"] = 6,
|
||||
["duration_time"] = 6,
|
||||
},
|
||||
},
|
||||
["thtd_remilia_03"] = {
|
||||
[1] = {
|
||||
["cd"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["cd"] = 3,
|
||||
},
|
||||
[3] = {
|
||||
["cd"] = 5,
|
||||
},
|
||||
[4] = {
|
||||
["cd"] = 5,
|
||||
},
|
||||
[5] = {
|
||||
["cd"] = 5,
|
||||
},
|
||||
},
|
||||
["thtd_remilia_04"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 20,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 30,
|
||||
},
|
||||
},
|
||||
}
|
||||
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:OnDestroy(kv)
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
caster:AddDamageOutgoingAll("thtd_remilia_power_999")
|
||||
end
|
||||
|
||||
function public:OnStackCountChanged( iStackCount )
|
||||
-- 双端触发,iStackCount为改变前的层数
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
if self:GetStackCount() == 5 then
|
||||
caster:AddDamageOutgoingAll(power999_bonus, "thtd_remilia_power_999")
|
||||
end
|
||||
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_remilia_01" then
|
||||
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * power_bonus[abilityName][level][valueName]
|
||||
elseif abilityName == "thtd_remilia_04" then
|
||||
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_remilia_03" then
|
||||
return power_bonus["thtd_remilia_03"][self:GetStackCount()]["cd"] or 0
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
126
scripts/vscripts/modifiers/power/modifier_ability_power_shikieiki.lua
Executable file
126
scripts/vscripts/modifiers/power/modifier_ability_power_shikieiki.lua
Executable file
@@ -0,0 +1,126 @@
|
||||
modifier_ability_power_shikieiki = class({})
|
||||
|
||||
local public = modifier_ability_power_shikieiki
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_shikieiki_02"] = {
|
||||
[1] = {
|
||||
["power_bonus"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["power_bonus"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["power_bonus"] = 8,
|
||||
},
|
||||
},
|
||||
["thtd_shikieiki_04"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 15,
|
||||
},
|
||||
[4] = {
|
||||
["power_damage"] = 440,
|
||||
},
|
||||
[5] = {
|
||||
["power_damage"] = 440,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local power_999_crit = 700
|
||||
local power_999_chance = 70
|
||||
|
||||
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:OnStackCountChanged( iStackCount )
|
||||
-- 双端触发,iStackCount为改变前的层数
|
||||
if not IsServer() then return end
|
||||
|
||||
if self:GetStackCount() >= 5 then
|
||||
local caster = self:GetParent()
|
||||
caster:THTD_AddCritChance(power_999_chance, "shikieiki_power_999_buff")
|
||||
caster:THTD_AddCritDamage(power_999_crit, "shikieiki_power_999_buff")
|
||||
end
|
||||
end
|
||||
|
||||
function public:OnDestroy(kv)
|
||||
if not IsServer() then return end
|
||||
|
||||
local caster = self:GetParent()
|
||||
caster:THTD_AddCritChance("shikieiki_power_999_buff")
|
||||
caster:THTD_AddCritDamage("shikieiki_power_999_buff")
|
||||
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
|
||||
102
scripts/vscripts/modifiers/power/modifier_ability_power_shinki.lua
Executable file
102
scripts/vscripts/modifiers/power/modifier_ability_power_shinki.lua
Executable file
@@ -0,0 +1,102 @@
|
||||
modifier_ability_power_shinki = class({})
|
||||
|
||||
local public = modifier_ability_power_shinki
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_shinki_03"] = {
|
||||
[1] = {
|
||||
["power_bonus"] = 200,
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["power_bonus"] = 400,
|
||||
["duration_time"] = 2,
|
||||
},
|
||||
[3] = {
|
||||
["power_bonus"] = 600,
|
||||
["duration_time"] = 3,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
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
|
||||
-- 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
|
||||
|
||||
return params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) + power_bonus[abilityName][level][valueName]
|
||||
end
|
||||
99
scripts/vscripts/modifiers/power/modifier_ability_power_sizuha.lua
Executable file
99
scripts/vscripts/modifiers/power/modifier_ability_power_sizuha.lua
Executable file
@@ -0,0 +1,99 @@
|
||||
modifier_ability_power_sizuha = class({})
|
||||
|
||||
local public = modifier_ability_power_sizuha
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_sizuha_01"] = {
|
||||
[1] = {
|
||||
["grow_time"] = 10,
|
||||
},
|
||||
[2] = {
|
||||
["grow_time"] = 20,
|
||||
},
|
||||
[3] = {
|
||||
["grow_time"] = 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 )
|
||||
-- if not IsServer() then return end
|
||||
-- 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
|
||||
|
||||
return math.floor(params.ability:GetLevelSpecialValueNoOverride(valueName, specialLevel) * (1 - power_bonus[abilityName][level][valueName]/100))
|
||||
end
|
||||
157
scripts/vscripts/modifiers/power/modifier_ability_power_yukari.lua
Executable file
157
scripts/vscripts/modifiers/power/modifier_ability_power_yukari.lua
Executable file
@@ -0,0 +1,157 @@
|
||||
modifier_ability_power_yukari = class({})
|
||||
|
||||
local public = modifier_ability_power_yukari
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_yukari_01"] = {
|
||||
[1] = {
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["duration_time"] = 1,
|
||||
},
|
||||
[4] = {
|
||||
["duration_time"] = 2,
|
||||
},
|
||||
[5] = {
|
||||
["duration_time"] = 2,
|
||||
},
|
||||
},
|
||||
["thtd_yukari_03"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 5,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 10,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 15,
|
||||
},
|
||||
},
|
||||
["thtd_yukari_04"] = {
|
||||
[1] = {
|
||||
["power_damage"] = 10,
|
||||
["max_count"] = 1,
|
||||
},
|
||||
[2] = {
|
||||
["power_damage"] = 20,
|
||||
["max_count"] = 1,
|
||||
},
|
||||
[3] = {
|
||||
["power_damage"] = 30,
|
||||
["max_count"] = 1,
|
||||
},
|
||||
[4] = {
|
||||
["power_damage"] = 30,
|
||||
["max_count"] = 2,
|
||||
},
|
||||
[5] = {
|
||||
["power_damage"] = 30,
|
||||
["max_count"] = 2,
|
||||
},
|
||||
},
|
||||
}
|
||||
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_yukari_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_yukari_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
|
||||
128
scripts/vscripts/modifiers/power/modifier_ability_power_yuuka.lua
Executable file
128
scripts/vscripts/modifiers/power/modifier_ability_power_yuuka.lua
Executable file
@@ -0,0 +1,128 @@
|
||||
modifier_ability_power_yuuka = class({})
|
||||
|
||||
local public = modifier_ability_power_yuuka
|
||||
|
||||
local m_modifier_funcs=
|
||||
{
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL,
|
||||
MODIFIER_PROPERTY_OVERRIDE_ABILITY_SPECIAL_VALUE,
|
||||
MODIFIER_PROPERTY_COOLDOWN_REDUCTION_CONSTANT,
|
||||
}
|
||||
|
||||
local power_bonus = {
|
||||
["thtd_yuuka_03"] = {
|
||||
[1] = {
|
||||
["max_count"] = 50,
|
||||
},
|
||||
[2] = {
|
||||
["max_count"] = 100,
|
||||
},
|
||||
[3] = {
|
||||
["max_count"] = 150,
|
||||
},
|
||||
[4] = {
|
||||
["max_count"] = 400,
|
||||
},
|
||||
[5] = {
|
||||
["max_count"] = 400,
|
||||
},
|
||||
},
|
||||
["thtd_yuuka_04"] = {
|
||||
[1] = {
|
||||
["cd"] = 2,
|
||||
},
|
||||
[2] = {
|
||||
["cd"] = 4,
|
||||
},
|
||||
[3] = {
|
||||
["cd"] = 8,
|
||||
},
|
||||
[4] = {
|
||||
["cd"] = 8,
|
||||
},
|
||||
[5] = {
|
||||
["cd"] = 8,
|
||||
["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: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_yuuka_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_yuuka_04" then
|
||||
return power_bonus["thtd_yuuka_04"][self:GetStackCount()]["cd"] or 0
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user