Closed Nagasoyo closed 2 months ago
在#44中我看到可以用behavior实现类似冰块和吸血鬼的效果,但是在示例中挂dot的能力卡又似乎没有用到behavior
试试这个?
--一个能力
Api:RegisterPerk("perk_id", {
id = "perk_id",
display_name = "能力名称",
description = "现在石头"
.. "命中时有<color=#2fc107>30%</color>使敌人在<color=#2fc107>1</color>秒内降低<color=#2fc107>3%</color>"
.. Api.GameMechanicTags.TAG.attack_speed,
flavor_text = "小字吐槽",
icon = DCEI.Texture("flat_icon_emoji_rock_1faa8_ipick"),--图标
perk_type = "perk",--子弹/能力
rarity = "rare",--稀有度
--能力的附加行为
behavior = {
is_positive = false,--是否正面效果
--这里是降低攻速的效果
description = "降低<color=#2fc107>3%</color>"
.. Api.GameMechanicTags.TAG.attack_speed
.. ",持续<color=#2fc107>1</color>秒",
buff_bar_icon = DCEI.Texture("flat_icon_emoji_rock_1faa8_ipick"),--buff图标
--属性修正效果
modify_attributes = {
attack_speed = -0.03,
},
--持续时间
duration = 1,
},
},
--能力行为
function(combat_unit)
local name = "perk_id"
--子弹命中触发
combat_unit.Attack:RegisterOnMissileImpactCallback(name, function(level, attack_data, caster, target)
--命中效果
if attack_data.missile_id == "attack_rock"
then
--lua随机数
if math.random() < 0.3
then
for i = 1 , level do
--施加效果给对手,如果给自己把target换成caster
Api.PerkBehaviorSystem:ApplyPerkBehaviorToSelf(target, name)
end
end
end
end)
end)
如果是挂dot可能是直接给对面负回血的属性修正了,看你需要用哪种
可以使用,谢谢
我看到似乎很多能力卡的设计都需要用到子弹命中的回调函数,在挂debuff时需要用到behavior,然而我并不会使用这两个