/// <summary> /// Raise skills if conditions are met. /// </summary> public void RaiseSkills() { DaggerfallDateTime now = DaggerfallUnity.Instance.WorldTime.Now; if ((now.ToClassicDaggerfallTime() - timeOfLastSkillIncreaseCheck) <= 360) { return; } timeOfLastSkillIncreaseCheck = now.ToClassicDaggerfallTime(); for (short i = 0; i < skillUses.Length; i++) { int skillAdvancementMultiplier = DaggerfallSkills.GetAdvancementMultiplier((DFCareer.Skills)i); float careerAdvancementMultiplier = Career.AdvancementMultiplier; int usesNeededForAdvancement = FormulaHelper.CalculateSkillUsesForAdvancement(skills.GetSkillValue(i), skillAdvancementMultiplier, careerAdvancementMultiplier, level); if (skillUses[i] >= usesNeededForAdvancement) { skillUses[i] = 0; skills.SetSkillValue(i, (short)(skills.GetSkillValue(i) + 1)); SetCurrentLevelUpSkillSum(); DaggerfallUI.Instance.PopupMessage(HardStrings.skillImprove.Replace("%s", DaggerfallUnity.Instance.TextProvider.GetSkillName((DaggerfallConnect.DFCareer.Skills)i))); } } if (CheckForLevelUp()) { DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenCharacterSheetWindow); } }
/// <summary> /// Raise skills if conditions are met. /// </summary> public void RaiseSkills() { const int youAreNowAMasterOfTextID = 4020; DaggerfallDateTime now = DaggerfallUnity.Instance.WorldTime.Now; if ((now.ToClassicDaggerfallTime() - timeOfLastSkillIncreaseCheck) <= 360) { return; } timeOfLastSkillIncreaseCheck = now.ToClassicDaggerfallTime(); for (short i = 0; i < skillUses.Length; i++) { int skillAdvancementMultiplier = DaggerfallSkills.GetAdvancementMultiplier((DFCareer.Skills)i); float careerAdvancementMultiplier = Career.AdvancementMultiplier; int usesNeededForAdvancement = FormulaHelper.CalculateSkillUsesForAdvancement(skills.GetPermanentSkillValue(i), skillAdvancementMultiplier, careerAdvancementMultiplier, level); if (skillUses[i] >= usesNeededForAdvancement) { skillUses[i] = 0; if (skills.GetPermanentSkillValue(i) < 100 && (skills.GetPermanentSkillValue(i) < 95 || !AlreadyMasteredASkill())) { skills.SetPermanentSkillValue(i, (short)(skills.GetPermanentSkillValue(i) + 1)); SetCurrentLevelUpSkillSum(); DaggerfallUI.Instance.PopupMessage(HardStrings.skillImprove.Replace("%s", DaggerfallUnity.Instance.TextProvider.GetSkillName((DFCareer.Skills)i))); if (skills.GetPermanentSkillValue(i) == 100) { List <DFCareer.Skills> primarySkills = GetPrimarySkills(); if (primarySkills.Contains((DFCareer.Skills)i)) { ITextProvider textProvider = DaggerfallUnity.Instance.TextProvider; TextFile.Token[] tokens; tokens = textProvider.GetRSCTokens(youAreNowAMasterOfTextID); if (tokens != null && tokens.Length > 0) { DaggerfallMessageBox messageBox = new DaggerfallMessageBox(DaggerfallUI.UIManager); messageBox.SetTextTokens(tokens); messageBox.ClickAnywhereToClose = true; messageBox.ParentPanel.BackgroundColor = Color.clear; messageBox.Show(); } DaggerfallUI.Instance.PlayOneShot(SoundClips.ArenaFanfareLevelUp); } } } } } if (CheckForLevelUp()) { DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenCharacterSheetWindow); } }