public GameContextSummonsInformation(Types.SpawnInformation spawnInformation, sbyte wave, Types.EntityLook look, Types.GameFightMinimalStats stats, Types.GameContextBasicSpawnInformation[] summons)
 {
     this.spawnInformation = spawnInformation;
     this.wave             = wave;
     this.look             = look;
     this.stats            = stats;
     this.summons          = summons;
 }
        public virtual void Deserialize(IDataReader reader)
        {
            spawnInformation = ProtocolTypeManager.GetInstance <Types.SpawnInformation>(reader.ReadUShort());
            spawnInformation.Deserialize(reader);
            wave = reader.ReadSbyte();
            look = new Types.EntityLook();
            look.Deserialize(reader);
            stats = ProtocolTypeManager.GetInstance <Types.GameFightMinimalStats>(reader.ReadUShort());
            stats.Deserialize(reader);
            var limit = (ushort)reader.ReadUShort();

            summons = new Types.GameContextBasicSpawnInformation[limit];
            for (int i = 0; i < limit; i++)
            {
                summons[i] = ProtocolTypeManager.GetInstance <Types.GameContextBasicSpawnInformation>(reader.ReadUShort());
                summons[i].Deserialize(reader);
            }
        }