public string ToolTip() { StringBuilder sb = ToolTipManager.TipBody; if (ShowExplicitDescription) { sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_body"]); string buffTooltip = ""; for (int i = 0; i < Buffs.Count; i++) { string newBuffTip = Buffs[i].ToolTip; if (newBuffTip.Length > 0) { if (buffTooltip.Length > 0) { buffTooltip += ToolTipManager.GetConcat("\n", newBuffTip); } else { buffTooltip += newBuffTip; } } } sb.Append(buffTooltip); sb.Append("</color>"); } else { sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_body"]); sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("str_quirk_description_", Id))); sb.Append("</color>"); } return(sb.ToString()); }
public void SortByName() { DarkestSoundManager.PlayOneShot("event:/ui/town/sort_by"); RealmInventory.Trinkets.Sort((x, y) => LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", x.Id)). CompareTo(LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", y.Id)))); int trinketCount = RealmInventory.Trinkets.Count; int trinketsLoaded = Mathf.Min(trinketCount, InventorySlots.Count); for (int i = 0; i < trinketsLoaded; i++) { InventorySlots[i].CreateItem(RealmInventory.Trinkets[i]); } for (int i = trinketsLoaded; i < InventorySlots.Count; i++) { InventorySlots[i].DeleteItem(); } }
public string Tooltip() { StringBuilder sb = ToolTipManager.TipBody; sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["notable"]); sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("camping_skill_name_", Id))); sb.AppendFormat("\n" + LocalizationManager.GetString("camping_skill_cost"), TimeCost); sb.AppendFormat("</color><color={0}>", DarkestDungeonManager.Data.HexColors["neutral"]); for (int i = 0; i < Effects.Count; i++) { if (i > 0) { if (Effects[i - 1].Selection != Effects[i].Selection) { sb.Append("\n" + LocalizationManager.GetString( CampingSkillHelper.CampTargetTypeToStringId(Effects[i].Selection))); } } else { sb.Append("\n" + LocalizationManager.GetString( CampingSkillHelper.CampTargetTypeToStringId(Effects[i].Selection))); } string effectString = ""; switch (Effects[i].Type) { case CampEffectType.Buff: effectString = DarkestDungeonManager.Data.Buffs[Effects[i].Subtype].TooltipOverrided(Effects[i].Amount); break; case CampEffectType.HealthDamageMaxHealthPercent: effectString = string.Format(LocalizationManager.GetString( "camping_skill_effect_health_damage_max_health_percent"), Effects[i].Amount); break; case CampEffectType.HealthHealMaxHealthPercent: effectString = string.Format(LocalizationManager.GetString( "camping_skill_effect_health_heal_max_health_percent"), Effects[i].Amount); break; case CampEffectType.Loot: effectString = LocalizationManager.GetString("camping_skill_effect_loot_" + Effects[i].Subtype); break; case CampEffectType.ReduceAmbushChance: effectString = LocalizationManager.GetString("camping_skill_effect_reduce_ambush_chance"); break; case CampEffectType.ReduceTorch: effectString = string.Format(LocalizationManager.GetString( "camping_skill_effect_reduce_torch"), Effects[i].Amount); break; case CampEffectType.RemoveBleed: effectString = LocalizationManager.GetString("camping_skill_effect_remove_bleeding"); break; case CampEffectType.RemoveDeathRecovery: effectString = LocalizationManager.GetString("camping_skill_effect_remove_deaths_door_recovery_buffs"); break; case CampEffectType.RemoveDisease: effectString = LocalizationManager.GetString("camping_skill_effect_remove_disease"); break; case CampEffectType.RemovePoison: effectString = LocalizationManager.GetString("camping_skill_effect_remove_poison"); break; case CampEffectType.StressDamageAmount: effectString = string.Format(LocalizationManager.GetString( "camping_skill_effect_stress_damage_amount"), Effects[i].Amount); break; case CampEffectType.StressHealAmount: effectString = string.Format(LocalizationManager.GetString( "camping_skill_effect_stress_heal_amount"), Effects[i].Amount); break; } if (Effects[i].Chance != 1) { string formatChance = LocalizationManager.GetString("camping_skill_chance_effect_format"); effectString = string.Format(formatChance, Effects[i].Chance * 100, effectString); } switch (Effects[i].Requirement) { case CampEffectRequirement.Afflicted: case CampEffectRequirement.DeathRecovery: case CampEffectRequirement.Nonreligious: case CampEffectRequirement.Religious: if (effectString.Length > 0) { string reqFormat = LocalizationManager.GetString("camping_skill_requirement_effect_format"); sb.AppendFormat("\n" + reqFormat, LocalizationManager.GetString( CampingSkillHelper.CampRequirementToStringId(Effects[i].Requirement)), effectString); } break; case CampEffectRequirement.None: if (effectString.Length > 0) { sb.Append("\n" + effectString); } break; } } sb.AppendFormat("</color>"); return(sb.ToString()); }
private string GenerateDescription() { StringBuilder sb = ToolTipManager.TipBody; switch (ActivityType) { case ActivityType.LevelUp: #region Lvl up if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_is_now_a"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("hero_class_name_" + HeroClass), LocalizationManager.GetString("str_resolve_" + Variables[0]), Variables[0]); #endregion break; case ActivityType.StillMissing: #region Still missing if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_is_now_a"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_" + Variables[0])); #endregion break; case ActivityType.RemoveQuirk: #region Remove quirk if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_treatment_remove_negative_quirk"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), LocalizationManager.GetString("str_quirk_name_" + Variables[0])); #endregion break; case ActivityType.RemoveDisease: #region Remove disease if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_disease_treatment_remove_negative_quirk"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), LocalizationManager.GetString("str_quirk_name_" + Variables[0])); #endregion break; case ActivityType.RemoveAllDiseases: #region Remove all diseases if (Variables.Count < 1) { return("Not enough record variables."); } string diseasesString = ""; for (int i = 0; i < Variables.Count; i++) { if (i == 0) { diseasesString += LocalizationManager.GetString("str_quirk_name_" + Variables[i]); } else { diseasesString += ", " + LocalizationManager.GetString("str_quirk_name_" + Variables[i]); } } sb.AppendFormat(LocalizationManager.GetString("str_disease_treatment_removed_diseases_crit_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), diseasesString); #endregion break; case ActivityType.LockQuirk: #region Lock quirk if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_lock_quirk_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), LocalizationManager.GetString("str_quirk_name_" + Variables[0])); #endregion break; case ActivityType.LockRemoveQuirk: #region Lock and remove quirk if (Variables.Count < 2) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_treatment_remove_negative_quirk"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), LocalizationManager.GetString("str_quirk_name_" + Variables[0])); sb.AppendFormat("\n" + LocalizationManager.GetString("str_lock_quirk_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_sanitarium"), LocalizationManager.GetString("str_quirk_name_" + Variables[1])); #endregion break; case ActivityType.BarStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Bar stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_bar_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), Variables[0]); #endregion } #region Bar side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_bar_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "alcoholism": sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_quirk_alcoholism_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; case "resolution": sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_quirk_resolution_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff switch (EffectInfo) { case "townHungoverAccDebuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_buff_townHungoverAccDebuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString("str_bar_add_buff_townHungoverAccDebuff_story_desc")); break; case "townHungoverDEFDebuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_add_buff_townHungoverDEFDebuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString("str_bar_add_buff_townHungoverDEFDebuff_story_desc")); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket Trinket trinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo]; sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_remove_trinket_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors[trinket.RarityId], LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo))); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket sb.Append("\n Not expected to get trinket here."); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.AppendFormat("\n" + LocalizationManager.GetString("str_bar_currency_lost_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors["harmful"], EffectInfo); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.Append("\n Not expected to gain gold here."); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; case ActivityType.GambleStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Gamble stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_gambling_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), Variables[0]); #endregion } #region Gamble side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_gambling_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "gambler": sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_gambler_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; case "bad_gambler": sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_bad_gambler_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; case "known_cheat": sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_quirk_known_cheat_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff sb.Append("\n Not expected to get buffed here."); break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket Trinket trinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo]; sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_remove_trinket_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors[trinket.RarityId], LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo))); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket Trinket addTrinket = (Trinket)DarkestDungeonManager.Data.Items["trinket"][EffectInfo]; sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_add_trinket_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors[addTrinket.RarityId], LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", EffectInfo))); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_currency_lost_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors["harmful"], EffectInfo); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.AppendFormat("\n" + LocalizationManager.GetString("str_gambling_currency_gained_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), DarkestDungeonManager.Data.HexColors["notable"], EffectInfo); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; case ActivityType.BrothelStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Brothel stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_brothel_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), Variables[0]); #endregion } #region Brothel side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_brothel_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "love_interest": sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_love_interest_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; case "syphilis": sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_syphilis_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; case "deviant_tastes": sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_quirk_deviant_tastes_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff switch (EffectInfo) { case "townBrothelSPDBuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDBuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDBuff_story_desc")); break; case "townBrothelSPDDebuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDDebuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_tavern"), LocalizationManager.GetString("str_brothel_add_buff_townBrothelSPDDebuff_story_desc")); break; default: sb.Append("Surprising buff: " + EffectInfo); break; } break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket sb.Append("\n Not expected to lose trinket here."); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket sb.Append("\n Not expected to get trinket here."); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.Append("\n Not expected to lose gold here."); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.Append("\n Not expected to gain gold here."); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; case ActivityType.MeditationStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Meditation stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_meditation_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), Variables[0]); #endregion } #region Meditation side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_meditation_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "enlightened": sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_enlightened_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "improved_balance": sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_improved_balance_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "meditator": sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_meditator_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "calm": sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_calm_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "unquiet_mind": sb.AppendFormat("\n" + LocalizationManager.GetString("str_meditation_add_quirk_unquiet_mind_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff sb.Append("\n Not expected to get buffed here."); break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket sb.Append("\n Not expected to lose trinket here."); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket sb.Append("\n Not expected to get trinket here."); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.Append("\n Not expected to lose gold here."); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.Append("\n Not expected to gain gold here."); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; case ActivityType.PrayerStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Prayer stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_prayer_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), Variables[0]); #endregion } #region Prayer side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_prayer_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "god_fearing": sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_add_quirk_god_fearing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "witness": sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_add_quirk_witness_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff sb.Append("\n Not expected to get buffed here."); break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket sb.Append("\n Not expected to lose trinket here."); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket sb.Append("\n Not expected to get trinket here."); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.AppendFormat("\n" + LocalizationManager.GetString("str_prayer_currency_lost_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), DarkestDungeonManager.Data.HexColors["harmful"], EffectInfo); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.Append("\n Not expected to gain gold here."); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; case ActivityType.FlagellationStressHeal: if (ActivityEffectType != ActivityEffectType.Found) { #region Flagellation stress heal if (Variables.Count < 1) { return("Not enough record variables."); } sb.AppendFormat(LocalizationManager.GetString("str_flagellation_stress_relief_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), Variables[0]); #endregion } #region Flagellation side effect switch (ActivityEffectType) { case ActivityEffectType.Missing: #region Missing sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_go_missing_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Found: #region Found sb.AppendFormat(LocalizationManager.GetString("str_flagellation_go_missing_found_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.Lock: #region Lock sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_activity_lock_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey")); break; #endregion case ActivityEffectType.AddQuirk: #region Add Quirk switch (EffectInfo) { case "flagellant": sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_quirk_flagellant_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; case "faithless": sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_quirk_faithless_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString(EffectInfo)); break; default: sb.Append("Surprising quirk: " + EffectInfo); break; } break; #endregion case ActivityEffectType.AddBuff: #region Add Buff switch (EffectInfo) { case "townFlagellationDMGLowBuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowBuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowBuff_story_desc")); break; case "townFlagellationDMGLowDebuff": sb.AppendFormat("\n" + LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowDebuff_story"), DarkestDungeonManager.Data.HexColors["notable"], Actor, LocalizationManager.GetString("town_name_abbey"), LocalizationManager.GetString("str_flagellation_add_buff_townFlagellationDMGLowDebuff_story_desc")); break; default: sb.Append("Surprising buff: " + EffectInfo); break; } break; #endregion case ActivityEffectType.RemoveTrinket: #region Remove Trinket sb.Append("\n Not expected to lose trinket here."); break; #endregion case ActivityEffectType.AddTrinket: #region Add Trinket sb.Append("\n Not expected to get trinket here."); break; #endregion case ActivityEffectType.CurrencyLost: #region Currency Lost sb.Append("\n Not expected to lose gold here."); break; #endregion case ActivityEffectType.CurrencyGained: #region Currency Gained sb.Append("\n Not expected to gain gold here."); break; #endregion case ActivityEffectType.Nothing: break; } #endregion break; } cachedDescription = sb.ToString(); return(cachedDescription); }
public string HeroSkillTooltip(Hero hero) { StringBuilder sb = ToolTipManager.TipBody; sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["notable"]); sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("combat_skill_name_", hero.HeroClass.StringId, "_", Id))); sb.AppendFormat("</color><color={0}>", DarkestDungeonManager.Data.HexColors["neutral"]); if(TargetRanks.IsRandomTarget) { sb.Append("\n" + LocalizationManager.GetString("skill_random_target")); } if(Type != null) { sb.Append("\n" + LocalizationManager.GetString("str_" + Type)); } if (Heal != null) { if(TargetRanks.IsSelfFormation && TargetRanks.IsMultitarget) sb.AppendFormat("\n" + LocalizationManager.GetString("skill_party_heal_format"), Heal.MinAmount, Heal.MaxAmount); else sb.AppendFormat("\n" + LocalizationManager.GetString("skill_heal_format"), Heal.MinAmount, Heal.MaxAmount); } if (Move != null) { if(Move.Pullforward != 0) sb.AppendFormat("\n" + LocalizationManager.GetString("str_skill_tooltip_forward"), Move.Pullforward); else if (Move.Pushback != 0) sb.AppendFormat("\n" + LocalizationManager.GetString("str_skill_tooltip_back"), Move.Pushback); } if (Accuracy != 0) { sb.AppendFormat("\n" + LocalizationManager.GetString("str_skill_tooltip_acc_base"), Accuracy * 100); } if (DamageMod != 0) { sb.AppendFormat("\n" + LocalizationManager.GetString("str_skill_tooltip_dmg_mod"), DamageMod * 100); } if (CritMod != 0) { sb.AppendFormat("\n" + LocalizationManager.GetString("str_skill_tooltip_crit_mod"), CritMod * 100); } bool hasTargetLabel = false; bool hasSelfLabel = false; bool hasPartyLabel = false; bool hasPartyOtherLabel = false; if(ValidModes.Count > 1) { foreach (var modeName in ValidModes) { hasTargetLabel = false; hasSelfLabel = false; hasPartyLabel = false; hasPartyOtherLabel = false; if (!ModeEffects.ContainsKey(modeName)) continue; sb.Append("\n" + LocalizationManager.GetString("str_skill_mode_info_" + modeName)); #region Effects foreach (var effect in ModeEffects[modeName]) { switch (effect.TargetType) { case EffectTargetType.Target: if (TargetRanks.IsSelfFormation && TargetRanks.IsMultitarget && TargetRanks.Ranks.Count == 4) { if (hasPartyLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_party")); hasPartyLabel = true; } else if (TargetRanks.IsSelfTarget) { if (hasSelfLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_self")); hasSelfLabel = true; } else { if (hasTargetLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_target")); hasTargetLabel = true; } break; case EffectTargetType.Performer: if (hasSelfLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_self")); hasSelfLabel = true; break; case EffectTargetType.PerformersOther: if (hasPartyOtherLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_party_other")); hasPartyOtherLabel = true; break; default: break; } string effectTooltip = effect.Tooltip(); if (effectTooltip.Length > 0) sb.Append("\n" + effectTooltip); } #endregion } } #region Effects foreach (var effect in Effects) { switch(effect.TargetType) { case EffectTargetType.Target: if (TargetRanks.IsSelfFormation && TargetRanks.IsMultitarget && TargetRanks.Ranks.Count == 4) { if (hasPartyLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_party")); hasPartyLabel = true; } else if (TargetRanks.IsSelfTarget) { if (hasSelfLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_self")); hasSelfLabel = true; } else { if (hasTargetLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_target")); hasTargetLabel = true; } break; case EffectTargetType.Performer: if (hasSelfLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_self")); hasSelfLabel = true; break; case EffectTargetType.PerformersOther: if (hasPartyOtherLabel) break; sb.Append("\n" + LocalizationManager.GetString("effect_tooltip_party_other")); hasPartyOtherLabel = true; break; default: break; } string effectTooltip = effect.Tooltip(); if(effectTooltip.Length > 0) sb.Append("\n" + effectTooltip); } #endregion sb.Append("</color>"); return sb.ToString(); }
public string TooltipOverrided(float amount) { if (AttributeType == AttributeType.DamageLow || amount == 0) { return(""); } var sb = ToolTipManager.SubTipBody; var attributeCategory = CharacterHelper.GetAttributeCategory(AttributeType); switch (attributeCategory) { case AttributeCategory.Modifier: sb.AppendFormat(LocalizationManager.GetString( ToolTipManager.GetConcat("buff_stat_tooltip_" + CharacterHelper.AttributeTypeToString(AttributeType))), amount); break; case AttributeCategory.CombatStat: sb.AppendFormat(LocalizationManager.GetString( ToolTipManager.GetConcat("buff_stat_tooltip_", CharacterHelper.BuffTypeToString(Type), "_", CharacterHelper.AttributeTypeToString(AttributeType))), amount); break; default: sb.AppendFormat(LocalizationManager.GetString( ToolTipManager.GetConcat("buff_stat_tooltip_", CharacterHelper.AttributeCategoryToString(attributeCategory), "_", CharacterHelper.AttributeTypeToString(AttributeType))), amount); break; } string body = sb.ToString(); sb = ToolTipManager.SubTipBody; switch (RuleType) { case BuffRule.EnemyType: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), LocalizationManager.GetString("buff_rule_data_tooltip_" + StringParam), body); break; case BuffRule.InRank: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), SingleParam + 1, body); break; case BuffRule.Size: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), SingleParam + 1, body); break; case BuffRule.Skill: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), LocalizationManager.GetString("buff_rule_data_tooltip_" + StringParam), body); break; case BuffRule.Status: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), LocalizationManager.GetString("buff_rule_data_tooltip_" + StringParam), body); break; case BuffRule.LightBelow: case BuffRule.LightAbove: case BuffRule.HpBelow: case BuffRule.HpAbove: case BuffRule.StressAbove: case BuffRule.StressBelow: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), SingleParam, body); break; default: sb.AppendFormat(LocalizationManager.GetString( CharacterLocalizationHelper.BuffRuleTooltipString(RuleType, IsFalseRule)), StringParam, body); break; } return(sb.ToString()); }
public override string ToolTip(bool discard = false) { StringBuilder sb = ToolTipManager.TipBody; sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_title"]); if (RarityId == "kickstarter") { sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", Id))); } else { sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("str_inventory_title_trinket", Id))); } sb.AppendFormat("</color>\n<color={0}>", DarkestDungeonManager.Data.HexColors[RarityId]); sb.Append(LocalizationManager.GetString(ToolTipManager.GetConcat("trinket_rarity_", RarityId))); sb.Append("</color>"); #region Requirements if (ClassRequirements.Count > 0) { sb.AppendLine(); string trinketRequirementFormat = LocalizationManager.GetString("trinket_hero_class_requirement_format"); string requiredHeroes = ""; for (int i = 0; i < ClassRequirements.Count; i++) { if (i == 0) { requiredHeroes += LocalizationManager.GetString("hero_class_name_" + ClassRequirements[i]); } else { requiredHeroes += " " + LocalizationManager.GetString("trinket_hero_class_requirement_seperator") + " " + LocalizationManager.GetString("hero_class_name_" + ClassRequirements[i]); } } sb.AppendFormat(trinketRequirementFormat, requiredHeroes); } #endregion sb.AppendFormat("<color={0}>", DarkestDungeonManager.Data.HexColors["equipment_tooltip_body"]); for (int i = 0; i < Buffs.Count; i++) { if (Buffs[i].AttributeType == AttributeType.DamageLow) { continue; } sb.Append(ToolTipManager.GetConcat("\n", Buffs[i].ToolTip)); } sb.Append("</color>"); if (PurchasePrice != 0) { sb.AppendFormat("\n<color={0}>", DarkestDungeonManager.Data.HexColors["inventory_tooltip_gold_value"]); sb.AppendFormat(LocalizationManager.GetString("str_inventory_gold_value_format"), PurchasePrice); sb.Append("</color>"); } if (discard) { sb.AppendFormat("\n<color={0}>", DarkestDungeonManager.Data.HexColors["harmful"]); sb.Append(LocalizationManager.GetString("str_discard_item_instructions")); sb.Append("</color>"); } return(sb.ToString()); }