Exemplo n.º 1
0
 private static string FormatResponse(CharacterReply response)
 => $"The character selected was:" +
 $"\nName:    {response.Name}" +
 $"\nHeight:  {response.Height}" +
 $"\nMass:    {response.Mass}" +
 $"\nGender:  {response.Gender}" +
 $"\n______________________________\n\n";
Exemplo n.º 2
0
        private void _handleCharacterReply(Packet pkt)
        {
            m_character_reply = (CharacterReply)pkt.GetShort();

            if (m_character_reply == CharacterReply.Ok || m_character_reply == CharacterReply.Deleted)
            {
                byte numCharacters = pkt.GetChar();
                pkt.GetByte();
                pkt.GetByte();

                m_character_data = new CharacterRenderData[numCharacters];

                for (int i = 0; i < numCharacters; ++i)
                {
                    CharacterRenderData nextData = new CharacterRenderData(pkt);
                    m_character_data[i] = nextData;
                    if (255 != pkt.GetByte())
                    {
                        return;                         //malformed packet - time out and signal error
                    }
                }
            }

            m_character_responseEvent.Set();
        }
Exemplo n.º 3
0
        private void _createCharacterMembers()
        {
            m_client.AddPacketHandler(new FamilyActionPair(PacketFamily.Character, PacketAction.Player), _handleCharacterPlayer, false);
            m_client.AddPacketHandler(new FamilyActionPair(PacketFamily.Character, PacketAction.Reply), _handleCharacterReply, false);

            m_character_responseEvent = new AutoResetEvent(false);
            m_character_reply         = CharacterReply.THIS_IS_WRONG;
            m_character_takeID        = -1;
            m_character_data          = null;
        }
Exemplo n.º 4
0
        public override Task <CharacterReply> GetCharacterInfo(CharacterRequest request, ServerCallContext context)
        {
            var storage = DummyStorageData.GetData();

            var character = storage.Where(x => x.Id == request.Id).FirstOrDefault();;

            var reply = new CharacterReply()
            {
                Id     = character.Id,
                Name   = character.Name,
                Height = character.Height,
                Mass   = character.Mass,
                Gender = character.Gender
            };

            return(Task.FromResult(reply));
        }
Exemplo n.º 5
0
        public bool CharacterRequest(out CharacterReply reply)
        {
            reply = CharacterReply.THIS_IS_WRONG;
            if (!m_client.ConnectedAndInitialized || !Initialized)
            {
                return(false);
            }

            Packet builder = new Packet(PacketFamily.Character, PacketAction.Request);

            if (!m_client.SendPacket(builder) || !m_character_responseEvent.WaitOne(Constants.ResponseTimeout))
            {
                return(false);
            }

            reply = CharacterReply.Ok;

            return(true);
        }
Exemplo n.º 6
0
        public void ShowCharacterReplyDialog(CharacterReply response)
        {
            DialogResourceID message;

            switch (response)
            {
            case CharacterReply.Exists: message = DialogResourceID.CHARACTER_CREATE_NAME_EXISTS; break;

            case CharacterReply.Full: message = DialogResourceID.CHARACTER_CREATE_TOO_MANY_CHARS; break;

            case CharacterReply.NotApproved: message = DialogResourceID.CHARACTER_CREATE_NAME_NOT_APPROVED; break;

            case CharacterReply.Ok: message = DialogResourceID.CHARACTER_CREATE_SUCCESS; break;

            default: throw new ArgumentOutOfRangeException(nameof(response), response, null);
            }

            var messageBox = _messageBoxFactory.CreateMessageBox(message,
                                                                 EODialogButtons.Ok,
                                                                 EOMessageBoxStyle.SmallDialogLargeHeader);

            messageBox.ShowDialog();
        }
