diff --git a/env/combatlog_deDE.lua b/env/combatlog_deDE.lua index 3e357e6c..e96a76fe 100644 --- a/env/combatlog_deDE.lua +++ b/env/combatlog_deDE.lua @@ -470,6 +470,11 @@ pfUI_locale["deDE"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "Hinzufügen", ADDITIONAL_FILTERS = "Zusätzliche Filter", + ADD_FILTER = "Filter hinz.", + AURAS = "Auren", + AURAS_COMBATLOG_TOOLTIP = "Zeigt Nachrichten über vorteilhafte und schädliche Statuseffekte an.", + BENEFICIAL = "Vorteilhaft", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn Ihr eine vorteilhafte Aura erhaltet oder verliert.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "Alles anzeigen, das %s betrifft?", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Alles anzeigen", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Was ist mit %s geschehen?", @@ -479,21 +484,149 @@ pfUI_locale["deDE"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "Als neuen Filter speichern", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Nachrichten wie diese ausblenden.", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "%s zum Chat verlinken.", + BY_SOURCE = "Nach Quelle", + BY_SOURCE_COMBATLOG_TOOLTIP = "Zeilenfarbe basierend auf dem Zaubernden.", + BY_TARGET = "Nach Ziel", + BY_TARGET_COMBATLOG_TOOLTIP = "Zeilenfarbe basierend auf dem Ziel.", + COLORIZE = "Einfärben:", + COLORS = "Farben", + COLOR_BY_SCHOOL = "Farbe nach Art", + COMBATLOG_DEFAULTS = "Kampflog: Standard", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Benutzerdefinierte Einheit", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Freundliche Einheiten", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Gegnerische Spieler", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Feindliche Einheiten", + COMBATLOG_FILTER_STRING_ME = "Spieler", + COMBATLOG_FILTER_STRING_MY_PET = "Begleiter", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutrale Einheiten", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Unbekannt", + COMBATLOG_HIGHLIGHT_ABILITY = "Fähigkeit", + COMBATLOG_HIGHLIGHT_DAMAGE = "Schaden", + COMBATLOG_HIGHLIGHT_KILL = "Sieg", + COMBATLOG_HIGHLIGHT_SCHOOL = "Magieart", COMBATLOG_UNKNOWN_UNIT = "Etwas", COMBAT_FACTION_CHANGE = "Ruf", COMBAT_HONOR_GAIN = "Ehre", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "Versch. Infos", COMBAT_XP_GAIN = "Erfahrung", + CONFIRM_COMBAT_FILTER_DEFAULTS = "Wollt Ihr Eure Filter wirklich auf die Standardeinstellungen zurücksetzen?", + CONFIRM_COMBAT_FILTER_DELETE = "Wollt Ihr diesen Filter wirklich löschen?", + COPY_FILTER = "Filter kop.", + DAMAGE_NUMBER = "Schadenszahl", + DAMAGE_SCHOOL_TEXT = "Schadensart", DAMAGE_SHIELD = "Schadensschilde", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit als Reaktion auf einen Nahkampfangriff Schaden verursacht, z.B. Dornen.", + DEATHS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn etwas stirbt.", DEFAULT_COMBATLOG_FILTER_NAME = "Filter %d", + DISPELS = "Bannungen", + DISPEL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn eine Aura entfernt, unterbrochen oder gestohlen wird.", + DONE_BY = "Aktion von:", + DONE_TO = "Aktion auf:", + DRAINS = "Entzüge", ENTER_FILTER_NAME = "Filternamen eingeben:", + ENTIRE_LINE = "Gesamte Zeile", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "Die gesamte Zeile basierend auf der unteren Auswahl einfärben.", ENVIRONMENTAL_DAMAGE = "Umgebungsschaden", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn jemand Schaden durch Stürze, durch Ertrinken oder das Schwimmen in Lava erhält.", + EXAMPLE_SPELL_FIREBALL = "Feuerball", + EXAMPLE_SPELL_FROSTBOLT = "Frostblitz", + EXAMPLE_TARGET_MONSTER = "Monster", + EXAMPLE_TEXT = "Beispieltext:", + EXTRA_ATTACKS = "Zusatzangriffe", + FAILURES = "Fehlschläge", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Aktionen, die von feindlichen Kreaturen und Begleitern durchgeführt werden.", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Aktionen, die von freundlichen Spielern, Begleitern und Kreaturen durchgeführt werden.", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Aktionen, die von feindlichen Spielern durchgeführt werden.", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "Aktionen, die von Euch, Euren Fallen und Euren Zaubern durchgeführt werden.", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Aktionen, die von neutralen Kreaturen durchgeführt werden.", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "Aktionen, die von Euren Begleitern, beschworenen Wächtern oder von Euch bezauberten Spielern durchgeführt werden.", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Aktionen, die von unbestimmten Quellen durchgeführt werden, so wie Sturz, Säure oder Lava.", + FILTER_NAME = "Filtername", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Aktionen, die auf freundliche Spieler, Begleiter und Kreaturen durchgeführt werden.", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Aktionen, die auf feindliche Begleiter und Kreaturen durchgeführt werden.", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Aktionen, die auf gegnerische Spieler durchgeführt werden.", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "Aktionen, die auf Euch durchgeführt werden.", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Aktionen, die auf neutrale Kreaturen durchgeführt werden.", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "Aktionen, die auf Eure Begleiter, beschworene Wächter oder von Euch bezauberte Spieler durchgeführt werden.", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Aktionen, die auf unsichtbare Ziele durchgeführt werden.", + FORMATTING = "Format", + FULL_TEXT_COMBATLOG_TOOLTIP = "Kampflogeinträge als vollständige Sätze anzeigen.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "Anzeigen, wenn Ihr eine schädliche Aura erhaltet oder verliert.", + HEALS = "Heilungen", + HIGHLIGHTING = "Hervorhebung:", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Namen von Fähigkeiten hervor.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Schadenszahlen hervor.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Hebt die gesamte Zeile hervor, wenn Ihr oder ein Mitglied Eurer Gruppe einen Feind besiegt.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Hebt in den Kampfnachrichten die Zauberarten hervor.", + HOSTILE = "Feindlich", + INTERRUPTS = "Unterbrechungen", + ITEM_NAMES = "Gegenstandsnamen", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Gegenständen anzeigen.", + KILLS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Mitglied Eurer Gruppe etwas tötet.", + MELEE = "Nahkampf", + MELEE_COMBATLOG_TOOLTIP = "Zeigt gewöhnliche Nahkampfangriffe an.", + MESSAGE_SOURCES = "Nachrichtenquellen", + MISSES = "Verfehlen", + MOVE_FILTER_DOWN = "Filter nach unten", + MOVE_FILTER_UP = "Filter nach oben", + OTHER = "Anderes", + PERIODIC = "Regelmäßig", + POWER_GAINS = "Machtgewinn", + POWER_GAINS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Mana, Energie, Wut, Fokus, Chi, heilige Kraft oder Schattenkugeln wiederherstellt.", + QUICKBUTTON_NAME_EVERYTHING = "Alles", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Alle Kampfnachrichten anzeigen.", + QUICKBUTTON_NAME_KILLS = "Todesstöße", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "Alle Tode und Todesstöße anzeigen.", QUICKBUTTON_NAME_ME = "Was ist mit mir geschehen?", QUICKBUTTON_NAME_ME_TOOLTIP = "Alles mir Zugefügte anzeigen.", - QUICKBUTTON_NAME_MY_ACTIONS = "Meine Aktionen", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "Zeigt Nachrichten für von Euch ausgeführte Aktionen.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "Platziert im Chatfenster eine Verknüpfung zu diesem Filter.", + RANGED = "Distanz", + RANGED_COMBATLOG_TOOLTIP = "Zeigt Angriffe mit Bögen, Schusswaffen, Wurfwaffen und Zauberstäben an.", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Zeigt Distanzangriffe an, die den vollen oder teilweisen Schaden verursachen.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "Zeigt fehlgeschlagene Distanzangriffe an, die keinen Schaden verursachen.", + RESURRECT = "Wiederbelebung", + SETTINGS = "Optionen", + SHOW_BRACES = "Klammern anzeigen", + SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Hyperlinks im Kampflog anzeigen.", + SHOW_QUICK_BUTTON = "Schnelltaste anzeigen", + SHOW_TIMESTAMP = "Zeitstempel anzeigen", + SOURCE = "Quelle", + SPECIAL = "Spezial", + SPELLS_COMBATLOG_TOOLTIP = "Zeigt Nachrichten über Zauber und Spezialfähigkeiten an.", + SPELL_CASTING = "Zauberwirken", + SPELL_CASTING_COMBATLOG_TOOLTIP = "Nachrichten über das Wirken von Zaubern anzeigen.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber nicht gewirkt werden kann oder nicht abgeschlossen wird.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "Nachricht anzeigen, wenn das Wirken eines Zaubers begonnen wird.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber erfolgreich abgeschlossen wird.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Zauber basierend auf der Art einfärben.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Schaden verursacht.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Färbt die Schadenszahl von Schwüngen, die nicht im Nahkampf stattfinden.", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Den Namen der Schadensart einfärben. (z.B. Schatten)", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Mana, Energie, Wut oder Fokus verringert.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit zusätzliche Angriffe gewährt.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit Schaden heilt.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Nachrichten über spezielle Zauberarten anzeigen, die beispielsweise Haltbarkeitsverlust verursachen oder Schaden mit einem Begleiter teilen.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit einen anderen Zauber unterbricht.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit keinen Schaden verursachen kann. Das schließt Ausweichen, Parieren, Blocken, Abwehren, Immunität, Absorbieren und Entkommen ein.", + SPELL_NAMES = "Zaubernamen", + SPELL_NAMES_COMBATLOG_TOOLTIP = "Namen von Zaubern einfärben.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Zaubern anzeigen.", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Zauber anzeigen, die einen regelmäßigen Effekt ausführen.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßigen Schaden verursacht, z.B. Schattenwort: Schmerz oder Verderbnis.", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßig Schaden heilt, z.B. Erneuerung oder Verjüngung.", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn der regelmäßige Schaden eines Zaubers oder einer Fähigkeit versagt. Das schließt Immunität, Absorbieren und Entkommen ein.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit regelmäßig einen Effekt ausführt, z.B. das Wiederherstellen oder Entziehen von Mana.", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Nachrichten anzeigen, wenn ein Zauber oder eine Fähigkeit einen Spieler oder eine Kreatur wiedererweckt.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "Nachricht anzeigen, wenn ein Zauber oder eine Fähigkeit eine Kreatur beschwört oder ein Objekt erschafft.", + START = "Start", STRING_SCHOOL_UNKNOWN = "Unbekannt", + SUCCESS = "Erfolg", + SUMMONS = "Herbeiruf.", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "Zeigt Nahkampfangriffe an, die den vollen oder teilweise Schaden verursachen.", + SWING_MISSED_COMBATLOG_TOOLTIP = "Zeigt fehlgeschlagene Nahkampfangriffe an, die keinen Schaden verursachen.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s", @@ -530,9 +663,15 @@ pfUI_locale["deDE"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "Den Zeitstempel für Nachrichten im Kampflog anzeigen.", + UNIT_COLORS = "Einheitenfarben:", + UNIT_NAMES = "Einheitennamen", + UNIT_NAMES_COMBATLOG_TOOLTIP = "Namen von Einheiten einfärben.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Klammern um Namen von Einheiten anzeigen.", UNIT_YOU = "Ihr", UNIT_YOU_DEST = "Euch", UNIT_YOU_DEST_POSSESSIVE = "Euer", UNIT_YOU_SOURCE = "Euer Charakter", UNIT_YOU_SOURCE_POSSESSIVE = "Euer", + USE_FULL_TEXT_MODE = "Volltextmodus verwenden", } diff --git a/env/combatlog_enUS.lua b/env/combatlog_enUS.lua index b6f0b060..19206ba1 100644 --- a/env/combatlog_enUS.lua +++ b/env/combatlog_enUS.lua @@ -470,6 +470,11 @@ pfUI_locale["enUS"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "Add", ADDITIONAL_FILTERS = "Additional Filters", + ADD_FILTER = "Add Filter", + AURAS = "Auras", + AURAS_COMBATLOG_TOOLTIP = "Shows message about beneficial and harmful state effects.", + BENEFICIAL = "Beneficial", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Show when you gain or lose a beneficial aura.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "Show everything involving %s?", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Show everything", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "What happened to %s?", @@ -479,21 +484,149 @@ pfUI_locale["enUS"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "Save as a new filter", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Hide messages like this one.", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Link %s to chat.", + BY_SOURCE = "By Source", + BY_SOURCE_COMBATLOG_TOOLTIP = "Line color based on caster.", + BY_TARGET = "By Target", + BY_TARGET_COMBATLOG_TOOLTIP = "Line color based on target.", + COLORIZE = "Colorize:", + COLORS = "Colors", + COLOR_BY_SCHOOL = "Color-by-School", + COMBATLOG_DEFAULTS = "Combat Log Defaults", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Custom Unit", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Friends", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Enemy Players", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Enemy Units", + COMBATLOG_FILTER_STRING_ME = "Me", + COMBATLOG_FILTER_STRING_MY_PET = "Pet", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutral", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Unknown", + COMBATLOG_HIGHLIGHT_ABILITY = "Ability", + COMBATLOG_HIGHLIGHT_DAMAGE = "Damage", + COMBATLOG_HIGHLIGHT_KILL = "Kill", + COMBATLOG_HIGHLIGHT_SCHOOL = "School", COMBATLOG_UNKNOWN_UNIT = "Something", COMBAT_FACTION_CHANGE = "Reputation", COMBAT_HONOR_GAIN = "Honor", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "Misc Info", COMBAT_XP_GAIN = "Experience", + CONFIRM_COMBAT_FILTER_DEFAULTS = "Do you really want to reset your filters to their default values?", + CONFIRM_COMBAT_FILTER_DELETE = "Do you really want to delete this filter?", + COPY_FILTER = "Copy Filter", + DAMAGE_NUMBER = "Damage Number", + DAMAGE_SCHOOL_TEXT = "Damage School", DAMAGE_SHIELD = "Damage Shields", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Show messages when a spell or ability deals damage in reaction to a melee swing, such as Thorns.", + DEATHS_COMBATLOG_TOOLTIP = "Show messages when something dies.", DEFAULT_COMBATLOG_FILTER_NAME = "Filter %d", + DISPELS = "Dispels", + DISPEL_AURA_COMBATLOG_TOOLTIP = "Show when an aura is removed, broken, or stolen.", + DONE_BY = "Done By:", + DONE_TO = "Done To:", + DRAINS = "Drains", ENTER_FILTER_NAME = "Enter filter name:", + ENTIRE_LINE = "Entire Line", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "Color the entire line based on the selection below.", ENVIRONMENTAL_DAMAGE = "Environmental Damage", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when someone takes damage from falling, drowning or swimming in lava.", + EXAMPLE_SPELL_FIREBALL = "Fireball", + EXAMPLE_SPELL_FROSTBOLT = "Frostbolt", + EXAMPLE_TARGET_MONSTER = "Monster", + EXAMPLE_TEXT = "Example Text:", + EXTRA_ATTACKS = "Extra Attacks", + FAILURES = "Failures", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Actions performed by hostile creatures and pets.", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Actions performed by friendly players, pets, and creatures.", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Actions performed by hostile players.", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "Actions performed by you, your traps, and your spells.", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Actions performed by neutral creatures.", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "Actions performed by your pets, summoned guardians, and charmed players.", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Actions performed by undefined sources such as falling, acid, or lava.", + FILTER_NAME = "Filter Name", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Actions performed on friendly players, pets, and creatures.", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Actions performed on hostile pets and creatures.", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Actions performed on hostile players.", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "Actions performed on you.", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Actions performed on neutral creatures.", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "Actions performed on your pets, summoned guardians, and charmed players.", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Actions performed on invisible targets.", + FORMATTING = "Formatting", + FULL_TEXT_COMBATLOG_TOOLTIP = "Show combat log entries as full sentences.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "Show when you gain or lose a harmful aura.", + HEALS = "Heals", + HIGHLIGHTING = "Highlighting:", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Highlight ability names in combat messages.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Highlight damage numbers in combat messages.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Highlights the entire line when you or a party member makes a kill.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Highlight the school of a spell in combat messages.", + HOSTILE = "Hostile", + INTERRUPTS = "Interrupts", + ITEM_NAMES = "Item Names", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around item names.", + KILLS_COMBATLOG_TOOLTIP = "Show messages when a member of your party kills something.", + MELEE = "Melee", + MELEE_COMBATLOG_TOOLTIP = "Shows natural melee swings.", + MESSAGE_SOURCES = "Message Sources", + MISSES = "Misses", + MOVE_FILTER_DOWN = "Move Filter Down", + MOVE_FILTER_UP = "Move Filter Up", + OTHER = "Other", + PERIODIC = "Periodic", + POWER_GAINS = "Power Gains", + POWER_GAINS_COMBATLOG_TOOLTIP = "Show messages when a spell or ability restores mana, energy, rage, focus, chi, holy power, or shadow orbs.", + QUICKBUTTON_NAME_EVERYTHING = "Everything", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Show all combat messages.", + QUICKBUTTON_NAME_KILLS = "Kills", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "Show all deaths and kills.", QUICKBUTTON_NAME_ME = "What happened to me?", QUICKBUTTON_NAME_ME_TOOLTIP = "Show everything done to me.", - QUICKBUTTON_NAME_MY_ACTIONS = "My actions", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "Show messages of actions done by you.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "Places a shortcut to this filter on the chat window.", + RANGED = "Ranged", + RANGED_COMBATLOG_TOOLTIP = "Shows attacks from bows, guns, thrown weapons, and wands.", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Show ranged shots that deal full or partial damage.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "Show ranged shots that fail to deal damage.", + RESURRECT = "Resurrections", + SETTINGS = "Settings", + SHOW_BRACES = "Show Braces", + SHOW_BRACES_COMBATLOG_TOOLTIP = "Display braces around hyperlinks in combat log messages.", + SHOW_QUICK_BUTTON = "Show Quick Button", + SHOW_TIMESTAMP = "Show Timestamp", + SOURCE = "Source:", + SPECIAL = "Special", + SPELLS_COMBATLOG_TOOLTIP = "Shows messages about spells and special abilities.", + SPELL_CASTING = "Spell Casting", + SPELL_CASTING_COMBATLOG_TOOLTIP = "Show messages about spell casting.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Show messages when a spell cannot be cast or fails to cast.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "Show messages when a spell begins casting.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Show messages when a spell successfully completes.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Color spell names by school.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when a spell or ability deals damage.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorizes the damage number on non-melee swings.", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Color the damage school name. (e.g. shadow)", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "Show messages when a spell or ability reduces mana, energy, rage, or focus.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Show messages when a spell or ability grants additional attacks.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "Show messages when a spell or ability heals damage.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Show messages about special spell types, such as those that inflict durability loss or share damage with a pet.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Show messages when a spell or ability interrupts another spell.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "Show messages when a spell or ability fails to deal damage. This includes dodges, parries, blocks, deflections, immunes, absorbs and evades.", + SPELL_NAMES = "Spell Names", + SPELL_NAMES_COMBATLOG_TOOLTIP = "Color spell names.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around spell names.", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Show spells that perform an effect incrementally.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically deals damage, such as Shadow Word: Pain or Corruption.", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically heals damage, such as Renew or Rejuvenation.", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Show messages when a spell or ability fails to periodically deal damage. This includes immunes, absorbs and evades.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Show messages when a spell or ability periodically performs any other effect, such as restoring or draining mana.", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Show messages when a spell or ability resurrects another player or creature.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "Show messages when a spell or ability summons a creature or creates an object.", + START = "Start", STRING_SCHOOL_UNKNOWN = "Unknown", + SUCCESS = "Success", + SUMMONS = "Summons", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "Shows melee swings that deal full or partial damage.", + SWING_MISSED_COMBATLOG_TOOLTIP = "Show melee swings that do not deal damage.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s", @@ -530,9 +663,15 @@ pfUI_locale["enUS"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "Display the timestamp for combat log messages.", + UNIT_COLORS = "Unit Colors:", + UNIT_NAMES = "Unit Names", + UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Show braces around unit names.", UNIT_YOU = "You", UNIT_YOU_DEST = "You", UNIT_YOU_DEST_POSSESSIVE = "Your", UNIT_YOU_SOURCE = "You", UNIT_YOU_SOURCE_POSSESSIVE = "Your", + USE_FULL_TEXT_MODE = "Use Verbose Mode", } diff --git a/env/combatlog_esES.lua b/env/combatlog_esES.lua index e62d8e4e..267171f5 100644 --- a/env/combatlog_esES.lua +++ b/env/combatlog_esES.lua @@ -470,6 +470,11 @@ pfUI_locale["esES"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "Añadir", ADDITIONAL_FILTERS = "Filtros adicionales", + ADD_FILTER = "Añadir", + AURAS = "Auras", + AURAS_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre efectos de estados beneficiosos y dañinos.", + BENEFICIAL = "Beneficioso", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando ganas o pierdes un aura beneficiosa.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "¿Mostrar todo lo referente a %s?", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Mostrar todo", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "¿Qué le pasó a %s?", @@ -479,21 +484,149 @@ pfUI_locale["esES"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "Guardar como nuevo filtro", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Ocultar los mensajes como este.", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Vincular %s a chat.", + BY_SOURCE = "Por origen", + BY_SOURCE_COMBATLOG_TOOLTIP = "Color de línea según taumaturgo.", + BY_TARGET = "Por objetivo", + BY_TARGET_COMBATLOG_TOOLTIP = "Color de línea según objetivo.", + COLORIZE = "Colorear:", + COLORS = "Colores", + COLOR_BY_SCHOOL = "Colorear según escuela", + COMBATLOG_DEFAULTS = "Restablecer reg. combate", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Unidad personalizada", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Amigos", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Jugadores enemigos", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Unidades enemigas", + COMBATLOG_FILTER_STRING_ME = "Yo", + COMBATLOG_FILTER_STRING_MY_PET = "Mascota", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutral", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Desconocido", + COMBATLOG_HIGHLIGHT_ABILITY = "Facultad", + COMBATLOG_HIGHLIGHT_DAMAGE = "Daño", + COMBATLOG_HIGHLIGHT_KILL = "Muerte", + COMBATLOG_HIGHLIGHT_SCHOOL = "Escuela", COMBATLOG_UNKNOWN_UNIT = "Algo", COMBAT_FACTION_CHANGE = "Reputación", COMBAT_HONOR_GAIN = "Honor", COMBAT_LOG_UNIT_YOU_ENABLED = "0", COMBAT_MISC_INFO = "Info. misc.", COMBAT_XP_GAIN = "Experiencia", + CONFIRM_COMBAT_FILTER_DEFAULTS = "¿De verdad quieres restablecer la configuración inicial?", + CONFIRM_COMBAT_FILTER_DELETE = "¿Realmente quieres borrar este filtro?", + COPY_FILTER = "Copiar", + DAMAGE_NUMBER = "Cifra de daño", + DAMAGE_SCHOOL_TEXT = "Escuela de daño", DAMAGE_SHIELD = "Escudos de daño", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad hace daño en reacción a un golpe cuerpo a cuerpo, como Espinas.", + DEATHS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando haya una muerte.", DEFAULT_COMBATLOG_FILTER_NAME = "Filtro %d", + DISPELS = "Disipación", + DISPEL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando se elimina, rompe o roba un aura.", + DONE_BY = "Hecho por:", + DONE_TO = "Hecho a:", + DRAINS = "drena", ENTER_FILTER_NAME = "Escribe el nombre del filtro:", + ENTIRE_LINE = "Toda la línea", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "Colorear toda la línea según la siguiente opción.", ENVIRONMENTAL_DAMAGE = "Daño del entorno", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando alguien sufra daño al caer, ahogarse o nadar en lava.", + EXAMPLE_SPELL_FIREBALL = "Bola de Fuego", + EXAMPLE_SPELL_FROSTBOLT = "Descarga de Escarcha", + EXAMPLE_TARGET_MONSTER = "Monstruo", + EXAMPLE_TEXT = "Texto de muestra:", + EXTRA_ATTACKS = "Ataques extra", + FAILURES = "Fallos", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por criaturas y mascotas hostiles.", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por jugadores, mascotas y criaturas aliados.", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por jugadores hostiles.", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por ti, tus trampas y tus hechizos.", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por criaturas neutrales.", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "Acciones llevadas a cabo por tus mascotas, guardianes invocados y jugadores embelesados.", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Acciones de origen sin especificar como caídas, ácido o lava.", + FILTER_NAME = "Nombre del filtro", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Acciones realizadas a jugadores, mascotas y criaturas aliados.", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Acciones realizadas a mascotas y criaturas hostiles.", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Acciones realizadas a jugadores hostiles.", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "Acciones realizadas a ti.", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Acciones realizadas a criaturas neutrales.", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "Acciones realizadas a tus mascotas, guardianes invocados y jugadores embelesados.", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Acciones realizadas a objetivos invisibles.", + FORMATTING = "Formato", + FULL_TEXT_COMBATLOG_TOOLTIP = "Mostrar las entradas del registro de combate como frases completas.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "Mostrar cuando ganas o pierdes un aura dañina.", + HEALS = "Sanaciones", + HIGHLIGHTING = "Resaltar:", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Resaltar nombres de facultades en mensajes de combate.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Resaltar cifras de daño en mensajes de combate.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Resaltar toda la línea cuando matas o lo hace un miembro de tu grupo.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Resaltar la escuela del hechizo en el mensaje de combate.", + HOSTILE = "Hostil", + INTERRUPTS = "interrumpe", + ITEM_NAMES = "Nombres de objetos", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de objetos entre corchetes.", + KILLS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un miembro de tu grupo mata.", + MELEE = "Cuerpo a cuerpo", + MELEE_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo naturales.", + MESSAGE_SOURCES = "Origen mensaje", + MISSES = "Fallos", + MOVE_FILTER_DOWN = "Mover filtro abajo", + MOVE_FILTER_UP = "Mover filtro arriba", + OTHER = "Otros", + PERIODIC = "Periódico", + POWER_GAINS = "Ganancia de poder", + POWER_GAINS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad restaure maná, energía, ira, enfoque, chi, Poder Sagrado u orbes de las Sombras.", + QUICKBUTTON_NAME_EVERYTHING = "Todo", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Mostrar todos los mensajes de combate.", + QUICKBUTTON_NAME_KILLS = "Muertes", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "Mostrar todas las muertes aliadas y enemigas.", QUICKBUTTON_NAME_ME = "Me afecta", QUICKBUTTON_NAME_ME_TOOLTIP = "Mostrar todo lo que me afecta.", - QUICKBUTTON_NAME_MY_ACTIONS = "Mis acciones", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "Mostrar mensajes de tus acciones.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "Coloca un acceso rápido a este filtro en la ventana de chat.", + RANGED = "A distancia", + RANGED_COMBATLOG_TOOLTIP = "Mostrar ataques con arcos, armas de fuego, armas arrojadizas y varitas.", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar los golpes a distancia que infligen daño total o parcial.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "Mostrar los golpes a distancia que no logran infligir daño.", + RESURRECT = "Resurrecciones", + SETTINGS = "Configuración", + SHOW_BRACES = "Mostrar corchetes", + SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar los hipervínculos entre corchetes en los mensajes del registro de combate.", + SHOW_QUICK_BUTTON = "Mostrar botón de acceso rápido", + SHOW_TIMESTAMP = "Mostrar tiempo", + SOURCE = "Fuente:", + SPECIAL = "Especial", + SPELLS_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre hechizos y facultades especiales.", + SPELL_CASTING = "Hechizos lanzados", + SPELL_CASTING_COMBATLOG_TOOLTIP = "Mostrar mensajes de los hechizos lanzados.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando no se puede lanzar un hechizo o cuando no se logra lanzar.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando se comienza a lanzar un hechizo.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo se lance correctamente.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Colorear los nombres de hechizos según la escuela.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige daño.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorear la cifra del daño de golpes otros que cuerpo a cuerpo.", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Colorear el nombre de escuela del daño (p. ej., Sombras).", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad reduzca el maná, la energía, la ira o el enfoque.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad otorgue ataques adicionales.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad sana daño.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Mostrar mensajes sobre tipos de hechizos especiales, como los que infligen pérdida de durabilidad o comparten daño con una mascota.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad interrumpe otro hechizo.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad no logra infligir daño. Incluye cuando el objetivo es inmune o lo esquiva, para, bloquea, desvía, absorbe o evade.", + SPELL_NAMES = "Nombres de hechizos", + SPELL_NAMES_COMBATLOG_TOOLTIP = "Colorear los nombres de hechizos.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de hechizos entre corchetes.", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Mostrar los hechizos que tienen un efecto gradual.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige daño periódico, como Palabra de las Sombras: Dolor o Corrupción.", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad sana daño periódicamente, como Renovar o Rejuvenecimiento.", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad no logra infligir daño periódico. Incluye cuando el objetivo es inmune, lo absorbe o lo evade.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad inflige cualquier otro efecto periódicamente, como restaurar o drenar maná.", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo o facultad resucite a otro jugador o criatura.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "Mostrar mensajes cuando un hechizo invoque a una criatura o cree un objeto.", + START = "Inicio", STRING_SCHOOL_UNKNOWN = "Desconocido", + SUCCESS = "Éxito", + SUMMONS = "Invocación", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo que infligen daño total o parcial.", + SWING_MISSED_COMBATLOG_TOOLTIP = "Mostrar golpes cuerpo a cuerpo que no infligen daño.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s", @@ -530,9 +663,15 @@ pfUI_locale["esES"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "Mostrar el tiempo en los mensajes del registro de combate.", + UNIT_COLORS = "Colores de unidades:", + UNIT_NAMES = "Nombres de unidades", + UNIT_NAMES_COMBATLOG_TOOLTIP = "Colorear el nombre de unidades.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mostrar nombres de unidades entre corchetes.", UNIT_YOU = "Tú", UNIT_YOU_DEST = "Tú", UNIT_YOU_DEST_POSSESSIVE = "Tu", UNIT_YOU_SOURCE = "Tú", UNIT_YOU_SOURCE_POSSESSIVE = "Tu", + USE_FULL_TEXT_MODE = "Mostrar texto completo", } diff --git a/env/combatlog_frFR.lua b/env/combatlog_frFR.lua index 1b51f0c9..13c19261 100644 --- a/env/combatlog_frFR.lua +++ b/env/combatlog_frFR.lua @@ -470,6 +470,11 @@ pfUI_locale["frFR"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "Ajouter", ADDITIONAL_FILTERS = "Filtres supplémentaires", + ADD_FILTER = "Aj. filtre", + AURAS = "Auras", + AURAS_COMBATLOG_TOOLTIP = "Montre les messages liés aux états bénéfiques ou néfastes.", + BENEFICIAL = "Bénéfique", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Montre quand vous gagnez ou perdez une aura bénéfique.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "Afficher tout ce qui concerne %s.", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Afficher tout", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Qu'est-il arrivé à %s ?", @@ -479,21 +484,149 @@ pfUI_locale["frFR"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "Enregistrer comme nouveau filtre", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Cacher les messages comme celui-ci.", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Lier %s dans la discussion.", + BY_SOURCE = "Par source", + BY_SOURCE_COMBATLOG_TOOLTIP = "Colorer en fonction du lanceur.", + BY_TARGET = "Par cible", + BY_TARGET_COMBATLOG_TOOLTIP = "Colorer en fonction de la cible.", + COLORIZE = "Coloriser :", + COLORS = "Couleurs", + COLOR_BY_SCHOOL = "Couleur par type", + COMBATLOG_DEFAULTS = "Journal par défaut", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "Unité personnalisée", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Amis", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Joueurs ennemis", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Ennemis", + COMBATLOG_FILTER_STRING_ME = "Moi", + COMBATLOG_FILTER_STRING_MY_PET = "Familier", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Neutre", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Inconnu", + COMBATLOG_HIGHLIGHT_ABILITY = "Technique", + COMBATLOG_HIGHLIGHT_DAMAGE = "Dégâts", + COMBATLOG_HIGHLIGHT_KILL = "Mort", + COMBATLOG_HIGHLIGHT_SCHOOL = "Type", COMBATLOG_UNKNOWN_UNIT = "Quelque chose", COMBAT_FACTION_CHANGE = "Réputation", COMBAT_HONOR_GAIN = "Honneur", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "Infos div.", COMBAT_XP_GAIN = "Expérience", + CONFIRM_COMBAT_FILTER_DEFAULTS = "Voulez-vous revenir aux valeurs par défaut des filtres ?", + CONFIRM_COMBAT_FILTER_DELETE = "Voulez-vous vraiment effacer ce filtre ?", + COPY_FILTER = "Copier filtre", + DAMAGE_NUMBER = "Valeurs de dégâts", + DAMAGE_SCHOOL_TEXT = "Type de dégâts", DAMAGE_SHIELD = "Boucliers de dégâts", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique inflige des dégâts en réaction à une attaque de mêlée, comme Epines.", + DEATHS_COMBATLOG_TOOLTIP = "Montre un message quand quelqu'un meurt.", DEFAULT_COMBATLOG_FILTER_NAME = "Filtre %d", + DISPELS = "Dissipations", + DISPEL_AURA_COMBATLOG_TOOLTIP = "Montre quand une aura est retirée, détruite ou volée.", + DONE_BY = "Fait par :", + DONE_TO = "Fait à :", + DRAINS = "Drains", ENTER_FILTER_NAME = "Indiquez le nom du filtre :", + ENTIRE_LINE = "Ligne entière", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "Colorer toute la ligne selon la sélection ci-dessous.", ENVIRONMENTAL_DAMAGE = "Dégâts de l'environnement", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Montre un message quand quelqu'un subit des dégâts dus à une chute, une noyade ou le fait de nager dans la lave.", + EXAMPLE_SPELL_FIREBALL = "Boule de feu", + EXAMPLE_SPELL_FROSTBOLT = "Eclair de givre", + EXAMPLE_TARGET_MONSTER = "Monstre", + EXAMPLE_TEXT = "Texte d'exemple", + EXTRA_ATTACKS = "Attaques suppl.", + FAILURES = "Échecs", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Les actions effectuées par les créatures et familiers hostiles.", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Les actions effectuées par les personnages, familiers et créatures amicaux.", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Les actions effectuées par des joueurs hostiles.", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "Les actions effectuées par vous-même, vos pièges et vos sorts.", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Les actions effectuées par les créatures neutres.", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "Les actions effectuées par vos familiers, gardiens invoqués ou personnages charmés.", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Les actions effectuées par des sources indéfinies, telles que les chutes, l'acide ou la lave.", + FILTER_NAME = "Nom du filtre :", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Les actions effectuées sur les personnages, familiers et créatures amicaux.", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Les actions effectuées sur les familiers et créatures hostiles.", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Les actions effectuées contre des joueurs hostiles.", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "Les actions effectuées sur vous.", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Les actions effectuées sur les créatures neutres.", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "Les actions effectuées sur vos familiers, gardiens invoqués ou personnages charmés.", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Les actions effectuées sur des cibles invisibles.", + FORMATTING = "Mise en forme", + FULL_TEXT_COMBATLOG_TOOLTIP = "Montre les évènements du journal de combat sous forme de phrases.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "Montre quand vous gagnez ou perdez une aura néfaste.", + HEALS = "Soins", + HIGHLIGHTING = "Surlignage :", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Surligne les noms des techniques dans les messages de combat.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Surligne les montants de dégâts dans les messages de combat.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Surligne toute la ligne lorsque vous-même ou un membre de votre groupe tuez un adversaire.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Surligne les types de sort dans les messages de combat.", + HOSTILE = "Hostile", + INTERRUPTS = "Interruptions", + ITEM_NAMES = "Noms des objets", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms d'objets.", + KILLS_COMBATLOG_TOOLTIP = "Montre un message quand un membre de votre groupe tue quelqu'un.", + MELEE = "Mêlée", + MELEE_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée naturelles.", + MESSAGE_SOURCES = "Sources", + MISSES = "Ratés", + MOVE_FILTER_DOWN = "Descendre le filtre", + MOVE_FILTER_UP = "Remonter le filtre", + OTHER = "Autre", + PERIODIC = "Périodique", + POWER_GAINS = "Gains de puissance", + POWER_GAINS_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique rend des points de mana, d’énergie, de rage, de focalisation, de chi ou de puissance sacrée ou des orbes d’ombre.", + QUICKBUTTON_NAME_EVERYTHING = "Tout", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Montrer tous les messages de combat.", + QUICKBUTTON_NAME_KILLS = "Tués", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "Montrer tous les tués.", QUICKBUTTON_NAME_ME = "Qu'est-ce qui m'est arrivé ?", QUICKBUTTON_NAME_ME_TOOLTIP = "Montrer tout ce qu'on m'a fait.", - QUICKBUTTON_NAME_MY_ACTIONS = "Mes actions", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "Montre des messages pour les actions effectuées par vous.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "Pose un raccourci vers ce filtre dans la fenêtre de discussion.", + RANGED = "Distance", + RANGED_COMBATLOG_TOOLTIP = "Montre les attaques des arcs, arbalètes, fusils, armes de jet et baguettes.", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Montre les attaques à distance qui infligent des dégâts complets ou partiels.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "Montre les attaques à distance qui n'infligent pas de dégâts.", + RESURRECT = "Résurrections", + SETTINGS = "Réglages", + SHOW_BRACES = "Afficher les crochets", + SHOW_BRACES_COMBATLOG_TOOLTIP = "Afficher des crochets autour des liens dans les messages du journal de combat.", + SHOW_QUICK_BUTTON = "Montrer accès rapide", + SHOW_TIMESTAMP = "Afficher l'heure", + SOURCE = "Source :", + SPECIAL = "Spécial", + SPELLS_COMBATLOG_TOOLTIP = "Montre les messages liés aux sorts et aux techniques spéciales.", + SPELL_CASTING = "Incantations", + SPELL_CASTING_COMBATLOG_TOOLTIP = "Montre les messages concernant l'incantation des sorts.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Montre les messages indiquant qu'un sort ne peut être lancé ou que l'incantation a échoué.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "Montre les messages indiquant le début de l'incantation d'un sort.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Montre les messages indiquant la réussite de l'incantation d'un sort.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Colorer les noms des sorts par type.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Montre quand un sort ou une technique inflige des dégâts.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Colorer les valeurs de dégâts pour les attaques hors-mêlée.", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Colorer les noms des types de dégâts (par ex. Ombre).", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique enlève des points de mana, d’énergie, de rage ou de focalisation.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Affiche un message quand un sort ou une technique octroie des attaques supplémentaires.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique soigne des dégâts.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Montre les messages des sorts d'une catégorie spéciale, comme ceux qui infligent une perte de durabilité ou qui partagent les dégâts avec un familier.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique interrompt un autre sort.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ne parvient pas à infliger des dégâts. Que ce soit dû à une esquive, une parade, un blocage, une déviation, une immunité, une absorption ou un évitement.", + SPELL_NAMES = "Noms des sorts", + SPELL_NAMES_COMBATLOG_TOOLTIP = "Colorer les noms de sorts.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms de sorts.", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Montre les sorts qui ont un effet incrémentiel.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique inflige des dégâts de façon périodique, comme Mot de l'ombre : Douleur ou Corruption.", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique soigne de façon périodique, comme Rénovation ou Récupération.", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ne parvient pas à infliger des dégâts périodiques. Cela peut être dû à une immunité, une absorption ou un évitement.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique déclenche un autre type d'effet de façon périodique, comme de rendre ou de prendre des points de mana.", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique ressuscite une créature ou un autre personnage.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "Montre un message quand un sort ou une technique invoque une créature ou crée un objet.", + START = "Démarrage", STRING_SCHOOL_UNKNOWN = "(Inconnu)", + SUCCESS = "Réussites", + SUMMONS = "Invocations", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée qui infligent des dégâts complets ou partiels.", + SWING_MISSED_COMBATLOG_TOOLTIP = "Montre les attaques de mêlée qui n'infligent pas de dégâts.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %3$s %2$s %4$s %5$s. %6$s", @@ -530,9 +663,15 @@ pfUI_locale["frFR"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "Afficher l'heure des messages du journal de combat.", + UNIT_COLORS = "Couleurs d'unités :", + UNIT_NAMES = "Noms des unités", + UNIT_NAMES_COMBATLOG_TOOLTIP = "Colorer les noms des unités.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Mettre des liens autour des noms d'unités.", UNIT_YOU = "Vous", UNIT_YOU_DEST = "Vous", UNIT_YOU_DEST_POSSESSIVE = "votre personnage", UNIT_YOU_SOURCE = "Vous", UNIT_YOU_SOURCE_POSSESSIVE = "votre", + USE_FULL_TEXT_MODE = "Mode prolixe", } diff --git a/env/combatlog_koKR.lua b/env/combatlog_koKR.lua index 5e88967b..6a5e6fa9 100644 --- a/env/combatlog_koKR.lua +++ b/env/combatlog_koKR.lua @@ -470,6 +470,11 @@ pfUI_locale["koKR"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "추가", ADDITIONAL_FILTERS = "추가 필터", + ADD_FILTER = "필터 추가", + AURAS = "오라", + AURAS_COMBATLOG_TOOLTIP = "이로운 효과나 해로운 효과에 대한 메시지를 표시합니다.", + BENEFICIAL = "이로운 효과", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "강화 효과를 얻거나 잃었을 때 메시지를 표시합니다.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "%s|1과;와; 관련된 기록을 모두 보여주십시오.", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "모두", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "%s에게 무슨 일이 일어났습니까?", @@ -479,21 +484,149 @@ pfUI_locale["koKR"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "새 필터로 저장", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "같은 종류의 메시지 숨기기", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "%s|1을;를; 대화창으로 링크", + BY_SOURCE = "행위자", + BY_SOURCE_COMBATLOG_TOOLTIP = "행위자를 기준으로 문장에 색을 입힙니다.", + BY_TARGET = "대상", + BY_TARGET_COMBATLOG_TOOLTIP = "대상을 기준으로 문장에 색을 입힙니다.", + COLORIZE = "색 지정", + COLORS = "색상", + COLOR_BY_SCHOOL = "마법 계열별 색 설정", + COMBATLOG_DEFAULTS = "원래대로", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "사용자 개체", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "친구", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "적대적인 플레이어", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "적대적 대상", + COMBATLOG_FILTER_STRING_ME = "자신", + COMBATLOG_FILTER_STRING_MY_PET = "소환수", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "중립적 대상", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "알 수 없음", + COMBATLOG_HIGHLIGHT_ABILITY = "주문 및 기술", + COMBATLOG_HIGHLIGHT_DAMAGE = "피해", + COMBATLOG_HIGHLIGHT_KILL = "처치", + COMBATLOG_HIGHLIGHT_SCHOOL = "마법 계열", COMBATLOG_UNKNOWN_UNIT = "무엇인가", COMBAT_FACTION_CHANGE = "평판", COMBAT_HONOR_GAIN = "명예", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "기타 정보", COMBAT_XP_GAIN = "경험치", + CONFIRM_COMBAT_FILTER_DEFAULTS = "정말 필터를 초기화하시겠습니까?", + CONFIRM_COMBAT_FILTER_DELETE = "정말 이 필터를 삭제하시겠습니까?", + COPY_FILTER = "필터 복사", + DAMAGE_NUMBER = "피해 수치", + DAMAGE_SCHOOL_TEXT = "마법 계열", DAMAGE_SHIELD = "피해 보호막", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "근접 공격자에게 피해를 입히는 주문이나 능력으로 인한 피해 메시지를 표시합니다. 예: 가시 등", + DEATHS_COMBATLOG_TOOLTIP = "무엇인가가 죽었을 때 메시지를 표시합니다.", DEFAULT_COMBATLOG_FILTER_NAME = "필터: %d", + DISPELS = "무효화", + DISPEL_AURA_COMBATLOG_TOOLTIP = "효과가 제거되거나, 파괴되거나, 훔쳐졌을 때 메시지를 표시합니다.", + DONE_BY = "행위자", + DONE_TO = "대상", + DRAINS = "소진", ENTER_FILTER_NAME = "필터 이름을 입력하십시오.", + ENTIRE_LINE = "전체 문장", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "아래 선택에 따라 전체 문장에 색을 입힙니다.", ENVIRONMENTAL_DAMAGE = "환경 피해", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "낙하, 익사, 용암에 의한 피해를 입었을 때 메시지를 표시합니다.", + EXAMPLE_SPELL_FIREBALL = "화염구", + EXAMPLE_SPELL_FROSTBOLT = "얼음 화살", + EXAMPLE_TARGET_MONSTER = "몬스터", + EXAMPLE_TEXT = "예시 문구", + EXTRA_ATTACKS = "추가 공격", + FAILURES = "실패", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "적대적인 NPC, 소환수의 동작", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "아군 플레이어, 소환수, NPC의 동작", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "적대적인 플레이어의 동작", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "자신, 자신의 덫, 자신의 주문에 의한 동작", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "중립적 NPC의 동작", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "자신의 소환수, 소환된 수호물, 자신이 현혹한 플레이어의 동작", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "낙하 피해, 독, 용암 등에 의한 동작", + FILTER_NAME = "필터 이름", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "아군 플레이어, 소환수, NPC에게 행해진 동작", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "적대적인 소환수, NPC에게 행해진 동작", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "적대적인 플레이어에게 행해진 동작", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "자신에게 행해진 동작", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "중립적 NPC에게 행해진 동작", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "자신의 소환수, 소환된 수호물, 자신이 현혹한 플레이어에게 행해진 동작", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "보이지 않는 대상에게 행해진 동작", + FORMATTING = "형식", + FULL_TEXT_COMBATLOG_TOOLTIP = "전투 메시지를 전체 문장으로 표시합니다.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "약화 효과를 얻거나 잃었을 때 메시지를 표시합니다.", + HEALS = "치유", + HIGHLIGHTING = "강조", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "전투 메시지 상에서 능력의 이름을 강조합니다.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "전투 메시지 상에서 피해의 수치를 강조합니다.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "자신이나 파티원이 대상을 처치했을 때 메시지를 강조합니다.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "전투 메시지 상에서 주문의 마법 계열을 강조합니다.", + HOSTILE = "해로운 효과", + INTERRUPTS = "차단", + ITEM_NAMES = "아이템 이름", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "아이템에 괄호 표시", + KILLS_COMBATLOG_TOOLTIP = "파티원이 어떤 대상을 처치했을 때 메시지를 표시합니다.", + MELEE = "근접 공격", + MELEE_COMBATLOG_TOOLTIP = "근접 공격에 관련된 메시지를 표시합니다.", + MESSAGE_SOURCES = "메시지 출처", + MISSES = "적중하지 않음", + MOVE_FILTER_DOWN = "필터를 아래로 이동", + MOVE_FILTER_UP = "필터를 위로 이동", + OTHER = "기타", + PERIODIC = "주기적인 효과", + POWER_GAINS = "얻은 자원", + POWER_GAINS_COMBATLOG_TOOLTIP = "주문이나 능력으로 마나, 기력, 분노, 집중, 기, 신성한 힘, 암흑 구슬이 회복될 때 메시지를 표시합니다.", + QUICKBUTTON_NAME_EVERYTHING = "모두", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "모든 전투 메시지를 표시합니다.", + QUICKBUTTON_NAME_KILLS = "처치", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "처치 및 죽음에 대한 메시지를 표시합니다.", QUICKBUTTON_NAME_ME = "자신(대상)", QUICKBUTTON_NAME_ME_TOOLTIP = "자신에게 행해진 모든 내용을 표시합니다.", - QUICKBUTTON_NAME_MY_ACTIONS = "자신의 행위", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "자신의 행위에 대한 메시지를 표시합니다.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "대화창에 필터를 추가합니다.", + RANGED = "원거리 공격", + RANGED_COMBATLOG_TOOLTIP = "활, 총, 투척 무기, 마법봉 공격 메시지를 표시합니다.", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "원거리 공격으로 입힌 전체 피해나 부분적인 피해를 표시합니다.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "피해를 입히지 못한 원거리 공격에 대한 메시지를 표시합니다.", + RESURRECT = "부활", + SETTINGS = "설정", + SHOW_BRACES = "괄호 표시", + SHOW_BRACES_COMBATLOG_TOOLTIP = "전투 메시지에서 링크 정보가 있는 단어를 괄호로 묶습니다.", + SHOW_QUICK_BUTTON = "빠른 버튼 표시하기", + SHOW_TIMESTAMP = "시간 표시", + SOURCE = "획득 방법:", + SPECIAL = "특수 주문", + SPELLS_COMBATLOG_TOOLTIP = "주문과 특수 능력에 관한 메시지를 표시합니다.", + SPELL_CASTING = "주문 시전", + SPELL_CASTING_COMBATLOG_TOOLTIP = "주문 시전에 관련된 메시지를 표시합니다.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "주문을 시전하지 못하거나 시전에 실패했을 때 메시지를 표시합니다.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "주문 시전을 시작할 때 메시지를 표시합니다.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "성공적으로 주문을 시전했을 때 메시지를 표시합니다.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "주문의 마법 계열에 색을 입힙니다.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해를 입혔을 때 메시지를 표시합니다.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "근접 공격을 제외한 공격 피해에 색을 입힙니다.", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "공격 마법 계열에 색을 입힙니다. (예: 암흑)", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "주문이나 능력으로 마나, 기력, 분노, 집중이 감소할 때 메시지를 표시합니다.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "주문이나 능력으로 추가 공격 기회를 얻었을 때 메시지를 표시합니다.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해가 치유될 때 메시지를 표시합니다.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "내구도 감소나 소환수에게 분배되는 피해 등 특별한 형태의 메시지를 표시합니다.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "주문이나 능력으로 다른 주문이 취소될 때 메시지를 표시합니다.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "주문이나 능력으로 피해를 입히지 못했을 때 메시지를 표시합니다. 피함, 막음, 방어함, 튕김, 면역, 흡수, 벗어남이 포함됩니다.", + SPELL_NAMES = "주문 이름", + SPELL_NAMES_COMBATLOG_TOOLTIP = "주문의 이름에 색을 입힙니다.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "주문이나 기술에 괄호 표시", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "효과가 증가하는 주문을 표시합니다.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 피해를 입힐 때 메시지를 표시합니다. 예: 어둠의 권능: 고통, 부패 등", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 치유가 이루어질 때 메시지를 표시합니다. 예: 소생, 회복 등", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "주문이나 능력으로 인한 주기적인 피해가 실패했을 때 메시지를 표시합니다. 면역, 흡수, 벗어남 등이 포함됩니다.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "주문이나 능력으로 주기적인 효과가 발생할 때 메시지를 표시합니다. 예: 마나 회복, 마나 흡수 등", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "다른 플레이어나 NPC를 부활시키는 주문에 대한 메시지를 표시합니다.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "몬스터나 NPC를 소환하거나 물건을 창조할 때 메시지를 표시합니다.", + START = "시작", STRING_SCHOOL_UNKNOWN = "알 수 없음", + SUCCESS = "성공", + SUMMONS = "소환", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "근접 공격으로 입힌 전체 피해나 부분적인 피해를 표시합니다.", + SWING_MISSED_COMBATLOG_TOOLTIP = "피해를 입히지 못한 근접 공격에 대한 메시지를 표시합니다.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%1$s %2$s %4$s %5$s %3$s %6$s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %2$s %4$s %5$s %3$s %6$s", @@ -530,9 +663,15 @@ pfUI_locale["koKR"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "(%s %s)", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "전투 메시지에 시간을 표시합니다.", + UNIT_COLORS = "대상 색:", + UNIT_NAMES = "플레이어, NPC, 몬스터 이름", + UNIT_NAMES_COMBATLOG_TOOLTIP = "플레이어, NPC, 몬스터 이름에 색을 입힙니다.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "이름에 괄호 표시", UNIT_YOU = "당신", UNIT_YOU_DEST = "당신", UNIT_YOU_DEST_POSSESSIVE = "당신", UNIT_YOU_SOURCE = "당신", UNIT_YOU_SOURCE_POSSESSIVE = "당신", + USE_FULL_TEXT_MODE = "전체 문장으로 보기", } diff --git a/env/combatlog_ruRU.lua b/env/combatlog_ruRU.lua index 38004a2a..7b426aa8 100644 --- a/env/combatlog_ruRU.lua +++ b/env/combatlog_ruRU.lua @@ -470,6 +470,11 @@ pfUI_locale["ruRU"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "Добавить", ADDITIONAL_FILTERS = "Дополнительные фильтры", + ADD_FILTER = "Добавить", + AURAS = "Ауры", + AURAS_COMBATLOG_TOOLTIP = "Отображение сообщений о благотворных и вредоносных состояниях.", + BENEFICIAL = "Защитные", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений о приобретении или потере благотворной ауры вашим персонажем.", BLIZZARD_COMBAT_LOG_MENU_BOTH = "Все действия, касающиеся |3-1(%s)", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "Показывать все", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "Действия по отношению к |3-2(%s)?", @@ -479,21 +484,149 @@ pfUI_locale["ruRU"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "Сохранить как новый фильтр", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "Скрывать подобные сообщения.", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "Отправить ссылку на \"%s\" в чат.", + BY_SOURCE = "Источник", + BY_SOURCE_COMBATLOG_TOOLTIP = "Цвет строки зависит от источника.", + BY_TARGET = "Цель", + BY_TARGET_COMBATLOG_TOOLTIP = "Цвет строки зависит от цели.", + COLORIZE = "Цвета:", + COLORS = "Цвета", + COLOR_BY_SCHOOL = "Цвета школ", + COMBATLOG_DEFAULTS = "По умолчанию", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "По выбору", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "Друзья", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "Враждебные игроки", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "Индикаторы противников", + COMBATLOG_FILTER_STRING_ME = "Я", + COMBATLOG_FILTER_STRING_MY_PET = "Питомец", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "Нейтральный", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "Неизвестно", + COMBATLOG_HIGHLIGHT_ABILITY = "Способность", + COMBATLOG_HIGHLIGHT_DAMAGE = "Урон", + COMBATLOG_HIGHLIGHT_KILL = "Убийства", + COMBATLOG_HIGHLIGHT_SCHOOL = "Школы магии", COMBATLOG_UNKNOWN_UNIT = "Что-то", COMBAT_FACTION_CHANGE = "Репутация", COMBAT_HONOR_GAIN = "Честь", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "Разное", COMBAT_XP_GAIN = "Опыт", + CONFIRM_COMBAT_FILTER_DEFAULTS = "Вы действительно хотите сбросить настройки фильтров?", + CONFIRM_COMBAT_FILTER_DELETE = "Удалить этот фильтр?", + COPY_FILTER = "Копировать", + DAMAGE_NUMBER = "Величина урона", + DAMAGE_SCHOOL_TEXT = "Школа магии", DAMAGE_SHIELD = "Ответные повреждения", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "Отображение сообщений об уроне, наносимом заклинаниями или способностями в ответ на атаки в ближнем бою (\"Шипы\" и т. п.).", + DEATHS_COMBATLOG_TOOLTIP = "Отображение сообщений о смерти различных существ.", DEFAULT_COMBATLOG_FILTER_NAME = "Фильтр %d", + DISPELS = "Развеивание", + DISPEL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений об исчезновении, разрушении или похищении аур.", + DONE_BY = "Источник:", + DONE_TO = "Цель:", + DRAINS = "Похищение", ENTER_FILTER_NAME = "Введите название фильтра:", + ENTIRE_LINE = "Вся строка", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "Цветовое выделение всей строки в соответствии с параметрами, указанными ниже.", ENVIRONMENTAL_DAMAGE = "Урон от окружающего мира", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о получении разными персонажами урона от падения, утопления или погружения в лаву.", + EXAMPLE_SPELL_FIREBALL = "Огненный шар", + EXAMPLE_SPELL_FROSTBOLT = "Ледяная стрела", + EXAMPLE_TARGET_MONSTER = "Монстр", + EXAMPLE_TEXT = "Пример текста:", + EXTRA_ATTACKS = "Дополнит. атаки", + FAILURES = "Неудачное", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "Действия враждебных игроков, питомцев и существ.", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "Действия дружественных игроков, питомцев и существ.", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Действия враждебных игроков.", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "Действия вашего персонажа, а также его ловушек и заклинаний.", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "Действия нейтральных существ.", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "Действия ваших питомцев, вызванных существ и подчиненных персонажей.", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "Действия окружающего мира: падение, кислота, лава и т.п.", + FILTER_NAME = "Название фильтра", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "Действия в отношении дружественных игроков, питомцев и существ.", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "Действия в отношении враждебных питомцев и существ.", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "Действия в отношении враждебных игроков.", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "Действия в отношении вашего персонажа.", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "Действия в отношении нейтральных существ.", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "Действия в отношении ваших питомцев, вызванных существ и подчиненных персонажей.", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "Действия в отношении невидимых целей.", + FORMATTING = "Формат", + FULL_TEXT_COMBATLOG_TOOLTIP = "Показывать записи журнала боя в полном виде.", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "Отображение сообщений о приобретении или потере губительной ауры вашим персонажем.", + HEALS = "Лечение", + HIGHLIGHTING = "Подсветка:", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "Подсветка названий способностей в боевых сообщениях.", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "Подсветка величины урона в боевых сообщениях.", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "Подсветка всей строки при убийстве противника вами или другим членом вашей группы.", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "Подсветка названий школ магии в боевых сообщениях.", + HOSTILE = "Губительные", + INTERRUPTS = "Прерывание", + ITEM_NAMES = "Названия предметов", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий предметов.", + KILLS_COMBATLOG_TOOLTIP = "Отображение сообщений об убийстве противников членами вашей группы.", + MELEE = "Ближний бой", + MELEE_COMBATLOG_TOOLTIP = "Отображение информации об ударах ближнего боя.", + MESSAGE_SOURCES = "Источники сообщений", + MISSES = "Промах", + MOVE_FILTER_DOWN = "Переместить ниже", + MOVE_FILTER_UP = "Переместить выше", + OTHER = "Другое", + PERIODIC = "Периодические эффекты", + POWER_GAINS = "Получение энергии", + POWER_GAINS_COMBATLOG_TOOLTIP = "Отображение сообщений о восполнении маны, энергии, ярости, концентрации, энергии ци, энергии Света или сфер Тьмы с помощью заклинаний или способностей.", + QUICKBUTTON_NAME_EVERYTHING = "Все", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "Отображение всех сообщений о бое.", + QUICKBUTTON_NAME_KILLS = "Убийства", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "Показ всех смертей и убийств.", QUICKBUTTON_NAME_ME = "Что случилось с персонажем?", QUICKBUTTON_NAME_ME_TOOLTIP = "Отображение всех действий в отношении вашего персонажа.", - QUICKBUTTON_NAME_MY_ACTIONS = "Мои действия", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "Отображение сообщений о действиях, совершенных вашим персонажем.", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "Помещение ссылки на фильтр в окно чата.", + RANGED = "Дальний бой", + RANGED_COMBATLOG_TOOLTIP = "Природа", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "Отображение информации об атаках дальнего боя, наносящих полный или частичный урон.", + RANGE_MISSED_COMBATLOG_TOOLTIP = "Отображение информации об атаках дальнего боя, не наносящих урона.", + RESURRECT = "Воскрешений", + SETTINGS = "Параметры", + SHOW_BRACES = "Выделять скобками", + SHOW_BRACES_COMBATLOG_TOOLTIP = "Выделение ссылок в сообщениях журнала боя.", + SHOW_QUICK_BUTTON = "Быстрый вызов", + SHOW_TIMESTAMP = "Отображать время", + SOURCE = "Источник:", + SPECIAL = "Особые", + SPELLS_COMBATLOG_TOOLTIP = "Отображение сообщений о заклинаниях и особых способностях.", + SPELL_CASTING = "Применение заклинаний", + SPELL_CASTING_COMBATLOG_TOOLTIP = "Отображение сообщений о применении заклинаний.", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "Отображение сообщений о невозможности применения заклинаний.", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "Отображение сообщений о начале применения заклинаний.", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "Отображение сообщений об успешном завершении заклинаний.", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "Цветовое выделение названий заклинаний в соответствии с школами магии.", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о нанесении урона заклинаниями или способностями.", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "Цветовое выделение величины урона (кроме ближнего боя).", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "Цветовое выделение школ урона (\"Темной магии\" и т.п.)", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "Отображение сообщений о снижении объема маны, энергии, ярости и концентрации под влиянием заклинаний или способностей.", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "Отображение сообщений о дополнительных атаках, вызванных заклинаниями или способностями.", + SPELL_HEAL_COMBATLOG_TOOLTIP = "Отображение сообщений об исцеляющих заклинаниях и способностях.", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "Отображение сообщений об особых заклинаниях: например, повреждающих экипировку или наносящих урон питомцам.", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "Отображение сообщений о прерывании заклинаниями или способностями действия других заклинаний.", + SPELL_MISSED_COMBATLOG_TOOLTIP = "Отображение сообщений о неудачном применении боевых заклинаний и способностей, в т.ч., связанном с уклонением, парированием, блоком, отражением, невосприимчивостью, поглощением и уверткой.", + SPELL_NAMES = "Названия заклинаний", + SPELL_NAMES_COMBATLOG_TOOLTIP = "Цветовое выделение названий заклинаний.", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий заклинаний.", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "Отображение информации о заклинаниях постепенного действия.", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "Отображение сообщений о периодическом уроне от заклинаний или способностей (\"Слово Тьмы: Боль\", \"Порча\" и т. п.).", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "Отображение сообщений о периодическом исцелении от заклинаний или способностей (\"Обновление\", \"Омоложение\" и т. п.).", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "Отображение сообщений о частично неудачном применении боевых заклинаний и способностей, в т.ч., связанных с невосприимчивостью, поглощением и уверткой.", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "Отображение сообщений о других видах периодических эффектов заклинаний и способностей, например, восполнении или похищении маны.", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "Показывать сообщения о воскрешении игрока или существа с помощью заклинания или способности.", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "Показывать сообщения, когда с помощью заклинания призывается существо.", + START = "Начало", STRING_SCHOOL_UNKNOWN = "Неизвестно", + SUCCESS = "Успешное", + SUMMONS = "Призывов", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "Отображение информации об ударах в ближнем бою, наносящих полный или частичный урон.", + SWING_MISSED_COMBATLOG_TOOLTIP = "Отображение атак в ближнем бою, не наносящих урона.", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%2$s |3-1(%1$s) - %3$s - %4$s - %5$s%6$s.", @@ -530,9 +663,15 @@ pfUI_locale["ruRU"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s (%s)", TEXT_MODE_A_STRING_VALUE_TYPE = "%s (%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "Отображение даты и времени в сообщениях журнала боя.", + UNIT_COLORS = "Цвета объектов:", + UNIT_NAMES = "Объект действия", + UNIT_NAMES_COMBATLOG_TOOLTIP = "Цветовое выделение названий объектов.", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "Заключение в скобки названий объектов.", UNIT_YOU = "Вы", UNIT_YOU_DEST = "Вы", UNIT_YOU_DEST_POSSESSIVE = "Ваш", UNIT_YOU_SOURCE = "Вы", UNIT_YOU_SOURCE_POSSESSIVE = "Ваше", + USE_FULL_TEXT_MODE = "Использовать полный режим", } diff --git a/env/combatlog_zhCN.lua b/env/combatlog_zhCN.lua index 475ca88a..32ebd734 100644 --- a/env/combatlog_zhCN.lua +++ b/env/combatlog_zhCN.lua @@ -470,6 +470,11 @@ pfUI_locale["zhCN"]["combatlog"] = { ACTION_UNIT_DISSIPATES_POSSESSIVE = "0", ADD = "添加", ADDITIONAL_FILTERS = "更多过滤条件", + ADD_FILTER = "添加过滤", + AURAS = "光环", + AURAS_COMBATLOG_TOOLTIP = "显示有关增益和负面状态效果的信息。", + BENEFICIAL = "增益", + BENEFICIAL_AURA_COMBATLOG_TOOLTIP = "当你获得或失去有益光环时显示信息。", BLIZZARD_COMBAT_LOG_MENU_BOTH = "显示所有与%s有关的信息?", BLIZZARD_COMBAT_LOG_MENU_EVERYTHING = "全部显示", BLIZZARD_COMBAT_LOG_MENU_INCOMING = "%s发生了什么事情?", @@ -479,21 +484,149 @@ pfUI_locale["zhCN"]["combatlog"] = { BLIZZARD_COMBAT_LOG_MENU_SAVE = "保存为新的过滤条件", BLIZZARD_COMBAT_LOG_MENU_SPELL_HIDE = "隐藏与这一条类似的信息。", BLIZZARD_COMBAT_LOG_MENU_SPELL_LINK = "将%s链接到聊天频道中。", + BY_SOURCE = "按来源", + BY_SOURCE_COMBATLOG_TOOLTIP = "按照施法者以颜色区分。", + BY_TARGET = "按目标", + BY_TARGET_COMBATLOG_TOOLTIP = "按照目标以颜色区分。", + COLORIZE = "彩色标记:", + COLORS = "颜色", + COLOR_BY_SCHOOL = "按类型区分颜色", + COMBATLOG_DEFAULTS = "战斗记录默认", + COMBATLOG_FILTER_STRING_CUSTOM_UNIT = "自定义单位", + COMBATLOG_FILTER_STRING_FRIENDLY_UNITS = "友方", + COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS = "敌方玩家", + COMBATLOG_FILTER_STRING_HOSTILE_UNITS = "敌方单位", + COMBATLOG_FILTER_STRING_ME = "我", + COMBATLOG_FILTER_STRING_MY_PET = "宠物", + COMBATLOG_FILTER_STRING_NEUTRAL_UNITS = "中立", + COMBATLOG_FILTER_STRING_UNKNOWN_UNITS = "未知", + COMBATLOG_HIGHLIGHT_ABILITY = "技能", + COMBATLOG_HIGHLIGHT_DAMAGE = "伤害", + COMBATLOG_HIGHLIGHT_KILL = "杀死", + COMBATLOG_HIGHLIGHT_SCHOOL = "类型", COMBATLOG_UNKNOWN_UNIT = "某目标", COMBAT_FACTION_CHANGE = "声望", COMBAT_HONOR_GAIN = "荣誉", COMBAT_LOG_UNIT_YOU_ENABLED = "1", COMBAT_MISC_INFO = "其它信息", COMBAT_XP_GAIN = "经验", + CONFIRM_COMBAT_FILTER_DEFAULTS = "你确定要将过滤条件设定为初始状态吗?", + CONFIRM_COMBAT_FILTER_DELETE = "你确认要删除这个过滤条件?", + COPY_FILTER = "复制过滤", + DAMAGE_NUMBER = "伤害数值", + DAMAGE_SCHOOL_TEXT = "伤害类型", DAMAGE_SHIELD = "伤害护盾", + DAMAGE_SHIELD_COMBATLOG_TOOLTIP = "当法术或技能(如荆棘术)对近战攻击造成反弹伤害时显示信息。", + DEATHS_COMBATLOG_TOOLTIP = "当某生物死亡时显示信息。", DEFAULT_COMBATLOG_FILTER_NAME = "过滤条件%d", + DISPELS = "驱散", + DISPEL_AURA_COMBATLOG_TOOLTIP = "当光环被移除、破坏或偷取时显示信息。", + DONE_BY = "来源为:", + DONE_TO = "目标为:", + DRAINS = "吸取", ENTER_FILTER_NAME = "输入过滤名称:", + ENTIRE_LINE = "整条信息", + ENTIRE_LINE_COMBATLOG_TOOLTIP = "按照下面的方式用彩色标记整条信息。", ENVIRONMENTAL_DAMAGE = "环境伤害", + ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP = "当某人因摔落、溺水或泡在岩浆中而损失生命值时显示信息。", + EXAMPLE_SPELL_FIREBALL = "火球术", + EXAMPLE_SPELL_FROSTBOLT = "寒冰箭", + EXAMPLE_TARGET_MONSTER = "怪物", + EXAMPLE_TEXT = "范例文字:", + EXTRA_ATTACKS = "额外攻击", + FAILURES = "失败", + FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP = "敌方怪物和宠物进行的动作。", + FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP = "由友方玩家、宠物和怪物进行的动作。", + FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "敌方玩家进行的动作。", + FILTER_BY_ME_COMBATLOG_TOOLTIP = "由你、你的陷阱和你的法术进行的动作。", + FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP = "由中立生物进行的动作。", + FILTER_BY_PET_COMBATLOG_TOOLTIP = "由你的宠物、召唤生物和被魅惑玩家进行的动作。", + FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP = "由掉落、酸液或岩浆之类的源头产生的动作。", + FILTER_NAME = "过滤名称", + FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP = "对友方玩家、宠物和怪物进行的动作。", + FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP = "对敌方宠物和怪物进行的动作。", + FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP = "对敌方玩家进行的动作。", + FILTER_TO_ME_COMBATLOG_TOOLTIP = "对你进行的动作。", + FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP = "对中立生物进行的动作。", + FILTER_TO_PET_COMBATLOG_TOOLTIP = "对你的宠物、召唤生物和被魅惑玩家进行的动作。", + FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP = "对隐形目标进行的动作。", + FORMATTING = "格式", + FULL_TEXT_COMBATLOG_TOOLTIP = "整句显示战斗记录信息。", + HARMFUL_AURA_COMBATLOG_TOOLTIP = "当你获得或失去有害光环时显示信息。", + HEALS = "治疗", + HIGHLIGHTING = "高亮显示:", + HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示技能名。", + HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示伤害数值。", + HIGHLIGHT_KILL_COMBATLOG_TOOLTIP = "高亮显示你或你的队友杀死敌人时所显示的信息。", + HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP = "在战斗信息中高亮显示法术的类型。", + HOSTILE = "敌对", + INTERRUPTS = "打断", + ITEM_NAMES = "物品名", + ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在物品名称外显示括号。", + KILLS_COMBATLOG_TOOLTIP = "当你的队友杀死某目标时显示信息。", + MELEE = "近战", + MELEE_COMBATLOG_TOOLTIP = "显示普通的近战攻击。", + MESSAGE_SOURCES = "信息来源", + MISSES = "未命中", + MOVE_FILTER_DOWN = "过滤条件下移", + MOVE_FILTER_UP = "过滤条件上移", + OTHER = "其它", + PERIODIC = "周期", + POWER_GAINS = "获得能量", + POWER_GAINS_COMBATLOG_TOOLTIP = "当法术或技能恢复法力、能量、怒气、集中值、真气、神圣能量或暗影宝珠时显示信息。", + QUICKBUTTON_NAME_EVERYTHING = "所有", + QUICKBUTTON_NAME_EVERYTHING_TOOLTIP = "显示所有战斗信息。", + QUICKBUTTON_NAME_KILLS = "杀敌", + QUICKBUTTON_NAME_KILLS_TOOLTIP = "显示所有死亡和杀敌信息。", QUICKBUTTON_NAME_ME = "我发生了什么?", QUICKBUTTON_NAME_ME_TOOLTIP = "显示我所接收的所有行为信息。", - QUICKBUTTON_NAME_MY_ACTIONS = "我的动作", - QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP = "显示你所进行的动作的信息。", + QUICKBUTTON_NAME_SELF = "Self", + QUICKBUTTON_NAME_SELF_TOOLTIP = "Show messages of actions done by you and done to you.", + QUICK_BUTTON_COMBATLOG_TOOLTIP = "在聊天窗口中放置一个该过滤条件的快捷方式。", + RANGED = "远程", + RANGED_COMBATLOG_TOOLTIP = "显示弓箭、枪械、投掷武器和魔杖的攻击。", + RANGE_DAMAGE_COMBATLOG_TOOLTIP = "显示造成了全额或部分伤害的远程射击。", + RANGE_MISSED_COMBATLOG_TOOLTIP = "显示未能造成伤害的远程射击。", + RESURRECT = "复活", + SETTINGS = "设置", + SHOW_BRACES = "显示括号", + SHOW_BRACES_COMBATLOG_TOOLTIP = "在战斗记录信息中的超链接外显示括号。", + SHOW_QUICK_BUTTON = "显示快捷按钮", + SHOW_TIMESTAMP = "显示时间戳", + SOURCE = "来源:", + SPECIAL = "特殊", + SPELLS_COMBATLOG_TOOLTIP = "显示有关法术和特殊技能的信息。", + SPELL_CASTING = "法术施放", + SPELL_CASTING_COMBATLOG_TOOLTIP = "显示有关法术施放的信息。", + SPELL_CAST_FAILED_COMBATLOG_TOOLTIP = "当法术无法施放或施放失败时显示信息。", + SPELL_CAST_START_COMBATLOG_TOOLTIP = "当法术开始施放时显示信息。", + SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP = "当法术成功施放时显示信息。", + SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP = "按类型用彩色标记法术名。", + SPELL_DAMAGE_COMBATLOG_TOOLTIP = "当法术或技能造成伤害时显示信息。", + SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP = "以彩色标记非普通攻击的伤害数值。", + SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP = "彩色标记伤害类型。(例如:暗影)", + SPELL_DRAIN_COMBATLOG_TOOLTIP = "当法术或技能降低法力、能量、怒气、或集中值时显示信息。", + SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP = "当法术或技能提供额外攻击时显示信息。", + SPELL_HEAL_COMBATLOG_TOOLTIP = "当法术或技能恢复生命值时显示信息。", + SPELL_INSTAKILL_COMBATLOG_TOOLTIP = "显示有关特殊法术类型的信息,比如造成耐久度损失或者与宠物分担伤害的法术。", + SPELL_INTERRUPT_COMBATLOG_TOOLTIP = "当法术或技能打断另一个法术时显示信息。", + SPELL_MISSED_COMBATLOG_TOOLTIP = "当法术或技能未能造成伤害时显示信息。这包括躲闪、招架、格挡、偏转、免疫、吸收和闪避。", + SPELL_NAMES = "法术名", + SPELL_NAMES_COMBATLOG_TOOLTIP = "彩色标记法术名。", + SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在法术名称外显示括号。", + SPELL_PERIODIC_COMBATLOG_TOOLTIP = "显示法术效果增量的信息。", + SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP = "当法术或技能周期性地造成伤害时(如暗言术:痛或腐蚀术)显示信息。", + SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP = "当法术或技能周期性地恢复生命值时(如恢复或回春术)显示信息。", + SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP = "当法术或技能未能造成周期性的伤害时显示信息。这包括免疫、吸收和闪避。", + SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP = "当法术或技能周期性地产生其它效果时(如恢复或吸取法力值)显示信息。", + SPELL_RESURRECT_COMBATLOG_TOOLTIP = "当法术或技能复活另一个玩家或怪物时显示信息。", + SPELL_SUMMON_COMBATLOG_TOOLTIP = "当法术召唤出怪物或创造一个物体时显示信息。", + START = "开始", STRING_SCHOOL_UNKNOWN = "未知", + SUCCESS = "成功", + SUMMONS = "召唤", + SWING_DAMAGE_COMBATLOG_TOOLTIP = "显示造成了全额或部分伤害的近战攻击。", + SWING_MISSED_COMBATLOG_TOOLTIP = "显示未能造成伤害的近战攻击。", TEXT_MODE_A = "A", TEXT_MODE_A_STRING_1 = "%s %s %s %s %s. %s %11$s", TEXT_MODE_A_STRING_2 = "%1$s %3$s%2$s%4$s%5$s。%6$s", @@ -530,9 +663,15 @@ pfUI_locale["zhCN"]["combatlog"] = { TEXT_MODE_A_STRING_VALUE_SCHOOL = "%s %s", TEXT_MODE_A_STRING_VALUE_TYPE = "%s(%s)", TEXT_MODE_A_TIMESTAMP = "%H:%M:%S", + TIMESTAMP_COMBATLOG_TOOLTIP = "显示战斗记录信息的时间戳。", + UNIT_COLORS = "单位颜色:", + UNIT_NAMES = "单位名称", + UNIT_NAMES_COMBATLOG_TOOLTIP = "彩色标记单位名。", + UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP = "在单位名称外显示括号。", UNIT_YOU = "你", UNIT_YOU_DEST = "你", UNIT_YOU_DEST_POSSESSIVE = "你的", UNIT_YOU_SOURCE = "你", UNIT_YOU_SOURCE_POSSESSIVE = "你的", + USE_FULL_TEXT_MODE = "使用详细模式", } diff --git a/init/modules.xml b/init/modules.xml index fd982fd2..50e353c9 100644 --- a/init/modules.xml +++ b/init/modules.xml @@ -8,6 +8,7 @@ + diff --git a/modules/combatlog.lua b/modules/combatlog.lua index 50e19184..4932aa08 100644 --- a/modules/combatlog.lua +++ b/modules/combatlog.lua @@ -1,7 +1,7 @@ pfUI:RegisterModule("combatlog", function () -- Classic Era's Blizzard_CombatLog in ChatFrame2. ClassicAPI runs the -- engine: COMBAT_LOG_EVENT, CombatLogAddFilter, and the kept entries that - -- the log refills itself from when it shows or changes filter. + -- the log refills itself from when its filter changes. -- Classic's combat log GlobalStrings that the 1.12 client lacks for name, text in pairs(L["combatlog"]) do @@ -58,7 +58,7 @@ pfUI:RegisterModule("combatlog", function () local Blizzard_CombatLog_CreateActionMenu, Blizzard_CombatLog_CreateSpellMenu local Blizzard_CombatLog_CreateUnitMenu, Blizzard_CombatLog_CreateFilterMenu local Blizzard_CombatLog_UnitMenuClick, Blizzard_CombatLog_SpellMenuClick - local CombatLog_OnEvent, CombatLog_AddEvent, CreateCombatLogContextMenu + local CombatLog_OnEvent, CombatLog_AddEvent, CreateCombatLogContextMenu, NewFilter local Blizzard_CombatLog_Update_QuickButtons, Blizzard_CombatLog_QuickButton_OnClick, ShowQuickButton -- runs the refilter a step per frame, and takes COMBAT_LOG_EVENT @@ -270,6 +270,46 @@ pfUI:RegisterModule("combatlog", function () return flagList; end + -- + -- Default CombatLog Filter + -- This table is used to create new CombatLog filters + -- + local DEFAULT_COMBATLOG_FILTER_TEMPLATE = { + -- Descriptive Information + hasQuickButton = true; + quickButtonDisplay = { + solo = true; + party = true; + raid = true; + }; + + -- Default Color and Formatting Options + settings = CopyTable(COMBATLOG_DEFAULT_SETTINGS); + + -- Coloring + colors = CopyTable(COMBATLOG_DEFAULT_COLORS); + + -- The actual client filters + filters = { + [1] = { + eventList = Blizzard_CombatLog_GenerateFullEventList(); + sourceFlags = { + [COMBATLOG_FILTER_MINE] = true, + [COMBATLOG_FILTER_MY_PET] = true; + }; + destFlags = nil; + }; + [2] = { + eventList = Blizzard_CombatLog_GenerateFullEventList(); + sourceFlags = nil; + destFlags = { + [COMBATLOG_FILTER_MINE] = true, + [COMBATLOG_FILTER_MY_PET] = true; + }; + }; + }; + }; + -- -- Persistant Variables -- @@ -281,15 +321,15 @@ pfUI:RegisterModule("combatlog", function () filters = { [1] = { -- Descriptive Information - name = QUICKBUTTON_NAME_MY_ACTIONS; + name = QUICKBUTTON_NAME_SELF; hasQuickButton = true; - quickButtonName = QUICKBUTTON_NAME_MY_ACTIONS; + quickButtonName = QUICKBUTTON_NAME_SELF; quickButtonDisplay = { solo = true; party = true; raid = true; }; - tooltip = QUICKBUTTON_NAME_MY_ACTIONS_TOOLTIP; + tooltip = QUICKBUTTON_NAME_SELF_TOOLTIP; -- Default Color and Formatting Options settings = CopyTable(COMBATLOG_DEFAULT_SETTINGS); @@ -301,54 +341,54 @@ pfUI:RegisterModule("combatlog", function () filters = { [1] = { eventList = { - ["ENVIRONMENTAL_DAMAGE"] = false, + ["ENVIRONMENTAL_DAMAGE"] = true, ["SWING_DAMAGE"] = true, - ["SWING_MISSED"] = false, + ["SWING_MISSED"] = true, ["RANGE_DAMAGE"] = true, - ["RANGE_MISSED"] = false, + ["RANGE_MISSED"] = true, --["SPELL_CAST_START"] = true, --["SPELL_CAST_SUCCESS"] = true, --["SPELL_CAST_FAILED"] = true, - ["SPELL_MISSED"] = false, + ["SPELL_MISSED"] = true, ["SPELL_DAMAGE"] = true, ["SPELL_HEAL"] = true, ["SPELL_ENERGIZE"] = true, - ["SPELL_DRAIN"] = false, - ["SPELL_LEECH"] = false, - ["SPELL_INSTAKILL"] = false, - ["SPELL_INTERRUPT"] = false, - ["SPELL_EXTRA_ATTACKS"] = false, - ["SPELL_DURABILITY_DAMAGE"] = false, - ["SPELL_DURABILITY_DAMAGE_ALL"] = false, - ["SPELL_AURA_APPLIED"] = false, - ["SPELL_AURA_APPLIED_DOSE"] = false, - ["SPELL_AURA_REMOVED"] = false, - ["SPELL_AURA_REMOVED_DOSE"] = false, - ["SPELL_AURA_BROKEN"] = false, - ["SPELL_AURA_BROKEN_SPELL"] = false, - ["SPELL_AURA_REFRESH"] = false, - ["SPELL_DISPEL"] = false, - ["SPELL_STOLEN"] = false, - ["ENCHANT_APPLIED"] = false, - ["ENCHANT_REMOVED"] = false, - ["SPELL_PERIODIC_MISSED"] = false, + ["SPELL_DRAIN"] = true, + ["SPELL_LEECH"] = true, + ["SPELL_INSTAKILL"] = true, + ["SPELL_INTERRUPT"] = true, + ["SPELL_EXTRA_ATTACKS"] = true, + --["SPELL_DURABILITY_DAMAGE"] = true, + --["SPELL_DURABILITY_DAMAGE_ALL"] = true, + ["SPELL_AURA_APPLIED"] = true, + ["SPELL_AURA_APPLIED_DOSE"] = true, + ["SPELL_AURA_REMOVED"] = true, + ["SPELL_AURA_REMOVED_DOSE"] = true, + ["SPELL_AURA_BROKEN"] = true, + ["SPELL_AURA_BROKEN_SPELL"] = true, + ["SPELL_AURA_REFRESH"] = true, + ["SPELL_DISPEL"] = true, + ["SPELL_STOLEN"] = true, + ["ENCHANT_APPLIED"] = true, + ["ENCHANT_REMOVED"] = true, + ["SPELL_PERIODIC_MISSED"] = true, ["SPELL_PERIODIC_DAMAGE"] = true, ["SPELL_PERIODIC_HEAL"] = true, ["SPELL_PERIODIC_ENERGIZE"] = true, - ["SPELL_PERIODIC_DRAIN"] = false, - ["SPELL_PERIODIC_LEECH"] = false, - ["SPELL_DISPEL_FAILED"] = false, + ["SPELL_PERIODIC_DRAIN"] = true, + ["SPELL_PERIODIC_LEECH"] = true, + ["SPELL_DISPEL_FAILED"] = true, --["DAMAGE_SHIELD"] = true, --["DAMAGE_SHIELD_MISSED"] = true, - ["DAMAGE_SPLIT"] = true, + --["DAMAGE_SPLIT"] = true, ["PARTY_KILL"] = true, - ["UNIT_DIED"] = false, + ["UNIT_DIED"] = true, ["UNIT_DESTROYED"] = true, - ["UNIT_DISSIPATES"] = true, - ["UNIT_LOYALTY"] = false + ["UNIT_DISSIPATES"] = true }; sourceFlags = { - [COMBATLOG_FILTER_MINE] = true + [COMBATLOG_FILTER_MINE] = true, + [COMBATLOG_FILTER_MY_PET] = true; }; destFlags = nil; }; @@ -371,8 +411,8 @@ pfUI:RegisterModule("combatlog", function () ["SPELL_INSTAKILL"] = true, ["SPELL_INTERRUPT"] = true, ["SPELL_EXTRA_ATTACKS"] = true, - ["SPELL_DURABILITY_DAMAGE"] = true, - ["SPELL_DURABILITY_DAMAGE_ALL"] = true, + --["SPELL_DURABILITY_DAMAGE"] = true, + --["SPELL_DURABILITY_DAMAGE_ALL"] = true, --["SPELL_AURA_APPLIED"] = true, --["SPELL_AURA_APPLIED_DOSE"] = true, --["SPELL_AURA_REMOVED"] = true, @@ -390,22 +430,53 @@ pfUI:RegisterModule("combatlog", function () ["SPELL_DISPEL_FAILED"] = true, --["DAMAGE_SHIELD"] = true, --["DAMAGE_SHIELD_MISSED"] = true, - ["DAMAGE_SPLIT"] = true, + --["DAMAGE_SPLIT"] = true, ["PARTY_KILL"] = true, ["UNIT_DIED"] = true, ["UNIT_DESTROYED"] = true, - ["UNIT_DISSIPATES"] = true, - ["UNIT_LOYALTY"] = false + ["UNIT_DISSIPATES"] = true }; sourceFlags = nil; - destFlags = { - [COMBATLOG_FILTER_MINE] = false, - [COMBATLOG_FILTER_MY_PET] = false; + destFlags = { + [COMBATLOG_FILTER_MINE] = true, + [COMBATLOG_FILTER_MY_PET] = true; }; }; }; }; [2] = { + -- Descriptive Information + name = QUICKBUTTON_NAME_EVERYTHING; + hasQuickButton = true; + quickButtonName = QUICKBUTTON_NAME_EVERYTHING; + quickButtonDisplay = { + solo = true; + party = true; + raid = true; + }; + tooltip = QUICKBUTTON_NAME_EVERYTHING_TOOLTIP; + + -- Settings + settings = CopyTable(COMBATLOG_DEFAULT_SETTINGS); + + -- Coloring + colors = CopyTable(COMBATLOG_DEFAULT_COLORS); + + -- The actual client filters + filters = { + [1] = { + eventList = Blizzard_CombatLog_GenerateFullEventList(); + sourceFlags = Blizzard_CombatLog_GenerateFullFlagList(true); + destFlags = nil; + }; + [2] = { + eventList = Blizzard_CombatLog_GenerateFullEventList(); + sourceFlags = nil; + destFlags = Blizzard_CombatLog_GenerateFullFlagList(true); + }; + }; + }; + [3] = { -- Descriptive Information name = QUICKBUTTON_NAME_ME; hasQuickButton = true; @@ -426,19 +497,7 @@ pfUI:RegisterModule("combatlog", function () -- The actual client filters filters = { [1] = { - eventList = { - ["ENVIRONMENTAL_DAMAGE"] = true, - ["SWING_DAMAGE"] = true, - ["RANGE_DAMAGE"] = true, - ["SPELL_DAMAGE"] = true, - ["SPELL_HEAL"] = true, - ["SPELL_PERIODIC_DAMAGE"] = true, - ["SPELL_PERIODIC_HEAL"] = true, - ["DAMAGE_SPLIT"] = true, - ["UNIT_DIED"] = true, - ["UNIT_DESTROYED"] = true, - ["UNIT_DISSIPATES"] = true - }; + eventList = Blizzard_CombatLog_GenerateFullEventList(); sourceFlags = Blizzard_CombatLog_GenerateFullFlagList(false); destFlags = nil; }; @@ -447,11 +506,53 @@ pfUI:RegisterModule("combatlog", function () sourceFlags = nil; destFlags = { [COMBATLOG_FILTER_MINE] = true, - [COMBATLOG_FILTER_MY_PET] = false; + [COMBATLOG_FILTER_MY_PET] = true; }; }; }; }; + [4] = { + -- Descriptive Information + name = QUICKBUTTON_NAME_KILLS; + hasQuickButton = false; + quickButtonName = QUICKBUTTON_NAME_KILLS; + quickButtonDisplay = { + solo = true; + party = true; + raid = true; + }; + tooltip = QUICKBUTTON_NAME_KILLS_TOOLTIP; + + -- Settings + settings = CopyTable(COMBATLOG_DEFAULT_SETTINGS); + + -- Coloring + colors = CopyTable(COMBATLOG_DEFAULT_COLORS); + + -- The actual client filters + filters = { + [1] = { + eventList = { + ["PARTY_KILL"] = true, + ["UNIT_DIED"] = true, + ["UNIT_DESTROYED"] = true, + ["UNIT_DISSIPATES"] = true + }; + sourceFlags = Blizzard_CombatLog_GenerateFullFlagList(true); + destFlags = nil; + }; + [2] = { + eventList = { + ["PARTY_KILL"] = true, + ["UNIT_DIED"] = true, + ["UNIT_DESTROYED"] = true, + ["UNIT_DISSIPATES"] = true + }; + sourceFlags = nil; + destFlags = Blizzard_CombatLog_GenerateFullFlagList(true); + }; + }; + }; }; -- Current Filter @@ -749,7 +850,7 @@ pfUI:RegisterModule("combatlog", function () -- function Blizzard_CombatLog_UnitMenuClick(event, unitName, unitGUID, unitFlags) if ( event == "SAVE" ) then - StaticPopup_Show("PFUI_COPY_COMBAT_FILTER", nil, nil, Blizzard_CombatLog_CurrentSettings); + NewFilter(Blizzard_CombatLog_CurrentSettings); return; elseif ( event == "RESET" ) then Blizzard_CombatLog_CurrentSettings = Blizzard_CombatLog_Filters.filters[Blizzard_CombatLog_Filters.currentFilter]; @@ -2556,9 +2657,10 @@ pfUI:RegisterModule("combatlog", function () return HookChatFrame_OnHyperlinkShow(link, text, button) end - -- CombatConfig_CreateCombatFilter, without the config window to select it in + -- CombatConfig_CreateCombatFilter: adds a copy of filter, or a new one from + -- the template, and returns its index local function CreateCombatFilter(name, filter) - local newFilter = CopyTable(filter) + local newFilter = CopyTable(filter or DEFAULT_COMBATLOG_FILTER_TEMPLATE) if not name or name == "" then name = format(DEFAULT_COMBATLOG_FILTER_NAME, #Blizzard_CombatLog_Filters.filters) end @@ -2568,27 +2670,20 @@ pfUI:RegisterModule("combatlog", function () newFilter.isTemp = nil tinsert(Blizzard_CombatLog_Filters.filters, newFilter) Blizzard_CombatLog_Update_QuickButtons() + return #Blizzard_CombatLog_Filters.filters end - -- the unit menu's "Save" (COPY_COMBAT_FILTER); the filter arrives as data - StaticPopupDialogs["PFUI_COPY_COMBAT_FILTER"] = { - text = ENTER_FILTER_NAME, - button1 = ACCEPT, - button2 = CANCEL, - hasEditBox = 1, - maxLetters = 32, - OnAccept = function(filter) - CreateCombatFilter(_G[this:GetParent():GetName().."EditBox"]:GetText(), filter) - end, - EditBoxOnEnterPressed = function(filter) - CreateCombatFilter(this:GetText(), filter) - this:GetParent():Hide() - end, - EditBoxOnEscapePressed = function() this:GetParent():Hide() end, - timeout = 0, whileDead = 1, hideOnEscape = 1, - } + -- COPY_COMBAT_FILTER and CREATE_COMBAT_FILTER: asks for a name, then + -- passes the new filter's index to done + function NewFilter(filter, done) + CreateQuestionDialog(ENTER_FILTER_NAME, { ACCEPT, function() + local index = CreateCombatFilter(this:GetParent().input:GetText(), filter) + if done then done(index) end + end }, { CANCEL }, true) + end - _G.pfUI_combatlog = _G.pfUI_combatlog or Blizzard_CombatLog_Filter_Defaults + -- a fresh copy, so the defaults stay as they are for a reset + _G.pfUI_combatlog = _G.pfUI_combatlog or CopyTable(Blizzard_CombatLog_Filter_Defaults) Blizzard_CombatLog_Filters = _G.pfUI_combatlog Blizzard_CombatLog_CurrentSettings = Blizzard_CombatLog_Filters.filters[Blizzard_CombatLog_Filters.currentFilter] @@ -2673,23 +2768,59 @@ pfUI:RegisterModule("combatlog", function () return OnEvent(self, event, ...) end) - -- The log takes live events only while it shows. Showing it again applies - -- the current filter and refills it from the kept entries. - CombatLogUpdateFrame:SetScript("OnEvent", function() - CombatLog_AddEvent(CombatLogGetCurrentEventInfo()) - end) + -- What the settings window (modules/combatlog_config.lua) works on. It is + -- built the first time it opens. + local log = { + GetFilters = function() return Blizzard_CombatLog_Filters end, + -- replaces the saved filters with the defaults and shows the first + Reset = function() + _G.pfUI_combatlog = CopyTable(Blizzard_CombatLog_Filter_Defaults) + Blizzard_CombatLog_Filters = _G.pfUI_combatlog + Blizzard_CombatLog_QuickButton_OnClick(1) + end, + NewFilter = NewFilter, + SelectFilter = Blizzard_CombatLog_QuickButton_OnClick, + UpdateQuickButtons = Blizzard_CombatLog_Update_QuickButtons, + FormatEvent = CombatLog_OnEvent, + } - COMBATLOG:HookScript("OnShow", function() - CombatLogUpdateFrame:RegisterEvent("COMBAT_LOG_EVENT") - Blizzard_CombatLog_QuickButton_OnClick(Blizzard_CombatLog_Filters.currentFilter) - end) - - COMBATLOG:HookScript("OnHide", function() - CombatLogUpdateFrame:UnregisterEvent("COMBAT_LOG_EVENT") - end) - - if COMBATLOG:IsShown() then - CombatLogUpdateFrame:RegisterEvent("COMBAT_LOG_EVENT") - Blizzard_CombatLog_QuickButton_OnClick(Blizzard_CombatLog_Filters.currentFilter) + local config + local function ShowConfig() + config = config or pfUI.combatlog.CreateConfig(log) + config:Show() end + + -- "Settings" in the Combat Log tab's right-click menu, as on later clients. + -- Each tab's menu keeps its own initialize function. + local dropdown = _G[COMBATLOG:GetName().."TabDropDown"] + local initialize = dropdown.initialize + dropdown.initialize = function() + initialize() + if UIDROPDOWNMENU_MENU_LEVEL == 1 then + local info = UIDropDownMenu_CreateInfo() + info.text = SETTINGS + info.func = ShowConfig + info.notCheckable = 1 + UIDropDownMenu_AddButton(info) + end + end + + -- Unlike Blizzard's, the log keeps taking events while another tab is + -- selected, so switching back to it shows what happened meanwhile instead + -- of rebuilding it from the kept entries (which only reach back 300s). + CombatLogUpdateFrame:SetScript("OnEvent", function(self, event) + if event == "COMBAT_LOG_EVENT" then + CombatLog_AddEvent(CombatLogGetCurrentEventInfo()) + else + -- quick buttons show by solo, party or raid + Blizzard_CombatLog_Update_QuickButtons() + end + end) + CombatLogUpdateFrame:RegisterEvent("COMBAT_LOG_EVENT") + CombatLogUpdateFrame:RegisterEvent("PARTY_MEMBERS_CHANGED") + CombatLogUpdateFrame:RegisterEvent("RAID_ROSTER_UPDATE") + + -- apply the saved filter and refill the log from the kept entries, which + -- outlast a /reload + Blizzard_CombatLog_QuickButton_OnClick(Blizzard_CombatLog_Filters.currentFilter) end) diff --git a/modules/combatlog_config.lua b/modules/combatlog_config.lua new file mode 100644 index 00000000..6b8fc82f --- /dev/null +++ b/modules/combatlog_config.lua @@ -0,0 +1,1005 @@ +-- Combat Log settings: the Combat Log page of Classic Era's ChatConfigFrame +-- (Blizzard_ChatFrame/Classic/ChatConfigFrame), built with pfUI's widgets. +-- The combatlog module opens it from the Combat Log tab's menu and hands it +-- the filter state as `log`. +setfenv(1, pfUI:GetEnvironment()) + +pfUI.combatlog = {} + +-- ChatConfigFrame's eventList states for the subtypes of an unchecked group +local GRAY_CHECKED = 1 +local UNCHECKED_ENABLED = 2 +local UNCHECKED_DISABLED = 3 + +local SCHOOL_MASK_FIRE = 4 +local SCHOOL_MASK_FROST = 16 + +-- ChatConfigFrame's cap on saved filters +local MAX_COMBATLOG_FILTERS = 20 +local FILTER_ROWS = 4 +local FILTER_ROW_HEIGHT = 16 + +local function Resolve(value) + if type(value) == "function" then return value() end + return value +end + +local function SetCheck(check, checked) + check:SetChecked(checked and 1 or nil) +end + +local function SetCheckEnabled(check, enabled) + if enabled then + check:Enable() + check.text:SetTextColor(1, 1, 1) + else + check:Disable() + check.text:SetTextColor(.5, .5, .5) + end +end + +-- ChatConfigCheckButtonTemplate and ChatConfigSmallCheckButtonTemplate +local function CreateCheck(parent, text, tooltip, small) + local check = CreateFrame("CheckButton", nil, parent, "UICheckButtonTemplate") + SkinCheckbox(check, small and 12 or 14) + check.text = check:CreateFontString(nil, "OVERLAY", small and "GameFontHighlightSmall" or "GameFontHighlight") + check.text:SetPoint("LEFT", check, "RIGHT", 2, 0) + check.text:SetText(text) + check:SetHitRectInsets(0, small and -70 or -145, 0, 0) + check.tooltip = tooltip + check:SetScript("OnClick", function(self) + local checked = self:GetChecked() + if self.func then self.func(self, checked) end + PlaySound(checked and SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON or SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF) + end) + check:SetScript("OnEnter", function(self) + if self.tooltip then + GameTooltip:SetOwner(self, "ANCHOR_RIGHT") + GameTooltip:SetText(self.tooltip, 1, 1, 1, 1, 1) + GameTooltip:Show() + end + end) + check:SetScript("OnLeave", function() + GameTooltip:Hide() + end) + return check +end + +-- ChatConfigBoxWithHeaderTemplate +local function CreateBox(parent, title) + local box = CreateFrame("Frame", nil, parent) + CreateBackdrop(box, nil, nil, .75) + if title then + box.title = box:CreateFontString(nil, "OVERLAY", "GameFontNormal") + box.title:SetPoint("BOTTOMLEFT", box, "TOPLEFT", 0, 4) + box.title:SetText(title) + end + return box +end + +local function CreateSwatch(parent) + local swatch = CreateFrame("Button", nil, parent) + swatch:SetSize(24, 12) + CreateBackdrop(swatch) + swatch.prev = swatch.backdrop:CreateTexture(nil, "OVERLAY") + swatch.prev:SetAllPoints(swatch) + if swatch.backdrop_shadow then swatch.backdrop_shadow:Hide() end + return swatch +end + +local function CreateButton(parent, text, width) + local button = CreateFrame("Button", nil, parent, "UIPanelButtonTemplate") + SkinButton(button) + button:SetSize(width, 22) + button:SetText(text) + return button +end + +function pfUI.combatlog.CreateConfig(log) + local selected -- CHATCONFIG_SELECTED_FILTER + local selectedIndex -- ChatConfigCombatSettingsFilters.selectedFilter + local changed -- the log's active filter was edited; it reapplies on close + local Update -- refreshes every page from the selected filter + + -- the log reapplies its filter on close only after an edit to that filter, + -- so closing the window doesn't clear what the log holds + local function Edited() + local filters = log.GetFilters() + if selected == filters.filters[filters.currentFilter] then changed = true end + Update() + end + + -- + -- The filter model (ChatConfigFrame's helpers). A filter's first part holds + -- the event list and the source flags. Its second part holds the dest flags, + -- unless it names units by GUID; a one-part filter keeps both in its first. + -- + local function UsesGUID(direction) + local flags = selected.filters[1][direction == "SOURCE" and "sourceFlags" or "destFlags"] + for k in pairs(flags or {}) do + if type(k) == "string" then return true end + end + return false + end + + local function DestFilter() + if UsesGUID("SOURCE") or UsesGUID("DEST") then return selected.filters[1] end + return selected.filters[2] or selected.filters[1] + end + + -- no flag table means every unit; unchecking one starts from all of them + local function AllFlags() + return { + [COMBATLOG_FILTER_MINE] = true, [COMBATLOG_FILTER_MY_PET] = true, + [COMBATLOG_FILTER_FRIENDLY_UNITS] = true, [COMBATLOG_FILTER_HOSTILE_PLAYERS] = true, + [COMBATLOG_FILTER_HOSTILE_UNITS] = true, [COMBATLOG_FILTER_NEUTRAL_UNITS] = true, + [COMBATLOG_FILTER_UNKNOWN_UNITS] = true, + } + end + + local function IsMessageDoneBy(flag) + local flags = selected.filters[1].sourceFlags + return not flags or flags[flag] + end + + local function IsMessageDoneTo(flag) + local flags = DestFilter().destFlags + return not flags or flags[flag] + end + + local function ToggleMessageSource(checked, flag) + local filter = selected.filters[1] + filter.sourceFlags = filter.sourceFlags or AllFlags() + filter.sourceFlags[flag] = checked and true or false + end + + local function ToggleMessageDest(checked, flag) + local filter = DestFilter() + filter.destFlags = filter.destFlags or AllFlags() + filter.destFlags[flag] = checked and true or false + end + + local function GetMessageTypeState(messageType) + if type(messageType) == "table" then messageType = messageType[1] end + return selected.filters[1].eventList[messageType] + end + + -- only the first type counts; a subtype's types go on and off together + local function HasMessageType(messageType) + local state = GetMessageTypeState(messageType) + return state and state ~= UNCHECKED_ENABLED and state ~= UNCHECKED_DISABLED + end + + local function ToggleMessageType(checked, ...) + local eventList = selected.filters[1].eventList + for _, messageType in pairs({ ... }) do + eventList[messageType] = checked and true or false + end + end + + -- A group shows checked unless its first subtype with a state is parked. + local function HasMessageTypeGroup(group) + for _, sub in ipairs(group.subTypes) do + local state = GetMessageTypeState(sub.type) + if state == GRAY_CHECKED or state == UNCHECKED_DISABLED then + return false + elseif state then + return true + end + end + return false + end + + -- Unchecking a group parks its subtypes' states, so checking it again + -- restores the ones that were on. + local function ToggleMessageTypeGroup(checked, group) + local eventList = selected.filters[1].eventList + for _, sub in ipairs(group.subTypes) do + local state = GetMessageTypeState(sub.type) + local on = state == true or state == GRAY_CHECKED + local value + if checked then + value = on and true or UNCHECKED_ENABLED + else + value = on and GRAY_CHECKED or UNCHECKED_DISABLED + end + local types = type(sub.type) == "table" and sub.type or { sub.type } + for _, messageType in pairs(types) do + eventList[messageType] = value + end + end + end + + -- + -- The checkbox tables (COMBAT_CONFIG_MESSAGESOURCES_*, _MESSAGETYPES_*). + -- Enchants and pet loyalty are left out: ClassicAPI never logs them. + -- + local function Source(text, flag, tooltip) + return { + text = text, + checked = function() return IsMessageDoneBy(flag) end, + hidden = function() return UsesGUID("SOURCE") end, + func = function(self, checked) ToggleMessageSource(checked, flag) end, + tooltip = tooltip, + } + end + + local function Dest(text, flag, tooltip) + return { + text = text, + checked = function() return IsMessageDoneTo(flag) end, + hidden = function() return UsesGUID("DEST") end, + func = function(self, checked) ToggleMessageDest(checked, flag) end, + tooltip = tooltip, + } + end + + local MESSAGESOURCES_BY = { + { + text = function() return UsesGUID("SOURCE") and COMBATLOG_FILTER_STRING_CUSTOM_UNIT or COMBATLOG_FILTER_STRING_ME end, + checked = function() return UsesGUID("SOURCE") or IsMessageDoneBy(COMBATLOG_FILTER_MINE) end, + disabled = function() return UsesGUID("SOURCE") end, + func = function(self, checked) ToggleMessageSource(checked, COMBATLOG_FILTER_MINE) end, + tooltip = FILTER_BY_ME_COMBATLOG_TOOLTIP, + }, + Source(COMBATLOG_FILTER_STRING_MY_PET, COMBATLOG_FILTER_MY_PET, FILTER_BY_PET_COMBATLOG_TOOLTIP), + Source(COMBATLOG_FILTER_STRING_FRIENDLY_UNITS, COMBATLOG_FILTER_FRIENDLY_UNITS, FILTER_BY_FRIENDS_COMBATLOG_TOOLTIP), + Source(COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS, COMBATLOG_FILTER_HOSTILE_PLAYERS, FILTER_BY_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP), + Source(COMBATLOG_FILTER_STRING_HOSTILE_UNITS, COMBATLOG_FILTER_HOSTILE_UNITS, FILTER_BY_ENEMIES_COMBATLOG_TOOLTIP), + Source(COMBATLOG_FILTER_STRING_NEUTRAL_UNITS, COMBATLOG_FILTER_NEUTRAL_UNITS, FILTER_BY_NEUTRAL_COMBATLOG_TOOLTIP), + Source(COMBATLOG_FILTER_STRING_UNKNOWN_UNITS, COMBATLOG_FILTER_UNKNOWN_UNITS, FILTER_BY_UNKNOWN_COMBATLOG_TOOLTIP), + } + + local MESSAGESOURCES_TO = { + { + text = function() return UsesGUID("DEST") and COMBATLOG_FILTER_STRING_CUSTOM_UNIT or COMBATLOG_FILTER_STRING_ME end, + checked = function() return UsesGUID("DEST") or IsMessageDoneTo(COMBATLOG_FILTER_MINE) end, + disabled = function() return UsesGUID("DEST") end, + func = function(self, checked) ToggleMessageDest(checked, COMBATLOG_FILTER_MINE) end, + tooltip = FILTER_TO_ME_COMBATLOG_TOOLTIP, + }, + Dest(COMBATLOG_FILTER_STRING_MY_PET, COMBATLOG_FILTER_MY_PET, FILTER_TO_PET_COMBATLOG_TOOLTIP), + Dest(COMBATLOG_FILTER_STRING_FRIENDLY_UNITS, COMBATLOG_FILTER_FRIENDLY_UNITS, FILTER_TO_FRIENDS_COMBATLOG_TOOLTIP), + Dest(COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS, COMBATLOG_FILTER_HOSTILE_PLAYERS, FILTER_TO_HOSTILE_PLAYERS_COMBATLOG_TOOLTIP), + Dest(COMBATLOG_FILTER_STRING_HOSTILE_UNITS, COMBATLOG_FILTER_HOSTILE_UNITS, FILTER_TO_HOSTILE_COMBATLOG_TOOLTIP), + Dest(COMBATLOG_FILTER_STRING_NEUTRAL_UNITS, COMBATLOG_FILTER_NEUTRAL_UNITS, FILTER_TO_NEUTRAL_COMBATLOG_TOOLTIP), + Dest(COMBATLOG_FILTER_STRING_UNKNOWN_UNITS, COMBATLOG_FILTER_UNKNOWN_UNITS, FILTER_TO_UNKNOWN_COMBATLOG_TOOLTIP), + } + + -- a subtype that turns its event types on and off together + local function Type(text, tooltip, ...) + local types = { ... } + return { + text = text, + type = types, + checked = function() return HasMessageType(types) end, + func = function(self, checked) ToggleMessageType(checked, unpack(types)) end, + tooltip = tooltip, + } + end + + local AURA_TYPES = { "SPELL_AURA_APPLIED", "SPELL_AURA_APPLIED_DOSE", "SPELL_AURA_REMOVED", "SPELL_AURA_REMOVED_DOSE", "SPELL_AURA_REFRESH" } + + -- buffs and debuffs share the aura events; those stop only when both are off + local function Aura(text, tooltip, setting, other) + return { + text = text, + type = AURA_TYPES, + checked = function() return not selected.settings[setting] end, + func = function(self, checked) + selected.settings[setting] = not checked + if checked or selected.settings[other] then + ToggleMessageType(checked, unpack(AURA_TYPES)) + end + end, + tooltip = tooltip, + } + end + + local MESSAGETYPES_LEFT = { + { + text = MELEE, tooltip = MELEE_COMBATLOG_TOOLTIP, + subTypes = { + Type(DAMAGE, SWING_DAMAGE_COMBATLOG_TOOLTIP, "SWING_DAMAGE"), + Type(MISSES, SWING_MISSED_COMBATLOG_TOOLTIP, "SWING_MISSED"), + }, + }, + { + text = RANGED, tooltip = RANGED_COMBATLOG_TOOLTIP, + subTypes = { + Type(DAMAGE, RANGE_DAMAGE_COMBATLOG_TOOLTIP, "RANGE_DAMAGE"), + Type(MISSES, RANGE_MISSED_COMBATLOG_TOOLTIP, "RANGE_MISSED"), + }, + }, + { + text = AURAS, tooltip = AURAS_COMBATLOG_TOOLTIP, + subTypes = { + Aura(BENEFICIAL, BENEFICIAL_AURA_COMBATLOG_TOOLTIP, "hideBuffs", "hideDebuffs"), + Aura(HOSTILE, HARMFUL_AURA_COMBATLOG_TOOLTIP, "hideDebuffs", "hideBuffs"), + Type(DISPELS, DISPEL_AURA_COMBATLOG_TOOLTIP, "SPELL_DISPEL", "SPELL_DISPEL_FAILED", "SPELL_STOLEN"), + }, + }, + { + text = PERIODIC, tooltip = SPELL_PERIODIC_COMBATLOG_TOOLTIP, + subTypes = { + Type(DAMAGE, SPELL_PERIODIC_DAMAGE_COMBATLOG_TOOLTIP, "SPELL_PERIODIC_DAMAGE"), + Type(MISSES, SPELL_PERIODIC_MISSED_COMBATLOG_TOOLTIP, "SPELL_PERIODIC_MISSED"), + Type(HEALS, SPELL_PERIODIC_HEAL_COMBATLOG_TOOLTIP, "SPELL_PERIODIC_HEAL"), + Type(OTHER, SPELL_PERIODIC_OTHER_COMBATLOG_TOOLTIP, "SPELL_PERIODIC_DRAIN", "SPELL_PERIODIC_LEECH"), + }, + }, + } + + local MESSAGETYPES_RIGHT = { + { + text = SPELLS, tooltip = SPELLS_COMBATLOG_TOOLTIP, + subTypes = { + Type(DAMAGE, SPELL_DAMAGE_COMBATLOG_TOOLTIP, "SPELL_DAMAGE"), + Type(MISSES, SPELL_MISSED_COMBATLOG_TOOLTIP, "SPELL_MISSED"), + Type(HEALS, SPELL_HEAL_COMBATLOG_TOOLTIP, "SPELL_HEAL"), + Type(POWER_GAINS, POWER_GAINS_COMBATLOG_TOOLTIP, "SPELL_ENERGIZE", "SPELL_PERIODIC_ENERGIZE"), + Type(DRAINS, SPELL_DRAIN_COMBATLOG_TOOLTIP, "SPELL_DRAIN", "SPELL_LEECH"), + Type(INTERRUPTS, SPELL_INTERRUPT_COMBATLOG_TOOLTIP, "SPELL_INTERRUPT"), + Type(SPECIAL, SPELL_INSTAKILL_COMBATLOG_TOOLTIP, "SPELL_INSTAKILL", "SPELL_DURABILITY_DAMAGE", "SPELL_DURABILITY_DAMAGE_ALL"), + Type(EXTRA_ATTACKS, SPELL_EXTRA_ATTACKS_COMBATLOG_TOOLTIP, "SPELL_EXTRA_ATTACKS"), + Type(SUMMONS, SPELL_SUMMON_COMBATLOG_TOOLTIP, "SPELL_SUMMON"), + Type(RESURRECT, SPELL_RESURRECT_COMBATLOG_TOOLTIP, "SPELL_RESURRECT"), + }, + }, + { + text = SPELL_CASTING, tooltip = SPELL_CASTING_COMBATLOG_TOOLTIP, + subTypes = { + Type(START, SPELL_CAST_START_COMBATLOG_TOOLTIP, "SPELL_CAST_START"), + Type(SUCCESS, SPELL_CAST_SUCCESS_COMBATLOG_TOOLTIP, "SPELL_CAST_SUCCESS"), + Type(FAILURES, SPELL_CAST_FAILED_COMBATLOG_TOOLTIP, "SPELL_CAST_FAILED"), + }, + }, + } + + local MESSAGETYPES_MISC = { + Type(DAMAGE_SHIELD, DAMAGE_SHIELD_COMBATLOG_TOOLTIP, "DAMAGE_SHIELD", "DAMAGE_SHIELD_MISSED"), + Type(ENVIRONMENTAL_DAMAGE, ENVIRONMENTAL_DAMAGE_COMBATLOG_TOOLTIP, "ENVIRONMENTAL_DAMAGE"), + Type(KILLS, KILLS_COMBATLOG_TOOLTIP, "PARTY_KILL"), + Type(DEATHS, DEATHS_COMBATLOG_TOOLTIP, "UNIT_DIED", "UNIT_DESTROYED", "UNIT_DISSIPATES"), + } + + local UNIT_COLORS = { + { text = COMBATLOG_FILTER_STRING_ME, flag = COMBATLOG_FILTER_MINE }, + { text = COMBATLOG_FILTER_STRING_MY_PET, flag = COMBATLOG_FILTER_MY_PET }, + { text = COMBATLOG_FILTER_STRING_FRIENDLY_UNITS, flag = COMBATLOG_FILTER_FRIENDLY_UNITS }, + { text = COMBATLOG_FILTER_STRING_HOSTILE_UNITS, flag = COMBATLOG_FILTER_HOSTILE_UNITS }, + { text = COMBATLOG_FILTER_STRING_HOSTILE_PLAYERS, flag = COMBATLOG_FILTER_HOSTILE_PLAYERS }, + { text = COMBATLOG_FILTER_STRING_NEUTRAL_UNITS, flag = COMBATLOG_FILTER_NEUTRAL_UNITS }, + { text = COMBATLOG_FILTER_STRING_UNKNOWN_UNITS, flag = COMBATLOG_FILTER_UNKNOWN_UNITS }, + } + + -- + -- Checkbox builders (ChatConfig_CreateCheckboxes, _CreateTieredCheckboxes) + -- + local function CreateCheckboxList(parent, title, entries) + local box = CreateBox(parent, title) + box:SetWidth(200) + box.entries = entries + box.checks = {} + for i, entry in ipairs(entries) do + local check = CreateCheck(box, nil, entry.tooltip) + local func = entry.func + check.func = function(self, checked) func(self, checked) Edited() end + box.checks[i] = check + end + return box + end + + -- hidden entries close up, and the box fits the rest + local function UpdateCheckboxList(box) + local shown = 0 + for i, entry in ipairs(box.entries) do + local check = box.checks[i] + if Resolve(entry.hidden) then + check:Hide() + else + check:ClearAllPoints() + check:SetPoint("TOPLEFT", box, "TOPLEFT", 8, -6 - shown * 22) + check.text:SetText(Resolve(entry.text)) + SetCheck(check, Resolve(entry.checked)) + SetCheckEnabled(check, not Resolve(entry.disabled)) + check:Show() + shown = shown + 1 + end + end + box:SetHeight(shown * 22 + 8) + end + + -- a checkbox per group with its subtypes in two columns under it; an entry + -- without subtypes is a plain checkbox + local function CreateTieredList(parent, entries, small) + local list = CreateFrame("Frame", nil, parent) + list:SetWidth(220) + list.entries = entries + list.checks = {} + local y = 0 + for i, entry in ipairs(entries) do + local check = CreateCheck(list, entry.text, entry.tooltip, small) + check:SetPoint("TOPLEFT", list, "TOPLEFT", 0, -y) + y = y + 22 + check.subs = {} + if entry.subTypes then + check.func = function(self, checked) ToggleMessageTypeGroup(checked, entry) Edited() end + for k, sub in ipairs(entry.subTypes) do + local subcheck = CreateCheck(list, sub.text, sub.tooltip, true) + subcheck:SetPoint("TOPLEFT", check, "BOTTOMLEFT", 15 + (k - 1) % 2 * 95, -2 - ceil(k / 2 - 1) * 20) + local func = sub.func + subcheck.func = function(self, checked) func(self, checked) Edited() end + check.subs[k] = subcheck + end + y = y + ceil(#entry.subTypes / 2) * 20 + 8 + else + local func = entry.func + check.func = function(self, checked) func(self, checked) Edited() end + end + list.checks[i] = check + end + list:SetHeight(y) + return list + end + + -- subtypes take clicks only under a checked group + local function UpdateTieredList(list) + for i, entry in ipairs(list.entries) do + local check = list.checks[i] + if entry.subTypes then + local groupChecked = HasMessageTypeGroup(entry) + SetCheck(check, groupChecked) + for k, sub in ipairs(entry.subTypes) do + SetCheck(check.subs[k], Resolve(sub.checked)) + SetCheckEnabled(check.subs[k], groupChecked) + end + else + SetCheck(check, Resolve(entry.checked)) + end + end + end + + local function PickColor(color) + local r, g, b = color.r, color.g, color.b + -- SetColorRGB runs the installed func; drop the last picker user's first + ColorPickerFrame.func = nil + ColorPickerFrame.cancelFunc = nil + ColorPickerFrame.hasOpacity = nil + ColorPickerFrame.opacityFunc = nil + ColorPickerFrame:SetColorRGB(r, g, b) + ColorPickerFrame.func = function() + color.r, color.g, color.b = ColorPickerFrame:GetColorRGB() + Edited() + end + ColorPickerFrame.cancelFunc = function() + color.r, color.g, color.b = r, g, b + Edited() + end + ColorPickerFrame:SetFrameStrata("DIALOG") + ShowUIPanel(ColorPickerFrame) + end + + -- CombatConfig_Colorize_Update's example lines: you hit a target, it hits you + local function UpdateExamples(page) + local player, guid = UnitName("player"), UnitGUID("player") + local text, r, g, b = log.FormatEvent(selected, 0, "SPELL_DAMAGE", false, + guid, player, 0x511, 0, "0xF13000012B000820", EXAMPLE_TARGET_MONSTER, 0x10a28, 0, + 116, EXAMPLE_SPELL_FROSTBOLT, SCHOOL_MASK_FROST, 27, 0, SCHOOL_MASK_FROST, nil, nil, nil, 1) + page.example1:SetText(text) + page.example1:SetTextColor(r, g, b) + + text, r, g, b = log.FormatEvent(selected, 0, "SPELL_DAMAGE", false, + "0xF13000024D002914", EXAMPLE_TARGET_MONSTER, 0x10a48, 0, guid, player, 0x511, 0, + 20793, EXAMPLE_SPELL_FIREBALL, SCHOOL_MASK_FIRE, 68, 0, SCHOOL_MASK_FIRE) + page.example2:SetText(text) + page.example2:SetTextColor(r, g, b) + end + + local function CreateExamples(page) + page.example1 = page:CreateFontString(nil, "OVERLAY", "GameFontNormal") + page.example1:SetPoint("TOPLEFT", page, "TOPLEFT", 25, -27) + page.example1:SetWidth(540) + page.example1:SetJustifyH("LEFT") + page.example2 = page:CreateFontString(nil, "OVERLAY", "GameFontNormal") + page.example2:SetPoint("TOPLEFT", page.example1, "BOTTOMLEFT", 0, 0) + page.example2:SetWidth(540) + page.example2:SetJustifyH("LEFT") + local title = page:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") + title:SetPoint("BOTTOMLEFT", page.example1, "TOPLEFT", 0, 3) + title:SetText(EXAMPLE_TEXT) + end + + -- a checkbox bound to one of the selected filter's settings + local function SettingCheck(parent, text, tooltip, setting, small) + local check = CreateCheck(parent, text, tooltip, small) + check.setting = setting + check.func = function(self, checked) + selected.settings[setting] = checked and true or false + Edited() + end + return check + end + + -- + -- The window (ChatConfigFrame with only its Combat Log category) + -- + local frame = CreateFrame("Frame", "pfCombatLogConfig", UIParent) + frame:SetSize(620, 600) + frame:SetPoint("CENTER", 0, 0) + frame:SetFrameStrata("HIGH") + frame:SetMovable(true) + frame:EnableMouse(true) + frame:SetClampedToScreen(true) + frame:RegisterForDrag("LeftButton") + frame:SetScript("OnDragStart", function() this:StartMoving() end) + frame:SetScript("OnDragStop", function() this:StopMovingOrSizing() end) + CreateBackdrop(frame, nil, nil, .9) + CreateBackdropShadow(frame) + tinsert(UISpecialFrames, "pfCombatLogConfig") + frame:Hide() + + frame.title = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal") + frame.title:SetPoint("TOP", frame, "TOP", 0, -10) + frame.title:SetText(COMBAT_LOG) + + local closeButton = CreateFrame("Button", nil, frame, "UIPanelCloseButton") + closeButton:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -4, -4) + SkinCloseButton(closeButton, frame.backdrop or frame, -6, -6) + + -- + -- The saved filters: a list to pick one from, and buttons to reorder, + -- copy, add and delete them + -- + local filterList = CreateFrame("Frame", nil, frame, "pfUIScrollBoxListTemplate") + filterList:SetPoint("TOPLEFT", frame, "TOPLEFT", 12, -32) + filterList:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -12, -32) + -- the template keeps 5px around the rows, which sit 2px apart + filterList:SetHeight(FILTER_ROWS * (FILTER_ROW_HEIGHT + 2) - 2 + 10) + CreateBackdrop(filterList, nil, nil, .75) + + local SelectFilter + + local function InitFilterRow(row, entry) + if not row.text then + row.highlight = row:CreateTexture(nil, "BACKGROUND") + row.highlight:SetAllPoints(row) + row.highlight:SetTexture(.3, .3, .3, .4) + row.hover = row:CreateTexture(nil, "BACKGROUND") + row.hover:SetAllPoints(row) + row.hover:SetTexture(1, 1, 1, .1) + row.hover:Hide() + row.text = row:CreateFontString(nil, "OVERLAY", "GameFontNormal") + row.text:SetPoint("LEFT", row, "LEFT", 4, 0) + row:SetScript("OnClick", function() SelectFilter(row.index) end) + row:SetScript("OnEnter", function() row.hover:Show() end) + row:SetScript("OnLeave", function() row.hover:Hide() end) + end + row.index = entry.index + row.text:SetText(entry.name) + row.highlight:SetShown(entry.index == selectedIndex) + end + + local filterView = CreateScrollBoxListLinearView(0, 0, 0, 2, 2) + filterView:SetElementExtent(FILTER_ROW_HEIGHT) + filterView:SetElementInitializer("Button", InitFilterRow) + ScrollUtil.InitScrollBoxListWithScrollBar(filterList.ScrollBox, filterList.ScrollBar, filterView) + + -- ChatConfig_MoveFilterUp / _MoveFilterDown; the active filter keeps its + -- place in the log + local function MoveFilter(offset) + local filters = log.GetFilters() + local to = selectedIndex + offset + if to < 1 or to > #filters.filters then return end + filters.filters[selectedIndex], filters.filters[to] = filters.filters[to], filters.filters[selectedIndex] + if filters.currentFilter == selectedIndex then + filters.currentFilter = to + elseif filters.currentFilter == to then + filters.currentFilter = selectedIndex + end + log.UpdateQuickButtons() + SelectFilter(to) + end + + local function CreateMoveButton(dir, tooltip, offset) + local button = CreateFrame("Button", nil, frame) + SkinArrowButton(button, dir, 16) + button:SetScript("OnClick", function() + MoveFilter(offset) + PlaySound(SOUNDKIT.U_CHAT_SCROLL_BUTTON) + end) + button:SetScript("OnEnter", function() + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(tooltip, 1, 1, 1) + GameTooltip:Show() + end) + button:SetScript("OnLeave", function() GameTooltip:Hide() end) + return button + end + + local moveUp = CreateMoveButton("up", MOVE_FILTER_UP, -1) + moveUp:SetPoint("TOPLEFT", filterList, "BOTTOMLEFT", 4, -8) + local moveDown = CreateMoveButton("down", MOVE_FILTER_DOWN, 1) + moveDown:SetPoint("LEFT", moveUp, "RIGHT", 8, 0) + + -- CombatConfig_DeleteCurrentCombatFilter; the log switches to the first + -- filter only when the one it shows is deleted + local function DeleteFilter() + local filters = log.GetFilters() + if #filters.filters <= 1 then return end + tremove(filters.filters, selectedIndex) + if selectedIndex == filters.currentFilter then + log.SelectFilter(1) + changed = nil + else + if selectedIndex < filters.currentFilter then + filters.currentFilter = filters.currentFilter - 1 + end + log.UpdateQuickButtons() + end + SelectFilter(1) + end + + local deleteButton = CreateButton(frame, DELETE, 70) + deleteButton:SetPoint("TOPRIGHT", filterList, "BOTTOMRIGHT", 0, -6) + deleteButton:SetScript("OnClick", function() + CreateQuestionDialog(CONFIRM_COMBAT_FILTER_DELETE, DeleteFilter) + end) + + local addButton = CreateButton(frame, ADD_FILTER, 90) + addButton:SetPoint("RIGHT", deleteButton, "LEFT", -6, 0) + addButton:SetScript("OnClick", function() + log.NewFilter(nil, SelectFilter) + end) + + local copyButton = CreateButton(frame, COPY_FILTER, 90) + copyButton:SetPoint("RIGHT", addButton, "LEFT", -6, 0) + copyButton:SetScript("OnClick", function() + log.NewFilter(selected, SelectFilter) + end) + + -- + -- The selected filter's settings, one tab at a time + -- + local content = CreateFrame("Frame", nil, frame) + content:SetPoint("TOPLEFT", frame, "TOPLEFT", 12, -172) + content:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -12, 42) + CreateBackdrop(content, nil, nil, .75) + + local tabs = {} + local function SelectTab(id) + for i, tab in ipairs(tabs) do + tab.page:SetShown(i == id) + if i == id then tab:LockHighlight() else tab:UnlockHighlight() end + end + end + + local function CreateTab(text) + local tab = CreateButton(frame, text, 10) + tab:SetHeight(20) + tab:SetWidth(tab:GetTextWidth() + 24) + local id = #tabs + 1 + if id == 1 then + tab:SetPoint("BOTTOMLEFT", content, "TOPLEFT", 0, 6) + else + tab:SetPoint("LEFT", tabs[id - 1], "RIGHT", 4, 0) + end + tab:SetScript("OnClick", function() + PlaySound(SOUNDKIT.U_CHAT_SCROLL_BUTTON) + SelectTab(id) + end) + tab.page = CreateFrame("Frame", nil, content) + tab.page:SetAllPoints(content) + tabs[id] = tab + return tab.page + end + + -- Message Sources + local page = CreateTab(MESSAGE_SOURCES) + local doneBy = CreateCheckboxList(page, DONE_BY, MESSAGESOURCES_BY) + doneBy:SetPoint("TOPLEFT", page, "TOPLEFT", 13, -25) + local doneTo = CreateCheckboxList(page, DONE_TO, MESSAGESOURCES_TO) + doneTo:SetPoint("TOPLEFT", doneBy, "TOPRIGHT", 50, 0) + + -- Message Types + page = CreateTab(MESSAGE_TYPES) + local typesLeft = CreateTieredList(page, MESSAGETYPES_LEFT) + typesLeft:SetPoint("TOPLEFT", page, "TOPLEFT", 13, -10) + local typesRight = CreateTieredList(page, MESSAGETYPES_RIGHT) + typesRight:SetPoint("TOPLEFT", typesLeft, "TOPRIGHT", 60, 0) + local typesMisc = CreateTieredList(page, MESSAGETYPES_MISC, true) + typesMisc:SetPoint("TOPLEFT", typesRight, "BOTTOMLEFT", 0, -22) + local miscTitle = page:CreateFontString(nil, "OVERLAY", "GameFontHighlight") + miscTitle:SetPoint("BOTTOMLEFT", typesMisc, "TOPLEFT", 0, 4) + miscTitle:SetText(MISCELLANEOUS) + + -- Colors + local colors = CreateTab(COLORS) + CreateExamples(colors) + + local unitColors = CreateBox(colors, UNIT_COLORS) + unitColors:SetPoint("TOPLEFT", colors, "TOPLEFT", 13, -100) + unitColors:SetSize(200, #UNIT_COLORS * 22 + 8) + unitColors.swatches = {} + for i, entry in ipairs(UNIT_COLORS) do + local label = unitColors:CreateFontString(nil, "OVERLAY", "GameFontHighlight") + label:SetPoint("TOPLEFT", unitColors, "TOPLEFT", 8, -10 - (i - 1) * 22) + label:SetText(entry.text) + local swatch = CreateSwatch(unitColors) + swatch:SetPoint("RIGHT", unitColors, "TOPRIGHT", -8, -15 - (i - 1) * 22) + swatch.flag = entry.flag + swatch:SetScript("OnClick", function() PickColor(selected.colors.unitColoring[this.flag]) end) + unitColors.swatches[i] = swatch + end + + local highlighting = CreateBox(colors, HIGHLIGHTING) + highlighting:SetPoint("TOPLEFT", unitColors, "BOTTOMLEFT", 0, -25) + highlighting:SetSize(200, 50) + local highlightChecks = { + SettingCheck(highlighting, COMBATLOG_HIGHLIGHT_KILL, HIGHLIGHT_KILL_COMBATLOG_TOOLTIP, "lineHighlighting", true), + SettingCheck(highlighting, COMBATLOG_HIGHLIGHT_ABILITY, HIGHLIGHT_ABILITY_COMBATLOG_TOOLTIP, "abilityHighlighting", true), + SettingCheck(highlighting, COMBATLOG_HIGHLIGHT_DAMAGE, HIGHLIGHT_DAMAGE_COMBATLOG_TOOLTIP, "amountHighlighting", true), + SettingCheck(highlighting, COMBATLOG_HIGHLIGHT_SCHOOL, HIGHLIGHT_SCHOOL_COMBATLOG_TOOLTIP, "schoolNameHighlighting", true), + } + for i, check in ipairs(highlightChecks) do + check:SetPoint("TOPLEFT", highlighting, "TOPLEFT", 8 + (i - 1) % 2 * 95, -6 - ceil(i / 2 - 1) * 20) + end + + local colorize = CreateBox(colors, COLORIZE) + colorize:SetPoint("TOPLEFT", unitColors, "TOPRIGHT", 50, 0) + colorize:SetSize(240, 192) + + local unitNames = CreateCheck(colorize, UNIT_NAMES, UNIT_NAMES_COMBATLOG_TOOLTIP) + unitNames:SetPoint("TOPLEFT", colorize, "TOPLEFT", 8, -6) + unitNames.func = function(self, checked) + local on = checked and true or false + selected.settings.unitColoring, selected.settings.sourceColoring, selected.settings.destColoring = on, on, on + Edited() + end + + local spellNames = SettingCheck(colorize, SPELL_NAMES, SPELL_NAMES_COMBATLOG_TOOLTIP, "abilityColoring") + spellNames:SetPoint("TOPLEFT", unitNames, "BOTTOMLEFT", 0, -8) + local spellSchool = SettingCheck(colorize, COLOR_BY_SCHOOL, SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP, "abilitySchoolColoring", true) + spellSchool:SetPoint("TOPLEFT", spellNames, "BOTTOMLEFT", 15, -2) + local spellSwatch = CreateSwatch(colorize) + spellSwatch:SetPoint("RIGHT", colorize, "RIGHT", -8, 0) + spellSwatch:SetPoint("TOP", spellNames, "TOP", 0, -4) + spellSwatch:SetScript("OnClick", function() PickColor(selected.colors.defaults.spell) end) + + local damageNumber = SettingCheck(colorize, DAMAGE_NUMBER, SPELL_DAMAGE_NUMBER_COMBATLOG_TOOLTIP, "amountColoring") + damageNumber:SetPoint("TOPLEFT", spellSchool, "BOTTOMLEFT", -15, -8) + local damageSchool = SettingCheck(colorize, COLOR_BY_SCHOOL, SPELL_COLOR_BY_SCHOOL_COMBATLOG_TOOLTIP, "amountSchoolColoring", true) + damageSchool:SetPoint("TOPLEFT", damageNumber, "BOTTOMLEFT", 15, -2) + local damageSwatch = CreateSwatch(colorize) + damageSwatch:SetPoint("RIGHT", colorize, "RIGHT", -8, 0) + damageSwatch:SetPoint("TOP", damageNumber, "TOP", 0, -4) + damageSwatch:SetScript("OnClick", function() PickColor(selected.colors.defaults.damage) end) + + local schoolNames = SettingCheck(colorize, DAMAGE_SCHOOL_TEXT, SPELL_DAMAGE_SCHOOL_COMBATLOG_TOOLTIP, "schoolNameColoring") + schoolNames:SetPoint("TOPLEFT", damageSchool, "BOTTOMLEFT", -15, -8) + + local entireLine = SettingCheck(colorize, ENTIRE_LINE, ENTIRE_LINE_COMBATLOG_TOOLTIP, "lineColoring") + entireLine:SetPoint("TOPLEFT", schoolNames, "BOTTOMLEFT", 0, -8) + + -- the two line color priorities, as radio buttons + local function PriorityCheck(text, tooltip, priority) + local check = CreateCheck(colorize, text, tooltip, true) + check.func = function() + selected.settings.lineColorPriority = priority + Edited() + end + return check + end + local bySource = PriorityCheck(BY_SOURCE, BY_SOURCE_COMBATLOG_TOOLTIP, 1) + bySource:SetPoint("TOPLEFT", entireLine, "BOTTOMLEFT", 15, -2) + local byTarget = PriorityCheck(BY_TARGET, BY_TARGET_COMBATLOG_TOOLTIP, 2) + byTarget:SetPoint("LEFT", bySource, "RIGHT", 80, 0) + + -- Formatting + local formatting = CreateTab(FORMATTING) + CreateExamples(formatting) + + local timestamp = SettingCheck(formatting, SHOW_TIMESTAMP, TIMESTAMP_COMBATLOG_TOOLTIP, "timestamp") + timestamp:SetPoint("TOPLEFT", formatting, "TOPLEFT", 25, -100) + local braces = SettingCheck(formatting, SHOW_BRACES, SHOW_BRACES_COMBATLOG_TOOLTIP, "braces") + braces:SetPoint("TOPLEFT", timestamp, "BOTTOMLEFT", 0, -15) + + local unitBraces = CreateCheck(formatting, UNIT_NAMES, UNIT_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP, true) + unitBraces:SetPoint("TOPLEFT", braces, "BOTTOMLEFT", 15, -2) + unitBraces.func = function(self, checked) + local on = checked and true or false + selected.settings.unitBraces, selected.settings.sourceBraces, selected.settings.destBraces = on, on, on + Edited() + end + local spellBraces = SettingCheck(formatting, SPELL_NAMES, SPELL_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP, "spellBraces", true) + spellBraces:SetPoint("TOPLEFT", unitBraces, "BOTTOMLEFT", 0, -2) + local itemBraces = SettingCheck(formatting, ITEM_NAMES, ITEM_NAMES_SHOW_BRACES_COMBATLOG_TOOLTIP, "itemBraces", true) + itemBraces:SetPoint("TOPLEFT", spellBraces, "BOTTOMLEFT", 0, -2) + + local fullText = SettingCheck(formatting, USE_FULL_TEXT_MODE, FULL_TEXT_COMBATLOG_TOOLTIP, "fullText") + fullText:SetPoint("TOPLEFT", itemBraces, "BOTTOMLEFT", -15, -13) + + -- Settings: the filter's name and its quick button + local settings = CreateTab(SETTINGS) + + local SetFilterName + local nameBox = CreateTextBox(nil, settings) + nameBox:SetSize(150, 20) + nameBox:SetMaxLetters(32) + nameBox:SetPoint("TOPLEFT", settings, "TOPLEFT", 37, -36) + nameBox:SetScript("OnEnterPressed", function() + SetFilterName(this:GetText()) + this:ClearFocus() + end) + local nameLabel = settings:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") + nameLabel:SetPoint("BOTTOMLEFT", nameBox, "TOPLEFT", 0, 4) + nameLabel:SetText(FILTER_NAME) + + local saveButton = CreateButton(settings, SAVE, 78) + saveButton:SetPoint("LEFT", nameBox, "RIGHT", 8, 0) + saveButton:SetScript("OnClick", function() + SetFilterName(nameBox:GetText()) + nameBox:ClearFocus() + end) + + -- CombatConfig_SetFilterName + function SetFilterName(name) + if name == "" then + name = format(DEFAULT_COMBATLOG_FILTER_NAME, #log.GetFilters().filters) + end + selected.name = name + log.UpdateQuickButtons() + Update() + end + + local quickButton = CreateCheck(settings, SHOW_QUICK_BUTTON, QUICK_BUTTON_COMBATLOG_TOOLTIP) + quickButton:SetPoint("TOPLEFT", nameBox, "BOTTOMLEFT", -6, -19) + quickButton.func = function(self, checked) + selected.hasQuickButton = checked and true or false + log.UpdateQuickButtons() + Update() + end + + local quickDisplay = {} + for i, entry in ipairs({ { SOLO, "solo" }, { PARTY, "party" }, { RAID, "raid" } }) do + local key = entry[2] + local check = CreateCheck(settings, entry[1], nil, true) + check:SetPoint("TOPLEFT", quickButton, "BOTTOMLEFT", 20 + (i - 1) * 95, -2) + check.func = function(self, checked) + selected.quickButtonDisplay[key] = checked and true or false + log.UpdateQuickButtons() + end + check.key = key + quickDisplay[i] = check + end + + -- + -- Refresh (ChatConfig_UpdateCombatSettings) + -- + local function UpdateColors() + for _, swatch in ipairs(unitColors.swatches) do + local color = selected.colors.unitColoring[swatch.flag] + swatch.prev:SetTexture(color.r, color.g, color.b) + end + for _, check in ipairs(highlightChecks) do + SetCheck(check, selected.settings[check.setting]) + end + + local s = selected.settings + SetCheck(unitNames, s.unitColoring) + SetCheck(spellNames, s.abilityColoring) + SetCheck(spellSchool, s.abilityColoring and s.abilitySchoolColoring) + SetCheckEnabled(spellSchool, s.abilityColoring) + spellSwatch.prev:SetTexture(selected.colors.defaults.spell.r, selected.colors.defaults.spell.g, selected.colors.defaults.spell.b) + SetCheck(damageNumber, s.amountColoring) + SetCheck(damageSchool, s.amountSchoolColoring) + SetCheckEnabled(damageSchool, s.amountColoring) + damageSwatch.prev:SetTexture(selected.colors.defaults.damage.r, selected.colors.defaults.damage.g, selected.colors.defaults.damage.b) + SetCheck(schoolNames, s.schoolNameColoring) + SetCheck(entireLine, s.lineColoring) + SetCheck(bySource, s.lineColorPriority == 1) + SetCheck(byTarget, s.lineColorPriority ~= 1) + SetCheckEnabled(bySource, s.lineColoring) + SetCheckEnabled(byTarget, s.lineColoring) + + UpdateExamples(colors) + end + + local function UpdateFormatting() + local s = selected.settings + SetCheck(timestamp, s.timestamp) + SetCheck(braces, s.braces) + SetCheck(unitBraces, s.unitBraces) + SetCheck(spellBraces, s.spellBraces) + SetCheck(itemBraces, s.itemBraces) + SetCheckEnabled(unitBraces, s.braces) + SetCheckEnabled(spellBraces, s.braces) + SetCheckEnabled(itemBraces, s.braces) + SetCheck(fullText, s.fullText) + + UpdateExamples(formatting) + end + + local function UpdateSettings() + nameBox:SetText(selected.name or "") + SetCheck(quickButton, selected.hasQuickButton) + for _, check in ipairs(quickDisplay) do + SetCheck(check, selected.quickButtonDisplay[check.key]) + SetCheckEnabled(check, selected.hasQuickButton) + end + end + + function Update() + local filters = log.GetFilters().filters + + local entries = {} + for i, filter in ipairs(filters) do + entries[i] = { index = i, name = filter.name } + end + filterList.ScrollBox:SetDataProvider(CreateDataProvider(entries), ScrollBoxConstants.RetainScrollPosition) + + -- the last filter can't be deleted + if #filters > 1 then deleteButton:Enable() else deleteButton:Disable() end + if #filters < MAX_COMBATLOG_FILTERS then + addButton:Enable() + copyButton:Enable() + else + addButton:Disable() + copyButton:Disable() + end + if selectedIndex > 1 then moveUp:Enable() else moveUp:Disable() end + if selectedIndex < #filters then moveDown:Enable() else moveDown:Disable() end + + UpdateCheckboxList(doneBy) + UpdateCheckboxList(doneTo) + UpdateTieredList(typesLeft) + UpdateTieredList(typesRight) + UpdateTieredList(typesMisc) + UpdateColors() + UpdateFormatting() + UpdateSettings() + end + + -- ChatConfigFilter_OnClick + function SelectFilter(index) + selectedIndex = index + selected = log.GetFilters().filters[index] + Update() + end + + -- + -- Defaults and Okay + -- + local defaultsButton = CreateButton(frame, COMBATLOG_DEFAULTS, 170) + defaultsButton:SetPoint("BOTTOMLEFT", frame, "BOTTOMLEFT", 12, 12) + defaultsButton:SetScript("OnClick", function() + CreateQuestionDialog(CONFIRM_COMBAT_FILTER_DEFAULTS, function() + log.Reset() + changed = nil + SelectFilter(1) + end) + end) + + local okayButton = CreateButton(frame, OKAY, 78) + okayButton:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -12, 12) + okayButton:SetScript("OnClick", function() + PlaySound(SOUNDKIT.GS_TITLE_OPTION_OK) + frame:Hide() + end) + + -- opens on the filter the log shows + frame:SetScript("OnShow", function() + changed = nil + SelectFilter(log.GetFilters().currentFilter) + end) + + frame:SetScript("OnHide", function() + if changed then + changed = nil + log.SelectFilter(log.GetFilters().currentFilter) + end + end) + + SelectTab(1) + return frame +end