public static FakeNetworkClient CreateFakeNetworkClient()
{
FakeNetworkClient client = new FakeNetworkClient();
_sessionManager.AddSession(client);
long id = new Random().Next(0, 999999);
AccountDTO account = new AccountDTO()
{
AccountId = id,
Authority = AuthorityType.Admin,
LastSession = 12345,
Name = "test" + id,
Password = "******"
};
DAOFactory.AccountDAO.InsertOrUpdate(ref account);
// register for account login
ServiceFactory.Instance.CommunicationService.RegisterAccountLogin(account.Name, 12345);
// OpenNosEntryPoint -> LoadCharacterList
client.ReceivePacket("12345");
client.ReceivePacket(account.Name);
client.ReceivePacket("test");
string clistStart = WaitForPacket(client);
string clistEnd = WaitForPacket(client);
// creation of character
client.ReceivePacket($"Char_NEW {account.Name} 2 1 0 9");
List<string> clistAfterCreate = WaitForPackets(client, 3);
CListPacket cListPacket = PacketFactory.Deserialize<CListPacket>(clistAfterCreate[1]);
// select character
client.ReceivePacket($"select {cListPacket.Slot}");
string okPacket = WaitForPacket(client);
// start game
client.ReceivePacket("game_start");
List<string> gameStartPacketsFirstPart = WaitForPackets(client, "p_clear");
List<string> gameStartPacketsSecondPart = WaitForPackets(client, "p_clear");
// wait 100 milliseconds to be sure initialization has been finished
Thread.Sleep(100);
return client;
}