Files
bl/logic/service/fight/info/battle.go
昔念 4751594ee8 ```
feat: 更新战斗系统模型结构和Redis消息处理

- 引入gredis依赖用于Redis消息处理
- 将战斗相关的枚举和结构体从info包迁移到model包
- 更新战斗结束原因、攻击值等类型的引用路径
- 添加新的zset工具包到工作区
- 修改Redis消息处理逻辑以正确解析gredis.Message类型
- 在战斗控制器中统一使用model包下的类型定义
2026-03-04 22:47:21 +08:00

116 lines
4.7 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
// }
// 战斗模式
// BattleMode 战斗模式对应AS中的战斗类型常量
var BattleMode = enum.New[struct {
// 基础模式
FIGHT_WITH_NPC uint32 `enum:"0"` //NPC模式
SINGLE_MODE uint32 `enum:"1"` // 单人模式
MULTI_MODE uint32 `enum:"2"` // 多人模式
PET_MELEE uint32 `enum:"3"` // 宠物乱斗模式
DARK_FIGHT uint32 `enum:"4"` // 暗黑战斗
PET_TOPLEVEL uint32 `enum:"5"` // 宠物顶级战
PET_ELEMENT_FIGHT uint32 `enum:"6"` // 宠物元素战斗修正原拼写错误ELMENT → ELEMENT
FIGHT_DEMON_SPACE uint32 `enum:"7"` // 魔域战斗
BATTLE_LAB uint32 `enum:"8"` // 战斗实验室
LUCKY_BATTLE uint32 `enum:"9"` // 幸运战斗
FIGHT_ARENA uint32 `enum:"10"` // 竞技场战斗
CORE_FIGHT uint32 `enum:"11"` // 核心战斗
IMAGE_FIGHT uint32 `enum:"12"` // 镜像战斗
TOP_WAR_BEYOND uint32 `enum:"13"` // 巅峰之战·超越
HIGHER_FIGHT uint32 `enum:"14"` // 高阶战斗
GOLDEN_PALACE_FIGHT uint32 `enum:"15"` // 金殿战斗
FANTASY_PET_MELEE uint32 `enum:"16"` // 梦幻宠物乱斗
REFRACTIVE_MAGIC uint32 `enum:"17"` // 折射魔法战
PET_MELEE_FIGHT_BOSS uint32 `enum:"18"` // 宠物乱斗·打BOSS
PET_TRY_FIGHT uint32 `enum:"19"` // 宠物试玩战斗
PET_TOPLEVEL_NEW uint32 `enum:"20"` // 宠物顶级战(新版)
CATCH_LENNY_GAME uint32 `enum:"21"` // 捕捉莱尼小游戏
PEAK_JIHAD_FREE uint32 `enum:"22"` // 巅峰圣战·自由战
PEAK_JIHAD_3V3 uint32 `enum:"23"` // 巅峰圣战·3V3
GOBLINKING_BATTLE uint32 `enum:"24"` // 哥布林王战斗
DOOM_FIGHT uint32 `enum:"25"` // 末日战斗
SHOW_ROUND uint32 `enum:"26"` // 展示回合(试玩/演示)
PEAK_JIHAD_6V6 uint32 `enum:"27"` // 巅峰圣战·6V6
PEAK_JIHAD_FREE_PLAN uint32 `enum:"28"` // 巅峰圣战·自由战(计划版)
PEAK_JIHAD_6V6_JJ uint32 `enum:"29"` // 巅峰圣战·6V6竞技版
WIZARDKING_BIGFIGHT uint32 `enum:"30"` // 法老王大战
QINGLONG_COMPLETE_FIGHT uint32 `enum:"83"` // 青龙全套战斗修正原拼写COMPLELETE → COMPLETE
PEAK_JIHAD_FIGHT_WITH_FIGURE uint32 `enum:"87"` // 巅峰圣战·角色对战
PEAK_JIHAD_BIG_MELEE uint32 `enum:"88"` // 巅峰圣战·大乱斗
PEAK_JIHAD_LIMIT_AC uint32 `enum:"999"` // 巅峰圣战·限AC账号类型限制
}]()
// 玩家离线数据
type PlayerOfflineData struct {
// 可以根据需要添加字段
PlayerID int64
}
// 玩家逃脱数据
type PlayerEscapeData struct {
// 可以根据需要添加字段
PlayerID int64
}
// 玩家捕获成功数据
type PlayerCaptureSuccessData struct {
// 可以根据需要添加字段
CaptorID int64
TargetID int64
CaptureTime int64
}
// 默认结束数据
type DefaultEndData struct {
// 可以根据需要添加字段
Reason string
}
// 战斗模式
var Playerinvitemap map[uint32][]Playerinvite = make(map[uint32][]Playerinvite) //玩家邀请信息 ,比如一个玩家被多人邀请对战
type Playerinvite struct { //挂载到[]Playerinvite上? 被邀请者->邀请者
InviteID uint32 // 邀请者
InviteTime uint32 //游戏模式
}
// 能力操作类型枚举
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"` // 弹弱(反弹弱化效果)
}]()