[READ-ONLY] Mirror of https://github.com/thoda-dev/ffxiv-miniparse. A simple skin for the ACT overlay for Final Fantasy XIV. // Un simple skin pour l'overlay d'ACT pour Final Fantasy XIV.
0

Configure Feed

Select the types of activity you want to include in your feed.

fix

Thomas (Dec 23, 2021, 6:53 PM +0100) a4809aa1 5751095d

+25 -25
+1 -1
Torgan.MiniParse.html
··· 79 79 </ul> 80 80 </div> 81 81 <script> 82 - let encounter = document.getElementById("encounter"), 82 + var encounter = document.getElementById("encounter"), 83 83 dpsMeter = document.getElementById("dpsMeter"), 84 84 dpsMeterHeader = document.getElementById("dpsMeterHeader"), 85 85 dpsMeterBody = document.getElementById("dpsMeterBody");
+24 -24
Torgan.MiniParse.js
··· 1 - let showFullName, 1 + var showFullName, 2 2 maxCombatantsShown, 3 3 showDpsBar, 4 4 ··· 51 51 function updateEncounter(data) { 52 52 // 要素取得 53 53 // テキスト取得 54 - let elementText, 54 + var elementText, 55 55 encounterData = viewModes[vMode].encounter; 56 56 if (typeof encounterData === 'function') { 57 57 elementText = encounterData(data.Encounter); ··· 72 72 73 73 // ヘッダを更新する 74 74 function updateCombatantListHeader() { 75 - for (let i = 0; i < headerDefine.length; i++) { 76 - let cell = document.createElement("div"); 75 + for (var i = 0; i < headerDefine.length; i++) { 76 + var cell = document.createElement("div"); 77 77 dpsMeterHeader.appendChild(cell); 78 78 cell.className = "cell"; 79 79 // テキスト設定 ··· 104 104 // プレイヤーリストを更新する 105 105 function updateCombatantList(data) { 106 106 // 要素取得&作成 107 - let newBody = document.createElement("div"); 107 + var newBody = document.createElement("div"); 108 108 newBody.id = "dpsMeterBody"; 109 109 newBody.className = "dpsMeterBody"; 110 110 111 111 // tbody の内容を作成 112 - let combatantIndex = 0, 112 + var combatantIndex = 0, 113 113 barRef = 0, 114 114 kMode; 115 115 ··· 117 117 else if (vMode === "tanking") kMode = "damagetaken"; 118 118 else kMode = "damage"; 119 119 120 - let CbtSorted = Object.keys(data.Combatant).sort(function (a, b) { 120 + var CbtSorted = Object.keys(data.Combatant).sort(function (a, b) { 121 121 if (+data.Combatant[a][kMode] < +data.Combatant[b][kMode]) return 1; 122 122 if (+data.Combatant[a][kMode] > +data.Combatant[b][kMode]) return -1; 123 123 if (a > b) return 1; ··· 129 129 130 130 barRef = +data.Combatant[CbtSorted[0]][kMode]; 131 131 132 - for (let c = 0; c < CbtSorted.length; c++) { 133 - let combatantName = CbtSorted[c]; 134 - let combatant = data.Combatant[combatantName], 132 + for (var c = 0; c < CbtSorted.length; c++) { 133 + var combatantName = CbtSorted[c]; 134 + var combatant = data.Combatant[combatantName], 135 135 body = viewModes[vMode].body, 136 136 row = document.createElement('div'); 137 137 138 138 newBody.appendChild(row); 139 139 row.className = 'row ' + (combatant.Job !== '' ? combatant.Job.toLowerCase() : 'jobless') + (combatantName === "YOU" ? " you" : ""); 140 140 141 - for (let i = 0; i <= body.length; i++) { 142 - let cell = document.createElement('div'); 141 + for (var i = 0; i <= body.length; i++) { 142 + var cell = document.createElement('div'); 143 143 row.appendChild(cell); 144 144 cell.className = 'cell'; 145 145 146 146 if (i === body.length) { 147 147 if (!showDpsBar) continue; 148 - let bar = document.createElement("div"); 148 + var bar = document.createElement("div"); 149 149 cell.appendChild(bar); 150 150 cell.className = "bar-container"; 151 - let width = Math.round(combatant[kMode] * 1 / barRef * 100 * 10) / 10; 151 + var width = Math.round(combatant[kMode] * 1 / barRef * 100 * 10) / 10; 152 152 if (width) { 153 153 bar.style.width = width + "%"; 154 154 bar.className += "bar"; ··· 158 158 break; 159 159 } 160 160 161 - let type = typeof body[i].text !== 'undefined' ? 'text' : 'html'; 161 + var type = typeof body[i].text !== 'undefined' ? 'text' : 'html'; 162 162 163 163 // テキスト設定 164 164 if (typeof body[i][type] !== 'undefined') { 165 - let content; 165 + var content; 166 166 if (typeof body[i][type] === 'function') { 167 167 content = body[i][type](combatant, combatantIndex); 168 168 } else { ··· 195 195 196 196 // Miniparse フォーマット文字列を解析し、表示文字列を取得する 197 197 function parseActFormat(str, dictionary) { 198 - let result = ""; 199 - let currentIndex = 0; 198 + var result = ""; 199 + var currentIndex = 0; 200 200 do { 201 - let openBraceIndex = str.indexOf('{', currentIndex); 201 + var openBraceIndex = str.indexOf('{', currentIndex); 202 202 if (openBraceIndex < 0) { 203 203 result += str.slice(currentIndex); 204 204 break; 205 205 } else { 206 206 result += str.slice(currentIndex, openBraceIndex); 207 - let closeBraceIndex = str.indexOf('}', openBraceIndex); 207 + var closeBraceIndex = str.indexOf('}', openBraceIndex); 208 208 if (closeBraceIndex < 0) { 209 209 // parse error! 210 210 console.log("parseActFormat: Parse error: missing close-brace for " + openBraceIndex.toString() + "."); 211 211 return "ERROR"; 212 212 } else { 213 - let tag = str.slice(openBraceIndex + 1, closeBraceIndex); 213 + var tag = str.slice(openBraceIndex + 1, closeBraceIndex); 214 214 switch (tag) { 215 215 case "ENCDTPS": 216 - let encdtps = +dictionary["damagetaken"] / +dictionary["DURATION"]; 216 + var encdtps = +dictionary["damagetaken"] / +dictionary["DURATION"]; 217 217 if (isNaN(encdtps)) encdtps = 0; 218 218 else if (encdtps === Infinity) encdtps = +dictionary["damagetaken"] / +data.Encounter["DURATION"]; 219 219 result += Math.round(encdtps); ··· 227 227 } 228 228 break; 229 229 case 'icon': 230 - let icon = ''; 230 + var icon = ''; 231 231 if (dictionary.Job) { 232 232 icon = dictionary.Job; 233 233 } else if (typeof dictionary.name === "undefined") { ··· 253 253 } 254 254 break; 255 255 case 'name': 256 - let o; 256 + var o; 257 257 if (displayName && dictionary[tag] === "YOU") { 258 258 result += displayName; 259 259 } else if (nameDisplayType !== "FN" && (o = dictionary[tag].indexOf(' ')) !== -1 && dictionary[tag] !== 'Limit Break') {