feat(fight): 更新战斗效果计算逻辑并修复宠物信息返回

- 在PetBargeListInfo中添加EnCntCnt字段并修复返回值
- 将effect_195和effect_566中的SkillHit方法重命名为CalculatePre
- 在effect_566中添加can字段
- 更新fightc.go中的技能处理流程,将SkillHit调用改为CalculatePre
- 在接口定义中将Calculate_Pre重命名为CalculatePre
This commit is contained in:
2026-01-05 00:54:52 +08:00
parent aafdb6238f
commit 9c3fadbd9c
6 changed files with 24 additions and 14 deletions

View File

@@ -231,12 +231,11 @@ func (h Controller) GetPetBargeList(data *pet.PetBargeListInboundInfo, player *p
ret.PetBargeList = append(ret.PetBargeList, pet.PetBargeListInfo{
PetId: v.PetId,
EnCntCnt: 1,
IsCatched: v.CatchedCount,
IsKilled: v.KilledCount,
})
}
return &pet.PetBargeListOutboundInfo{
PetBargeList: make([]pet.PetBargeListInfo, 0),
}, 0
return ret, 0
}

View File

@@ -20,13 +20,13 @@ func init() {
}
// 命中之后
func (e *Effect195) OnSkill() bool {
// // 命中之后
// func (e *Effect195) OnSkill() bool {
e.Ctx().Opp.CancelTurn(e.Ctx().Our)
return true
}
func (e *Effect195) SkillHit() bool {
// e.Ctx().Opp.CancelTurn(e.Ctx().Our)
// return true
// }
func (e *Effect195) CalculatePre() bool {
e.Ctx().Opp.Prop[1] = utils.Min(e.Ctx().Opp.Prop[1], 0)
e.Ctx().Opp.Prop[3] = utils.Min(e.Ctx().Opp.Prop[3], 0)

View File

@@ -11,6 +11,7 @@ import (
*/
type Effect566 struct {
node.EffectNode
can bool
}
func init() {
@@ -23,10 +24,10 @@ func init() {
// 命中之后
func (e *Effect566) OnSkill() bool {
e.Ctx().Opp.CancelTurn(e.Ctx().Our)
//e.Ctx().Opp.CancelTurn(e.Ctx().Our)
return true
}
func (e *Effect566) SkillHit() bool {
func (e *Effect566) CalculatePre() bool {
if e.Ctx().SkillEntity == nil {
return true
}

View File

@@ -25,6 +25,12 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, skill *info
return true
})
attacker.Exec(func(effect input.Effect) bool {
//计算变威力
effect.Ctx().SkillEntity = skill
effect.SkillHit() //相当于先调整基础命中,不光调整命中,这里还能调整技能属性,暴击率
return true
})
var originalProps [2][6]int8
var originalPetInfo [2]model.PetInfo
originalProps[0], originalProps[1] = attacker.Prop, defender.Prop //先复制能力提升
@@ -33,7 +39,7 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, skill *info
attacker.Exec(func(effect input.Effect) bool {
//计算变威力
effect.Ctx().SkillEntity = skill
effect.SkillHit() //相当于先调整基础命中,不光调整命中,这里还能调整技能属性,暴击率
effect.CalculatePre() //相当于先调整基础命中,不光调整命中,这里还能调整技能属性,暴击率
return true
})
//技能命中+效果失效 这里就是修改效果命中为false

View File

@@ -18,8 +18,8 @@ type Effect interface {
SkillHit() bool //这是是命中后的对技能的修改,比如变威力
SkillHit_ex() bool // 技能命中前触发//预处理受击技能 被攻击方效果,比如受击时无效技能这样
//Calculate_Pre() bool //视为 无视效果,相当于这里对敌方的修改
OnSkill() bool // 触发on miss onhit
CalculatePre() bool //视为 无视效果,相当于这里对敌方的修改
OnSkill() bool // 触发on miss onhit
//Skill_Can() bool //使用技能 可以取消用技能节点 技能无效节点锁定伤害加上
Damage_ADD(*info.DamageZone) bool // 攻击前触发 ,这时候就是+区间

View File

@@ -19,6 +19,10 @@ func (e *EffectNode) SkillHit() bool {
func (e *EffectNode) SkillHit_ex() bool {
return true
}
func (e *EffectNode) CalculatePre() bool {
return true
}
func (e *EffectNode) OnSkill() bool {
// if e.Effect != nil {
// if e.Hit() { //没命中