From 6a3a8ba20ff8caa882a345fc48ed5ee009841436 Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Thu, 25 Sep 2025 20:34:33 +0000 Subject: [PATCH] =?UTF-8?q?refactor(fight/effect):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4Effect0=E4=B8=AD=E7=9A=84=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E9=99=90=E5=88=B6=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BC=A4=E5=AE=B3=E4=BC=A0=E9=80=92=E6=9C=BA=E5=88=B6=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9EBeforeAttacked=E8=A7=A6=E5=8F=91=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/fight/effect/effect.prop.go | 24 ------ ...ect_10-16.go => effect_10-16_94_99_114.go} | 18 ++++- logic/service/fight/effect/effect_2.go | 33 --------- .../fight/effect/effect_3_33_63__85_145.go | 60 +++++++++++++++ .../service/fight/effect/effect_61_70_118.go | 42 +++++++++++ logic/service/fight/effect/effect_8.go | 38 ++++++++++ logic/service/fight/effect/effect_85.go | 28 ------- logic/service/fight/effect/effect_damage.go | 7 +- .../fight/effect/effect_power_doblue.go | 74 +++++++++++++++++++ logic/service/fight/fightc.go | 6 ++ logic/service/fight/info/battle.go | 18 ++--- logic/service/fight/input/attr.go | 24 ++++-- logic/service/fight/input/effecti.go | 5 +- logic/service/fight/input/nodemanger.go | 15 +++- logic/service/fight/node/node.go | 9 ++- logic/service/fight/node/skill.go | 14 ++-- 16 files changed, 289 insertions(+), 126 deletions(-) delete mode 100644 logic/service/fight/effect/effect.prop.go rename logic/service/fight/effect/{effect_10-16.go => effect_10-16_94_99_114.go} (68%) delete mode 100644 logic/service/fight/effect/effect_2.go create mode 100644 logic/service/fight/effect/effect_3_33_63__85_145.go create mode 100644 logic/service/fight/effect/effect_61_70_118.go create mode 100644 logic/service/fight/effect/effect_8.go delete mode 100644 logic/service/fight/effect/effect_85.go create mode 100644 logic/service/fight/effect/effect_power_doblue.go diff --git a/logic/service/fight/effect/effect.prop.go b/logic/service/fight/effect/effect.prop.go deleted file mode 100644 index 32c5f2ea..00000000 --- a/logic/service/fight/effect/effect.prop.go +++ /dev/null @@ -1,24 +0,0 @@ -package effect - -import ( - "blazing/logic/service/fight/input" - "blazing/logic/service/fight/node" -) - -type Prop struct { - node.EffectNode -} - -func init() { - - prop := &Prop{ - EffectNode: node.EffectNode{ - MaxStack: 6, - }, - } - - for i := 0; i < 6; i++ { - input.InitEffect(input.EffectType.Prop, i, prop) - - } -} diff --git a/logic/service/fight/effect/effect_10-16.go b/logic/service/fight/effect/effect_10-16_94_99_114.go similarity index 68% rename from logic/service/fight/effect/effect_10-16.go rename to logic/service/fight/effect/effect_10-16_94_99_114.go index e2ec0d02..d84c945c 100644 --- a/logic/service/fight/effect/effect_10-16.go +++ b/logic/service/fight/effect/effect_10-16_94_99_114.go @@ -28,17 +28,29 @@ func init() { //n回合吸取对方最大体力的1/8(草系无效) //n%令对方冻伤 - input.InitEffect(input.EffectType.Skill, 12, &Effect10{ + input.InitEffect(input.EffectType.Skill, 14, &Effect10{ Status: info.PetStatus.Frozen, }) //n%令对方害怕 - input.InitEffect(input.EffectType.Skill, 12, &Effect10{ + input.InitEffect(input.EffectType.Skill, 15, &Effect10{ Status: info.PetStatus.Fear, }) //n%令对手睡眠 - input.InitEffect(input.EffectType.Skill, 12, &Effect10{ + input.InitEffect(input.EffectType.Skill, 16, &Effect10{ Status: info.PetStatus.Sleep, }) + //n%令对方石化 + input.InitEffect(input.EffectType.Skill, 94, &Effect10{ + Status: info.PetStatus.Petrified, + }) + //n%几率令对手混乱 + input.InitEffect(input.EffectType.Skill, 99, &Effect10{ + Status: info.PetStatus.Confused, + }) + //n%几率令对方易燃 + input.InitEffect(input.EffectType.Skill, 114, &Effect10{ + Status: info.PetStatus.Flammable, + }) } func (e *Effect10) AfterSkill(opp *input.Input, skill *info.SkillEntity) { diff --git a/logic/service/fight/effect/effect_2.go b/logic/service/fight/effect/effect_2.go deleted file mode 100644 index e290b961..00000000 --- a/logic/service/fight/effect/effect_2.go +++ /dev/null @@ -1,33 +0,0 @@ -package effect - -import ( - "blazing/logic/service/fight/info" - "blazing/logic/service/fight/input" - "blazing/logic/service/fight/node" -) - -/** - * 对方体力小于1/2时威力加倍 - */ - -func init() { - input.InitEffect(input.EffectType.Skill, 2, &Effect2{ - EffectNode: node.EffectNode{}, - }) - -} - -type Effect2 struct { - node.EffectNode -} - -func (e *Effect2) PreSkill(opp *input.Input, skill *info.SkillEntity) { - opp.Pet(e.Input, func() { //我方取敌方防御 - if opp.CurrentPet.Info.Hp < (opp.CurrentPet.Info.MaxHp / 2) { - skill.Power *= 2 - - } - - }) - -} diff --git a/logic/service/fight/effect/effect_3_33_63__85_145.go b/logic/service/fight/effect/effect_3_33_63__85_145.go new file mode 100644 index 00000000..b5e99ef3 --- /dev/null +++ b/logic/service/fight/effect/effect_3_33_63__85_145.go @@ -0,0 +1,60 @@ +package effect + +import ( + "blazing/logic/service/fight/info" + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" +) + +type Effect3 struct { + node.EffectNode + Rev bool + Level int8 + Etype info.EnumAbilityOpType +} + +func (e *Effect3) OnHit(opp *input.Input, skill *info.SkillEntity) { + for i := 0; i < 6; i++ { + if e.Rev { + opp.SetProp(e.Input, int8(i), e.Level, e.Etype) + } else { + e.Input.SetProp(opp, int8(i), e.Level, e.Etype) + } + + } + +} +func init() { + //解除能力下降状态 + input.InitEffect(input.EffectType.Skill, 3, &Effect3{ + EffectNode: node.EffectNode{}, + Level: -1, + Etype: info.AbilityOpType.AbilityOpReset, + }) + // 消除对手能力提升状态 + input.InitEffect(input.EffectType.Skill, 33, &Effect3{ + EffectNode: node.EffectNode{}, + Rev: true, + Level: 1, + Etype: info.AbilityOpType.AbilityOpReset, + }) + // 将能力下降状态反馈给对手 + input.InitEffect(input.EffectType.Skill, 63, &Effect3{ + EffectNode: node.EffectNode{}, + + Etype: info.AbilityOpType.AbilityOpBounceWeaken, + }) + //使对手的能力提升效果转化到自己身上 + input.InitEffect(input.EffectType.Skill, 85, &Effect3{ + EffectNode: node.EffectNode{}, + + Etype: info.AbilityOpType.AbilityOpStealStrengthen, + }) + // 使对手的能力提升效果反转成能力下降效果 + input.InitEffect(input.EffectType.Skill, 145, &Effect3{ + EffectNode: node.EffectNode{}, + Rev: true, + Level: 1, + Etype: info.AbilityOpType.AbilityOpReverse, + }) +} diff --git a/logic/service/fight/effect/effect_61_70_118.go b/logic/service/fight/effect/effect_61_70_118.go new file mode 100644 index 00000000..69ed4c9a --- /dev/null +++ b/logic/service/fight/effect/effect_61_70_118.go @@ -0,0 +1,42 @@ +package effect + +import ( + "blazing/logic/service/fight/info" + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" +) + +/** + *威力随机,随机范围50~150 + */ +type Effect61 struct { + node.EffectNode + Min int + Max int +} + +func init() { + input.InitEffect(input.EffectType.Skill, 61, &Effect61{ + EffectNode: node.EffectNode{}, + Min: 50, + Max: 150, + }) + input.InitEffect(input.EffectType.Skill, 70, &Effect61{ + EffectNode: node.EffectNode{}, + Min: 140, + Max: 220, + }) + input.InitEffect(input.EffectType.Skill, 118, &Effect61{ + EffectNode: node.EffectNode{}, + Min: 140, + Max: 180, + }) +} +func (e *Effect61) PreSkill(opp *input.Input, skill *info.SkillEntity) { + + opp.Pet(e.Input, func() { + skill.Power = int(e.Input.FightC.GetRand().Int31n(int32(e.Max)-int32(e.Min)+1) + int32(e.Min)) + + }) + +} diff --git a/logic/service/fight/effect/effect_8.go b/logic/service/fight/effect/effect_8.go new file mode 100644 index 00000000..853981ab --- /dev/null +++ b/logic/service/fight/effect/effect_8.go @@ -0,0 +1,38 @@ +package effect + +import ( + "blazing/common/utils" + "blazing/logic/service/fight/info" + "blazing/logic/service/fight/input" + "blazing/logic/service/fight/node" +) + +/** + * 伤害大于对方体力时会余下1体力 + */ + +func init() { + input.InitEffect(input.EffectType.Skill, 9, &Effect8{ + EffectNode: node.EffectNode{}, + }) + +} + +type Effect8 struct { + node.EffectNode +} + +// 伤害落实前触发,限制最大伤害 +func (e *Effect8) BeforeAttacked(opp *input.Input, skill *info.SkillEntity) { + + // //在这里修改伤害 + // if opp.GetEffect(input.EffectType.Damage, 0).MaxStack() != 0 { //限制最大伤害 + // opp.GetEffect(input.EffectType.Damage, 0).Stack(utils.Min(opp.GetEffect(input.EffectType.Damage, 0).Stack(), opp.GetEffect(input.EffectType.Damage, 0).MaxStack())) + // } + + opp.Pet(e.Input, func() { //我方取敌方属性 + dg := utils.Min(e.Input.GetEffect(input.EffectType.Damage, 0).Stack(), int(opp.CurrentPet.Info.Hp)-1) + e.Input.GetEffect(input.EffectType.Damage, 0).Stack(dg) + }) + +} diff --git a/logic/service/fight/effect/effect_85.go b/logic/service/fight/effect/effect_85.go deleted file mode 100644 index a206116e..00000000 --- a/logic/service/fight/effect/effect_85.go +++ /dev/null @@ -1,28 +0,0 @@ -package effect - -import ( - "blazing/logic/service/fight/info" - "blazing/logic/service/fight/input" - "blazing/logic/service/fight/node" -) - -/** - * 使对手的能力提升效果转化到自己身上 - */ -type Effect85 struct { - node.EffectNode -} - -func init() { - input.InitEffect(input.EffectType.Skill, 85, &Effect85{ - EffectNode: node.EffectNode{}, - }) - -} - -func (e *Effect85) OnHit(opp *input.Input, skill *info.SkillEntity) { - for i := 0; i < 6; i++ { - e.Input.SetProp(opp, int8(i), 1, info.AbilityOpType.AbilityOpStealStrengthen) - } - -} diff --git a/logic/service/fight/effect/effect_damage.go b/logic/service/fight/effect/effect_damage.go index 56fd50b3..797ebaf8 100644 --- a/logic/service/fight/effect/effect_damage.go +++ b/logic/service/fight/effect/effect_damage.go @@ -59,10 +59,7 @@ func (e *Effect0) OnSkill(opp *input.Input, skill *info.SkillEntity) { e.Stack(e.Stack() * 2) } - if e.MaxStack != 0 && e.Stack() > e.MaxStack { //限制最大伤害 - e.Stack(e.MaxStack) - } - e.Input.AttackValue.LostHp = uint32(e.Stack()) + } func (e *Effect0) BeforeSkill(opp *input.Input, skill *info.SkillEntity) { skill.AttackTimeC(int(opp.GetProp(5, true))) //计算命中 @@ -116,8 +113,8 @@ func (e *Effect0) Attacked(opp *input.Input, skill *info.SkillEntity) { return true }) - //在这里修改伤害 + opp.AttackValue.LostHp = uint32(opp.GetEffect(input.EffectType.Damage, 0).Stack()) if uint32(opp.AttackValue.LostHp) > e.Input.CurrentPet.Info.Hp { //这里其实是受到致死伤害 //然后先触发死亡效果,消除所有buff diff --git a/logic/service/fight/effect/effect_power_doblue.go b/logic/service/fight/effect/effect_power_doblue.go new file mode 100644 index 00000000..402c65c8 --- /dev/null +++ b/logic/service/fight/effect/effect_power_doblue.go @@ -0,0 +1,74 @@ +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 + o.Pet(i, func() { //我方取敌方防御 + if o.CurrentPet.Info.Hp < (o.CurrentPet.Info.MaxHp / 2) { + ret = true + + } + + }) + return ret + }, + }) + + //对手处于烧伤状态时,威力翻倍 + 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 + } + +} diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index fbe51779..f1b0b065 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -456,6 +456,12 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSk // 扣减防御方血量 } //todo 处理未命中效果 + attacker.Exec(func(t input.Effect) bool { + + t.BeforeAttacked(attacker, a.Skill) //红伤落实前 + + return true + }) defender.Exec(func(t input.Effect) bool { t.Attacked(attacker, a.Skill) //红伤落实 diff --git a/logic/service/fight/info/battle.go b/logic/service/fight/info/battle.go index b8cf9002..b61ccf1f 100644 --- a/logic/service/fight/info/battle.go +++ b/logic/service/fight/info/battle.go @@ -86,18 +86,18 @@ type Playerinvite struct { //挂载到[]Playerinvite上? 被邀请者->邀请 InviteID uint32 // 邀请者 InviteTime EnumBattleMode //游戏模式 } + // 能力操作类型枚举 type EnumAbilityOpType string var AbilityOpType = enum.New[struct { - AbilityOpIncrease EnumAbilityOpType `enum:"1"` // 能力增加(强化) - AbilityOpDecrease EnumAbilityOpType `enum:"2"` // 能力减少(弱化) - AbilityOpCopy EnumAbilityOpType `enum:"3"` // 复制强化/弱化 - AbilityOpReset EnumAbilityOpType `enum:"4"` // 能力重置 - AbilityOpClearStrengthen EnumAbilityOpType `enum:"5"` // 清除强化 + AbilityOpIncrease EnumAbilityOpType `enum:"1"` // 能力增加(强化) + AbilityOpDecrease EnumAbilityOpType `enum:"2"` // 能力减少(弱化) + AbilityOpCopy EnumAbilityOpType `enum:"3"` // 复制强化/弱化 + AbilityOpReset EnumAbilityOpType `enum:"4"` // 能力重置 + AbilityOpStealStrengthen EnumAbilityOpType `enum:"6"` // 吸取强化 AbilityOpReverse EnumAbilityOpType `enum:"7"` // 反转强化/弱化 - AbilityOpClearWeaken EnumAbilityOpType `enum:"8"` // 解除弱化 - AbilityOpTransferWeaken EnumAbilityOpType `enum:"9"` // 传递弱化 - //AbilityOpBounceWeaken EnumAbilityOpType `enum:"10"` // 弹弱(反弹弱化效果) -}]() \ No newline at end of file + + AbilityOpBounceWeaken EnumAbilityOpType `enum:"10"` // 弹弱(反弹弱化效果) +}]() diff --git a/logic/service/fight/input/attr.go b/logic/service/fight/input/attr.go index 677d21d5..f7cd2f55 100644 --- a/logic/service/fight/input/attr.go +++ b/logic/service/fight/input/attr.go @@ -43,16 +43,21 @@ func (u *Input) SetProp(in *Input, prop, level int8, ptype info.EnumAbilityOpTyp case info.AbilityOpType.AbilityOpDecrease: u.AttackValue.Prop[prop] = utils.Max(u.AttackValue.Prop[prop]+int8(level), -6) - case info.AbilityOpType.AbilityOpClearWeaken: - u.AttackValue.Prop[prop] = utils.Max(u.AttackValue.Prop[prop], 0) - case info.AbilityOpType.AbilityOpClearStrengthen: - u.AttackValue.Prop[prop] = utils.Min(u.AttackValue.Prop[prop], 0) + + case info.AbilityOpType.AbilityOpReset: + if level > 0 && u.AttackValue.Prop[prop] > 0 { //消强 + u.AttackValue.Prop[prop] = 0 + } + if level < 0 && u.AttackValue.Prop[prop] < 0 { //解弱 + u.AttackValue.Prop[prop] = 0 + } + case info.AbilityOpType.AbilityOpStealStrengthen: if in.AttackValue.Prop[prop] > 0 { - u.SetProp(u, prop, in.AttackValue.Prop[prop], info.AbilityOpType.AbilityOpClearStrengthen) + u.SetProp(u, prop, in.AttackValue.Prop[prop], info.AbilityOpType.AbilityOpIncrease) - in.SetProp(u, prop, 0, info.AbilityOpType.AbilityOpClearStrengthen) //消除对面 + in.SetProp(u, prop, 1, info.AbilityOpType.AbilityOpReset) //消除对面强化 } case info.AbilityOpType.AbilityOpReverse: if level > 0 && u.AttackValue.Prop[prop] > 0 { //反转强化,实际上是附带2倍的反转强化 @@ -63,6 +68,13 @@ func (u *Input) SetProp(in *Input, prop, level int8, ptype info.EnumAbilityOpTyp if level < 0 && u.AttackValue.Prop[prop] < 0 { u.SetProp(u, prop, -u.AttackValue.Prop[prop]*2, info.AbilityOpType.AbilityOpIncrease) } + case info.AbilityOpType.AbilityOpBounceWeaken: + + if u.AttackValue.Prop[prop] < 0 { + in.SetProp(u, prop, u.AttackValue.Prop[prop], info.AbilityOpType.AbilityOpDecrease) + + u.SetProp(u, prop, -1, info.AbilityOpType.AbilityOpReset) //消除自身弱化 + } } diff --git a/logic/service/fight/input/effecti.go b/logic/service/fight/input/effecti.go index cf822436..6c060ab2 100644 --- a/logic/service/fight/input/effecti.go +++ b/logic/service/fight/input/effecti.go @@ -22,9 +22,6 @@ type Effect interface { BeferAttr(t *info.BattlePetEntity) //在获取属性后,比如视为对方属性 SetArgs(input *Input, param ...int) - CalculateDamage(opp *Input, skill *info.SkillEntity) //击判定成功且伤害计算前触发 - BeforeCalculateDamage(opp *Input, skill *info.SkillEntity) // 最终伤害计算前触发 - AddZone(opp *Input, skill *EffectID) //加区 MulZone(opp *Input, skill *EffectID) //乘区 BeforeAttacked(opp *Input, skill *info.SkillEntity) // 受击前触发 @@ -56,7 +53,7 @@ type Effect interface { Hit(...bool) bool Alive() bool Stack(...int) int - GetMaxStack() int + MaxStack(...int) int NotALive() GetOwner() bool // 技能属主,比如寄生和镇魂歌,属主是对方) //GetSkill() *BattleSkillEntity //获得技能ctx diff --git a/logic/service/fight/input/nodemanger.go b/logic/service/fight/input/nodemanger.go index cfe9e984..8e100dcc 100644 --- a/logic/service/fight/input/nodemanger.go +++ b/logic/service/fight/input/nodemanger.go @@ -14,8 +14,8 @@ import ( type EnumEffectType int var EffectType = enum.New[struct { - Skill EnumEffectType `enum:"1000000"` //技能 - Prop EnumEffectType `enum:"2000000"` //属性 + Skill EnumEffectType `enum:"1000000"` //技能 + //Prop EnumEffectType `enum:"2000000"` //属性 Status EnumEffectType `enum:"3000000"` //状态 Damage EnumEffectType `enum:"4000000"` //伤害 @@ -73,6 +73,15 @@ func (c *Input) GetEffect(etype EnumEffectType, id int) Effect { return rer } +func (c *Input) StatEffect_Exist(id int) bool { + rer, ok := c.Effects.Load(id + int(EffectType.Status)) + if ok && rer.Alive() { + return true + + } + + return false +} type EffectID struct { ID int @@ -126,7 +135,7 @@ func (c *Input) AddEffect(e *EffectID) { c.Effects.Range(func(key int, value Effect) bool { if e.ID == key { //设置输入源 - if value.Stack() < value.GetMaxStack() { //如果小于最大叠层 + if value.Stack() < value.MaxStack() { //如果小于最大叠层 value.Stack(value.Stack()) //获取到当前叠层数然后叠加 } else { diff --git a/logic/service/fight/node/node.go b/logic/service/fight/node/node.go index 2a61b29a..4c8fc5cf 100644 --- a/logic/service/fight/node/node.go +++ b/logic/service/fight/node/node.go @@ -16,7 +16,7 @@ type EffectNode struct { Input *input.Input stacks int // 当前层数 - MaxStack int // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层 + maxStack int // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果 ,异常和能力的叠层 SideEffectArgs []int // 附加效果参数 Owner bool //是否作用自身 Success bool // 是否执行成功 成功XXX,失败XXX @@ -64,9 +64,12 @@ func (this *EffectNode) Hit(t ...bool) bool { return this.hit } -func (this *EffectNode) GetMaxStack() int { +func (this *EffectNode) MaxStack(t ...int) int { - return this.MaxStack + if len(t) > 0 { + this.maxStack = t[0] + } + return this.maxStack } func (this *EffectNode) Duration(t ...int) int { diff --git a/logic/service/fight/node/skill.go b/logic/service/fight/node/skill.go index 8de3dd25..12d0eb23 100644 --- a/logic/service/fight/node/skill.go +++ b/logic/service/fight/node/skill.go @@ -24,27 +24,25 @@ func (e *EffectNode) BeforeSkill(opp *input.Input, skill *info.SkillEntity) { } -// 使用技能时 +// 使用技能时,不可被继承,继承Miss和Hit就行 func (e *EffectNode) OnSkill(opp *input.Input, skill *info.SkillEntity) { if e.Hit() { //没命中 - e.OnHit(opp,skill) - }else{ - e.OnMiss(opp,skill) + e.OnHit(opp, skill) + } else { + e.OnMiss(opp, skill) } } + // miss func (e *EffectNode) OnMiss(opp *input.Input, skill *info.SkillEntity) { - - } + // 命中 func (e *EffectNode) OnHit(opp *input.Input, skill *info.SkillEntity) { - - } func (e *EffectNode) AfterSkill(opp *input.Input, skill *info.SkillEntity) {