package effect import ( element "blazing/common/data/Element" "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/gogf/gf/v2/util/gconv" ) // ----------------------------------------------------------- // 通用状态效果(例如 麻痹 / 中毒 / 疲惫 / 混乱 等) // ----------------------------------------------------------- type Effect13 struct { node.EffectNode Status info.EnumPetStatus // 要施加的状态类型 } func init() { input.InitEffect(input.EffectType.Skill, 13, &Effect13{}) } // ----------------------------------------------------------- // 技能触发时调用 // ----------------------------------------------------------- func (e *Effect13) OnSkill() bool { if gconv.Int(e.Ctx().Opp.CurrentPet.PetInfo.Type) == int(element.ElementTypeGrass) { return true } // 获取状态效果 eff := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.DrainedHP)) if eff == nil { return true } eff.Duration(e.EffectNode.SideEffectArgs[0] - 1) e.Ctx().Opp.AddEffect(e.Ctx().Our, eff) return true }