public override void Deserialize(ICustomDataReader reader)
        {
            base.Deserialize(reader);
            this.ObjectGID = reader.ReadVarShort();
            int EffectsLen = reader.ReadShort();

            Effects = new ObjectEffect[EffectsLen];
            for (int i = 0; i < EffectsLen; i++)
            {
                this.Effects[i] = ProtocolTypeManager.GetInstance <ObjectEffect>(reader.ReadShort());
                this.Effects[i].Deserialize(reader);
            }
            this.ObjectUID = reader.ReadVarInt();
            this.Quantity  = reader.ReadVarInt();
        }
        public override void Deserialize(ICustomDataReader reader)
        {
            this.ObjectUID = reader.ReadVarInt();
            int EffectsLen = reader.ReadShort();

            Effects = new ObjectEffect[EffectsLen];
            for (int i = 0; i < EffectsLen; i++)
            {
                this.Effects[i] = ProtocolTypeManager.GetInstance <ObjectEffect>(reader.ReadShort());
                this.Effects[i].Deserialize(reader);
            }
            int PricesLen = reader.ReadShort();

            Prices = new long[PricesLen];
            for (int i = 0; i < PricesLen; i++)
            {
                this.Prices[i] = reader.ReadVarLong();
            }
        }