refactor(fight/effect): 重构SetArgs方法为可变参数形式,优化Effect62参数设置逻辑并同步更新Effect接口定义

This commit is contained in:
1
2025-09-23 23:05:23 +00:00
parent d1e4db92e8
commit 2855c3e773
3 changed files with 10 additions and 2 deletions

View File

@@ -53,6 +53,13 @@ func (e *Effect62) SkillUseEnd(opp *input.Input) {
}
func (e *Effect62) SetArgs(args ...int) {
e.EffectNode.SetArgs(args...)
e.EffectNode.Duration(args[0])
}
// 因为对方切精灵,这个效果也要无效掉
func (this *Effect62) OnSwitchIn() bool {
if this.Hide { //如果还在隐藏,就直接返回

View File

@@ -27,7 +27,7 @@ type Effect interface {
SetInput(input *Input)
AfterAttr() //在获取属性前,比如重写对方属性AfterAttr
BeferAttr() //在获取属性后,比如视为对方属性
SetArgs(param []int)
SetArgs(param ...int)
IsCrit(opp *Input, skill *info.SkillEntity) //是否暴击
CalculateDamage(opp *Input, skill *info.SkillEntity) //击判定成功且伤害计算前触发
OnBeforeCalculateDamage(opp *Input, skill *info.SkillEntity) // 最终伤害计算前触发
@@ -193,6 +193,7 @@ func getTypeName(v interface{}) string {
func (c *Input) AddEffect(e Effect) {
//todo 免疫
//TODO 先激活
e.SetInput(c)
// 如果已有同 ID 的效果,尝试叠加
for _, eff := range c.Effects {

View File

@@ -73,7 +73,7 @@ func (this *EffectNode) Duration(t ...int) int {
}
// 设置参数,加上设置输入源
func (this *EffectNode) SetArgs(args []int) {
func (this *EffectNode) SetArgs(args ...int) {
this.SideEffectArgs = args