package logic import ( "ecs/proto" "ecs/proto/pb" "ecs/servers/game/data" "github.com/oylshe1314/framework/util" ) func (this *Player) EnterBattle(sceneTable *data.Scene) { this.Temp.Fighting = true this.Temp.RandSeed = util.DefaultRandom.Uint64() this.copyBattle(sceneTable) this.enterScene(uint32(sceneTable.Id)) } func (this *Player) EndBattle() { this.Temp.Fighting = false this.Temp.RandSeed = 0 this.enterScene(0) } func (this *Player) copyBattle(sceneTable *data.Scene) { var ack, err = this.virtualBattle(sceneTable) if err != nil { _ = this.TipNotice(err) return } if ack.Succeed { this.PassedCopy(sceneTable, ack.Score) } _ = this.Send(uint16(pb.ModId_ModuleBattle), uint16(pb.MsgId_ModBattleEnter), ack) } func (this *Player) virtualBattle(sceneTable *data.Scene) (*pb.BattleEnterAck, proto.TipError) { return &pb.BattleEnterAck{ SceneId: uint32(sceneTable.Id), Succeed: false, Score: 0, Heroes: nil, Enemies: nil, BattleRounds: 0, RoundList: nil, RewardList: nil, }, nil }