public static string ET(string text)
        {
            if (BannerlordConfig.Language != "English")
            {
                return(text);
            }
            StringBuilder stringBuilder1 = new StringBuilder();
            StringBuilder stringBuilder2 = new StringBuilder();

            if (text == null || text.Length <= 2 || (text[0] != '{' || text[1] != '='))
            {
                return(text);
            }
            for (int index1 = 2; index1 < text.Length; ++index1)
            {
                if (text[index1] != '}')
                {
                    stringBuilder1.Append(text[index1]);
                }
                else
                {
                    for (int index2 = index1 + 1; index2 < text.Length; ++index2)
                    {
                        stringBuilder2.Append(text[index2]);
                    }
                    if (!(stringBuilder1.ToString() == "*") && !(stringBuilder1.ToString() == "!"))
                    {
                        string input = LocalizedTextManager.GetTranslatedText(BannerlordConfig.Language, stringBuilder1.ToString());
                        if (input != null)
                        {
                            string pattern = "{%.+?}";
                            foreach (Match match in Regex.Matches(input, pattern))
                            {
                                input = input.Replace(match.Value, "");
                            }
                            return(input);
                        }
                    }
                    return(stringBuilder2.ToString());
                }
            }
            return(stringBuilder2.ToString());
        }
    public void SetLocalizedText()
    {
        Text myTextObject = GetComponent <Text>();
        LocalizedTextManager localizedTextManager = FindObjectOfType <LocalizedTextManager>();

        myTextObject.text = localizedTextManager.GetLocalizedString(stringName);

        if (localizedTextManager.currentLanguage == LocalizedTextManager.Language.English)
        {
            myTextObject.resizeTextForBestFit = false;
        }
        else if (localizedTextManager.currentLanguage == LocalizedTextManager.Language.Arabic ||
                 alwaysResizeToBestFit)
        {
            myTextObject.resizeTextForBestFit = true;
        }
        else
        {
            myTextObject.resizeTextForBestFit = false;
        }
    }
        public static int GetOptionsLimit(TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType optionType)
        {
            switch (optionType)
            {
            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.Language:
                return(LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode).Count);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ControlBlockDirection:
                return(3);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ControlAttackDirection:
                return(3);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.NumberOfCorpses:
                return(6);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.BattleSize:
                return(6);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson:
                return(4);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.ReportCasualtiesType:
                return(3);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.CrosshairType:
                return(2);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.OrderType:
                return(2);

            case TaleWorlds.MountAndBlade.ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements:
                return(3);

            default:
                return(0);
            }
        }
Beispiel #4
0
        public static void SetConfig(ManagedOptions.ManagedOptionsType type, float value)
        {
            switch (type)
            {
            case ManagedOptions.ManagedOptionsType.Language:
                List <string> languageIds = LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode);
                BannerlordConfig.Language = (double)value < 0.0 || (double)value >= (double)languageIds.Count ? languageIds[0] : languageIds[(int)value];
                break;

            case ManagedOptions.ManagedOptionsType.ControlBlockDirection:
                BannerlordConfig.DefendDirectionControl = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.ControlAttackDirection:
                BannerlordConfig.AttackDirectionControl = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.NumberOfCorpses:
                BannerlordConfig.NumberOfCorpses = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.BattleSize:
                BannerlordConfig.BattleSize = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson:
                BannerlordConfig.TurnCameraWithHorseInFirstPerson = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.ShowBlood:
                BannerlordConfig.ShowBlood = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.ShowAttackDirection:
                BannerlordConfig.DisplayAttackDirection = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.ShowTargetingReticle:
                BannerlordConfig.DisplayTargetingReticule = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.FriendlyTroopsBannerOpacity:
                BannerlordConfig.FriendlyTroopsBannerOpacity = value;
                break;

            case ManagedOptions.ManagedOptionsType.ReportDamage:
                BannerlordConfig.ReportDamage = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.ReportCasualtiesType:
                BannerlordConfig.ReportCasualtiesType = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.ReportExperience:
                BannerlordConfig.ReportExperience = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.ReportPersonalDamage:
                BannerlordConfig.ReportPersonalDamage = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.FirstPersonFov:
                BannerlordConfig.FirstPersonFov = value;
                break;

            case ManagedOptions.ManagedOptionsType.CombatCameraDistance:
                BannerlordConfig.CombatCameraDistance = value;
                break;

            case ManagedOptions.ManagedOptionsType.EnableDamageTakenVisuals:
                BannerlordConfig.EnableDamageTakenVisuals = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.EnableDeathIcon:
                BannerlordConfig.EnableDeathIcon = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.EnableNetworkAlertIcons:
                BannerlordConfig.EnableNetworkAlertIcons = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.ForceVSyncInMenus:
                BannerlordConfig.ForceVSyncInMenus = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.EnableVerticalAimCorrection:
                BannerlordConfig.EnableVerticalAimCorrection = (double)value != 0.0;
                break;

            case ManagedOptions.ManagedOptionsType.UIScale:
                BannerlordConfig.UIScale = value;
                break;

            case ManagedOptions.ManagedOptionsType.CrosshairType:
                BannerlordConfig.CrosshairType = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.OrderType:
                BannerlordConfig.OrderType = (int)value;
                break;

            case ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements:
                BannerlordConfig.AutoTrackAttackedSettlements = (int)value;
                break;
            }
            if (ManagedOptions.OnManagedOptionChanged == null)
            {
                return;
            }
            ManagedOptions.OnManagedOptionChanged(type);
        }
