refactor(fight): 重构战斗模块
- 移除未使用的结构体和接口 - 优化战斗准备和邀请逻辑 - 调整玩家和怪物信息的处理方式 - 更新战斗相关的数据结构 - 重构战斗模式和邀请相关代码
This commit is contained in:
@@ -4,6 +4,9 @@ import (
|
||||
"blazing/common/data/socket"
|
||||
"blazing/common/socket/errorcode"
|
||||
"blazing/common/socket/handler"
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"blazing/logic/service/fight"
|
||||
"blazing/logic/service/fight/info"
|
||||
"blazing/modules/blazing/model"
|
||||
@@ -11,15 +14,15 @@ import (
|
||||
"github.com/jinzhu/copier"
|
||||
)
|
||||
|
||||
func (h Controller) OnPlayerFightNpcMonster(data *fight.FightNpcMonsterInboundInfo, c *socket.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h Controller) OnPlayerFightNpcMonster(data *info.FightNpcMonsterInboundInfo, c *socket.Player) (result *info.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
c.IsFighting = true
|
||||
t1 := handler.NewTomeeHeader(2503, c.Info.UserID)
|
||||
|
||||
ttt := info.NoteReadyToFightInfo{
|
||||
OwnerID: data.Head.UserID,
|
||||
FightId: 3,
|
||||
}
|
||||
ttt.OurInfo = info.FightUserInfo{UserID: c.Info.UserID, Nick: c.Info.Nick}
|
||||
|
||||
copier.Copy(&ttt.OurInfo, &c.Info)
|
||||
len := len(c.Info.PetList)
|
||||
ttt.OurPetList = make([]info.ReadyFightPetInfo, len)
|
||||
for i := 0; i < len; i++ {
|
||||
@@ -31,61 +34,49 @@ func (h Controller) OnPlayerFightNpcMonster(data *fight.FightNpcMonsterInboundIn
|
||||
}
|
||||
|
||||
ttt.OpponentInfo = info.FightUserInfo{UserID: 0}
|
||||
ttt.OpponentPetList = []info.ReadyFightPetInfo{{ID: 1,
|
||||
Level: 100,
|
||||
MaxHp: 100,
|
||||
SkillListLen: 4,
|
||||
Hp: 100}}
|
||||
for i := 0; i < 4; i++ {
|
||||
ttt.OpponentPetList[0].SkillList[i] = model.SkillInfo{ID: 10001, Pp: 1}
|
||||
refpet := c.OgreInfo.Data[data.Number]
|
||||
|
||||
dv := rand.New(rand.NewSource(time.Now().UnixNano())).Intn(32)
|
||||
mo := model.GenPetInfo(refpet.Id, uint32(dv), 0, 1006, refpet.Shiny, refpet.Lv)
|
||||
ttt.OpponentPetList = make([]info.ReadyFightPetInfo, 1)
|
||||
|
||||
err1 := copier.CopyWithOption(&ttt.OpponentPetList[0], &mo, copier.Option{IgnoreEmpty: true, DeepCopy: true})
|
||||
if err1 != nil {
|
||||
panic(err)
|
||||
}
|
||||
c.SendPack(t1.Pack(&ttt))
|
||||
|
||||
fight.NewFight(&ttt, c) //把两个玩家都传进去
|
||||
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
// 准备战斗
|
||||
func (h Controller) OnReadyToFight(data *fight.ReadyToFightInboundInfo, c *socket.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h Controller) OnReadyToFight(data *info.ReadyToFightInboundInfo, c *socket.Player) (result *info.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
|
||||
t1 := handler.NewTomeeHeader(2504, c.Info.UserID)
|
||||
rett := fight.FightStartOutboundInfo{
|
||||
IsCanAuto: 0,
|
||||
|
||||
Info2: fight.FightPetInfo{
|
||||
UserID: 0,
|
||||
ID: 1,
|
||||
Hp: 1000,
|
||||
MaxHp: 1000,
|
||||
Level: 1,
|
||||
CatchTime: 0,
|
||||
Catchable: 1,
|
||||
BattleLV: [6]byte{1, 1, 1, 1, 1, 1}},
|
||||
}
|
||||
copier.Copy(&rett.Info1, &c.Info.PetList[0])
|
||||
rett.Info1.UserID = c.Info.UserID
|
||||
c.SendPack(t1.Pack(&rett))
|
||||
fight.ReadyFight(c)
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
// 接收战斗或者取消战斗的包
|
||||
func (h Controller) OnPlayerHandleFightInvite(data *fight.HandleFightInviteInboundInfo, c *socket.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h Controller) OnPlayerHandleFightInvite(data *info.HandleFightInviteInboundInfo, c *socket.Player) (result *info.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
|
||||
return nil, -1
|
||||
}
|
||||
|
||||
// 使用技能包
|
||||
func (h Controller) UseSkill(data *fight.UseSkillInboundInfo, c *socket.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h Controller) UseSkill(data *info.UseSkillInboundInfo, c *socket.Player) (result *info.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
|
||||
return nil, 0
|
||||
}
|
||||
|
||||
// 战斗逃跑
|
||||
func (h Controller) Escape(data *fight.EscapeFightInboundInfo, c *socket.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
func (h Controller) Escape(data *info.EscapeFightInboundInfo, c *socket.Player) (result *info.NullOutboundInfo, err errorcode.ErrorCode) {
|
||||
|
||||
defer func() {
|
||||
//战斗结束Escape
|
||||
ttt := handler.NewTomeeHeader(2506, c.Info.UserID)
|
||||
|
||||
c.SendPack(ttt.Pack(&fight.FightOverInfo{
|
||||
c.SendPack(ttt.Pack(&info.FightOverInfo{
|
||||
Reason: 0,
|
||||
}))
|
||||
c.IsFighting = false
|
||||
|
||||
Reference in New Issue
Block a user