<commit_before>// Copyright (c) 2007-2018 ppy Pty Ltd <<EMAIL>>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE

using OpenTK;
using OpenTK.Graphics;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Game.Graphics;

namespace osu.Game.Online.Multiplayer
{
    public abstract class GameType
    {
        public abstract string Name { get; }
        public abstract Drawable GetIcon(OsuColour colours, float size);
    }

    public class GameTypeTag : GameType<commit_msg>Compare GameTypes by type instead of reference.<commit_after>// Copyright (c) 2007-2018 ppy Pty Ltd <<EMAIL>>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE

using OpenTK;
using OpenTK.Graphics;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Game.Graphics;

namespace osu.Game.Online.Multiplayer
{
    public abstract class GameType
    {
        public abstract string Name { get; }
        public abstract Drawable GetIcon(OsuColour colours, float size);

        public override int GetHashCode() => GetType().GetHashCode();
        public override bool Equals(object obj) => GetType() == obj?.GetType();
    }

    public class GameTypeTag : GameType
{'fraction_non_alphanumeric': 0.10007358351729213, 'fraction_numerical': 0.01177336276674025, 'mean_word_length': 3.857142857142857, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5614925', 'n_tokens_mistral': 419, 'n_tokens_neox': 395, 'n_words': 113}