public override int GetHashCode()
                {
                    int hash = 1;

                    if (TemplateId.Length != 0)
                    {
                        hash ^= TemplateId.GetHashCode();
                    }
                    if (pokemonSettings_ != null)
                    {
                        hash ^= PokemonSettings.GetHashCode();
                    }
                    if (itemSettings_ != null)
                    {
                        hash ^= ItemSettings.GetHashCode();
                    }
                    if (moveSettings_ != null)
                    {
                        hash ^= MoveSettings.GetHashCode();
                    }
                    if (moveSequenceSettings_ != null)
                    {
                        hash ^= MoveSequenceSettings.GetHashCode();
                    }
                    if (typeEffective_ != null)
                    {
                        hash ^= TypeEffective.GetHashCode();
                    }
                    if (badgeSettings_ != null)
                    {
                        hash ^= BadgeSettings.GetHashCode();
                    }
                    if (camera_ != null)
                    {
                        hash ^= Camera.GetHashCode();
                    }
                    if (playerLevel_ != null)
                    {
                        hash ^= PlayerLevel.GetHashCode();
                    }
                    if (gymLevel_ != null)
                    {
                        hash ^= GymLevel.GetHashCode();
                    }
                    if (battleSettings_ != null)
                    {
                        hash ^= BattleSettings.GetHashCode();
                    }
                    if (encounterSettings_ != null)
                    {
                        hash ^= EncounterSettings.GetHashCode();
                    }
                    if (iapItemDisplay_ != null)
                    {
                        hash ^= IapItemDisplay.GetHashCode();
                    }
                    if (iapSettings_ != null)
                    {
                        hash ^= IapSettings.GetHashCode();
                    }
                    if (pokemonUpgrades_ != null)
                    {
                        hash ^= PokemonUpgrades.GetHashCode();
                    }
                    if (equippedBadges_ != null)
                    {
                        hash ^= EquippedBadges.GetHashCode();
                    }
                    return(hash);
                }