/// <summary>
        /// Adds a compressed byte array.
        /// </summary>
        internal static void AddCompressed(this ChecksumEncoder Writer, byte[] Value)
        {
            byte[] ZLib = ZlibStream.CompressBuffer(Value);

            Writer.AddRange(BitConverter.GetBytes(ZLib.Length));
            Writer.AddRange(ZLib);
        }
Exemple #2
0
        /// <summary>
        /// Encodes the first bytes of LogicGameMode.
        /// </summary>
        public void EncodeOnce(ChecksumEncoder Stream)
        {
            Stream.WriteVInt(42); // Value != 42: decodeOnce stream is corrupted! #1

            Stream.AddRange("02-02-01-02-04-01-00  00-00-00-19  54-49-44-5F-43-41-53-54-5F-51-55-45-53-54-5F-4D-49-4E-5F-45-4C-49-58-49-52  00-00-00-00-1E-00-00-00-00-00-06-00-01-01-00-04-04-00  00-00-00-19  54-49-44-5F-43-41-53-54-5F-51-55-45-53-54-5F-4D-41-58-5F-45-4C-49-58-49-52  00-00-00-00-32-00-00-00-00-00-00-02-01-01-00  01 	7F-7F-7F-7F-00-00-00-00-00-00-01-32-00-00-00-00-00-00-00-00-00-00-00-00-00-08-00-00-00-00-00-00-00-00-02-00-00-00-00-00-00-00-00-00-00-00-01 02 	00-01  00-01  00-01  00-00-00-06-42-65-72-6B-61-6E-0A-9D-25-98-04-98-24-00-00-00-00-00-26-00-00-00-00-00-08-0E-05-01-83-B9-01-05-02-B2-04-05-03-00-05-04-00-05-0C-A3-0E-05-0D-00-05-0E-00-05-0F-8F-06-05-16-90-06-05-19-B0-DD-9E-F2-01-05-1A-09-05-1C-00-05-1D-B3-88-D5-44-05-23-01-00-00-00-05-05-06-BF-28-05-07-95-02-05-0B-26-05-14-08-05-1B-09-08-1A-17-8A-01-1A-1D-04-1A-23-26-1A-25-11-1A-2A-15-1A-2E-04-1A-36-05-1C-0B-3E-00-00-09-02-1E-97-8D-69-00-00-00-0B-6C-6F-73-20-70-69-74-75-64-6F-73-B3-01-99-0E-9C-02-00-A9-06-BA-05-01-B6-01-03-00-00-00-01".HexaToBytes());

            // TODO : Implement the Events.

            /* Stream.WriteBoolean(false);
             *
             * if (this.Battle != null)
             * {
             *  for (int I = 0; I < 4; I++)
             *  {
             *      if (this.Battle.Players[I] != null)
             *      {
             *          Stream.WriteBoolean(true);
             *          this.Battle.Players[I].Encode(Stream, true);
             *
             *          continue;
             *      }
             *
             *      Stream.WriteBoolean(false);
             *  }
             * } */

            Stream.WriteVInt(43); // Value != 43: decodeOnce stream is corrupted! #2
        }
Exemple #3
0
        /// <summary>
        /// Encodes this instance.
        /// </summary>
        internal void Encode(ChecksumEncoder Packet)
        {
            Packet.ResetChecksum();

            Packet.AddVInt(this.Time.SubTick);
            Packet.AddVInt(Packet.Checksum);

            Packet.AddVInt(TimeUtil.Timestamp);
            Packet.AddVInt(11);

            this.Time.Encode(Packet);
            this._Random.Encode(Packet);

            Packet.AddVInt(1005459526); // ?

            if (this._Battle != null)
            {
                this._Battle.Encode(Packet);
            }
            else
            {
                this.Home.Encode(Packet.ByteStream);
            }

            Packet.AddVInt(12);
            Packet.AddRange("00-00-00-91".HexaToBytes());
            Packet.AddVInt(Packet.Checksum);

            this.CommandManager.Encode(Packet);
        }
