private void OnAnnounceRace(GameServerPacket packet) { IList <CardRace> races = new List <CardRace>(); packet.ReadByte(); // player int count = packet.ReadByte(); int available = packet.ReadInt32(); int filter = 0x1; for (int i = 0; i < 23; ++i) { if ((available & filter) != 0) { races.Add((CardRace)filter); } filter <<= 1; } races = _ai.OnAnnounceRace(count, races); int reply = 0; for (int i = 0; i < count; ++i) { reply += (int)races[i]; } Connection.Send(CtosMessage.Response, reply); }