refactor(fight/effect): 重构能力操作类型枚举命名,统一使用大写形式(ADD/SUB/COPY/RESET)并更新相关调用点
This commit is contained in:
38
logic/service/player/cmd.go
Normal file
38
logic/service/player/cmd.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package player
|
||||
|
||||
import "blazing/logic/service/fight/info"
|
||||
|
||||
func (p *Player) SendAttackValue(b info.AttackValueS) {
|
||||
t1 := NewTomeeHeader(2505, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
|
||||
}
|
||||
|
||||
func (p *Player) SendChangePet(b info.ChangePetInfo) {
|
||||
t1 := NewTomeeHeader(2407, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
|
||||
}
|
||||
func (p *Player) SendReadyToFightInfo(b info.FightStartOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2504, p.Info.UserID)
|
||||
p.SendPack(t1.Pack(&b))
|
||||
}
|
||||
func (p *Player) SendNoteReadyToFightInfo(b info.NoteReadyToFightInfo) {
|
||||
t1 := NewTomeeHeader(2503, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
}
|
||||
func (p *Player) SendFightEndInfo(b info.FightOverInfo) {
|
||||
t1 := NewTomeeHeader(2506, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b))
|
||||
p.FightC = nil
|
||||
}
|
||||
|
||||
func (p *Player) CatchPetInfo(b info.CatchMonsterOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2409, p.Info.UserID)
|
||||
p.SendPack(t1.Pack(&b))
|
||||
|
||||
}
|
||||
119
logic/service/player/fight.go
Normal file
119
logic/service/player/fight.go
Normal file
@@ -0,0 +1,119 @@
|
||||
package player
|
||||
|
||||
import (
|
||||
"blazing/logic/service/common"
|
||||
"blazing/logic/service/fight/info"
|
||||
)
|
||||
|
||||
// 邀请玩家加入战斗 邀请者,被邀请者,邀请模式
|
||||
func (lw *Player) InvitePlayerToBattle(pinfo *info.PVPinfo) {
|
||||
lw.PVPinfo = pinfo
|
||||
Mainplayer.Range(func(key uint32, value *Player) bool {
|
||||
|
||||
if key == uint32(lw.PVPinfo.PlayerID) {
|
||||
|
||||
value.HavePVPinfo = append([]*Player{value}, value.HavePVPinfo...)
|
||||
t1 := NewTomeeHeader(2501, value.Info.UserID)
|
||||
t := info.NoteInviteToFightOutboundInfo{
|
||||
UserID: lw.Info.UserID,
|
||||
Nick: lw.Info.Nick,
|
||||
Mode: pinfo.Mode,
|
||||
}
|
||||
value.SendPack(t1.Pack(&t))
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// 取消对战邀请
|
||||
func (lw *Player) CancelBattle() {
|
||||
|
||||
if lw.PVPinfo == nil {
|
||||
return
|
||||
}
|
||||
Mainplayer.Range(func(key uint32, value *Player) bool {
|
||||
|
||||
if key == uint32(lw.PVPinfo.PlayerID) {
|
||||
for idx, v := range value.HavePVPinfo {
|
||||
if v != nil && v.GetInfo().UserID == lw.PVPinfo.PlayerID {
|
||||
value.HavePVPinfo = append(value.HavePVPinfo[:idx], value.HavePVPinfo[idx+1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
lw.PVPinfo = nil
|
||||
}
|
||||
func (lw *Player) CanBattle() bool {
|
||||
|
||||
for _, v := range lw.Info.PetList {
|
||||
if v.Hp > 0 {
|
||||
return true
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return false
|
||||
}
|
||||
func (p *Player) SendLoadPercent(b info.LoadPercentOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2441, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
}
|
||||
|
||||
// 同意对战
|
||||
func (lw *Player) AgreeBattle(userid, flag uint32, mode info.EnumBattleMode) (bool, common.PlayerI) {
|
||||
|
||||
defer func(p *Player) {
|
||||
p.HavePVPinfo = make([]*Player, 0)
|
||||
|
||||
}(lw) //删除对方的邀请信息
|
||||
|
||||
for _, v := range lw.HavePVPinfo {
|
||||
if v == nil || v.Info.UserID != userid || v.PVPinfo == nil {
|
||||
continue
|
||||
|
||||
}
|
||||
t1 := NewTomeeHeader(2502, v.Info.UserID)
|
||||
ret := &info.S2C_NOTE_HANDLE_FIGHT_INVITE{
|
||||
UserID: lw.Info.UserID,
|
||||
Nick: lw.Info.Nick,
|
||||
}
|
||||
|
||||
if flag == 0 { //拒绝对战
|
||||
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
if !lw.IsLogin { //玩家未登录
|
||||
ret.Result = 4
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
if v.PVPinfo.PlayerID == userid && v.PVPinfo.Mode == mode { //成功找到,同意对战
|
||||
if lw.CanBattle() {
|
||||
ret.Result = 1
|
||||
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return true, v
|
||||
|
||||
} else {
|
||||
ret.Result = 3
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false, nil
|
||||
|
||||
} //如果对方掉线
|
||||
return false, nil
|
||||
}
|
||||
@@ -252,19 +252,7 @@ func (p *Player) SendPack(b []byte) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *Player) SendAttackValue(b info.AttackValueS) {
|
||||
t1 := NewTomeeHeader(2505, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
|
||||
}
|
||||
|
||||
func (p *Player) SendChangePet(b info.ChangePetInfo) {
|
||||
t1 := NewTomeeHeader(2407, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
|
||||
}
|
||||
|
||||
func (p *Player) Cheak(b error) {
|
||||
if b != nil {
|
||||
@@ -273,27 +261,6 @@ func (p *Player) Cheak(b error) {
|
||||
|
||||
}
|
||||
|
||||
func (p *Player) SendReadyToFightInfo(b info.FightStartOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2504, p.Info.UserID)
|
||||
p.SendPack(t1.Pack(&b))
|
||||
}
|
||||
func (p *Player) SendNoteReadyToFightInfo(b info.NoteReadyToFightInfo) {
|
||||
t1 := NewTomeeHeader(2503, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
}
|
||||
func (p *Player) SendFightEndInfo(b info.FightOverInfo) {
|
||||
t1 := NewTomeeHeader(2506, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b))
|
||||
p.FightC = nil
|
||||
}
|
||||
|
||||
func (p *Player) CatchPetInfo(b info.CatchMonsterOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2409, p.Info.UserID)
|
||||
p.SendPack(t1.Pack(&b))
|
||||
|
||||
}
|
||||
|
||||
func LeaveMap(c common.PlayerI) {
|
||||
t := NewTomeeHeader(2002, c.GetInfo().UserID)
|
||||
@@ -415,116 +382,3 @@ func (lw *Player) IsNewPlayer() bool {
|
||||
}
|
||||
return false // 全部等于3则返回false
|
||||
}
|
||||
|
||||
// 邀请玩家加入战斗 邀请者,被邀请者,邀请模式
|
||||
func (lw *Player) InvitePlayerToBattle(pinfo *info.PVPinfo) {
|
||||
lw.PVPinfo = pinfo
|
||||
Mainplayer.Range(func(key uint32, value *Player) bool {
|
||||
|
||||
if key == uint32(lw.PVPinfo.PlayerID) {
|
||||
|
||||
value.HavePVPinfo = append([]*Player{value}, value.HavePVPinfo...)
|
||||
t1 := NewTomeeHeader(2501, value.Info.UserID)
|
||||
t := info.NoteInviteToFightOutboundInfo{
|
||||
UserID: lw.Info.UserID,
|
||||
Nick: lw.Info.Nick,
|
||||
Mode: pinfo.Mode,
|
||||
}
|
||||
value.SendPack(t1.Pack(&t))
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// 取消对战邀请
|
||||
func (lw *Player) CancelBattle() {
|
||||
|
||||
if lw.PVPinfo == nil {
|
||||
return
|
||||
}
|
||||
Mainplayer.Range(func(key uint32, value *Player) bool {
|
||||
|
||||
if key == uint32(lw.PVPinfo.PlayerID) {
|
||||
for idx, v := range value.HavePVPinfo {
|
||||
if v != nil && v.GetInfo().UserID == lw.PVPinfo.PlayerID {
|
||||
value.HavePVPinfo = append(value.HavePVPinfo[:idx], value.HavePVPinfo[idx+1:]...)
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
})
|
||||
|
||||
lw.PVPinfo = nil
|
||||
}
|
||||
func (lw *Player) CanBattle() bool {
|
||||
|
||||
for _, v := range lw.Info.PetList {
|
||||
if v.Hp > 0 {
|
||||
return true
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return false
|
||||
}
|
||||
func (p *Player) SendLoadPercent(b info.LoadPercentOutboundInfo) {
|
||||
t1 := NewTomeeHeader(2441, p.Info.UserID)
|
||||
|
||||
p.SendPack(t1.Pack(&b)) //准备包由各自发,因为协议不一样
|
||||
}
|
||||
|
||||
// 同意对战
|
||||
func (lw *Player) AgreeBattle(userid, flag uint32, mode info.EnumBattleMode) (bool, common.PlayerI) {
|
||||
|
||||
defer func(p *Player) {
|
||||
p.HavePVPinfo = make([]*Player, 0)
|
||||
|
||||
}(lw) //删除对方的邀请信息
|
||||
|
||||
for _, v := range lw.HavePVPinfo {
|
||||
if v == nil || v.Info.UserID != userid || v.PVPinfo == nil {
|
||||
continue
|
||||
|
||||
}
|
||||
t1 := NewTomeeHeader(2502, v.Info.UserID)
|
||||
ret := &info.S2C_NOTE_HANDLE_FIGHT_INVITE{
|
||||
UserID: lw.Info.UserID,
|
||||
Nick: lw.Info.Nick,
|
||||
}
|
||||
|
||||
if flag == 0 { //拒绝对战
|
||||
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
if !lw.IsLogin { //玩家未登录
|
||||
ret.Result = 4
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
if v.PVPinfo.PlayerID == userid && v.PVPinfo.Mode == mode { //成功找到,同意对战
|
||||
if lw.CanBattle() {
|
||||
ret.Result = 1
|
||||
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return true, v
|
||||
|
||||
} else {
|
||||
ret.Result = 3
|
||||
v.SendPack(t1.Pack(ret))
|
||||
return false, nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false, nil
|
||||
|
||||
} //如果对方掉线
|
||||
return false, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user