public static bool MigrationPrefix(Clan clan1, Kingdom kingdom) //Bool prefixes compete with each other and skip others, as well as original, if return false
        {
            try
            {
                if (kingdom.Leader != Hero.MainHero)
                {
                    return(true);
                }

                JoinKingdomAsClanBarterable asClanBarterable = new JoinKingdomAsClanBarterable(clan1.Leader, kingdom);
                int valueForFaction1 = asClanBarterable.GetValueForFaction(clan1);
                int valueForFaction2 = asClanBarterable.GetValueForFaction(kingdom);
                int checkSum         = valueForFaction1 + valueForFaction2;
                int num2             = (valueForFaction1 < 0) ? -valueForFaction1 : 0;
                if (checkSum <= 0 || num2 > kingdom.Leader.Gold * 0.5)
                {
                    return(false);
                }

                MigrationManager.AwaitPlayerDecision(clan1);
                return(false);
            }
            catch (Exception ex)
            {
                MethodInfo?methodInfo = MethodBase.GetCurrentMethod() as MethodInfo;
                DebugHelper.HandleException(ex, methodInfo, "Harmony patch for ConsiderDefection");
                return(true);
            }
        }