private void evolve(SpecializationType type) { foreach (GameObject bee in EntityManager.Instance.Bees) { if (bee.tag == "WorkerBee" && bee.GetComponent <Selectable>().IsSelected) { var spec = bee.GetComponent <Stats>(); if (spec.Spec.Type != SpecializationType.None) { continue; } if (UIController.Instance.resourceManager.RequireResources(Costs.Get("Spec" + type))) { spec.Specialize(type); UIController.Instance.resourceManager.RemoveResources(Costs.Get("Spec" + type)); UIController.Instance.SetBeeLoadText(bee); } else { TextController.Instance.Add("Not enough resource to evolve into " + type + "!"); } UIController.Instance.SetBottomPanel(UIController.BPType.Text); } } }
public SpecializeMission(string title, string description, SpecializationType specialization, int times) : base(title, description) { targetSpecialization = specialization; targetTimes = times; count = 0; }
public static Specialization GetSpecialization(SpecializationType type) { if (specializations[(int)type] == null) { switch (type) { case SpecializationType.None: specializations[(int)type] = new None(); break; case SpecializationType.Forager: specializations[(int)type] = new Forager(); break; case SpecializationType.Guard: specializations[(int)type] = new Guard(); break; case SpecializationType.Inkeeper: specializations[(int)type] = new Inkeeper(); break; case SpecializationType.Scout: specializations[(int)type] = new Scout(); break; default: break; } } return(specializations[(int)type]); }
public SpecializeMission(string title, string description, SpecializationType specialization, int times) : base(title, description) { targetSpecialization = specialization; targetTimes = times; count = 0; }
//private string _longText; //public string LongText //{ // get { return _longText; } // set // { // _longText = value; // OnPropertyChanged(); // } //} public SpecializationType GetPanelType() { var newType = new SpecializationType(); //newType.LongName = LongText; newType.Str = ShortText; return(newType); }
public static void UpdateSpecializationAmountAndUi(SpecializationType specializationType, int amountIncreased = 1) { if (User.Instance.CurrentHero is not null) { User.Instance.CurrentHero.Specializations.SpecializationAmounts[specializationType] += amountIncreased; InterfaceHelper.UpdateSingleSpecializationInterface(specializationType); } }
public List <GameObject> GetRandomBees(int n, SpecializationType type = SpecializationType.None) { switch (type) { case SpecializationType.Guard: return(getRandom(GuardBees, n)); case SpecializationType.Forager: return(getRandom(ForagerBees, n)); case SpecializationType.Inkeeper: return(getRandom(InkeeperBees, n)); } return(getRandom(Bees, n)); }
public static VMSpecializationType GetVMSpecializationType(this SpecializationType spec) { return(spec.LuaType switch { SpecializationLuaType.Bool => VMSpecializationType.Bool, SpecializationLuaType.Int32 => VMSpecializationType.Int, SpecializationLuaType.Double => VMSpecializationType.Double, SpecializationLuaType.String => VMSpecializationType.String, SpecializationLuaType.CLRDelegate => VMSpecializationType.NClosure, SpecializationLuaType.Nil => VMSpecializationType.Nil, SpecializationLuaType.Table => VMSpecializationType.Table, SpecializationLuaType.Thread => VMSpecializationType.Polymorphic, //No support for thread type in VM. SpecializationLuaType.UserData => VMSpecializationType.UserData, SpecializationLuaType.Unspecified => VMSpecializationType.Polymorphic, SpecializationLuaType.Polymorphic => VMSpecializationType.Polymorphic, _ => VMSpecializationType.Polymorphic, });
private void GenerateSingleSpecializationToolTip(SpecializationType specializationType) { var nextUpgrade = User.Instance.CurrentHero.Specializations.SpecializationAmounts[specializationType]; while (nextUpgrade >= User.Instance.CurrentHero.Specializations.SpecializationThresholds[specializationType]) { nextUpgrade -= User.Instance.CurrentHero.Specializations.SpecializationThresholds[specializationType]; } nextUpgrade = User.Instance.CurrentHero.Specializations.SpecializationThresholds[specializationType] - nextUpgrade; var toolTip = HeroStatsToolTipHelper.GenerateSpecializationToolTip(specializationType, nextUpgrade); var buffBlock = (TextBlock)LogicalTreeHelper.FindLogicalNode(this, "Spec" + specializationType + "Buff"); buffBlock.ToolTip = toolTip; }
public void Specialize(SpecializationType type) { if (type != SpecializationType.None) { //This should be changed if (type == SpecializationType.Inkeeper) { gameObject.GetComponent <Controllable>().canInkeep = true; } spec = SpecializationFactory.GetSpecialization(type); GetComponent <Animator>().SetInteger("Specialization", (int)type); if (BeeSpecialized != null) { BeeSpecialized(gameObject); } } }
private void evolve(SpecializationType type) { foreach (GameObject bee in EntityManager.Instance.Bees) { if (bee.tag == "WorkerBee" && bee.GetComponent<Selectable>().IsSelected) { var spec = bee.GetComponent<Stats>(); if (spec.Spec.Type != SpecializationType.None) continue; if (UIController.Instance.resourceManager.RequireResources(Costs.Get("Spec" + type))) { spec.Specialize(type); UIController.Instance.resourceManager.RemoveResources(Costs.Get("Spec" + type)); UIController.Instance.SetBeeLoadText(bee); } else TextController.Instance.Add("Not enough resource to evolve into " + type + "!"); UIController.Instance.SetBottomPanel(UIController.BPType.Text); } } }
public static void UpdateSingleSpecializationInterface(SpecializationType specializationType) { try { dynamic p = GameAssets.CurrentPage; HeroStatsPage statsPage = p.StatsFrame.Content; statsPage.UpdateSingleSpecializationInterface(specializationType); } catch (RuntimeBinderException) { // No stats frame on this page! // Best solution according to: // https://stackoverflow.com/a/5768449/14770235 } catch (NullReferenceException) { // This might be necessary instead of the above with the new approach. } }
protected Specialization( SpecializationType type, float speedMultiplier, float visualRadiusMultiplier, float damageMultiplier, float attackRangeMultiplier, float cooldownTimeMultiplier, float loadSizeMultiplier, float loadTimeMultiplier, float reactionTimeMultiplier) { Type = type; SpeedMultiplier = speedMultiplier; VisualRadiusMultiplier = visualRadiusMultiplier; DamageMultiplier = damageMultiplier; AttackRangeMultiplier = attackRangeMultiplier; CooldownTimeMultiplier = cooldownTimeMultiplier; LoadSizeMultiplier = loadSizeMultiplier; LoadTimeMultiplier = loadTimeMultiplier; ReactionTimeMultiplier = reactionTimeMultiplier; }
protected Specialization( SpecializationType type, float speedMultiplier, float visualRadiusMultiplier, float damageMultiplier, float attackRangeMultiplier, float cooldownTimeMultiplier, float loadSizeMultiplier, float loadTimeMultiplier, float reactionTimeMultiplier) { Type = type; SpeedMultiplier = speedMultiplier; VisualRadiusMultiplier = visualRadiusMultiplier; DamageMultiplier = damageMultiplier; AttackRangeMultiplier = attackRangeMultiplier; CooldownTimeMultiplier = cooldownTimeMultiplier; LoadSizeMultiplier = loadSizeMultiplier; LoadTimeMultiplier = loadTimeMultiplier; ReactionTimeMultiplier = reactionTimeMultiplier; }
public override int GetHashCode() { return(SpecializationType.GetHashCode()); }
public List<GameObject> GetRandomBees(int n, SpecializationType type = SpecializationType.None) { switch (type) { case SpecializationType.Guard: return getRandom(GuardBees, n); case SpecializationType.Forager: return getRandom(ForagerBees, n); case SpecializationType.Inkeeper: return getRandom(InkeeperBees, n); } return getRandom(Bees, n); }
public void UpdateSingleSpecializationInterface(SpecializationType specializationType) { var buffBlockName = "Spec" + specializationType + "Buff"; var buffBlock = SpecializationsGrid.Children.Cast <TextBlock>().FirstOrDefault(textBlock => textBlock.Name == buffBlockName); // Find the existing control in SpecializationsGrid. if (buffBlock != null) { buffBlock.Inlines.Clear(); var fontFamilyRegularBold = (FontFamily)FindResource("FontRegularBold"); switch (specializationType) { case SpecializationType.Blessing: buffBlock.Inlines.Add(new Run("Blessing duration +")); buffBlock.Inlines.Add(new Run(User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Blessing] + "s") { FontFamily = fontFamilyRegularBold }); break; case SpecializationType.Clicking: buffBlock.Inlines.Add(new Run("On-hit damage ")); buffBlock.Inlines.Add(new Run("+" + User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Clicking]) { Foreground = (SolidColorBrush)FindResource("BrushDamageTypeOnHit"), FontFamily = fontFamilyRegularBold }); break; case SpecializationType.Crafting: buffBlock.Inlines.Add("Can craft "); buffBlock.Inlines.Add(new Run(User.Instance.CurrentHero.Specializations.SpecCraftingText) { Foreground = ColorsHelper.GetRarityColor((Rarity)User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Crafting]), FontFamily = fontFamilyRegularBold }); buffBlock.Inlines.Add(" artifacts"); break; case SpecializationType.Trading: buffBlock.Inlines.Add(new Run("Shop size & ratio ")); buffBlock.Inlines.Add(new Run("+" + User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Trading]) { FontFamily = fontFamilyRegularBold }); break; case SpecializationType.Melting: buffBlock.Inlines.Add(new Run("Extra ingots ")); buffBlock.Inlines.Add(new Run("+" + User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Melting] + "%") { FontFamily = fontFamilyRegularBold }); break; case SpecializationType.Questing: buffBlock.Inlines.Add(new Run("Quest time ")); buffBlock.Inlines.Add(new Run("-" + User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Questing] + "%") { FontFamily = fontFamilyRegularBold }); break; case SpecializationType.Dungeon: buffBlock.Inlines.Add(new Run("Bossfight timer ")); buffBlock.Inlines.Add(new Run("+" + User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Dungeon] + "s") { FontFamily = fontFamilyRegularBold }); break; } GenerateSingleSpecializationToolTip(specializationType); } }
public Skill(SkillType type, AttributeType governingAttribute, SpecializationType specialization) : base(type) { GoverningAttribute = governingAttribute; Specialization = specialization; }
public void Specialize(SpecializationType type) { if (type != SpecializationType.None) { //This should be changed if (type == SpecializationType.Inkeeper) { gameObject.GetComponent<Controllable>().canInkeep = true; } spec = SpecializationFactory.GetSpecialization(type); GetComponent<Animator>().SetInteger("Specialization", (int)type); if (BeeSpecialized != null) { BeeSpecialized(gameObject); } } }
public static ToolTip GenerateSpecializationToolTip(SpecializationType typeOfGeneratedSpecialization, int nextUpgrade) { var fontSizeToolTipName = (double)Application.Current.FindResource("FontSizeToolTipName"); var fontFamilyRegularItalic = (FontFamily)Application.Current.FindResource("FontRegularItalic"); var fontFamilyRegularBlackItalic = (FontFamily)Application.Current.FindResource("FontRegularBlackItalic"); var specToolTip = new ToolTip(); var toolTipBlock = new TextBlock { Style = (Style)Application.Current.FindResource("ToolTipTextBlockBase") }; switch (typeOfGeneratedSpecialization) { case SpecializationType.Blessing: { toolTipBlock.Inlines.Add(new Run("Prayer") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Increases blessing duration by ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero?.Specializations.SpecializationBuffs[SpecializationType.Blessing]}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run(" seconds")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Prayer by buying blessings in Priest") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecBlessingBuffBonus}s duration) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("bought blessings") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Clicking: { toolTipBlock.Inlines.Add(new Run("Clicker") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Your clicks deal a bonus ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero?.Specializations.SpecializationBuffs[SpecializationType.Clicking]}") { Foreground = (SolidColorBrush)Application.Current.FindResource("BrushDamageTypeOnHit"), FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run(" on-hit damage") { Foreground = (SolidColorBrush)Application.Current.FindResource("BrushDamageTypeOnHit") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("On-hit damage from this specialization is applied after other effects eg. crit") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray5") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Clicker by clicking on monsters and bosses") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecClickingBuffBonus} on-hit damage) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("clicks") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Crafting: { toolTipBlock.Inlines.Add(new Run("Craftsman") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Increases crafting rarity limit (current limit is ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero?.Specializations.SpecCraftingText}") { FontFamily = fontFamilyRegularBlackItalic, Foreground = ColorsHelper.GetRarityColor((Rarity)User.Instance.CurrentHero?.Specializations.SpecializationBuffs[SpecializationType.Crafting]) }); toolTipBlock.Inlines.Add(new Run(" rarity)")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Craftsman by crafting artifacts in Blacksmith") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Next rarity limit upgrade in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("crafted artifacts") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Trading: { toolTipBlock.Inlines.Add(new Run("Tradesman") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Increases shop offer size (current size is ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Trading]}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("),")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("and materials selling ratio (current bonus ratio is ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Trading]}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("%)")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Tradesman by buying recipes or selling materials in shop") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecTradingBuffBonus} shop offer size and +{Specializations.SpecTradingBuffBonus}% materials selling ratio) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("bought recipes or sold materials") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Melting: { toolTipBlock.Inlines.Add(new Run("Melter") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Increases % chance to get a bonus ")); toolTipBlock.Inlines.Add(new Run($"{Material.BaseMeltingIngotBonus}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run(" ingots when melting materials")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Each 100% guarantees additional {Material.BaseMeltingIngotBonus} ingots") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray5") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Melter by melting materials in Blacksmith") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecMeltingBuffBonus}% chance) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("melted materials") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Questing: { toolTipBlock.Inlines.Add(new Run("Adventurer") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Reduces % time to complete quests (current bonus is ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero.Specializations.SpecializationBuffs[SpecializationType.Questing]}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("%)")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Maximum reduction value is {Specializations.SpecQuestingBuffLimit}%") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray5") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Adventurer by completing quests") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecQuestingBuffBonus}% reduced time) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("completed quests") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; case SpecializationType.Dungeon: { toolTipBlock.Inlines.Add(new Run("Daredevil") { FontSize = fontSizeToolTipName }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("Increases the amount of time to defeat bosses (current bonus time is ")); toolTipBlock.Inlines.Add(new Run($"{User.Instance.CurrentHero?.Specializations.SpecializationBuffs[SpecializationType.Dungeon]}") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("s)")); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(GenerateTextSeparator()); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run("You can master Daredevil by trading recipes in shop") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new LineBreak()); toolTipBlock.Inlines.Add(new Run($"Next upgrade (+{Specializations.SpecDungeonBuffBonus} second) in") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); toolTipBlock.Inlines.Add(new Run($" {nextUpgrade} ") { FontFamily = fontFamilyRegularBlackItalic }); toolTipBlock.Inlines.Add(new Run("finished dungeons") { FontFamily = fontFamilyRegularItalic, Foreground = (SolidColorBrush)Application.Current.FindResource("BrushGray3") }); } break; } specToolTip.Content = toolTipBlock; return(specToolTip); }