Exemple #4
0
        /// <summary>
        /// Encodes in the specified stream.
        /// </summary>
        /// <param name="Stream">The stream.</param>
        public void Encode(ChecksumEncoder Stream)
        {
            Stream.EncodeData(this.ChestData);

            Stream.WriteVInt(88);
            Stream.WriteVInt(0);

            Stream.WriteString(this.Type);

            Stream.WriteVInt(346);
            Stream.WriteVInt(this.Index);

            Stream.EncodeSpellList(this.FortuneSpells);

            Stream.WriteVInt(-1);
            Stream.WriteVInt(0);
            Stream.WriteVInt(-1);

            return;

            Stream.WriteVInt(19);
            Stream.WriteVInt(325);
            Stream.WriteVInt(88);
            Stream.WriteVInt(2);

            Stream.WriteString("Fortune");

            Stream.WriteVInt(346);
            Stream.WriteVInt(1); // Index

            Stream.WriteVInt(4); // Array
            {
                Stream.AddRange("1A-02".HexaToBytes());
                Stream.AddRange("1A-15".HexaToBytes());
                Stream.AddRange("1A-26".HexaToBytes());
                Stream.AddRange("1A-19".HexaToBytes());
            }

            Stream.WriteVInt(90000005);
            Stream.WriteVInt(0);
            Stream.WriteVInt(-1);
        }
Exemple #5
0
        /// <summary>
        /// Encodes this instance.
        /// </summary>
        public void Encode(ChecksumEncoder Stream, bool EncodeCommandManager)
        {
            Stream.ResetChecksum();

            /* Stream.WriteVInt(this.Time);
             * Stream.WriteVInt(Stream.Checksum);
             * Stream.WriteVInt(TimeUtil.Timestamp);
             *
             * Stream.WriteVInt(11); // Val != 11: Full update stream is corrupted!
             *
             * this.Time.Encode(Stream);
             * this.Random.Encode(Stream);
             *
             * Stream.WriteVInt(this.Random.Seed);
             *
             * if (this.Battle != null)
             * {
             *  this.Battle.Encode(Stream, this.Player);
             * }
             * else
             * {
             *  this.Home.Encode(Stream.ByteStream);
             * }
             *
             * Stream.WriteVInt(12); // Val != 12: Full update stream is corrupted #2!
             * {
             *  // TUTORIAL MANAGER
             *
             *  Stream.EncodeLogicData(null, 49);
             *  Stream.WriteVInt(0);
             *
             *  if (this.Battle != null)
             *  {
             *      Stream.EncodeData(null); // WriteGameObjectReference
             *  }
             * }
             *
             * Stream.WriteVInt(Stream.Checksum);
             *
             * if (EncodeCommandManager)
             * {
             *  this.CommandManager.Encode(Stream);
             * } */

            Stream.AddRange("00-21-7F-0B-00-54-7E-9E-44-E8-A6-D2-A9-01-02-08-01-7F-7F-00  00-01  00-00-00-00-00-00-00-00-00-06-01-00-00-09-00-00-00-01-00-00-00-8E-02-F2-7D-00-00-06-7A-06-23-01-23-01-23-01-23-01-23-00-23-00-01-00-01-00-00-01-05-00-05-01-05-02-05-03-05-04-05-05-08-0D-A4-E2-01-9C-8E-03-00-00-7F-00-C0-7C-00-00-02-00-00-00-00-00-00-01-0D-AC-36-A4-65-00-00-7F-00-80-04-00-00-01-00-00-00-00-00-00-08-0D-AC-36-9C-8E-03-00-00-7F-00-C0-7C-00-00-01-00-00-00-00-00-00-01-0D-A4-E2-01-A4-65-00-00-7F-00-80-04-00-00-02-00-00-00-00-00-00-01-0D-A8-8C-01-B8-2E-00-00-7F-00-80-04-00-00-00-00-00-00-00-00-1A-04-03-01-7C-01-04-02-06-05-07-00-7F-7F-7F-00-7F-00-00-05-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00-08-0D-A8-8C-01-88-C5-03-00-00-7F-00-C0-7C-00-00-00-00-00-00-00-00-1A-04-05-7F-7E-04-04-01-07-00-03-00-7F-7F-7F-00-7F-00-00-05-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-A6-27-00-A8-17-00-A6-27-00-A8-17-00-88-28-00-A8-3E-00-00-00-00-00-A4-01-00-00-00-00-A4-01-00-00-00-00-A4-01-00-00-00-00-A4-01-00-00-00-00-A4-01-00-00-00-00-A4-01-FF-01-01-01-02-01-03-01-14-01-04-00-81-01-00-8E-01-01-10-00-00-FF-01-20-06-2E-01-16-05-1A-01-96-01-08-9A-01-02-21-00-15-01-00-05-06-02-02-04-02-01-03-00-00-00-00-00-00-00-00-00-02-00-00-0C-00-00-00-9C-D5-AF-FC-01-00".HexaToBytes());
        }
        /// <summary>
        /// Adds a compressable byte array.
        /// </summary>
        internal static void AddCompressableBytes(this ChecksumEncoder Writer, byte[] Value)
        {
            if (Value != null)
            {
                int length = Value.Length;

                if (false)
                {
                    Writer.AddBoolean(true);
                    Writer.AddCompressed(Value);
                }
                else
                {
                    Writer.AddBoolean(false);
                    Writer.AddRange(Value);
                }
            }
            else
            {
                Writer.AddBoolean(false);
            }
        }