Beispiel #5
0
        public static float GetConfig(ManagedOptions.ManagedOptionsType type)
        {
            switch (type)
            {
            case ManagedOptions.ManagedOptionsType.Language:
                return((float)LocalizedTextManager.GetLanguageIds(NativeConfig.IsDevelopmentMode).IndexOf(BannerlordConfig.Language));

            case ManagedOptions.ManagedOptionsType.ControlBlockDirection:
                return((float)BannerlordConfig.DefendDirectionControl);

            case ManagedOptions.ManagedOptionsType.ControlAttackDirection:
                return((float)BannerlordConfig.AttackDirectionControl);

            case ManagedOptions.ManagedOptionsType.NumberOfCorpses:
                return((float)BannerlordConfig.NumberOfCorpses);

            case ManagedOptions.ManagedOptionsType.BattleSize:
                return((float)BannerlordConfig.BattleSize);

            case ManagedOptions.ManagedOptionsType.TurnCameraWithHorseInFirstPerson:
                return((float)BannerlordConfig.TurnCameraWithHorseInFirstPerson);

            case ManagedOptions.ManagedOptionsType.ShowBlood:
                return(BannerlordConfig.ShowBlood ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.ShowAttackDirection:
                return(BannerlordConfig.DisplayAttackDirection ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.ShowTargetingReticle:
                return(BannerlordConfig.DisplayTargetingReticule ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.FriendlyTroopsBannerOpacity:
                return(BannerlordConfig.FriendlyTroopsBannerOpacity);

            case ManagedOptions.ManagedOptionsType.ReportDamage:
                return(BannerlordConfig.ReportDamage ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.ReportCasualtiesType:
                return((float)BannerlordConfig.ReportCasualtiesType);

            case ManagedOptions.ManagedOptionsType.ReportExperience:
                return(BannerlordConfig.ReportExperience ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.ReportPersonalDamage:
                return(BannerlordConfig.ReportPersonalDamage ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.FirstPersonFov:
                return(BannerlordConfig.FirstPersonFov);

            case ManagedOptions.ManagedOptionsType.CombatCameraDistance:
                return(BannerlordConfig.CombatCameraDistance);

            case ManagedOptions.ManagedOptionsType.EnableDamageTakenVisuals:
                return(BannerlordConfig.EnableDamageTakenVisuals ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.EnableDeathIcon:
                return(BannerlordConfig.EnableDeathIcon ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.EnableNetworkAlertIcons:
                return(BannerlordConfig.EnableNetworkAlertIcons ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.ForceVSyncInMenus:
                return(BannerlordConfig.ForceVSyncInMenus ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.EnableVerticalAimCorrection:
                return(BannerlordConfig.EnableVerticalAimCorrection ? 1f : 0.0f);

            case ManagedOptions.ManagedOptionsType.UIScale:
                return(BannerlordConfig.UIScale);

            case ManagedOptions.ManagedOptionsType.CrosshairType:
                return((float)BannerlordConfig.CrosshairType);

            case ManagedOptions.ManagedOptionsType.OrderType:
                return((float)BannerlordConfig.OrderType);

            case ManagedOptions.ManagedOptionsType.AutoTrackAttackedSettlements:
                return((float)BannerlordConfig.AutoTrackAttackedSettlements);

            default:
                return(0.0f);
            }
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 frm = new Form1();
            frm.TopLevel = true;
            frm.BringToFront();
            frm.Focus();
            string path = "";
            if (args.Length > 0)
            {
                path = args[0];
            }
            else
            {
                path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Mount and Blade II Bannerlord", "Configs", "TournamentsXPanded", "tournamentxpsettings.json");
            }

            DirectoryInfo di = new DirectoryInfo(Assembly.GetEntryAssembly().Location);
            LocalizedTextManager.LoadLocalizationXmls(di.Parent.Parent.Parent.Parent.Parent.FullName);
            frm.SetupLanguageDropdown();
            frm.LoadConfig(path);


#if DEBUG
            string pathxml = "E:\\Users\\Brandon\\OneDrive - Mathis Consulting, LLC\\Development\\BannerLord\\BrandonMods\\TournamentXPanded.Configurator\\Languages\\settings-en.xml";
            string pathcs = "E:\\Users\\Brandon\\OneDrive - Mathis Consulting, LLC\\Development\\BannerLord\\BrandonMods\\TournamentsXPanded.Settings\\TournamentXPSettings.cs";
            string pathoutput = "e:\\settings.cs";

            var xmlstrings = File.ReadAllLines(pathxml);
            var csfile = File.ReadAllLines(pathcs);

            using (var sw = new StreamWriter(pathoutput, false))
            {
                foreach (var line in csfile)
                {
                    if (line.Trim().StartsWith("[SettingProperty"))
                    {
                        var parts = line.Split('"');
                        var newparts = "";
                        foreach(var p in parts)
                        {
                            var pt = LocalizedTextManager.FindStringId("English", p);
                            if (pt.StartsWith("{"))
                            {
                                //pt = pt + LocalizedTextManager.GetTranslatedText("English", LocalizedTextManager.GetStringId(pt));
                                pt = LocalizedTextManager.GetTranslatedText("English", LocalizedTextManager.GetStringId(pt));
                            }
                            newparts += pt + "\"";
                        }
                        newparts = newparts.Substring(0,newparts.Length - 1);
                        sw.WriteLine(newparts);
                    }
                    else
                    {
                        sw.WriteLine(line);
                    }
                }
            }
#endif


            Application.Run(frm);
        }
Beispiel #7
0
    void Start()
    {
        gameManager = GameObject.FindWithTag("GameManager").GetComponent<GameManager>();
        gameManager.Register_Clipboard(this);
        localizedTextManager = gameManager.GetComponent<LocalizedTextManager>();

        buttonTextComponent = GetComponentInChildren<Text>();

        offscreenPosition = new Vector3(transform.position.x, transform.position.y - offscreenOffset, transform.position.z);
        offscreenScale = transform.localScale * offscreenScalar;
        originalPosition = transform.position;
        originalScale = transform.localScale;

        createAndDestroyLevelRef = GameObject.FindGameObjectWithTag("persistentObject").GetComponent<CreateAndDestroyAppointment>();

        selectorRef = GameObject.Find("LevelSelector").GetComponent<LevelSelector>();
        createAndDestroyLevelRef.levelsAvailable = selectorRef.dayToGenerate.numAppointments;

        CreateAllAppointments();

        // place badges
        badgeCheckOriginalPos = badgeCheck.transform.localPosition;
        badgeStarOriginalPos = badgeStar.transform.localPosition;
        badgeCheck.transform.position = new Vector3(badgeCheck.transform.position.x, badgeCheck.transform.position.y + distanceToPushBadges, badgeCheck.transform.position.z);
        badgeStar.transform.position = new Vector3(badgeStar.transform.position.x, badgeStar.transform.position.y + distanceToPushBadges, badgeStar.transform.position.z);

        // place showMe banner
        Vector3 showMeScreenEdge = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width * showMeBannerScreenPos_X, Screen.height * showMeBannerScreenPos_Y));
        showMeOutPosition = new Vector3(
            showMeScreenEdge.x,
            showMeScreenEdge.y,
            showMeBanner.transform.position.z);
        showMeInPosition = new Vector3(showMeOutPosition.x - distanceToPushShowMeBanner, showMeOutPosition.y, showMeOutPosition.z);
        showMeBanner.transform.position = showMeInPosition;

        // show notifications at start of clipboard
        if (selectorRef.dayToGenerate.dayIndex_internal == 0)
        {
            GameObject.Find("NotificationManager").GetComponent<NotificationManager>().DisplayNotification(1, false);
        }
        else if (selectorRef.dayToGenerate.dayIndex_internal == 4)
        {
            GameObject.Find("NotificationManager").GetComponent<NotificationManager>().DisplayNotification(9, false);
        }

        textDay.text = localizedTextManager.GetLocalizedString("Day") + " " + (selectorRef.dayToGenerate.dayIndex_internal + 1);

        restartFromResultsScreenButton = GameObject.Find("RestartFromResultsScreenButton");
        ShowRestartButton(false);

        isFirstCreation = false;
    }
Beispiel #8
0
 public static void SetLanguage(LocalizedTextManager.Language language)
 {
     SaveData.SetInt("languageSetting", (int)language);
     SaveAllData();
 }
        public void SetProperty(SettingPropertyAttribute attr, PropertyInfo pInfo, TournamentXPSettings settings)
        {
            _pInfo    = pInfo;
            _settings = settings;


            string text = attr.DisplayName;

            if (text.Trim().StartsWith("{"))
            {
                var id = LocalizedTextManager.GetStringId(text);
                text = LocalizedTextManager.GetTranslatedText(languageId, id);
            }
            lblName.Text = text;
            if (!string.IsNullOrWhiteSpace(attr.HintText))
            {
                string text2 = attr.HintText;
                if (text2.Trim().StartsWith("{"))
                {
                    var id = LocalizedTextManager.GetStringId(text2);
                    text2 = LocalizedTextManager.GetTranslatedText(languageId, id);
                }
                ToolTip tt = new ToolTip();
                tt.IsBalloon = true;
                tt.SetToolTip(lblName, text2);
            }

            checkBox1.Visible  = false;
            textBox1.Visible   = false;
            textBox1.TextAlign = HorizontalAlignment.Right;
            trackBar1.Visible  = false;
            trackBar2.Visible  = false;

            switch (pInfo.PropertyType.Name)
            {
            case "Boolean":
                checkBox1.Visible = true;
                checkBox1.Checked = (bool)pInfo.GetValue(settings);
                break;

            case "Int32":
            case "Int64":
            case "Integer":
                textBox1.Visible  = true;
                textBox1.Text     = ((int)pInfo.GetValue(settings)).ToString();
                trackBar1.Visible = true;
                trackBar1.Minimum = (int)attr.MinValue;
                trackBar1.Maximum = (int)attr.MaxValue;
                trackBar1.Value   = ((int)pInfo.GetValue(settings));
                break;

            case "Single":
                textBox1.Visible  = true;
                textBox1.Text     = ((float)pInfo.GetValue(settings)).ToString();
                trackBar2.Visible = true;
                trackBar2.Minimum = attr.MinValue;
                trackBar2.Maximum = attr.MaxValue;
                trackBar2.Value   = ((float)pInfo.GetValue(settings));
                break;

            default:
                break;
            }
        }
 public static TextObject Localized(this string id, string fallback)
 => new TextObject($"{{={id}}}{LocalizedTextManager.GetTranslatedText("English", id) ?? fallback}");
Beispiel #11
0
        public void LoadConfig(TournamentXPSettings settings)
        {
            _settings = settings;
            pnlSettings.Controls.Clear();
            settingprops = new List <XPSettingControlBase>();
            //var groups = new List<SettingPropertyGroup>();
            propList = (from p in typeof(TournamentXPSettings).GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
                        let propAttr = p.GetCustomAttribute <SettingPropertyAttribute>(true)
                                       let groupAttr = p.GetCustomAttribute <SettingPropertyGroupAttribute>(true)
                                                       where propAttr != null
                                                       let groupAttrToAdd = groupAttr ?? null
                                                                            select new ConfigInfo {
                attribute = propAttr, propertyInfo = p, pgroup = groupAttrToAdd
            }).ToList();


            List <string> descriptions = new List <string>();
            List <string> hints        = new List <string>();
            List <string> groups       = new List <string>();


            List <FlowLayoutPanel> groupPanels = new List <FlowLayoutPanel>();

            groupPanels.Add(new FlowLayoutPanel()
            {
                Name = "Default"
            });

            var groupcount = 0;

            foreach (var pr in propList)
            {
                FlowLayoutPanel pnl = groupPanels.Where(x => x.Name == "Default").First();
                if (pr.pgroup != null)
                {
                    pnl = groupPanels.Where(x => x.Name == pr.pgroup.GroupName).FirstOrDefault();
                    if (pnl == null)
                    {
                        pnl = new FlowLayoutPanel()
                        {
                            Name = pr.pgroup.GroupName
                        };
                        pnl.AutoScroll   = false;
                        pnl.AutoSize     = true;
                        pnl.AutoSizeMode = AutoSizeMode.GrowAndShrink;
                        pnl.BorderStyle  = BorderStyle.FixedSingle;

                        string text = pr.pgroup.GroupName;
                        if (text.Trim().StartsWith("{"))
                        {
                            var id = LocalizedTextManager.GetStringId(text);
                            text = LocalizedTextManager.GetTranslatedText(ddlLanguage.SelectedItem.ToString(), id);
                        }

                        pnl.Controls.Add(new Label()
                        {
                            AutoSize = true, MinimumSize = new Size(700, 50), Text = text, Font = new System.Drawing.Font("Arial Narrow", 22F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)))
                        });
                        groupPanels.Add(pnl);
                        groupcount++;
                        groups.Add(pr.pgroup.GroupName);
                    }
                }

                var uc = new XPSettingControlBase(ddlLanguage.SelectedItem.ToString());
                uc.Anchor = AnchorStyles.Top;
                uc.SetProperty(pr.attribute, pr.propertyInfo, _settings);
                pnl.Controls.Add(uc);
                settingprops.Add(uc);
#if DEBUG
                descriptions.Add(pr.attribute.DisplayName);
                if (!string.IsNullOrWhiteSpace(pr.attribute.HintText))
                {
                    hints.Add(pr.attribute.HintText);
                }
#endif
            }

            foreach (var pnl in groupPanels)
            {
                if (pnl.Controls.Count > 0)
                {
                    pnlSettings.Controls.Add(pnl);
                }
            }

            pnlSettings.Refresh();
#if DEBUG
            using (var sw = new System.IO.StreamWriter("E:\\texts.json"))
            {
                var count = 0;
                foreach (var s in groups)
                {
                    count++;
                    string id = ("000" + count.ToString());
                    id = id.Substring(id.Length - 4);
                    sw.WriteLine("<string id=\"txpg" + id + "\" text=\"" + s + "\" />");
                }
                foreach (var s in descriptions)
                {
                    count++;
                    string id = ("000" + count.ToString());
                    id = id.Substring(id.Length - 4);
                    sw.WriteLine("<string id=\"txpd" + id + "\" text=\"" + s + "\" />");
                }
                foreach (var s in hints)
                {
                    count++;
                    string id = ("000" + count.ToString());
                    id = id.Substring(id.Length - 4);
                    sw.WriteLine("<string id=\"txph" + id + "\" text=\"" + s + "\" />");
                }
            }
#endif
        }