package effect

import (
	"blazing/logic/service/fight/info"
	"blazing/logic/service/fight/input"
	"blazing/logic/service/fight/node"
)

/**
 * n回合内没有击败，则对方死亡
 */
type Effect62 struct {
	node.EffectNode
	Hide bool // 是否隐藏 正常是命中就可用，镇魂歌是回合数到才可用

}

func init() {
	input.InitEffect(input.EffectType.Skill, 62, &Effect62{
		EffectNode: node.EffectNode{
			Owner: true,
		},
	})

}

func (e *Effect62) AfterHit(*input.Input, *info.SkillEntity) {
	if e.Duration() != 1 { //说明还没到生效节点
		e.Hide = true //隐藏效果
	} else {
		e.Hide = false
	}

	if !e.Hide && e.Hit() { //说明是自身回合//如果还在隐藏,就直接返回

		//defer e.EffectNode.NotALive() //失效
		//应该是对方固定伤害等于自身血量
		//e.Input.Death()               //本只死亡

		//否则触发秒杀 在对面使用技能后
		//return true
	}

}

// 默认添加回合
func (e *Effect62) SetArgs(t *input.Input, a ...int) {

	e.EffectNode.SetArgs(t, a...)
	e.EffectNode.Duration(e.EffectNode.SideEffectArgs[0])

}

// 因为对方切精灵,这个效果也要无效掉
func (this *Effect62) OnSwitchIn() bool {
	if this.Hide { //如果还在隐藏,就直接返回
		return true
	}
	//this.GetBattle().Effects[this.GetInput().UserID].RemoveEffect(this)
	//否则触发秒杀 在对面使用技能后
	return true

}
