package effect import ( "blazing/common/utils" "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // 497 - 附加m点固定伤害,每次使用额外附加n点,最高k点,遇到天敌时效果翻倍 type Effect497 struct { node.EffectNode Skillid int //记录使用的技能 ,如果技能变了就删除effect UseSkillCount int //技能使用了多少次,切换后置0 } func (e *Effect497) OnSkill() bool { if e.Skillid != 0 && e.Ctx().SkillEntity.ID != e.Skillid { e.Alive(false) e.UseSkillCount = 0 return true } e.Skillid = e.Ctx().SkillEntity.ID add := e.EffectNode.SideEffectArgs[0] + e.EffectNode.SideEffectArgs[1]*e.UseSkillCount add = utils.Min(add, e.EffectNode.SideEffectArgs[2]) // 附加固定伤害 damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: alpacadecimal.NewFromInt(int64(add)), } e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) return true } func init() { t := &Effect497{} t.Duration(-1) //次数类无限回合 t.CanStack(true) //后续的不会顶掉这个效果 input.InitEffect(input.EffectType.Skill, 497, t) }