initial commit
This commit is contained in:
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
|
||||
Reference in New Issue
Block a user