Exemplo n.º 7
0
        private void _handleCharacterReply(Packet pkt)
        {
            m_character_reply = (CharacterReply)pkt.GetShort();

            if (m_character_reply == CharacterReply.Ok || m_character_reply == CharacterReply.Deleted)
            {
                byte numCharacters = pkt.GetChar();
                pkt.GetByte();
                pkt.GetByte();

                m_character_data = new CharacterRenderData[numCharacters];

                for (int i = 0; i < numCharacters; ++i)
                {
                    CharacterRenderData nextData = new CharacterRenderData(pkt);
                    m_character_data[i] = nextData;
                    if (255 != pkt.GetByte())
                        return; //malformed packet - time out and signal error
                }
            }

            m_character_responseEvent.Set();
        }
Exemplo n.º 8
0
        private void _createCharacterMembers()
        {
            m_client.AddPacketHandler(new FamilyActionPair(PacketFamily.Character, PacketAction.Player), _handleCharacterPlayer, false);
            m_client.AddPacketHandler(new FamilyActionPair(PacketFamily.Character, PacketAction.Reply), _handleCharacterReply, false);

            m_character_responseEvent = new AutoResetEvent(false);
            m_character_reply = CharacterReply.THIS_IS_WRONG;
            m_character_takeID = -1;
            m_character_data = null;
        }
Exemplo n.º 9
0
        public bool CharacterRequest(out CharacterReply reply)
        {
            reply = CharacterReply.THIS_IS_WRONG;
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet builder = new Packet(PacketFamily.Character, PacketAction.Request);

            if (!m_client.SendPacket(builder) || !m_character_responseEvent.WaitOne(Constants.ResponseTimeout))
                return false;

            reply = CharacterReply.Ok;

            return true;
        }
Exemplo n.º 10
0
        public bool CharacterCreate(byte gender, byte hairStyle, byte hairColor, byte race, string name, out CharacterReply reply, out CharacterRenderData[] data)
        {
            data = null;
            reply = CharacterReply.THIS_IS_WRONG;
            if (!m_client.ConnectedAndInitialized || !Initialized)
                return false;

            Packet builder = new Packet(PacketFamily.Character, PacketAction.Create);
            builder.AddShort(255);
            builder.AddShort(gender);
            builder.AddShort(hairStyle);
            builder.AddShort(hairColor);
            builder.AddShort(race);
            builder.AddByte(255);
            builder.AddBreakString(name);

            if (!m_client.SendPacket(builder) || !m_character_responseEvent.WaitOne(Constants.ResponseTimeout))
                return false;

            reply = m_character_reply;

            if (reply == CharacterReply.THIS_IS_WRONG || m_character_data == null || m_character_data.Length == 0)
                return false;

            data = m_character_data;

            return true;
        }
Exemplo n.º 11
0
 public CharacterCreateData(CharacterReply response, List <ICharacter> characters)
 {
     Response    = response;
     _characters = characters;
 }
Exemplo n.º 12
0
        public bool CharacterCreate(byte gender, byte hairStyle, byte hairColor, byte race, string name, out CharacterReply reply, out CharacterRenderData[] data)
        {
            data  = null;
            reply = CharacterReply.THIS_IS_WRONG;
            if (!m_client.ConnectedAndInitialized || !Initialized)
            {
                return(false);
            }

            Packet builder = new Packet(PacketFamily.Character, PacketAction.Create);

            builder.AddShort(255);
            builder.AddShort(gender);
            builder.AddShort(hairStyle);
            builder.AddShort(hairColor);
            builder.AddShort(race);
            builder.AddByte(255);
            builder.AddBreakString(name);

            if (!m_client.SendPacket(builder) || !m_character_responseEvent.WaitOne(Constants.ResponseTimeout))
            {
                return(false);
            }

            reply = m_character_reply;

            if (reply == CharacterReply.THIS_IS_WRONG || m_character_data == null || m_character_data.Length == 0)
            {
                return(false);
            }

            data = m_character_data;

            return(true);
        }