Exemple #7
0
        /// <summary>
        /// Encodes this instance.
        /// </summary>
        internal void Encode(ChecksumEncoder Packet)
        {
            Packet.EncodeLogicData(CSV.Tables.Get(Gamefile.Location).GetWithInstanceID <LocationData>(2), 15);
            Packet.AddVInt(this.Players.Count);
            Packet.EncodeLogicData(null, 18);
            Packet.EncodeLogicData(CSV.Tables.Get(Gamefile.Arena).GetWithInstanceID <ArenaData>(1), 54);


            this.Players.ForEach(Player =>
            {
                Packet.AddLogicLong(Player.HighID, Player.LowID);
                Packet.AddVInt(0);
            });

            Packet.EncodeConstantSizeIntArray(new int[8], 8);

            {
                Packet.AddVInt(1);
                Packet.AddVInt(1);
                Packet.AddVInt(0);
                Packet.AddVInt(0);

                Packet.AddVInt(7); // EncodeLogicData (type=72)
                Packet.AddVInt(0); // EncodeLogicData (type=79)
                Packet.AddVInt(0); // EncodeLogicData (type=81)
            }

            Packet.AddBoolean(false); // isFinished
            Packet.AddBoolean(false);
            Packet.AddBoolean(false);
            Packet.AddBoolean(false);
            Packet.AddBoolean(false); // InExtraTime
            Packet.AddBoolean(false); // Live

            Packet.AddVInt(0);        // Type

            Packet.AddVInt(0);
            Packet.AddVInt(0);

            // LogicGameObjectManager::encode().
            {
                // Packet.EncodeConstantSizeIntArray(new int[7], 7);
                Packet.AddRange("00-B9-03-C7-7C-00-00-06-7A".HexaToBytes());

                Packet.AddVInt(6);                                                    // Count
                Packet.AddRange("23-01-23-01-23-01-23-01-23-00-23-00".HexaToBytes());
                Packet.AddRange("01-00-01-00-00-01".HexaToBytes());                   // Is Enemy GameObject
                Packet.AddRange("05-00-05-01-05-02-05-03-05-04-05-05".HexaToBytes()); // ID

                Packet.AddRange("00-0D-A4-E2-01-9C-8E-03-00-00-7F-00-C0-7C-00-00-02-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0D-AC-36-A4-65-00-00-7F-00-80-04-00-00-01-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0D-AC-36-9C-8E-03-00-00-7F-00-C0-7C-00-00-01-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0D-A4-E2-01-A4-65-00-00-7F-00-80-04-00-00-02-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0D-A8-8C-01-B8-2E-00-00-7F-00-80-04-00-00-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0C-00-00-05-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00".HexaToBytes());

                Packet.AddRange("00-0D-A8-8C-01-88-C5-03-00-00-7F-00-C0-7C-00-00-00-00-00-00-00".HexaToBytes());
                Packet.AddRange("00-0D-04-07-7D-7E-01-04-05-06-01-00-00-7F-7F-00-01-04-00-00-00-00".HexaToBytes());
            }

            Packet.AddRange("00-00-00-14-51-75-C3-AA-74-65-20-63-6F-6D-62-61-74-20-6D-69-72-6F-69-72-00-00-00-3A-50-61-72-74-69-63-69-70-65-7A-20-C3-A0-20-32-30-C2-A0-63-6F-6D-62-61-74-73-20-6D-69-72-6F-69-72-20-65-6E-20-6D-6F-64-65-20-31-63-31-2C-20-32-63-32-20-6F-75-20-64-C3-A9-66-69-00-00-00-08-73-63-2F-75-69-2E-73-63-00-00-00-16-71-75-65-73-74-5F-69-74-65-6D-5F-73-70-65-63-69-61-6C-5F-70-76-70-14-14-B8-12-00-00-01-00-00-00-1C-69-63-6F-6E-5F-71-75-65-73-74-5F-74-79-70-65-5F-73-70-65-63-69-61-6C-65-76-65-6E-74-01-05-00-14-94-01-00-00-00-00-11-00-00-00-00-05-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-B8-15-00-B8-15-00-B8-15-00-B8-15-00-A0-25-00-A0-25-00-00-00-00-00-00-00-00-A4-01-A4-01-00-00-00-00-00-00-00-00-A4-01-A4-01-00-00-00-00-00-00-00-00-A4-01-A4-01-00-00-00-00-00-00-00-00-A4-01-A4-01-00-00-00-00-00-00-00-00-A4-01-A4-01-00-00-00-00-00-00-00-00-A4-01-A4-01-00-FE-03-01-01-02-00-0E-00-8F-01-00-8E-01-00-04-00-0F-00-14-00-00-00-05-06-02-02-04-02-01-03-00-00-00-00-00-00-00-00".HexaToBytes());
        }
