コード例 #1
0
        public Summary(string assetPath)
        {
            Name  = assetPath;
            Title = "Summary constructor error";
            Text  = new List <TextPair>();

            List <string> rawText             = new List <string>(ModManager.Instance.GetMod("Bestiary").GetAsset <TextAsset>(Name).text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
            bool          foundKillcountStart = false;

            for (int i = 0; i < rawText.Count; i++)
            {
                switch (i)
                {
                case 0:
                    if (DaggerfallUnity.Settings.SDFFontRendering)
                    {
                        Title = rawText[i];
                    }
                    else
                    {
                        Title = rawText[i].Replace(" - ", " ");
                    };
                    break;

                default:
                    if (rawText[i].Length > 2 && rawText[i].Contains("*"))
                    {
                        var splitResult = rawText[i].Split('*');
                        if (!foundKillcountStart && splitResult[0] == "Killcount:")
                        {
                            foundKillcountStart = true;
                        }

                        if (foundKillcountStart && splitResult[1].Length > 3)
                        {
                            string temp = AllTextClass.EntryTitleToEntryName(splitResult[1].Remove(splitResult[1].Length - 3));

                            if (BestiaryMain.killCounts.ContainsKey(temp))
                            {
                                Text.Add(new TextPair(splitResult[0], splitResult[1] + BestiaryMain.killCounts[temp]));
                            }
                            else
                            {
                                Text.Add(new TextPair(splitResult[0], splitResult[1] + "0"));
                            }
                        }
                        else
                        {
                            Text.Add(new TextPair(splitResult[0], splitResult[1]));
                        }
                    }
                    break;
                }
            }
        }
コード例 #2
0
ファイル: BestiaryMain.cs プロジェクト: JIRKA222/DFu-Bestiary
        private static void InitializeUI()
        {
            if (SettingEntries == 2)
            {
                AllText = new AllTextClass(pagesClassic);
            }
            else
            {
                AllText = new AllTextClass(pagesFull);
            }
            bestiaryUIScreen = new BestiaryUI(DaggerfallWorkshop.Game.DaggerfallUI.UIManager);

            readyToOpenUI = true;
        }
コード例 #3
0
ファイル: BestiaryMain.cs プロジェクト: JIRKA222/DFu-Bestiary
        public static void EnemyDeath_OnEnemyDeath(object sender, EventArgs e)
        {
            EnemyDeath enemyDeath = sender as EnemyDeath;

            if (enemyDeath != null)
            {
                DaggerfallEntityBehaviour entityBehaviour = enemyDeath.GetComponent <DaggerfallEntityBehaviour>();
                if (entityBehaviour != null)
                {
                    EnemyEntity enemyEntity = entityBehaviour.Entity as EnemyEntity;
                    if (enemyEntity != null)
                    {
                        if (entityBehaviour.GetComponent <EnemySenses>().Target == GameManager.Instance.PlayerEntityBehaviour)
                        {
                            string monsterName = AllTextClass.MonsterCareerIndexToString(enemyEntity.CareerIndex);
                            if (killCounts.ContainsKey(monsterName))
                            {
                                killCounts[monsterName] += 1;
                                for (int i = 0; i < AllText.Pages.Count; i++)
                                {
                                    AllText.Pages[i].PageSummary = new Summary(AllText.Pages[i].PageSummary.Name);
                                }
                            }
                            else
                            {
                                if (SettingEntries == 1 && monsterName != "false")
                                {
                                    DaggerfallUI.AddHUDText(String.Format("{0} has been added to the Bestiary.", new List <string>(mod.GetAsset <TextAsset>(monsterName).text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries))[2]));
                                }

                                killCounts.Add(monsterName, 1);
                                InitializeUI();
                            }
                        }
                    }
                }
            }
        }