public override void OnNewAddresssee_Handler(object sender, NewAddressseeData evntData) { var gamer = evntData.newAddresssee as IGamer; if (gamer != null) { var conectdata = new initialConectionData() { passport = gamer.Passport, manageRoomEndpoint = new Addresssee((sender as IRoom).Reciever.LockalEndPoint) }; Owner.Sender.SendMessage(new Package() { Data = conectdata, MesseggeType = MesseggeType.Passport }, gamer.RemoteEndPoint); SendRoomList(gamer.RemoteEndPoint); } else { throw new Exception("Empty new gamer"); } }
/// <summary> /// Обработка события добавления нового игрока /// </summary> /// <param name="Sender">Объект вызвавший добавление нового игрока</param> /// <param name="evntData">Данные о подключении</param> public override void OnNewAddresssee_Handler(object Sender, NewAddressseeData evntData) { if (_shut_down_room_enforced) { return; } _ready_proc_msg.Reset(); _ready_proc_newGamer.WaitOne(); if (this.mapgen == false) { this.GenerateMap(); } var room = Owner as IRoom; var gamer = evntData.newAddresssee as IGamer; //var gamer = room.Gamers.FirstOrDefault(t => t.RemoteEndPoint == evntData.newAddresssee.RemoteEndPoint); this.NewGamer(gamer); this.Send(); //обработка присоденившихся в ходе идущей игры (когда статус не WaitForStart) // .. когда стаус WaitForStart - старт игры рассылается всем при заполнении комнаты в обработчике OnAddressseeHolderFull_Handler if (status == GameStatus.Start) { this.SendStartGame(gamer); } if (status == GameStatus.EndGame) { this.SendEndGame(gamer); } _ready_proc_msg.Set(); }
/// <summary> /// Обработка события добавления нового игрока /// </summary> /// <param name="Sender">Объект вызвавший добавление нового игрока</param> /// <param name="evntData">Данные о подключении</param> public override void OnNewAddresssee_Handler(object Sender, NewAddressseeData evntData) { if (this.mapgen == false) { this.GenerateMap(); } var room = Owner as IRoom; var gamer = evntData.newAddresssee as IGamer; //var gamer = room.Gamers.FirstOrDefault(t => t.RemoteEndPoint == evntData.newAddresssee.RemoteEndPoint); this.NewGamer(gamer); //this.Send(); }
} // не нужен, требует EngineAbs public override void OnNewAddresssee_Handler(object Sender, NewAddressseeData evntData) { } // не нужен, требует EngineAbs
public abstract void OnNewAddresssee_Handler(object Sender, NewAddressseeData evntData);