Exemple #8
0
        /// <summary>
        /// Encodes this instance.
        /// </summary>
        public void Encode(ChecksumEncoder Stream, Player Player)
        {
            Stream.EncodeLogicData(this.LocationData, 15);
            Stream.WriteVInt(this.PlayerCount);
            Stream.EncodeLogicData(this.NpcData, 48);
            Stream.EncodeLogicData(this.ArenaData, 54);

            for (int I = 0; I < this.PlayerCount; I++)
            {
                Stream.WriteLogicLong(this.Players[I].HighId, this.Players[I].LowId);
                Stream.WriteVInt(0);
            }

            Stream.EncodeConstantSizeIntArray(new int[8], 8);
            {
                Stream.WriteVInt(1);
                Stream.WriteVInt(1);
                Stream.WriteVInt(0);
                Stream.WriteVInt(0);

                Stream.WriteVInt(7); // EncodeLogicData (type=72)
                Stream.WriteVInt(0); // EncodeLogicData (type=79)
                Stream.WriteVInt(0); // EncodeLogicData (type=81)
            }

            Stream.WriteBoolean(this.EndedCalled);
            Stream.WriteBoolean(this.EndedWithTimeOut);
            Stream.WriteBoolean(false); // ?
            Stream.WriteBoolean(false); // hasPlayerFinishedNpcLevel
            Stream.WriteBoolean(this.InOvertime);
            Stream.WriteBoolean(false); // Live

            Stream.WriteVInt(this.Type);

            Stream.WriteVInt(0);
            Stream.WriteVInt(0);
            {
                // LogicGameObjectManager::encode().
                Stream.AddRange("00-B9-03-C7-7C-00-00-06-7A".HexaToBytes());

                Stream.WriteVInt(6);                                                      // Count

                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(1)); // PrincessTower
                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(1)); // PrincessTower
                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(1)); // PrincessTower
                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(1)); // PrincessTower
                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(0)); // KingTower
                Stream.EncodeData(CsvFiles.Get(Gamefile.Buildings).GetWithInstanceId(0)); // KingTower

                // Type (Enemy, etc...)
                Stream.WriteVInt(1);
                Stream.WriteVInt(0);
                Stream.WriteVInt(1);
                Stream.WriteVInt(0);
                Stream.WriteVInt(0);
                Stream.WriteVInt(1);

                // ID (Like 500xxxxxx for CoC)
                Stream.AddRange("05-00".HexaToBytes());
                Stream.AddRange("05-01".HexaToBytes());
                Stream.AddRange("05-02".HexaToBytes());
                Stream.AddRange("05-03".HexaToBytes());
                Stream.AddRange("05-04".HexaToBytes());
                Stream.AddRange("05-05".HexaToBytes());

                // LogicGameObject::encode(): vInt, Vector2, vInt
                // GameObjectType:
                // 0: LogicDeco
                // 1: LogicSpawnPoint
                // 2: LogicAreaEffectObject
                // 3: LogicProjectile
                // 4: LogicCharacter
                Stream.AddRange("00-0D-A4-E2-01-9C-8E-03-00-00-7F-00-C0-7C-00-00-02-00-00-00-00-00".HexaToBytes()); // LogicCharacter::encode
                Stream.AddRange("00-0D-AC-36-A4-65-00-00-7F-00-80-04-00-00-01-00-00-00-00-00".HexaToBytes());       // LogicCharacter::encode
                Stream.AddRange("00-0D-AC-36-9C-8E-03-00-00-7F-00-C0-7C-00-00-01-00-00-00-00-00".HexaToBytes());    // LogicCharacter::encode
                Stream.AddRange("00-0D-A4-E2-01-A4-65-00-00-7F-00-80-04-00-00-02-00-00-00-00-00".HexaToBytes());    // LogicCharacter::encode

                if (this.Players[1] == Player)
                {
                    Stream.AddRange("00-0D-A8-8C-01-B8-2E-00-00-7F-00-80-04-00-00-00-00-00-00-00-00".HexaToBytes());       // LogicCharacter::encode
                    Stream.AddRange("0C-00-00-A0-9A-0C-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00".HexaToBytes()); // LogicSummoner::encode

                    // LogicSummoner::encode
                    Stream.AddRange("00-0D-A8-8C-01-88-C5-03-00-00-7F-00-C0-7C-00-00-00-00-00-00-00-00".HexaToBytes()); // LogicCharacter::encode

                    Stream.WriteBoolean(true);                                                                          // HAS DECK
                    Stream.WriteBoolean(false);                                                                         // ?
                    Stream.WriteBoolean(true);                                                                          // AI ENABLED ?

                    if (true)
                    {
                        // If HAS DECK
                        Stream.WriteVInt(4);
                        {
                            // ByteStreamHelper::writeConstantSizeIntArray(4)
                            Stream.WriteVInt(6);
                            Stream.WriteVInt(-1);
                            Stream.WriteVInt(-4);
                            Stream.WriteVInt(-1);
                        }

                        Stream.WriteVInt(4);
                        {
                            // Count
                            Stream.WriteVInt(3);
                            Stream.WriteVInt(4);
                            Stream.WriteVInt(2);
                            Stream.WriteVInt(7);
                        }

                        Stream.WriteVInt(0);
                        {
                            // Same, Is Count
                        }

                        Stream.WriteVInt(-1);
                        Stream.WriteVInt(-1);
                        Stream.WriteVInt(0);

                        if (Globals.QuestsEnabled)
                        {
                            Stream.WriteVInt(0); // Count

                            // LogicQuestManager::encode()
                        }
                    }

                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0); // MsBeforeStartRegenMana
                    Stream.WriteVInt(5); // Mana
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    {
                        // LogicSpellAIBlackboard::encode
                        Stream.WriteVInt(0);
                        Stream.WriteVInt(0);
                    }

                    for (int I = 0; I < 8; I++)
                    {
                        Stream.WriteVInt(-1);
                    }

                    Stream.WriteBoolean(false);
                    {
                        // ?
                    }

                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                }
                else
                {
                    Stream.AddRange("00-0D-A8-8C-01-B8-2E-00-00-7F-00-80-04-00-00-00-00-00-00-00-00".HexaToBytes()); // LogicCharacter::encode

                    Stream.WriteBoolean(true);                                                                       // HAS DECK
                    Stream.WriteBoolean(false);                                                                      // ?
                    Stream.WriteBoolean(true);                                                                       // AI ENABLED ?

                    if (true)
                    {
                        // If HAS DECK
                        Stream.WriteVInt(4);
                        {
                            // ByteStreamHelper::writeConstantSizeIntArray(4)
                            Stream.WriteVInt(6);  // 6 = SpellDeck[6]
                            Stream.WriteVInt(-1); // 6 - 1 = SpellDeck[6 - 1]
                            Stream.WriteVInt(-4); // 6 - 1 - 4 = SpellDeck[6 - 1 - 4]
                            Stream.WriteVInt(-1); // 6 - 1 - 4 - 1 =  = SpellDeck[6 - 1 - 4 - 1]
                        }

                        Stream.WriteVInt(4);
                        {
                            // Spell Queue Count
                            Stream.WriteVInt(3);
                            Stream.WriteVInt(4);
                            Stream.WriteVInt(2);
                            Stream.WriteVInt(7);
                        }

                        Stream.WriteVInt(0);
                        {
                            // Spell Queue 2 Count
                        }

                        Stream.WriteVInt(-1);
                        Stream.WriteVInt(-1);
                        Stream.WriteVInt(0);

                        if (Globals.QuestsEnabled)
                        {
                            Stream.WriteVInt(0); // Count

                            // LogicQuestManager::encode()
                        }
                    }

                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0); // MsBeforeStartRegenMana
                    Stream.WriteVInt(5); // Mana
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    {
                        // LogicSpellAIBlackboard::encode
                        Stream.WriteVInt(0);
                        Stream.WriteVInt(0);
                    }

                    for (int I = 0; I < 8; I++)
                    {
                        Stream.WriteVInt(-1);
                    }

                    Stream.WriteBoolean(false);
                    {
                        // ?
                    }

                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);
                    Stream.WriteVInt(0);

                    Stream.AddRange("00-0D-A8-8C-01-88-C5-03-00-00-7F-00-C0-7C-00-00-00-00-00-00-00-00".HexaToBytes());    // LogicCharacter::encode
                    Stream.AddRange("0C-00-00-A0-9A-0C-00-00-00-00-00-7F-7F-7F-7F-7F-7F-7F-7F-00-00-00-00".HexaToBytes()); // LogicSummoner::encode
                }

                // -- COMPONENT --
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-00".HexaToBytes());

                // LogicHitpointComponent
                Stream.AddRange("B8-15-00".HexaToBytes());
                Stream.AddRange("B8-15-00".HexaToBytes());
                Stream.AddRange("B8-15-00".HexaToBytes());
                Stream.AddRange("B8-15-00".HexaToBytes());
                Stream.AddRange("A0-25-00".HexaToBytes());
                Stream.AddRange("A0-25-00".HexaToBytes());

                // LogicCharacterBuffComponent
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
                Stream.AddRange("00-00-00-00-00-00-00-A4-01-A4-01-00".HexaToBytes());
            }

            for (int I = 0; I < 2; I++)
            {
                if (this.Players[I] == Player)
                {
                    Stream.WriteBoolean(true);
                    this.Decks[I].EncodeAttack(Stream);
                    break;
                }

                Stream.WriteBoolean(false);
            }

            Stream.AddRange("00-00-05-06-02-02-04-02-01-03-00-00-00-00-00-00-00-00".HexaToBytes());
        }