Files
bl/logic/service/fight/info/battle.go
昔念 0e1860bdf4 ```
feat(fight): 实现精灵大乱斗模式并优化对战逻辑

新增大乱斗模式(PET_MELEE)支持,重构原有精灵王之战相关逻辑。
更新战斗初始化流程,添加随机精灵选择机制。
调整玩家匹配与取消邀请接口实现方式。
完善战斗结束处理函数,移除未实现异常抛出。
```
2025-11-15 01:53:51 +08:00

106 lines
3.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package info
import (
"github.com/tnnmigga/enum"
)
// type Battle struct {
// Rand *random.RandomXS128 //本次战斗随机数
// same []BattleInputSourceEntity //同阵营
// Round int //回合数
// BattleMode EnumBattleMode //战斗模式
// opposite []BattleInputSourceEntity //不同阵营
// Effects *NodeManager //挂载effect,实际上是给每个输入源,然后触发时候循环调用Effects ,
// //A的effect->触发死亡->这时候就应该调用对手的切换,实现effect62
// }
// 执行下一回合
// func (b *Battle) NextRound() {
// b.Round++ //回合数加1
// }
// 战斗模式
type EnumBattleMode int
var BattleMode = enum.New[struct {
PET_MELEE EnumBattleMode `enum:"3"` //乱斗模式
SINGLE_MODE EnumBattleMode `enum:"1"` // 单人模式
MULTI_MODE EnumBattleMode `enum:"2"` // 多人模式
}]()
var BattleStatus = enum.New[struct {
// 原ActionScript中的常量映射
FIGHT_WITH_NPC EnumBattleMode `enum:"3"` // 与NPC战斗
FIGHT_WITH_BOSS EnumBattleMode `enum:"2"` // 与BOSS战斗
FIGHT_WITH_PLAYER EnumBattleMode `enum:"1"` // 与玩家战斗PVP
}]()
// 玩家离线数据
type PlayerOfflineData struct {
// 可以根据需要添加字段
PlayerID int64
}
// 玩家逃脱数据
type PlayerEscapeData struct {
// 可以根据需要添加字段
PlayerID int64
}
// 玩家捕获成功数据
type PlayerCaptureSuccessData struct {
// 可以根据需要添加字段
CaptorID int64
TargetID int64
CaptureTime int64
}
// 默认结束数据
type DefaultEndData struct {
// 可以根据需要添加字段
Reason string
}
// 战斗结束原因枚举
type EnumBattleOverReason int
var BattleOverReason = enum.New[struct {
PlayerOffline EnumBattleOverReason `enum:"1"` //掉线
PlayerOVerTime EnumBattleOverReason `enum:"2"` //超时
PlayerCaptureSuccess EnumBattleOverReason `enum:"3"` //捕捉成功
DefaultEnd EnumBattleOverReason `enum:"4"` //默认结束
PlayerEscape EnumBattleOverReason `enum:"5"` //逃跑
}]()
// 战斗模式
var BattleMode_PVP = enum.New[struct {
PVP_1V1 EnumBattleMode `enum:"1"`
PVP_6V6 EnumBattleMode `enum:"2"`
}]()
var Playerinvitemap map[uint32][]Playerinvite = make(map[uint32][]Playerinvite) //玩家邀请信息 ,比如一个玩家被多人邀请对战
type Playerinvite struct { //挂载到[]Playerinvite上? 被邀请者->邀请者
InviteID uint32 // 邀请者
InviteTime EnumBattleMode //游戏模式
}
// 能力操作类型枚举
type EnumAbilityOpType string
var AbilityOpType = enum.New[struct {
ADD EnumAbilityOpType `enum:"1"` // 能力增加(强化)
SUB EnumAbilityOpType `enum:"2"` // 能力减少(弱化)
COPY EnumAbilityOpType `enum:"3"` // 复制强化/弱化
RESET EnumAbilityOpType `enum:"4"` // 能力重置
StealStrengthen EnumAbilityOpType `enum:"6"` // 吸取强化
Reverse EnumAbilityOpType `enum:"7"` // 反转强化/弱化
BounceWeaken EnumAbilityOpType `enum:"10"` // 弹弱(反弹弱化效果)
}]()