diff --git a/logic/service/fight/BattleAction.go b/logic/service/fight/BattleAction.go index 0ecde835..bcfa3425 100644 --- a/logic/service/fight/BattleAction.go +++ b/logic/service/fight/BattleAction.go @@ -23,7 +23,7 @@ var PlayerOperations = enum.New[struct { }]() // Compare 比较两个1v1战斗动作的执行优先级(核心逻辑) -func Compare(a, b BattleActionI) (BattleActionI, BattleActionI) { +func (f *FightC) Compare(a, b BattleActionI) (BattleActionI, BattleActionI) { // 动作本身的优先级比较 p1 := b.Priority() - a.Priority() if p1 > 0 { // 对手优先级更高 @@ -52,7 +52,11 @@ func Compare(a, b BattleActionI) (BattleActionI, BattleActionI) { } // 比较宠物相关属性(假设Value(4)返回速度相关值) - p2 = int(bskill.PetInfo.Speed()) - int(askill.PetInfo.Speed()) + p2s := bskill.PetInfo.Info.Speed + //todo 待计算速度 + f.Opp.Exec(fn func(input.Effect) bool) + p1s := askill.PetInfo.Info.Speed + p2 = int(bskill.PetInfo.Info.Speed) - int(askill.PetInfo.Speed()) if p2 > 0 { return b, a } else if p2 < 0 { diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 8310a789..bd3d0d97 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -288,7 +288,7 @@ func (f *FightC) battleLoop() { fmt.Println("开始结算回合") var BattleActionI [2]BattleActionI - BattleActionI[0], BattleActionI[1] = Compare(p1Action, p2Action) + BattleActionI[0], BattleActionI[1] = f.Compare(p1Action, p2Action) switch faction := BattleActionI[0].(type) { case *EscapeAction: //优先逃跑 diff --git a/logic/service/fight/info/BattlePetEntity.go b/logic/service/fight/info/BattlePetEntity.go index b6accbd1..1dbe16e3 100644 --- a/logic/service/fight/info/BattlePetEntity.go +++ b/logic/service/fight/info/BattlePetEntity.go @@ -3,6 +3,7 @@ package info import ( element "blazing/common/data/Element" "blazing/common/data/xmlres" + "blazing/logic/service/fight/input" "blazing/modules/blazing/model" "fmt" "math/rand" @@ -108,6 +109,7 @@ func abs(x int8) int8 { type BattlePetEntity struct { xmlres.PetInfo Info *model.PetInfo //通过偏移赋值 + *input.Input statusConditions sync.Map // key: StatusCondition, value: int (剩余回合) Skills [4]*SkillEntity // 技能槽(最多4个技能) diff --git a/logic/service/fight/action.go b/logic/service/fight/playeraction.go similarity index 100% rename from logic/service/fight/action.go rename to logic/service/fight/playeraction.go