From b727b537efbe9a86e4ff4035091cd13418674df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Jaro=C5=A1?= Date: Sun, 30 Mar 2025 22:00:13 +0200 Subject: [PATCH] Optimize and standardize tactical data formatting. --- .support/index.ts | 8 +-- Addon/Code/Tactic.lua | 16 +++--- Addon/Data/retail/3.lua | 12 ++--- Addon/Data/retail/4.lua | 110 +++++++++++++++++----------------------- 4 files changed, 64 insertions(+), 82 deletions(-) diff --git a/.support/index.ts b/.support/index.ts index e38fc97..a9d1295 100644 --- a/.support/index.ts +++ b/.support/index.ts @@ -80,13 +80,7 @@ const generateRoleTactic = (role: (string | null)[]) => { for (const ability of role) { if (ability == null) continue; const information = ability.split('\n'); - luaQuestRecord += `\t\t\t{\n`; - luaQuestRecord += `\t\t\t\tname = "${information[0]}",\n`; - luaQuestRecord += `\t\t\t\tphase = "${information[1]}",\n`; - luaQuestRecord += `\t\t\t\tdescription = "${information[2]}",\n`; - luaQuestRecord += `\t\t\t\thowTo = "${information[3]}",\n`; - luaQuestRecord += `\t\t\t\tdangerous = "${information[4]}",\n`; - luaQuestRecord += `\t\t\t},\n`; + luaQuestRecord += `\t\t{"${information[0].trim()}","${information[1].trim()}","${information[2].trim()}","${information[3].trim()}"},\n`; } return luaQuestRecord; }; diff --git a/Addon/Code/Tactic.lua b/Addon/Code/Tactic.lua index e13831e..b0fa659 100755 --- a/Addon/Code/Tactic.lua +++ b/Addon/Code/Tactic.lua @@ -33,6 +33,7 @@ end local function RenderBossTactics(frame, bossName) HideOtherContent() + local instanceType = 'raidu' local difficulty = 'lfg_raid' -- 17 if DIFFICULTY == 14 then difficulty = 'normal_raid' @@ -42,12 +43,16 @@ local function RenderBossTactics(frame, bossName) difficulty = 'mythic_raid' elseif DIFFICULTY == 1 then difficulty = 'normal_dungeon' + instanceType = 'dungeonu' elseif DIFFICULTY == 2 then difficulty = 'heroic_dungeon' + instanceType = 'dungeonu' elseif DIFFICULTY == 23 then difficulty = 'mythic_dungeon' + instanceType = 'dungeonu' elseif DIFFICULTY == 8 then - difficulty = 'mythicplus_dungeon' + difficulty = 'mythicplus_dungeon' + instanceType = 'dungeonu' end local bossData = CzechQuestsAddon:GetData('tactic', bossName) @@ -63,17 +68,16 @@ local function RenderBossTactics(frame, bossName) local description = "" for _, item in ipairs(data) do description = description - .. item.name .. "\n" - .. "|cff003366" .. item.description .. "|r " - .. "|cff004400" .. item.howTo .. "|r " - .. "|cff8b0000" .. item.dangerous .. "|r" + .. "|cff003366" .. item[1] .. "|r\n" + .. "" .. item[3] .. " " + .. "|cff004400" .. item[4] .. "|r" .. "\n\n" end return description end frame.summary:SetText(tactic.summary) - frame.inform:SetText("|cffffffffVždy dodržuj pokyny raid leadera.|r") + frame.inform:SetText("|cffffffffVždy dodržuj pokyny leadera " .. instanceType .. ".|r") local tankHeader = frame:CreateHeader() tankHeader.button.title:SetText("Tank") diff --git a/Addon/Data/retail/3.lua b/Addon/Data/retail/3.lua index 0f5d653..d6b926f 100644 --- a/Addon/Data/retail/3.lua +++ b/Addon/Data/retail/3.lua @@ -2097,7 +2097,7 @@ addon.data.speech["Emboldened Bully_We own this town, not your dumb robot!"] = { text = "Vlastníme toto město, ne tvůj hloupý robot!", } addon.data.speech["Emboldened Bully_C'mon, eject me! You worthless-- aaah!"] = { - text = "Pojď, vyhod mě! Ty k ničemu-- aaah!", + text = "Pojď, vyhoď mě! Ty k ničemu-- aaah!", } addon.data.speech["Underrider Pyromaniac_We just got started..."] = { text = "Právě jsme začali...", @@ -2130,7 +2130,7 @@ addon.data.speech["Harris_Eyo, over 'ere! It's me, Harris!"] = { text = "Hej, tadyhle! Jsem to já, Harris!", } addon.data.speech["Harris_I'ma hang out up 'ere. Good luck with that agilla-alliga--uh... Croc-o-dile. He's a big'un. Bigger 'den me!"] = { - text = "Budu tady viset nahoře. Hodně štěstí s tím agilla-alliga--eh... Krokodýlem. Je to velký kus. Větší než já!", + text = "Budu tady viset nahoře. Hodně štěstí s tím agilla-alliga--eh... krokodýlem. Je to velký kus. Větší než já!", } addon.data.speech["Harris_'Ey yo it's me, Harris!"] = { text = "Ahoj, tady Harris!", @@ -2253,7 +2253,7 @@ addon.data.speech["Uncertain Citizen_They killed Renzik? For what?! Man, that ge text = "Zabili Renzika? Za co?! To mě fakt rozčiluje!", } addon.data.speech["Paks Topskimmer_Hey pal, folks seeing me smile is bad for business!"] = { - text = "Čau kámo, lidi, kteří mě vidí usmívat se, to je špatné pro byznys!", + text = "Čau kámo, lidé, kteří tě vidí usmívat se, to není dobré pro byznys!", } addon.data.speech["Chrome King Gallywix_You don't make the offers, I DO! Now watch and learn how a real goblin takes charge!"] = { text = "Nerozhoduješ o nabídkách, rozhoduji JÁ! Teď se dívej a uč se, jak to dělá skutečný skřet!", @@ -2322,7 +2322,7 @@ addon.data.speech["Chrome King Gallywix_Warm regards!"] = { text = "Srdečné pozdravy!", } addon.data.speech["Chrome King Gallywix_What, you think you won? Nah, I got somethin' else for ya."] = { - text = "Co myslíš, že jsi vyhrál? Ne, mám pro tebe něco jiného.", + text = "Co myslíš, že jsi vyhrál(a)? Ne, mám pro tebe něco jiného.", } addon.data.speech["Chrome King Gallywix_Bust out the big bombs, boys!"] = { text = "Vytáhněte ty velké bomby, kluci!", @@ -2904,10 +2904,10 @@ addon.data.speech["Pamsy_Help me save my folks from the Darkfuse and this job, a text = "Pomoz mi zachránit moje blízké před Darkfuse a touto prací, a já ti pomohu to všechno ukončit.", } addon.data.speech["Glizza_Huh. Thanks for saving me!"] = { - text = "Hm. Díky, že jsi mě zachránil!", + text = "Hm. Díky, že jsi mě zachránil(a)!", } addon.data.speech["Monte Gazlowe_Sorry to make ya travel. I needed to give ya this."] = { - text = "Omlouvám se, že jsem vás musel přimět cestovat. Potřeboval jsem vám to dát.", + text = "Omlouvám se, že jsem tě musel přimět cestovat. Potřeboval jsem ti to dát.", } addon.data.speech["Monte Gazlowe_Yeah. Yeah, that sounds right."] = { text = "Ano. Ano, to zní správně.", diff --git a/Addon/Data/retail/4.lua b/Addon/Data/retail/4.lua index 98fb851..ad38079 100644 --- a/Addon/Data/retail/4.lua +++ b/Addon/Data/retail/4.lua @@ -2292,73 +2292,57 @@ addon.data.tactic["The Gobfather"] = { normal_raid = { summary = "Bitva s The Gobfather je dynamický souboj, který zahrnuje různé útoky poškozující oblast a environmentální nebezpečí. Tanci, léčitelé a DPS musí navigovat skrz Primed Boomcrawlers, vyhýbat se masivním útokům, jako je Death From Above, a zvládat neustálé poškození z Excessive Pollutants.", tank = { - { - name = "Bomb Voyage", - phase = "1", - description = "Primed Boomcrawlers explodují při kontaktu, způsobují masivní Fire poškození a odrážejí hráče do vzdálenosti 5 yardů.", - howTo = "Tank by měl vést bosse pryč od Primed Boomcrawlers, aby se zabránilo náhodné detonaci a spravovat umístění, aby ochránil ostatní hráče před explozí.", - dangerous = "Nesprávná správa umístění Boomcrawlerů může vést k vysokému poškození raidu a potenciálním úmrtím.", - }, - { - name = "Death From Above", - phase = "1", - description = "The Gobfather vypouští rakety, které způsobují těžké Fire poškození hráčům v blízkosti každého dopadu.", - howTo = "Tank by měl rychle identifikovat bezpečné zóny bez cílů raket a přesunout bosse tak, aby minimalizoval poškození raidu.", - dangerous = "Nepřesunutí bosse vhodně může vést k těžkým ztrátám z úderů raket.", - }, - { - name = "Flaming Flames", - phase = "1", - description = "The Gobfather vypouští kužel ohně, způsobující vysoké Fire poškození hráčům před ním.", - howTo = "Tank by měl mít bosse otočeného od raidu, aby se zabránilo rozsáhlému poškození.", - dangerous = "Pokud boss není správně umístěn, DPS a léčitelé před bossem mohou utrpět smrtelné poškození.", - }, + {"Bomb Voyage","1","Primed Boomcrawlers explodují při kontaktu, způsobují masivní Fire poškození a odrážejí hráče do vzdálenosti 5 yardů.","Tank by měl vést bosse pryč od Primed Boomcrawlers, aby se zabránilo náhodné detonaci a spravovat umístění, aby ochránil ostatní hráče před explozí."}, + {"Death From Above","1","The Gobfather vypouští rakety, které způsobují těžké Fire poškození hráčům v blízkosti každého dopadu.","Tank by měl rychle identifikovat bezpečné zóny bez cílů raket a přesunout bosse tak, aby minimalizoval poškození raidu."}, + {"Flaming Flames","1","The Gobfather vypouští kužel ohně, způsobující vysoké Fire poškození hráčům před ním.","Tank by měl mít bosse otočeného od raidu, aby se zabránilo rozsáhlému poškození."}, }, heal = { - { - name = "Bomb Voyage ", - phase = "1 ", - description = "Primed Boomcrawlers detonují při kontaktu, způsobují významné Fire poškození a efekt odrážení do 5 yardů. ", - howTo = "Léčitelé by měli být připraveni rychle léčit jakékoli hráče, kteří náhodou aktivují Boomcrawler, obzvláště jsou-li blízko ostatních členů raidu. ", - dangerous = "Nedostatečná léčebná reakce na tyto exploze může vést k úmrtí hráčů, zvláště pokud je aktivováno více Boomcrawlerů.", - }, - { - name = "Death From Above", - phase = "1", - description = "Rakety od The Gobfather způsobují masivní Fire poškození hráčům blízko zón dopadu.", - howTo = "Udržuj vysokou pozornost na pozicích hráčů a buď připraven použít léčebné kouzla na celou oblast po dopadech raket.", - dangerous = "Nedostatečná léčba postižených hráčů může vést k rychlým úmrtím z následných úderů raket.", - }, - { - name = "Excessive Pollutants", - phase = "1", - description = "Tento debuff způsobuje stálé Nature poškození všem hráčům každé 2 sekundy.", - howTo = "Léčitelé by měli používat konzistentní, mírnou léčbu, aby vyrovnali efekt poškození v čase na všech hráčích.", - dangerous = "Zanedbání léčby tohoto poškození může zatížit přežití raidu, což může vést k zániku, pokud to není správně zvládnuto.", - }, + {"Bomb Voyage","1","Primed Boomcrawlers detonují při kontaktu, způsobují významné Fire poškození a efekt odrážení do 5 yardů.","Léčitelé by měli být připraveni rychle léčit jakékoli hráče, kteří náhodou aktivují Boomcrawler, obzvláště jsou-li blízko ostatních členů raidu."}, + {"Death From Above","1","Rakety od The Gobfather způsobují masivní Fire poškození hráčům blízko zón dopadu.","Udržuj vysokou pozornost na pozicích hráčů a buď připraven použít léčebné kouzla na celou oblast po dopadech raket."}, + {"Excessive Pollutants","1","Tento debuff způsobuje stálé Nature poškození všem hráčům každé 2 sekundy.","Léčitelé by měli používat konzistentní, mírnou léčbu, aby vyrovnali efekt poškození v čase na všech hráčích."}, }, dps = { - { - name = "Bomb Voyage", - phase = "1", - description = "Šlápnutí na Primed Boomcrawler způsobí jeho explozi, čímž způsobí těžké Fire poškození a odráží blízké hráče.", - howTo = "DPS by měli opatrně manévrovat, aby se vyhnuli aktivaci Boomcrawlerů, zatímco se soustředí na svůj output poškození proti bossu.", - dangerous = "Náhodné aktivování Boomcrawlerů může způsobit zbytečné poškození raidu a narušit umístění.", - }, - { - name = "Death From Above", - phase = "1", - description = "Rakety dopadají na zem, způsobují rozsáhlé Fire poškození v malých oblastech.", - howTo = "DPS by měli zůstat mobilní a rozptýlení, aby minimalizovali počet hráčů zasažených každou raketou.", - dangerous = "Nedostatek vyhýbání se dopadům raket může vést k rychlým úmrtím, obzvláště pokud jsou zasaženi více raketami.", - }, - { - name = "Flaming Flames", - phase = "1", - description = "Kužel ohně, který způsobuje významné Fire poškození.", - howTo = "DPS by měli zůstat za The Gobfather, aby se vyhnuli přímému poškození z tohoto útoku.", - dangerous = "Být před bossem během tohoto útoku může vést k vysokému poškození nebo smrti.", - }, + {"Bomb Voyage","1","Šlápnutí na Primed Boomcrawler způsobí jeho explozi, čímž způsobí těžké Fire poškození a odráží blízké hráče.","DPS by měli opatrně manévrovat, aby se vyhnuli aktivaci Boomcrawlerů, zatímco se soustředí na svůj output poškození proti bossu."}, + {"Death From Above","1","Rakety dopadají na zem, způsobují rozsáhlé Fire poškození v malých oblastech.","DPS by měli zůstat mobilní a rozptýlení, aby minimalizovali počet hráčů zasažených každou raketou."}, + {"Flaming Flames","1","Kužel ohně, který způsobuje významné Fire poškození.","DPS by měli zůstat za The Gobfather, aby se vyhnuli přímému poškození z tohoto útoku."}, + }, + }, +} +addon.data.tactic["The Geargrinder"] = { + normal_raid = { + summary = "Setkání s Geargrinder zahrnuje dvě hlavní fáze. Ve fázi jedna je boss chráněný ochranným pláštěm, který musí hráči odstranit použitím útoků Blaze of Glory z poražených Geargrinder Bikerů. Ve fázi dvě, po odstranění všeho plátování, vstupuje Geargrinder do stavu Mechanical Breakdown, kdy trpí zvýšeným poškozením a vyžaduje opravy od Pit Mechaniců.", + tank = { + {"Tank Buster","1","Geargrinder cílí na současného tanka, útočí masivním fyzickým úderem, který také aplikuje krvácení a zvyšuje poškození z následujících Tank Busterů.","Tanci by měli vyměnit na 2 stacky krvácení, aby zvládli příjem poškození a nezatěžovali healery."}, + {"Oil Slick","1","Tank Buster způsobí na místě tanka Oil Slick, vytvářející nebezpečnou oblast.","Tanci by měli pozicovat bosse a sebe tak, aby minimalizovali dopad Oil Slick na mobilitu a pozicování raidu."}, + }, + heal = { + {"Spew Oil","1","Geargrinder cílí na několik hráčů, stříká na ně olej, který způsobuje poškození přírodou v čase a ovlivňuje blízké spojence do 7 yardů.","Healeři by měli být připraveni s léčením skupiny a dispely, aby zvládli poškození a zabránili jeho přemoci hráče."}, + {"Backfire","2","Pravidelně všichni hráči trpí významným Fire poškozením kvůli zpětnému výbuchu motoru Geargrinder.","Konstantní a silné léčení celého raidu je vyžadováno, aby skupina přežila tyto intenzivní periody poškození."}, + }, + dps = { + {"Blaze of Glory","1","Hráči mohou jezdit na opuštěných motorkách Geargrinder a udeřit na bosse, způsobující poškození a odstranění aplikace Protective Plating.","DPS hráči by měli dát přednost používání Blaze of Glory kdykoli je to možné, aby rychle odstranili ochranný plášť bosse."}, + {"Mechanical Breakdown","2","Jakmile je odstraněno Protective Plating, Geargrinder trpí zvýšeným poškozením ze všech zdrojů.","DPS by měli maximalizovat svůj output během této fáze, aby využili zvýšené poškození přijímané bossem."}, + }, + }, +} +addon.data.tactic["Big M.O.M.M.A."] = { + normal_dungeon = { + summary = "Big M.O.M.M.A. využívá různé mechaniky v průběhu fází, včetně povolání Darkfuse Mechadrones a použití schopností jako Jumpstart, která poškozuje všechny hráče, ale zvyšuje poškození, které boss obdrží. Bitva se zintenzivňuje s dalšími povoláními dronů a účinky oblasti.", + tank = { + {"Jumpstart","1","Po poražení všech Darkfuse Mechadrones je spuštěn Jumpstart, který způsobí poškození a zvýšené přijaté poškození od Big M.O.M.M.A.","Připrav se na zvládnutí zvýšeného příchozího poškození a pozicionuj Big M.O.M.M.A. tak, aby byl daleko od raidu a minimalizoval poškození oblasti od Excessive Electrification."}, + {"Excessive Electrification","1","Tento účinek oblasti zůstává po Jumpstart, a kontinuálně poškozuje každého, kdo stojí uvnitř.","Rychle přesuň Big M.O.M.M.A. pryč z těchto oblastí, aby se předešlo zbytečnému poškození tebe a raidu."}, + {"Electrocrush","1","Big M.O.M.M.A. způsobí masivní Nature poškození svému aktuálnímu cíli s dalším poškozením v čase.","Tanci by měli vyměnit při přibližně 2 stackách přidruženého debuffu, aby efektivně zvládli poškození v čase."}, + {"Sonic Boom","1","Tento útok táhne hráče k sobě, způsobuje Sonic poškození a exploduje po nárazu na překážku pro další poškození.","Pozicionuj sebe a bosse tak, aby se předešlo přímým zásahům Sonic Boom do raidu a minimalizovalo poškození z nárazu."}, + }, + heal = { + {"Jumpstart","1","Způsobuje významné Nature poškození všem hráčům každých 1,5 sekundy po dobu 12 sekund po aktivaci.","Připrav se na intenzivní léčení celého raidu a použij cooldowny vhodně, aby se skupina udržela během fáze poškození."}, + {"Excessive Electrification","1","Způsobuje kontinuální Nature poškození každému, kdo stojí v ovlivněné oblasti.","Léč hráče ovlivněné a buď připravený se pohnout, pokud se oblast rozšíří nebo posune během boje."}, + {"Sonic Boom","1","Způsobuje kontinuální Sonic poškození hráčům, kterými prochází, a exploduje pro další poškození po nárazu.","Ujisti se, že hráči jsou rychle vyléčeni, zejména ti, kteří jsou zasaženi explozí, a udržuj si přehled o pozicích hráčů, aby ses mohl předem připravit na potřeby léčení."}, + }, + dps = { + {"Jumpstart","1","Když je aktivován, Big M.O.M.M.A. přijímá zvýšené poškození ze všech zdrojů.","Soustřeď všechny útoky na Big M.O.M.M.A. během této fáze, aby bylo maximalizováno poškození, když je boss zranitelný."}, + {"Sonic Boom","1","Tento sonický útok se pohybuje směrem k hráčům, poškozuje a umlčuje je, dokud nenarazí na překážku a neexploduje.","Vyhni se cestě Sonic Boom, aby se snížilo přijaté poškození a účinky umlčení, a buď připraven se rychle pohnout, pokud jsi cílen."}, + {"Kill-o-Block Barrier","1","Tato bariéra výrazně snižuje přijaté poškození Big M.O.M.M.A. a způsobuje periodické Nature poškození všem hráčům.","Koordinuj se svým týmem, aby byl tento štít rychle zničen, a pokračuj v útocích na Big M.O.M.M.A."}, }, }, }