package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) func init() { //对方体力小于1/2时威力加倍 input.InitEffect(input.EffectType.Skill, 2, &Effect96{ EffectNode: node.EffectNode{}, Status: func(i, o *input.Input) bool { ret := false if o.CurrentPet.Info.Hp < (o.CurrentPet.Info.MaxHp / 2) { ret = true } return ret }, }) //后出手的话威力为2倍 input.InitEffect(input.EffectType.Skill, 30, &Effect96{ EffectNode: node.EffectNode{}, Status: func(i, o *input.Input) bool { return !i.FightC.IsFirst(i.Player) }, }) //先出手的话威力为2倍 input.InitEffect(input.EffectType.Skill, 40, &Effect96{ EffectNode: node.EffectNode{}, Status: func(i, o *input.Input) bool { return i.FightC.IsFirst(i.Player) }, }) //对手处于烧伤状态时,威力翻倍 input.InitEffect(input.EffectType.Skill, 96, &Effect96{ Status: func(i, o *input.Input) bool { return i.StatEffect_Exist(int(info.PetStatus.Burned)) }, }) //对手处于冻伤状态时,威力翻倍 input.InitEffect(input.EffectType.Skill, 97, &Effect96{ Status: func(i, o *input.Input) bool { return i.StatEffect_Exist(int(info.PetStatus.Frozen)) }, }) //对手处于麻痹状态时,威力翻倍 input.InitEffect(input.EffectType.Skill, 102, &Effect96{ Status: func(i, o *input.Input) bool { return i.StatEffect_Exist(int(info.PetStatus.Paralysis)) }, }) //若对手处于睡眠状态,威力翻倍 input.InitEffect(input.EffectType.Skill, 168, &Effect96{ Status: func(i, o *input.Input) bool { return i.StatEffect_Exist(int(info.PetStatus.Sleep)) }, }) } type Effect96 struct { node.EffectNode Status func(*input.Input, *input.Input) bool } func (e *Effect96) PreSkill(opp *input.Input, skill *info.SkillEntity) { if e.Status(e.Input, opp) { skill.Power *= 2 } }