diff --git a/logic/service/fight/effect/1044.go b/logic/service/fight/effect/1044.go index 312d0747..9f711cfb 100644 --- a/logic/service/fight/effect/1044.go +++ b/logic/service/fight/effect/1044.go @@ -17,11 +17,11 @@ type Effect1044 struct { func (e *Effect1044) OnSkill() bool { // 检查对手是否有能力提升状态可以吸取 - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - if e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), 0) { + if e.OpponentInput().SetProp(e.CarrierInput(), int8(i), 0) { e.can = true - e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v) + e.CarrierInput().SetProp(e.CarrierInput(), int8(i), v) } } diff --git a/logic/service/fight/effect/138.go b/logic/service/fight/effect/138.go index 5515bdb1..d23dcf21 100644 --- a/logic/service/fight/effect/138.go +++ b/logic/service/fight/effect/138.go @@ -24,12 +24,12 @@ func (e *Effect138) DamageLockEx(t *info.DamageZone) bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS { // 反弹1/n造成的伤害 - damageToBounce := e.Ctx().Opp.SumDamage.Div(e.Args()[1]) // 1/n + damageToBounce := e.OpponentInput().SumDamage.Div(e.Args()[1]) // 1/n damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, Damage: damageToBounce, } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + e.OpponentInput().Damage(e.CarrierInput(), damageZone) if t.Type == info.DamageType.Fixed { t.Damage = alpacadecimal.Zero } diff --git a/logic/service/fight/effect/143.go b/logic/service/fight/effect/143.go index a946d88c..64229c10 100644 --- a/logic/service/fight/effect/143.go +++ b/logic/service/fight/effect/143.go @@ -15,9 +15,9 @@ type Effect143 struct { // ---------------------- func (e *Effect143) OnSkill() bool { - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), -2*v) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), -2*v) } } diff --git a/logic/service/fight/effect/146.go b/logic/service/fight/effect/146.go index 4782c91a..cb438250 100644 --- a/logic/service/fight/effect/146.go +++ b/logic/service/fight/effect/146.go @@ -15,9 +15,9 @@ func (e *Effect146) Skill_Use_ex() bool { chance := e.Args()[1].IntPart() // m% success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - poisonEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Poisoned)) + poisonEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Poisoned)) if poisonEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, poisonEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), poisonEffect) } } } diff --git a/logic/service/fight/effect/149.go b/logic/service/fight/effect/149.go index 67d8ecfb..97b88b48 100644 --- a/logic/service/fight/effect/149.go +++ b/logic/service/fight/effect/149.go @@ -18,9 +18,9 @@ func (e *Effect149) OnSkill() bool { if success1 { effectType1 := int(e.Args()[2].IntPart()) // 第一个异常状态类型 - statusEffect1 := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType1) + statusEffect1 := e.CarrierInput().InitEffect(input.EffectType.Status, effectType1) if statusEffect1 != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect1) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect1) } } @@ -30,9 +30,9 @@ func (e *Effect149) OnSkill() bool { if success2 { effectType2 := int(e.Args()[3].IntPart()) // 第二个异常状态类型 - statusEffect2 := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType2) + statusEffect2 := e.CarrierInput().InitEffect(input.EffectType.Status, effectType2) if statusEffect2 != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect2) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect2) } } diff --git a/logic/service/fight/effect/150.go b/logic/service/fight/effect/150.go index ee55522d..3a0fdd86 100644 --- a/logic/service/fight/effect/150.go +++ b/logic/service/fight/effect/150.go @@ -10,9 +10,9 @@ type Effect150 struct { } func (e *Effect150) Skill_Use() bool { - e.Ctx().Opp.SetProp(e.Ctx().Opp, 1, int8(e.SideEffectArgs[1])) + e.OpponentInput().SetProp(e.OpponentInput(), 1, int8(e.SideEffectArgs[1])) - e.Ctx().Opp.SetProp(e.Ctx().Opp, 3, int8(e.SideEffectArgs[1])) + e.OpponentInput().SetProp(e.OpponentInput(), 3, int8(e.SideEffectArgs[1])) return true } func init() { diff --git a/logic/service/fight/effect/155.go b/logic/service/fight/effect/155.go index e88ba7cf..805e089e 100644 --- a/logic/service/fight/effect/155.go +++ b/logic/service/fight/effect/155.go @@ -14,19 +14,19 @@ type Effect155 struct { func (e *Effect155) OnSkill() bool { // 恢复全部体力 - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp) + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, maxHp) // 消除所有能力下降 for i := 0; i < 6; i++ { - e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), 0) + e.CarrierInput().SetProp(e.CarrierInput(), int8(i), 0) } // 使自己进入睡眠n回合 - sleepEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Sleep)) + sleepEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Sleep)) if sleepEffect != nil { sleepEffect.Duration(int(e.Args()[0].IntPart())) // n回合 - e.Ctx().Our.AddEffect(e.Ctx().Our, sleepEffect) + e.CarrierInput().AddEffect(e.CarrierInput(), sleepEffect) } return true diff --git a/logic/service/fight/effect/156.go b/logic/service/fight/effect/156.go index 0980e059..163d37e8 100644 --- a/logic/service/fight/effect/156.go +++ b/logic/service/fight/effect/156.go @@ -12,15 +12,15 @@ type Effect156 struct { func (e *Effect156) Skill_Use() bool { - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), 0) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), 0) } } - addSubEffect(e.Ctx().Our, e.Ctx().Opp, &e.EffectNode, &Effect156_sub{}, e.SideEffectArgs[0]) + addSubEffect(e.CarrierInput(), e.OpponentInput(), &e.EffectNode, &Effect156_sub{}, e.SideEffectArgs[0]) return true } @@ -36,7 +36,7 @@ type Effect156_sub struct { func (e *Effect156_sub) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { - if in != e.Ctx().Our { + if in != e.CarrierInput() { return true } if input.IS_Stat(effEffect) { diff --git a/logic/service/fight/effect/157.go b/logic/service/fight/effect/157.go index 44645948..0c45eedd 100644 --- a/logic/service/fight/effect/157.go +++ b/logic/service/fight/effect/157.go @@ -13,9 +13,9 @@ func (e *Effect157) Skill_Use_ex() bool { if e.Ctx().SkillEntity == nil { return true } - e.Ctx().Opp.SetProp(e.Ctx().Our, 1, -1) - e.Ctx().Opp.SetProp(e.Ctx().Our, 3, -1) - e.Ctx().Opp.SetProp(e.Ctx().Our, 5, -1) + e.OpponentInput().SetProp(e.CarrierInput(), 1, -1) + e.OpponentInput().SetProp(e.CarrierInput(), 3, -1) + e.OpponentInput().SetProp(e.CarrierInput(), 5, -1) return true } diff --git a/logic/service/fight/effect/165.go b/logic/service/fight/effect/165.go index b14ad4b0..56058da5 100644 --- a/logic/service/fight/effect/165.go +++ b/logic/service/fight/effect/165.go @@ -10,8 +10,8 @@ type Effect165 struct { } func (e *Effect165) Skill_Use() bool { - e.Ctx().Our.SetProp(e.Ctx().Our, 1, int8(e.SideEffectArgs[1])) - e.Ctx().Our.SetProp(e.Ctx().Our, 3, int8(e.SideEffectArgs[1])) + e.CarrierInput().SetProp(e.CarrierInput(), 1, int8(e.SideEffectArgs[1])) + e.CarrierInput().SetProp(e.CarrierInput(), 3, int8(e.SideEffectArgs[1])) return true } func init() { diff --git a/logic/service/fight/effect/166.go b/logic/service/fight/effect/166.go index 45454b96..b63b81d4 100644 --- a/logic/service/fight/effect/166.go +++ b/logic/service/fight/effect/166.go @@ -17,7 +17,7 @@ func (e *Effect166) Skill_Use_ex() bool { if success { effectType := int8(e.Args()[1].IntPart()) // XX类型 effectValue := int8(e.Args()[2].IntPart()) // 等级k - e.Ctx().Opp.SetProp(e.Ctx().Our, effectType, effectValue) + e.OpponentInput().SetProp(e.CarrierInput(), effectType, effectValue) } } diff --git a/logic/service/fight/effect/169.go b/logic/service/fight/effect/169.go index f7d97146..9d996884 100644 --- a/logic/service/fight/effect/169.go +++ b/logic/service/fight/effect/169.go @@ -15,9 +15,9 @@ func (e *Effect169) OnSkill() bool { success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { // 添加异常状态 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Args()[2].IntPart())) // 以麻痹为例 + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(e.Args()[2].IntPart())) // 以麻痹为例 if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } return true diff --git a/logic/service/fight/effect/170.go b/logic/service/fight/effect/170.go index 27f5772b..72804e5f 100644 --- a/logic/service/fight/effect/170.go +++ b/logic/service/fight/effect/170.go @@ -18,10 +18,10 @@ func (e *Effect170) Skill_Use() bool { if e.IsFirst() { // 先出手 // 回复1/n的最大体力值 - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() healAmount := maxHp.Div(e.Args()[0]) // 1/n - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } return true diff --git a/logic/service/fight/effect/171.go b/logic/service/fight/effect/171.go index 34910901..761d2196 100644 --- a/logic/service/fight/effect/171.go +++ b/logic/service/fight/effect/171.go @@ -12,7 +12,7 @@ type Effect171 struct { func (e *Effect171) ComparePre(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } diff --git a/logic/service/fight/effect/173.go b/logic/service/fight/effect/173.go index 4235e7ee..87a98344 100644 --- a/logic/service/fight/effect/173.go +++ b/logic/service/fight/effect/173.go @@ -16,9 +16,9 @@ func (e *Effect173) OnSkill() bool { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart())) // 以麻痹为例 + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart())) // 以麻痹为例 if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } } diff --git a/logic/service/fight/effect/175.go b/logic/service/fight/effect/175.go index 91a04248..65d58759 100644 --- a/logic/service/fight/effect/175.go +++ b/logic/service/fight/effect/175.go @@ -11,17 +11,17 @@ type Effect175 struct { } func (e *Effect175) OnSkill() bool { - if e.Ctx().Opp.StatEffect_Exist_all() { // 对手处于异常状态 + if e.OpponentInput().StatEffect_Exist_all() { // 对手处于异常状态 chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { effectType := int(e.Args()[1].IntPart()) // XX类型 effectValue := int(e.Args()[2].IntPart()) // 等级k - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - statusEffect.SetArgs(e.Ctx().Our, effectValue) - e.Ctx().Our.AddEffect(e.Ctx().Our, statusEffect) + statusEffect.SetArgs(e.CarrierInput(), effectValue) + e.CarrierInput().AddEffect(e.CarrierInput(), statusEffect) } } } diff --git a/logic/service/fight/effect/176.go b/logic/service/fight/effect/176.go index e8a0c9df..3a739699 100644 --- a/logic/service/fight/effect/176.go +++ b/logic/service/fight/effect/176.go @@ -30,9 +30,9 @@ func (e *Effect176) OnSkill() bool { randomIndex := grand.Intn(len(statusTypes)) selectedStatus := statusTypes[randomIndex] - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, selectedStatus) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, selectedStatus) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } diff --git a/logic/service/fight/effect/177.go b/logic/service/fight/effect/177.go index bed57ae2..2c774edb 100644 --- a/logic/service/fight/effect/177.go +++ b/logic/service/fight/effect/177.go @@ -12,10 +12,10 @@ type Effect177 struct { func (e *Effect177) Skill_Use_ex() bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.AttackTime == 0 { - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() healAmount := maxHp.Div(e.Args()[1]) // 1/m - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } return true } diff --git a/logic/service/fight/effect/178.go b/logic/service/fight/effect/178.go index 8a439f63..4d38698d 100644 --- a/logic/service/fight/effect/178.go +++ b/logic/service/fight/effect/178.go @@ -14,10 +14,10 @@ type Effect178 struct { } func (e *Effect178) Skill_Use_ex() bool { - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage var healAmount alpacadecimal.Decimal - if e.Ctx().Our.CurPet[0].Type == e.Ctx().Opp.CurPet[0].Type { + if e.CarrierInput().CurPet[0].Type == e.OpponentInput().CurPet[0].Type { // 属性相同,1/m healAmount = damageDone.Div(e.Args()[1]) } else { @@ -25,7 +25,7 @@ func (e *Effect178) Skill_Use_ex() bool { healAmount = damageDone.Div(e.Args()[0]) } - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) return true } diff --git a/logic/service/fight/effect/179.go b/logic/service/fight/effect/179.go index 41758660..0bb61731 100644 --- a/logic/service/fight/effect/179.go +++ b/logic/service/fight/effect/179.go @@ -15,7 +15,7 @@ func (e *Effect179) SkillHit() bool { return true } - if e.Ctx().Our.CurPet[0].Type == e.Ctx().Opp.CurPet[0].Type { + if e.CarrierInput().CurPet[0].Type == e.OpponentInput().CurPet[0].Type { // 属性相同,技能威力提升n e.Ctx().SkillEntity.XML.Power += int(e.Args()[0].IntPart()) } diff --git a/logic/service/fight/effect/184.go b/logic/service/fight/effect/184.go index b2b070c9..fd343237 100644 --- a/logic/service/fight/effect/184.go +++ b/logic/service/fight/effect/184.go @@ -11,17 +11,17 @@ type Effect184 struct { } func (e *Effect184) OnSkill() bool { - if e.Ctx().Opp.HasPropADD() { // 对手处于能力提升状态 + if e.OpponentInput().HasPropADD() { // 对手处于能力提升状态 chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { effectType := int(e.Args()[1].IntPart()) // XX类型 effectValue := int(e.Args()[2].IntPart()) // 等级k - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - statusEffect.SetArgs(e.Ctx().Our, effectValue) - e.Ctx().Our.AddEffect(e.Ctx().Our, statusEffect) + statusEffect.SetArgs(e.CarrierInput(), effectValue) + e.CarrierInput().AddEffect(e.CarrierInput(), statusEffect) } } } diff --git a/logic/service/fight/effect/188.go b/logic/service/fight/effect/188.go index fcc2d850..8146fd78 100644 --- a/logic/service/fight/effect/188.go +++ b/logic/service/fight/effect/188.go @@ -15,12 +15,12 @@ func (e *Effect188) SkillHit() bool { return true } - if e.Ctx().Opp.StatEffect_Exist_all() { // 对手处于异常状态 + if e.OpponentInput().StatEffect_Exist_all() { // 对手处于异常状态 // 威力翻倍 e.Ctx().SkillEntity.XML.Power *= 2 // 消除对手相应的防御能力提升效果 - e.Ctx().Opp.SetProp(e.Ctx().Our, 1, 0) + e.OpponentInput().SetProp(e.CarrierInput(), 1, 0) } return true diff --git a/logic/service/fight/effect/190.go b/logic/service/fight/effect/190.go index 5ec45ba5..ddabe7c1 100644 --- a/logic/service/fight/effect/190.go +++ b/logic/service/fight/effect/190.go @@ -15,9 +15,9 @@ func (e *Effect190) Skill_Use_ex() bool { } // 消除对手所有能力强化状态 - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), 0) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), 0) } } diff --git a/logic/service/fight/effect/193.go b/logic/service/fight/effect/193.go index 605c8bd8..aa27e2e6 100644 --- a/logic/service/fight/effect/193.go +++ b/logic/service/fight/effect/193.go @@ -16,7 +16,7 @@ func (e *Effect193) SkillHit() bool { return true } - if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { // 对手处于异常状态 + if e.OpponentInput().StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { // 对手处于异常状态 // 设定必定暴击 e.Ctx().SkillEntity.XML.CritRate = 16 } diff --git a/logic/service/fight/effect/194.go b/logic/service/fight/effect/194.go index 89aea0a5..111f14c2 100644 --- a/logic/service/fight/effect/194.go +++ b/logic/service/fight/effect/194.go @@ -15,16 +15,16 @@ type Effect194 struct { } func (e *Effect194) Skill_Use() bool { - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage var healAmount alpacadecimal.Decimal - if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[1].IntPart())) { // 假设有检查异常状态的方法 + if e.OpponentInput().StatEffect_Exist(info.EnumPetStatus(e.Args()[1].IntPart())) { // 假设有检查异常状态的方法 healAmount = damageDone.Div(e.Args()[2]) // 1/m } else { healAmount = damageDone.Div(e.Args()[0]) // 1/n } - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) return true } diff --git a/logic/service/fight/effect/196.go b/logic/service/fight/effect/196.go index 07ccbbef..d63b2e56 100644 --- a/logic/service/fight/effect/196.go +++ b/logic/service/fight/effect/196.go @@ -16,14 +16,14 @@ func (e *Effect196) OnSkill() bool { effectValue := e.Args()[5].IntPart() // 等级-k success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - e.Ctx().Opp.SetProp(e.Ctx().Opp, int8(e.Args()[3].IntPart()), int8(effectValue)) + e.OpponentInput().SetProp(e.OpponentInput(), int8(e.Args()[3].IntPart()), int8(effectValue)) } } else { // 后出手 chance := e.Args()[1].IntPart() // j% effectValue := e.Args()[2].IntPart() // 等级-k success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - e.Ctx().Opp.SetProp(e.Ctx().Opp, int8(e.Args()[0].IntPart()), int8(effectValue)) + e.OpponentInput().SetProp(e.OpponentInput(), int8(e.Args()[0].IntPart()), int8(effectValue)) } } diff --git a/logic/service/fight/effect/197.go b/logic/service/fight/effect/197.go index 1b694490..c1c1ec0e 100644 --- a/logic/service/fight/effect/197.go +++ b/logic/service/fight/effect/197.go @@ -11,10 +11,10 @@ type Effect197 struct { func (e *Effect197) SwitchOut(in *input.Input) bool { if e.Input == in { - if !e.Ctx().Our.CurPet[0].Alive() { // 被击败 - for i, v := range e.Ctx().Opp.Prop[:] { + if !e.CarrierInput().CurPet[0].Alive() { // 被击败 + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - e.Ctx().Opp.SetProp(e.Ctx().Opp, int8(i), 0) + e.OpponentInput().SetProp(e.OpponentInput(), int8(i), 0) } } diff --git a/logic/service/fight/effect/198.go b/logic/service/fight/effect/198.go index 8ef6102b..742b7494 100644 --- a/logic/service/fight/effect/198.go +++ b/logic/service/fight/effect/198.go @@ -18,7 +18,7 @@ func (e *Effect198) OnSkill() bool { // 随机选择n种能力 for i := 0; i < numStats; i++ { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(grand.Intn(5)), reduction) + e.OpponentInput().SetProp(e.CarrierInput(), int8(grand.Intn(5)), reduction) } return true diff --git a/logic/service/fight/effect/199.go b/logic/service/fight/effect/199.go index 643b5338..349a5842 100644 --- a/logic/service/fight/effect/199.go +++ b/logic/service/fight/effect/199.go @@ -11,11 +11,11 @@ type Effect199 struct { func (e *Effect199) SwitchOut(in *input.Input) bool { if e.Input == in { - if !e.Ctx().Our.CurPet[0].Alive() { // 被击败 + if !e.CarrierInput().CurPet[0].Alive() { // 被击败 // 设置下一个出场精灵的增益效果 effectType := int8(e.Args()[0].IntPart()) // xx类型 effectValue := int8(e.Args()[1].IntPart()) // 等级+k - e.Ctx().Our.SetProp(e.Ctx().Our, effectType, effectValue) + e.CarrierInput().SetProp(e.CarrierInput(), effectType, effectValue) } e.Alive(false) } diff --git a/logic/service/fight/effect/200.go b/logic/service/fight/effect/200.go index ce77216a..e1fc378f 100644 --- a/logic/service/fight/effect/200.go +++ b/logic/service/fight/effect/200.go @@ -11,15 +11,15 @@ type Effect200 struct { } func (e *Effect200) OnSkill() bool { - if e.Ctx().Opp.HasPropADD() { + if e.OpponentInput().HasPropADD() { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { effectType := int(e.Args()[1].IntPart()) // XX类型 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } diff --git a/logic/service/fight/effect/400_480_586_599_610_611_613.go b/logic/service/fight/effect/400_480_586_599_610_611_613.go index 96d32829..bf315660 100644 --- a/logic/service/fight/effect/400_480_586_599_610_611_613.go +++ b/logic/service/fight/effect/400_480_586_599_610_611_613.go @@ -17,7 +17,7 @@ func (e *Effect400) SkillHit() bool { if e.Ctx().SkillEntity == nil { return true } - if e.Ctx().Our.CurPet[0].PetInfo.Type != e.Ctx().Opp.CurPet[0].PetInfo.Type { + if e.CarrierInput().CurPet[0].PetInfo.Type != e.OpponentInput().CurPet[0].PetInfo.Type { return true } e.Ctx().SkillEntity.XML.Power *= 2 @@ -107,7 +107,7 @@ func (e *Effect610) ComparePre(fattack, sattack *action.SelectSkillAction) bool if !e.ISNaturalEnemy() { return true } - if fattack == nil || fattack.PlayerID == e.Ctx().Our.UserID { + if fattack == nil || fattack.PlayerID == e.CarrierInput().UserID { return true } if sattack == nil || sattack.SkillEntity == nil { @@ -129,7 +129,7 @@ func (e *Effect611) OnSkill() bool { if e.Ctx().SkillEntity.Category() == info.Category.STATUS { return true } - e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ + e.OpponentInput().Damage(e.CarrierInput(), &info.DamageZone{ Type: info.DamageType.Fixed, Damage: e.Args()[1], }) diff --git a/logic/service/fight/effect/403.go b/logic/service/fight/effect/403.go index 812c3e8c..4dd77f02 100644 --- a/logic/service/fight/effect/403.go +++ b/logic/service/fight/effect/403.go @@ -17,12 +17,12 @@ func (e *Effect403) OnSkill() bool { if success { boostValue := int8(e.Args()[1].IntPart()) // 检查属性是否相同 - if e.Ctx().Our.CurPet[0].Type == e.Ctx().Opp.CurPet[0].Type { + if e.CarrierInput().CurPet[0].Type == e.OpponentInput().CurPet[0].Type { boostValue *= 2 } - e.Ctx().Our.SetProp(e.Ctx().Our, 4, boostValue) - e.Ctx().Our.SetProp(e.Ctx().Our, 2, boostValue) + e.CarrierInput().SetProp(e.CarrierInput(), 4, boostValue) + e.CarrierInput().SetProp(e.CarrierInput(), 2, boostValue) } return true diff --git a/logic/service/fight/effect/407.go b/logic/service/fight/effect/407.go index 4bf3415a..fb2df72b 100644 --- a/logic/service/fight/effect/407.go +++ b/logic/service/fight/effect/407.go @@ -17,7 +17,7 @@ func (e *Effect407) Skill_Use() bool { effectValue := int8(e.Args()[1].IntPart()) // 等级+n duration := int(e.Args()[2].IntPart()) // 持续m回合 - addSubEffect(e.Ctx().Our, e.Ctx().Our, &e.EffectNode, &Effect407_sub{ + addSubEffect(e.CarrierInput(), e.CarrierInput(), &e.EffectNode, &Effect407_sub{ effectType: effectType, effectValue: effectValue, }, duration) @@ -32,7 +32,7 @@ type Effect407_sub struct { } func (e *Effect407_sub) ActionStart(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) bool { - e.Ctx().Our.SetProp(e.Ctx().Our, e.effectType, e.effectValue) + e.CarrierInput().SetProp(e.CarrierInput(), e.effectType, e.effectValue) return true } diff --git a/logic/service/fight/effect/410.go b/logic/service/fight/effect/410.go index 46eb8852..1df9053a 100644 --- a/logic/service/fight/effect/410.go +++ b/logic/service/fight/effect/410.go @@ -16,10 +16,10 @@ func (e *Effect410) OnSkill() bool { success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() healAmount := maxHp.Div(e.Args()[1]) // 1/m - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } return true diff --git a/logic/service/fight/effect/412.go b/logic/service/fight/effect/412.go index a21791f3..fd21e8dd 100644 --- a/logic/service/fight/effect/412.go +++ b/logic/service/fight/effect/412.go @@ -11,8 +11,8 @@ type Effect412 struct { } func (e *Effect412) HookPP(count *int) bool { - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - currentHp := e.Ctx().Our.CurPet[0].GetHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + currentHp := e.CarrierInput().CurPet[0].GetHP() threshold := maxHp.Div(e.Args()[0]) // 1/n if currentHp.Cmp(threshold) < 0 { diff --git a/logic/service/fight/effect/417.go b/logic/service/fight/effect/417.go index 1c139c08..9e7cb63b 100644 --- a/logic/service/fight/effect/417.go +++ b/logic/service/fight/effect/417.go @@ -16,11 +16,11 @@ type Effect417 struct { func (e *Effect417) SkillHit_ex() bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS { // 是攻击技能 - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage healPercent := e.Args()[0].Div(alpacadecimal.NewFromInt(100)) // m% healAmount := damageDone.Mul(healPercent) - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } return true diff --git a/logic/service/fight/effect/418.go b/logic/service/fight/effect/418.go index bc3d2e73..f4512fc1 100644 --- a/logic/service/fight/effect/418.go +++ b/logic/service/fight/effect/418.go @@ -11,8 +11,8 @@ type Effect418 struct { } func (e *Effect418) OnSkill() bool { - if e.Ctx().Opp.HasPropADD() { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(e.SideEffectArgs[0]), int8(e.SideEffectArgs[1])) + if e.OpponentInput().HasPropADD() { + e.OpponentInput().SetProp(e.CarrierInput(), int8(e.SideEffectArgs[0]), int8(e.SideEffectArgs[1])) } diff --git a/logic/service/fight/effect/420.go b/logic/service/fight/effect/420.go index 57039c58..8d964468 100644 --- a/logic/service/fight/effect/420.go +++ b/logic/service/fight/effect/420.go @@ -11,14 +11,14 @@ type Effect420 struct { func (e *Effect420) PropBefer(in *input.Input, prop int8, level int8) bool { - if in == e.Ctx().Our { + if in == e.CarrierInput() { return true } //能力下降类 if level == 0 { - e.Ctx().Opp.SetProp(e.Ctx().Our, 0, int8(e.SideEffectArgs[0])) - e.Ctx().Opp.SetProp(e.Ctx().Our, 1, int8(e.SideEffectArgs[0])) + e.OpponentInput().SetProp(e.CarrierInput(), 0, int8(e.SideEffectArgs[0])) + e.OpponentInput().SetProp(e.CarrierInput(), 1, int8(e.SideEffectArgs[0])) } return true diff --git a/logic/service/fight/effect/422.go b/logic/service/fight/effect/422.go index 7974c618..6b6bcde6 100644 --- a/logic/service/fight/effect/422.go +++ b/logic/service/fight/effect/422.go @@ -14,7 +14,7 @@ type Effect422 struct { } func (e *Effect422) Skill_Use() bool { - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage percent := e.Args()[0].Div(alpacadecimal.NewFromInt(100)) // X% additionalDamage := damageDone.Mul(percent) @@ -24,7 +24,7 @@ func (e *Effect422) Skill_Use() bool { Type: info.DamageType.Fixed, Damage: additionalDamage, } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + e.OpponentInput().Damage(e.CarrierInput(), damageZone) } return true diff --git a/logic/service/fight/effect/424.go b/logic/service/fight/effect/424.go index 2c759e37..d65e9859 100644 --- a/logic/service/fight/effect/424.go +++ b/logic/service/fight/effect/424.go @@ -10,7 +10,7 @@ type Effect424 struct { } func (e *Effect424) Skill_Use() bool { - e.Ctx().Opp.SetProp(e.Ctx().Our, 4, int8(e.Args()[1].IntPart())) + e.OpponentInput().SetProp(e.CarrierInput(), 4, int8(e.Args()[1].IntPart())) return true } diff --git a/logic/service/fight/effect/425.go b/logic/service/fight/effect/425.go index 2f899be6..1e9d9832 100644 --- a/logic/service/fight/effect/425.go +++ b/logic/service/fight/effect/425.go @@ -19,8 +19,8 @@ func (e *Effect425) Skill_Use() bool { // 随机选择n项属性 for i := 0; i < numStats; i++ { t := int8(grand.Intn(6)) - e.Ctx().Opp.SetProp(e.Ctx().Our, t, changeValue) - e.Ctx().Our.SetProp(e.Ctx().Our, t, -changeValue) + e.OpponentInput().SetProp(e.CarrierInput(), t, changeValue) + e.CarrierInput().SetProp(e.CarrierInput(), t, -changeValue) } return true diff --git a/logic/service/fight/effect/427.go b/logic/service/fight/effect/427.go index 990cf547..b2ff7a24 100644 --- a/logic/service/fight/effect/427.go +++ b/logic/service/fight/effect/427.go @@ -16,9 +16,9 @@ func (e *Effect427) Skill_Use() bool { } if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS { // 降低对手防御 - e.Ctx().Opp.SetProp(e.Ctx().Opp, 1, int8(e.SideEffectArgs[1])) + e.OpponentInput().SetProp(e.OpponentInput(), 1, int8(e.SideEffectArgs[1])) - e.Ctx().Opp.SetProp(e.Ctx().Opp, 3, int8(e.SideEffectArgs[1])) + e.OpponentInput().SetProp(e.OpponentInput(), 3, int8(e.SideEffectArgs[1])) } return true diff --git a/logic/service/fight/effect/428.go b/logic/service/fight/effect/428.go index d1cec498..477d0e63 100644 --- a/logic/service/fight/effect/428.go +++ b/logic/service/fight/effect/428.go @@ -21,7 +21,7 @@ func (e *Effect428) Skill_Use() bool { Type: info.DamageType.Fixed, Damage: e.Args()[0], } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + e.OpponentInput().Damage(e.CarrierInput(), damageZone) return true } diff --git a/logic/service/fight/effect/430.go b/logic/service/fight/effect/430.go index b05c6357..ca55bd03 100644 --- a/logic/service/fight/effect/430.go +++ b/logic/service/fight/effect/430.go @@ -13,10 +13,10 @@ type Effect430 struct { func (e *Effect430) Skill_Use() bool { var isadd bool // 检查对手是否有能力强化状态 - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - if e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), 0) { + if e.OpponentInput().SetProp(e.CarrierInput(), int8(i), 0) { isadd = true } return true @@ -31,7 +31,7 @@ func (e *Effect430) Skill_Use() bool { effectType := int8(e.Args()[0].IntPart()) // XX类型 effectValue := int8(e.Args()[1].IntPart()) // 等级m - e.Ctx().Our.SetProp(e.Ctx().Our, effectType, effectValue) + e.CarrierInput().SetProp(e.CarrierInput(), effectType, effectValue) return true } diff --git a/logic/service/fight/effect/434.go b/logic/service/fight/effect/434.go index f3f2ba8b..0b2a3547 100644 --- a/logic/service/fight/effect/434.go +++ b/logic/service/fight/effect/434.go @@ -11,15 +11,15 @@ type Effect434 struct { } func (e *Effect434) OnSkill() bool { - if e.Ctx().Our.HasPropADD() { // 自身处于能力强化状态 + if e.CarrierInput().HasPropADD() { // 自身处于能力强化状态 chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { effectType := int(e.Args()[1].IntPart()) // XX类型,比如麻痹 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } } diff --git a/logic/service/fight/effect/437.go b/logic/service/fight/effect/437.go index 5cc00560..8af5f551 100644 --- a/logic/service/fight/effect/437.go +++ b/logic/service/fight/effect/437.go @@ -12,8 +12,8 @@ type Effect437 struct { func (e *Effect437) OnSkill() bool { - if e.Ctx().Opp.HasPropADD() { - e.Ctx().Opp.SetProp(e.Ctx().Opp, int8(e.SideEffectArgs[0]), int8(e.SideEffectArgs[1])) + if e.OpponentInput().HasPropADD() { + e.OpponentInput().SetProp(e.OpponentInput(), int8(e.SideEffectArgs[0]), int8(e.SideEffectArgs[1])) } diff --git a/logic/service/fight/effect/440.go b/logic/service/fight/effect/440.go index d3cffa4b..b5990336 100644 --- a/logic/service/fight/effect/440.go +++ b/logic/service/fight/effect/440.go @@ -13,7 +13,7 @@ type Effect440 struct { func (e *Effect440) Skill_Use() bool { // 创建一个延迟生效的效果,在下一回合开始生效 - addSubEffect(e.Ctx().Our, e.Ctx().Opp, &e.EffectNode, &Effect440_sub{ + addSubEffect(e.CarrierInput(), e.OpponentInput(), &e.EffectNode, &Effect440_sub{ m: int(e.Args()[1].IntPart()), }, int(e.Args()[0].IntPart())) return true diff --git a/logic/service/fight/effect/442.go b/logic/service/fight/effect/442.go index 67f0d2d2..e91e4f9a 100644 --- a/logic/service/fight/effect/442.go +++ b/logic/service/fight/effect/442.go @@ -15,10 +15,10 @@ func (e *Effect442) OnSkill() bool { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart())) // 以麻痹为例 + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(e.Args()[1].IntPart())) // 以麻痹为例 if statusEffect != nil { - statusEffect.SetArgs(e.Ctx().Our, 1) - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + statusEffect.SetArgs(e.CarrierInput(), 1) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } diff --git a/logic/service/fight/effect/443.go b/logic/service/fight/effect/443.go index 9a8ae59a..74b83fa0 100644 --- a/logic/service/fight/effect/443.go +++ b/logic/service/fight/effect/443.go @@ -15,12 +15,12 @@ type Effect443 struct { func (e *Effect443) Skill_Use_ex() bool { damageThreshold := alpacadecimal.NewFromInt(int64(e.Args()[1].IntPart())) - if e.Ctx().Our.SumDamage.Cmp(damageThreshold) > 0 { + if e.CarrierInput().SumDamage.Cmp(damageThreshold) > 0 { // 对手疲惫x回合 - tiredEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Tired)) + tiredEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Tired)) if tiredEffect != nil { tiredEffect.Duration(int(e.Args()[2].IntPart())) // x回合 - e.Ctx().Opp.AddEffect(e.Ctx().Our, tiredEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), tiredEffect) } } diff --git a/logic/service/fight/effect/444.go b/logic/service/fight/effect/444.go index 7a180fa7..f3d1d43f 100644 --- a/logic/service/fight/effect/444.go +++ b/logic/service/fight/effect/444.go @@ -12,9 +12,9 @@ type Effect444 struct { func (e *Effect444) OnSkill() bool { // 降低对手所有技能PP - e.Ctx().Opp.DelPP(1) + e.OpponentInput().DelPP(1) - e.Ctx().Our.HealPP(1) + e.CarrierInput().HealPP(1) return true } diff --git a/logic/service/fight/effect/446_626.go b/logic/service/fight/effect/446_626.go index b99c4260..0a6d7417 100644 --- a/logic/service/fight/effect/446_626.go +++ b/logic/service/fight/effect/446_626.go @@ -15,7 +15,7 @@ type Effect626 struct { func (e *Effect626) Skill_Use() bool { for i := 0; i < e.SideEffectArgs[0]; i++ { - e.Ctx().Our.SetProp(e.Ctx().Our, int8(grand.Intn(6)), int8(e.SideEffectArgs[1])) + e.CarrierInput().SetProp(e.CarrierInput(), int8(grand.Intn(6)), int8(e.SideEffectArgs[1])) } return true diff --git a/logic/service/fight/effect/449.go b/logic/service/fight/effect/449.go index 44a980e9..216427f0 100644 --- a/logic/service/fight/effect/449.go +++ b/logic/service/fight/effect/449.go @@ -11,15 +11,15 @@ type Effect449 struct { } func (e *Effect449) OnSkill() bool { - if e.Ctx().Opp.HasPropSub() { + if e.OpponentInput().HasPropSub() { chance := e.Args()[0].IntPart() // N% success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { effectType := int(e.Args()[1].IntPart()) // XX类型 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } diff --git a/logic/service/fight/effect/453.go b/logic/service/fight/effect/453.go index e00fc93a..d1519dc0 100644 --- a/logic/service/fight/effect/453.go +++ b/logic/service/fight/effect/453.go @@ -13,9 +13,9 @@ type Effect453 struct { func (e *Effect453) Skill_Use() bool { // 检查对手是否有能力强化状态 ispwoer := false - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { - e.Ctx().Our.SetProp(e.Ctx().Opp, int8(i), 0) + e.CarrierInput().SetProp(e.OpponentInput(), int8(i), 0) ispwoer = true return true } @@ -25,9 +25,9 @@ func (e *Effect453) Skill_Use() bool { // 如果成功消除了状态,对对手施加异常状态 effectType := int(e.Args()[0].IntPart()) // XX类型,比如麻痹 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } diff --git a/logic/service/fight/effect/454.go b/logic/service/fight/effect/454.go index c8815d38..f542a900 100644 --- a/logic/service/fight/effect/454.go +++ b/logic/service/fight/effect/454.go @@ -17,7 +17,7 @@ func (e *Effect454) ComparePre(fattack *action.SelectSkillAction, sattack *actio return true } //先手是自己 - if fattack.PlayerID == e.Ctx().Our.UserID { + if fattack.PlayerID == e.CarrierInput().UserID { return true } if sattack == nil { @@ -27,8 +27,8 @@ func (e *Effect454) ComparePre(fattack *action.SelectSkillAction, sattack *actio if sattack.SkillEntity == nil { return true } - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - currentHp := e.Ctx().Our.CurPet[0].GetHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + currentHp := e.CarrierInput().CurPet[0].GetHP() threshold := maxHp.Div(e.Args()[0]) // 1/n diff --git a/logic/service/fight/effect/456.go b/logic/service/fight/effect/456.go index 053457f1..632d1828 100644 --- a/logic/service/fight/effect/456.go +++ b/logic/service/fight/effect/456.go @@ -12,8 +12,8 @@ type Effect456 struct { } func (e *Effect456) OnSkill() bool { - if e.Ctx().Opp.CurPet[0].GetHP().Cmp(e.Args()[0]) > 0 { - e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ + if e.OpponentInput().CurPet[0].GetHP().Cmp(e.Args()[0]) > 0 { + e.OpponentInput().Damage(e.CarrierInput(), &info.DamageZone{ Type: info.DamageType.Fixed, Damage: e.Args()[0], diff --git a/logic/service/fight/effect/458.go b/logic/service/fight/effect/458.go index 5e194b99..418b3171 100644 --- a/logic/service/fight/effect/458.go +++ b/logic/service/fight/effect/458.go @@ -15,11 +15,11 @@ type Effect458 struct { func (e *Effect458) Skill_Use() bool { if e.IsFirst() { // 先出手 - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage healPercent := e.Args()[0].Div(alpacadecimal.NewFromInt(100)) // n% healAmount := damageDone.Mul(healPercent) - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } return true diff --git a/logic/service/fight/effect/460.go b/logic/service/fight/effect/460.go index bbbeba17..11da61b9 100644 --- a/logic/service/fight/effect/460.go +++ b/logic/service/fight/effect/460.go @@ -15,15 +15,15 @@ func (e *Effect460) OnSkill() bool { baseChance := e.Args()[0].IntPart() // m% totalChance := baseChance - if e.Ctx().Opp.HasPropADD() { + if e.OpponentInput().HasPropADD() { totalChance += e.Args()[1].IntPart() } success, _, _ := e.Input.Player.Roll(int(totalChance), 100) if success { - fearEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Fear)) + fearEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Fear)) if fearEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, fearEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), fearEffect) } } diff --git a/logic/service/fight/effect/461.go b/logic/service/fight/effect/461.go index 024c641b..4a1673e2 100644 --- a/logic/service/fight/effect/461.go +++ b/logic/service/fight/effect/461.go @@ -13,8 +13,8 @@ type Effect461 struct { } func (e *Effect461) Skill_Use() bool { - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - currentHp := e.Ctx().Our.CurPet[0].GetHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + currentHp := e.CarrierInput().CurPet[0].GetHP() threshold := maxHp.Div(e.Args()[0]) // 1/m if currentHp.Cmp(threshold) < 0 { diff --git a/logic/service/fight/effect/462.go b/logic/service/fight/effect/462.go index e6b21fdf..12a956f4 100644 --- a/logic/service/fight/effect/462.go +++ b/logic/service/fight/effect/462.go @@ -20,9 +20,9 @@ func (e *Effect462) Skill_Use_ex() bool { damageZone := &info.DamageZone{ Type: info.DamageType.Fixed, - Damage: alpacadecimal.Min(e.Ctx().Opp.SumDamage, bounceDamage), + Damage: alpacadecimal.Min(e.OpponentInput().SumDamage, bounceDamage), } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + e.OpponentInput().Damage(e.CarrierInput(), damageZone) return true } diff --git a/logic/service/fight/effect/464.go b/logic/service/fight/effect/464.go index b44c7c2f..a0da6bf4 100644 --- a/logic/service/fight/effect/464.go +++ b/logic/service/fight/effect/464.go @@ -13,7 +13,7 @@ type Effect464 struct { } func (e *Effect464) OnSkill() bool { - t, _ := element.Calculator.GetOffensiveMultiplier(e.Ctx().Opp.CurPet[0].Type, e.Ctx().Our.CurPet[0].Type) + t, _ := element.Calculator.GetOffensiveMultiplier(e.OpponentInput().CurPet[0].Type, e.CarrierInput().CurPet[0].Type) if t <= 1 { return true @@ -22,9 +22,9 @@ func (e *Effect464) OnSkill() bool { chance := e.Args()[0].IntPart() success, _, _ := e.Input.Player.Roll(int(chance), 100) if success { - burnEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Burned)) + burnEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Burned)) if burnEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, burnEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), burnEffect) } } return true diff --git a/logic/service/fight/effect/468.go b/logic/service/fight/effect/468.go index e09cdf68..20918f1f 100644 --- a/logic/service/fight/effect/468.go +++ b/logic/service/fight/effect/468.go @@ -15,9 +15,9 @@ func (e *Effect468) SkillHit() bool { return true } ispwoer := false - for i, v := range e.Ctx().Our.Prop[:] { + for i, v := range e.CarrierInput().Prop[:] { if v < 0 { - e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), 0) + e.CarrierInput().SetProp(e.CarrierInput(), int8(i), 0) ispwoer = true } diff --git a/logic/service/fight/effect/469.go b/logic/service/fight/effect/469.go index f6536274..1105b598 100644 --- a/logic/service/fight/effect/469.go +++ b/logic/service/fight/effect/469.go @@ -17,9 +17,9 @@ func (e *Effect469) Skill_Use_ex() bool { if success { effectType := int(e.Args()[2].IntPart()) // XX类型 - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } } @@ -40,7 +40,7 @@ type Effect526 struct { func (e *Effect526) Skill_Use_ex() bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() == info.Category.STATUS { - e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ + e.OpponentInput().Damage(e.CarrierInput(), &info.DamageZone{ Type: info.DamageType.Fixed, Damage: e.Args()[0], }) diff --git a/logic/service/fight/effect/470.go b/logic/service/fight/effect/470.go index 07da76b7..cc53b4b4 100644 --- a/logic/service/fight/effect/470.go +++ b/logic/service/fight/effect/470.go @@ -17,9 +17,9 @@ func (e *Effect470) Skill_Use_ex() bool { if success { effectType := int(e.Args()[2].IntPart()) // p类型(异常状态) - statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType) + statusEffect := e.CarrierInput().InitEffect(input.EffectType.Status, effectType) if statusEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect) } } } diff --git a/logic/service/fight/effect/471.go b/logic/service/fight/effect/471.go index a453ab9c..98cd7771 100644 --- a/logic/service/fight/effect/471.go +++ b/logic/service/fight/effect/471.go @@ -21,7 +21,7 @@ func (e *Effect471) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { return true } - if in != e.Ctx().Opp { + if in != e.OpponentInput() { return true } if input.IS_Stat(effEffect) { @@ -50,13 +50,13 @@ type Effect191 struct { func (e *Effect191) EFFect_Befer(in *input.Input, effEffect input.Effect) bool { - if in != e.Ctx().Opp { + if in != e.OpponentInput() { return true } if input.IS_Stat(effEffect) { - statusEffect1 := e.Ctx().Our.InitEffect(input.EffectType.Status, int(effEffect.ID().Suffix())) + statusEffect1 := e.CarrierInput().InitEffect(input.EffectType.Status, int(effEffect.ID().Suffix())) if statusEffect1 != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect1) + e.OpponentInput().AddEffect(e.CarrierInput(), statusEffect1) } return false } diff --git a/logic/service/fight/effect/473.go b/logic/service/fight/effect/473.go index ddaaf13f..4f38b416 100644 --- a/logic/service/fight/effect/473.go +++ b/logic/service/fight/effect/473.go @@ -12,12 +12,12 @@ type Effect473 struct { func (e *Effect473) Skill_Use() bool { damageThreshold := int(e.Args()[0].IntPart()) - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage if damageDone.IntPart() < int64(damageThreshold) { effectType := int(e.Args()[1].IntPart()) // XX类型 effectValue := int(e.Args()[2].IntPart()) // 等级+n - e.Ctx().Our.SetProp(e.Ctx().Our, int8(effectType), int8(effectValue)) + e.CarrierInput().SetProp(e.CarrierInput(), int8(effectType), int8(effectValue)) } return true diff --git a/logic/service/fight/effect/474.go b/logic/service/fight/effect/474.go index a4f222c2..811729cc 100644 --- a/logic/service/fight/effect/474.go +++ b/logic/service/fight/effect/474.go @@ -18,7 +18,7 @@ func (e *Effect474) OnSkill() bool { effectType := int8(e.Args()[0].IntPart()) // XX类型 effectValue := int8(e.Args()[2].IntPart()) // 等级+n - e.Ctx().Our.SetProp(e.Ctx().Our, effectType, effectValue) + e.CarrierInput().SetProp(e.CarrierInput(), effectType, effectValue) } } diff --git a/logic/service/fight/effect/475.go b/logic/service/fight/effect/475.go index 8aca41ff..bff616b7 100644 --- a/logic/service/fight/effect/475.go +++ b/logic/service/fight/effect/475.go @@ -16,12 +16,12 @@ type Effect475 struct { func (e *Effect475) Skill_Use() bool { damageThreshold := int(e.Args()[0].IntPart()) - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage if damageDone.IntPart() < int64(damageThreshold) { critDuration := int(e.Args()[1].IntPart()) - addSubEffect(e.Ctx().Our, e.Ctx().Our, &e.EffectNode, &Effect475_sub{}, critDuration) + addSubEffect(e.CarrierInput(), e.CarrierInput(), &e.EffectNode, &Effect475_sub{}, critDuration) } diff --git a/logic/service/fight/effect/476.go b/logic/service/fight/effect/476.go index 52ff9833..682fcccc 100644 --- a/logic/service/fight/effect/476.go +++ b/logic/service/fight/effect/476.go @@ -18,7 +18,7 @@ func (e *Effect476) OnSkill() bool { return true } healAmount := alpacadecimal.NewFromInt(int64(e.Args()[0].IntPart())) - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) return true } diff --git a/logic/service/fight/effect/477.go b/logic/service/fight/effect/477.go index dea0b7b3..4ba6f27f 100644 --- a/logic/service/fight/effect/477.go +++ b/logic/service/fight/effect/477.go @@ -18,7 +18,7 @@ func (e *Effect477) Skill_Use_ex() bool { if effectId == 0 { continue } - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), int8(effectId)) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), int8(effectId)) } return true diff --git a/logic/service/fight/effect/483.go b/logic/service/fight/effect/483.go index d124f9c3..5e8ceb96 100644 --- a/logic/service/fight/effect/483.go +++ b/logic/service/fight/effect/483.go @@ -18,7 +18,7 @@ func (e *Effect483) OnSkill() bool { if v == 0 { continue } - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), int8(v)) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), int8(v)) } diff --git a/logic/service/fight/effect/485.go b/logic/service/fight/effect/485.go index 2597fee3..86734c92 100644 --- a/logic/service/fight/effect/485.go +++ b/logic/service/fight/effect/485.go @@ -13,11 +13,11 @@ type Effect485 struct { func (e *Effect485) Skill_Use() bool { isfff := false - for i, v := range e.Ctx().Opp.Prop[:] { + for i, v := range e.OpponentInput().Prop[:] { if v > 0 { isfff = true - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), 0) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), 0) } @@ -25,8 +25,8 @@ func (e *Effect485) Skill_Use() bool { if isfff { // 恢复自身所有体力 - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp) + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, maxHp) } return true diff --git a/logic/service/fight/effect/486.go b/logic/service/fight/effect/486.go index 83d5c09d..35bf93c6 100644 --- a/logic/service/fight/effect/486.go +++ b/logic/service/fight/effect/486.go @@ -21,7 +21,7 @@ func (e *Effect486) CalculatePre() bool { return true } - e.Ctx().Opp.Prop = [6]int8{} + e.OpponentInput().Prop = [6]int8{} return true } diff --git a/logic/service/fight/effect/488.go b/logic/service/fight/effect/488.go index 1b231915..1c903ff0 100644 --- a/logic/service/fight/effect/488.go +++ b/logic/service/fight/effect/488.go @@ -18,7 +18,7 @@ func (e *Effect488) Damage_Mul(t *info.DamageZone) bool { return true } - opponentHp := e.Ctx().Opp.CurPet[0].GetHP() + opponentHp := e.OpponentInput().CurPet[0].GetHP() if opponentHp.Cmp(alpacadecimal.NewFromInt(400)) < 0 { t.Damage = t.Damage.Mul(alpacadecimal.NewFromFloat(1.1)) diff --git a/logic/service/fight/effect/489.go b/logic/service/fight/effect/489.go index f611775c..b246a6fb 100644 --- a/logic/service/fight/effect/489.go +++ b/logic/service/fight/effect/489.go @@ -12,10 +12,10 @@ type Effect489 struct { } func (e *Effect489) SkillHit_ex() bool { - if e.Ctx().Our.HasPropADD() { - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() + if e.CarrierInput().HasPropADD() { + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() healAmount := maxHp.Div(e.Args()[0]) // 1/m - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, healAmount) } diff --git a/logic/service/fight/effect/492.go b/logic/service/fight/effect/492.go index 91a85d66..35cc85f8 100644 --- a/logic/service/fight/effect/492.go +++ b/logic/service/fight/effect/492.go @@ -14,12 +14,12 @@ type Effect492 struct { func (e *Effect492) Skill_Use_ex() bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() == info.Category.STATUS { // 恢复1/m体力 - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp.Div(e.Args()[1])) + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, maxHp.Div(e.Args()[1])) - e.Ctx().Our.SetProp(e.Ctx().Our, int8(e.Args()[2].IntPart()), int8(e.Args()[3].IntPart())) - e.Ctx().Our.SetProp(e.Ctx().Our, int8(e.Args()[4].IntPart()), int8(e.Args()[5].IntPart())) + e.CarrierInput().SetProp(e.CarrierInput(), int8(e.Args()[2].IntPart()), int8(e.Args()[3].IntPart())) + e.CarrierInput().SetProp(e.CarrierInput(), int8(e.Args()[4].IntPart()), int8(e.Args()[5].IntPart())) } return true diff --git a/logic/service/fight/effect/494.go b/logic/service/fight/effect/494.go index 931471b2..641ac037 100644 --- a/logic/service/fight/effect/494.go +++ b/logic/service/fight/effect/494.go @@ -12,7 +12,7 @@ type Effect494 struct { func (e *Effect494) CalculatePre() bool { - e.Ctx().Opp.Prop = [6]int8{} + e.OpponentInput().Prop = [6]int8{} return true } diff --git a/logic/service/fight/effect/495.go b/logic/service/fight/effect/495.go index 9a9d5924..808aec3d 100644 --- a/logic/service/fight/effect/495.go +++ b/logic/service/fight/effect/495.go @@ -12,12 +12,12 @@ type Effect495 struct { } func (e *Effect495) OnSkill() bool { - if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { // 对手处于异常状态 + if e.OpponentInput().StatEffect_Exist(info.EnumPetStatus(e.Args()[0].IntPart())) { // 对手处于异常状态 chance := 30 // 固定30% success, _, _ := e.Input.Player.Roll(chance, 100) if success { // 秒杀对手 - e.Ctx().Opp.CurPet[0].Info.Hp = 0 + e.OpponentInput().CurPet[0].Info.Hp = 0 } } diff --git a/logic/service/fight/effect/496.go b/logic/service/fight/effect/496.go index 4a497361..430c162b 100644 --- a/logic/service/fight/effect/496.go +++ b/logic/service/fight/effect/496.go @@ -14,8 +14,8 @@ type Effect496 struct { func (e *Effect496) SkillHit_ex() bool { if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Crit != 0 { // 如果造成了致命一击,恢复所有体力 - maxHp := e.Ctx().Our.CurPet[0].GetMaxHP() - e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, maxHp) + maxHp := e.CarrierInput().CurPet[0].GetMaxHP() + e.CarrierInput().Heal(e.CarrierInput(), &action.SelectSkillAction{}, maxHp) } return true diff --git a/logic/service/fight/effect/497.go b/logic/service/fight/effect/497.go index 486c4d92..9265fed0 100644 --- a/logic/service/fight/effect/497.go +++ b/logic/service/fight/effect/497.go @@ -22,7 +22,7 @@ func (e *Effect457) ComparePre(fattack *action.SelectSkillAction, sattack *actio return true } //先手是自己 - if fattack.PlayerID == e.Ctx().Our.UserID { + if fattack.PlayerID == e.CarrierInput().UserID { if sattack != nil { originalSkill, _ := deepcopy.Anything(sattack.SkillEntity) //备份技能 @@ -50,7 +50,7 @@ func (e *Effect457) ComparePre(fattack *action.SelectSkillAction, sattack *actio func (e *Effect457) TurnEnd() { - for _, v := range e.Ctx().Our.CurPet[0].Skills { + for _, v := range e.CarrierInput().CurPet[0].Skills { if v.XML.ID == e.reid { v = e.org diff --git a/logic/service/fight/effect/498.go b/logic/service/fight/effect/498.go index 07e24633..9cdc4781 100644 --- a/logic/service/fight/effect/498.go +++ b/logic/service/fight/effect/498.go @@ -21,7 +21,7 @@ func (e *Effect498) ActionStart(a, b *action.SelectSkillAction) bool { return true } - if !e.Ctx().Opp.StatEffect_Exist(input.StatusSleep) { + if !e.OpponentInput().StatEffect_Exist(input.StatusSleep) { return true } e.Ctx().SkillEntity.XML.CritRate += int(e.Args()[1].IntPart()) diff --git a/logic/service/fight/effect/500.go b/logic/service/fight/effect/500.go index 3ace5032..70d0b0c9 100644 --- a/logic/service/fight/effect/500.go +++ b/logic/service/fight/effect/500.go @@ -16,7 +16,7 @@ func (e *Effect500) SkillHit() bool { return true } - if e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Fear) { + if e.OpponentInput().StatEffect_Exist(info.PetStatus.Fear) { // 伤害翻倍 e.Ctx().SkillEntity.XML.Power *= 2 } diff --git a/logic/service/fight/effect/501.go b/logic/service/fight/effect/501.go index a9a073d7..632f51b4 100644 --- a/logic/service/fight/effect/501.go +++ b/logic/service/fight/effect/501.go @@ -12,12 +12,12 @@ type Effect501 struct { func (e *Effect501) Skill_Use_ex() bool { damageThreshold := int(e.Args()[0].IntPart()) - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage if damageDone.IntPart() < int64(damageThreshold) { effectType := int8(e.Args()[1].IntPart()) // XX类型 effectValue := int8(e.Args()[2].IntPart()) // 等级-n - e.Ctx().Opp.SetProp(e.Ctx().Our, effectType, -effectValue) + e.OpponentInput().SetProp(e.CarrierInput(), effectType, -effectValue) } diff --git a/logic/service/fight/effect/503.go b/logic/service/fight/effect/503.go index 3a9e398b..b56b113c 100644 --- a/logic/service/fight/effect/503.go +++ b/logic/service/fight/effect/503.go @@ -16,7 +16,7 @@ type Effect503 struct { } func (e *Effect503) Skill_Use() bool { - damageDone := e.Ctx().Our.SumDamage + damageDone := e.CarrierInput().SumDamage e.damageThreshold = int(e.Args()[0].IntPart()) if damageDone.IntPart() < int64(e.damageThreshold) { @@ -32,7 +32,7 @@ func (e *Effect503) Action_end_ex() bool { Type: info.DamageType.Fixed, Damage: fixedDamage, } - e.Ctx().Opp.Damage(e.Ctx().Our, damageZone) + e.OpponentInput().Damage(e.CarrierInput(), damageZone) e.triggered = false } return true diff --git a/logic/service/fight/effect/504.go b/logic/service/fight/effect/504.go index c26c792b..51a669db 100644 --- a/logic/service/fight/effect/504.go +++ b/logic/service/fight/effect/504.go @@ -17,14 +17,14 @@ func (e *Effect504) OnSkill() bool { if success { // 令对手害怕 - fearEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, int(info.PetStatus.Fear)) + fearEffect := e.CarrierInput().InitEffect(input.EffectType.Status, int(info.PetStatus.Fear)) if fearEffect != nil { - e.Ctx().Opp.AddEffect(e.Ctx().Our, fearEffect) + e.OpponentInput().AddEffect(e.CarrierInput(), fearEffect) } } else { for i, effectId := range e.SideEffectArgs[1:] { if effectId != 0 { - e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), int8(effectId)) + e.OpponentInput().SetProp(e.CarrierInput(), int8(i), int8(effectId)) } } diff --git a/logic/service/fight/effect/573_587_591_592_594_596_597_598.go b/logic/service/fight/effect/573_587_591_592_594_596_597_598.go index 9fb53e10..3f0a0438 100644 --- a/logic/service/fight/effect/573_587_591_592_594_596_597_598.go +++ b/logic/service/fight/effect/573_587_591_592_594_596_597_598.go @@ -101,7 +101,7 @@ type Effect591Sub struct { } func (e *Effect591Sub) ComparePre(fattack, sattack *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if fattack == nil || fattack.PlayerID == e.Ctx().Our.UserID { diff --git a/logic/service/fight/effect/621_625.go b/logic/service/fight/effect/621_625.go index ddf4c0df..dd33f81d 100644 --- a/logic/service/fight/effect/621_625.go +++ b/logic/service/fight/effect/621_625.go @@ -89,7 +89,7 @@ type Effect623Sub struct { } func (e *Effect623Sub) ActionStart(a, b *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if e.Ctx().SkillEntity == nil || e.Ctx().SkillEntity.Category() == info.Category.STATUS { @@ -122,7 +122,7 @@ type Effect624Sub struct { } func (e *Effect624Sub) DamageSubEx(zone *info.DamageZone) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if zone == nil || zone.Type != info.DamageType.Red || len(e.Args()) < 2 { diff --git a/logic/service/fight/effect/627_631.go b/logic/service/fight/effect/627_631.go index d2141a58..f400de85 100644 --- a/logic/service/fight/effect/627_631.go +++ b/logic/service/fight/effect/627_631.go @@ -9,6 +9,11 @@ import ( "github.com/alpacahq/alpacadecimal" ) +type ownerEffect interface { + input.Effect + IsOwner() bool +} + func clearStatusEffects(target *input.Input, statusID int) bool { cleared := false for _, eff := range target.Effects { @@ -25,8 +30,8 @@ func clearStatusEffects(target *input.Input, statusID int) bool { return cleared } -func shouldAdjustNextAttackPriority(e input.Effect, fattack, sattack *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { +func shouldAdjustNextAttackPriority(e ownerEffect, fattack, sattack *action.SelectSkillAction) bool { + if !e.IsOwner() { return false } if fattack == nil || fattack.PlayerID == e.Ctx().Our.UserID { diff --git a/logic/service/fight/effect/632_636.go b/logic/service/fight/effect/632_636.go index 5c25b644..c7e65c12 100644 --- a/logic/service/fight/effect/632_636.go +++ b/logic/service/fight/effect/632_636.go @@ -46,7 +46,7 @@ func (e *Effect632Sub) SetArgs(t *input.Input, a ...int) { } func (e *Effect632Sub) ActionStart(a, b *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if e.Ctx().SkillEntity == nil || e.Ctx().SkillEntity.Category() == info.Category.STATUS { diff --git a/logic/service/fight/effect/886_890.go b/logic/service/fight/effect/886_890.go index 7f228857..6b4687aa 100644 --- a/logic/service/fight/effect/886_890.go +++ b/logic/service/fight/effect/886_890.go @@ -27,7 +27,7 @@ func (e *Effect886Sub) CalculatePre() bool { if len(e.Args()) == 0 || e.Ctx().SkillEntity == nil || e.Ctx().SkillEntity.Category() == info.Category.STATUS { return true } - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if e.Ctx().Opp == nil || e.Ctx().Opp.CurPet[0] == nil { diff --git a/logic/service/fight/effect/effect_164.go b/logic/service/fight/effect/effect_164.go index 4cf062d5..2af02798 100644 --- a/logic/service/fight/effect/effect_164.go +++ b/logic/service/fight/effect/effect_164.go @@ -11,7 +11,7 @@ type Effect164 struct { func (e *Effect164) Action_end_ex() bool { //魂印特性有不在场的情况,绑定时候将精灵和特性绑定 - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } if e.Ctx().SkillEntity == nil { diff --git a/logic/service/fight/effect/effect_481.go b/logic/service/fight/effect/effect_481.go index 62b5094e..067b982c 100644 --- a/logic/service/fight/effect/effect_481.go +++ b/logic/service/fight/effect/effect_481.go @@ -13,7 +13,7 @@ type Effect481 struct { func (e *Effect481) ComparePre(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } diff --git a/logic/service/fight/effect/effect_EffectConditionalAddDamage.go b/logic/service/fight/effect/effect_EffectConditionalAddDamage.go index c7eab7ff..70847309 100644 --- a/logic/service/fight/effect/effect_EffectConditionalAddDamage.go +++ b/logic/service/fight/effect/effect_EffectConditionalAddDamage.go @@ -66,7 +66,7 @@ func (e *EffectConditionalAddDamage) OnSkill() bool { return true } - e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ + e.OpponentInput().Damage(e.CarrierInput(), &info.DamageZone{ Type: info.DamageType.Fixed, Damage: e.Args()[0], }) @@ -80,27 +80,27 @@ func (e *EffectConditionalAddDamage) OnSkill() bool { // conditionIsBurned:判断对方是否处于烧伤状态 func conditionIsBurned(e *EffectConditionalAddDamage) bool { - return e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Burned) + return e.OpponentInput().StatEffect_Exist(info.PetStatus.Burned) } // conditionIsFrozen:判断对方是否处于冻伤状态 func conditionIsFrozen(e *EffectConditionalAddDamage) bool { - return e.Ctx().Opp.StatEffect_Exist(info.PetStatus.Frozen) + return e.OpponentInput().StatEffect_Exist(info.PetStatus.Frozen) } // conditionIsTypeX:判断对方是否为X属性对方为X性则附加n点伤害 func conditionIsTypeX(e *EffectConditionalAddDamage) bool { // 示例:假设Args[0]为目标属性值,判断对方属性是否匹配 - return e.Ctx().Opp.CurPet[0].Info.Gender == int(e.Args()[0].IntPart()) + return e.OpponentInput().CurPet[0].Info.Gender == int(e.Args()[0].IntPart()) } // conditionIsAbnormal:判断对方是否处于任意异常状态 func conditionIsAbnormal(e *EffectConditionalAddDamage) bool { - return e.Ctx().Opp.StatEffect_Exist_all() + return e.OpponentInput().StatEffect_Exist_all() } // conditionPropDown:判断对方是否处于能力下降状态 func conditionPropDown(e *EffectConditionalAddDamage) bool { - return e.Ctx().Opp.HasPropSub() + return e.OpponentInput().HasPropSub() } diff --git a/logic/service/fight/effect/effect_addlevel.go b/logic/service/fight/effect/effect_addlevel.go index b0a32d31..c3c67e41 100644 --- a/logic/service/fight/effect/effect_addlevel.go +++ b/logic/service/fight/effect/effect_addlevel.go @@ -179,7 +179,7 @@ type Effect441 struct { } func (e *Effect441) ActionStart(a, b *action.SelectSkillAction) bool { - if e.ID().GetCatchTime() != e.Ctx().Our.CurPet[0].Info.CatchTime { + if !e.IsOwner() { return true } //fmt.Println(e.Ctx().SkillEntity) diff --git a/logic/service/fight/effect/effect_attr.go b/logic/service/fight/effect/effect_attr.go index a4dd5711..e3fe5ff1 100644 --- a/logic/service/fight/effect/effect_attr.go +++ b/logic/service/fight/effect/effect_attr.go @@ -95,8 +95,8 @@ func (e *EffectPropSyncReverse) OnSkill() bool { if e.opppet != nil { return true } - e.ourpet = e.Ctx().Our.CurPet[0] - e.opppet = e.Ctx().Opp.CurPet[0] + e.ourpet = e.CarrierInput().CurPet[0] + e.opppet = e.OpponentInput().CurPet[0] e.can = true e.active(true) diff --git a/logic/service/fight/node/node.go b/logic/service/fight/node/node.go index 6c1c772c..3e09d979 100644 --- a/logic/service/fight/node/node.go +++ b/logic/service/fight/node/node.go @@ -74,6 +74,15 @@ func (e *EffectNode) TargetInput() *input.Input { func (e *EffectNode) OpponentInput() *input.Input { return e.Ctx().Opp } + +// IsOwner reports whether the current phase's Our side owns this effect. +func (e *EffectNode) IsOwner() bool { + if e.Ctx().Our == nil || len(e.Ctx().Our.CurPet) == 0 || e.Ctx().Our.CurPet[0] == nil { + return false + } + return e.ID().GetCatchTime() == e.Ctx().Our.CurPet[0].Info.CatchTime +} + func (e *EffectNode) Ctx() *input.Ctx { return &e.EffectContextHolder.Ctx