{"id":2231,"date":"2025-11-27T22:18:35","date_gmt":"2025-11-27T22:18:35","guid":{"rendered":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/?p=2231"},"modified":"2025-11-27T22:18:35","modified_gmt":"2025-11-27T22:18:35","slug":"logi-simulator","status":"publish","type":"post","link":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/","title":{"rendered":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps"},"content":{"rendered":"\r\n<div id=\"eve-logi-simulator\">\r\n  <p class=\"title-p\">Visualize Shield vs Armor remote reps: Range, Timing &#038; Output<\/p>\r\n  <!-- Controls -->\r\n  <div class=\"controls\">\r\n    <div class=\"control-item\">\r\n      <label for=\"distance\" class=\"control-label\">Distance to Target (km)<\/label>\r\n      <input type=\"range\" id=\"distance\" class=\"slider\" min=\"0\" max=\"100\" value=\"30\" step=\"0.5\" aria-label=\"Distance to Target in kilometers\">\r\n      <span id=\"dist-value\" class=\"value-display\">30 km<\/span>\r\n    <\/div>\r\n    <div class=\"control-item\">\r\n      <label for=\"num-mods\" class=\"control-label\">Active Rep Modules (per ship)<\/label>\r\n      <input type=\"range\" id=\"num-mods\" class=\"slider\" min=\"1\" max=\"5\" value=\"4\" step=\"1\" aria-label=\"Active Rep Modules per ship\">\r\n      <span id=\"mods-value\" class=\"value-display\">4<\/span>\r\n    <\/div>\r\n    <div class=\"control-item\">\r\n      <label for=\"skill-bonus\" class=\"control-label\">Rep Amount Bonus (%)<\/label>\r\n      <input type=\"range\" id=\"skill-bonus\" class=\"slider\" min=\"0\" max=\"50\" value=\"30\" step=\"5\" aria-label=\"Rep Amount Bonus in percent\">\r\n      <span id=\"bonus-value\" class=\"value-display\">+30%<\/span>\r\n    <\/div>\r\n    <div class=\"control-item\">\r\n      <label for=\"num-ships\" class=\"control-label\">Number of Logi Ships<\/label>\r\n      <input type=\"range\" id=\"num-ships\" class=\"slider\" min=\"1\" max=\"50\" value=\"1\" step=\"1\" aria-label=\"Number of Logi Ships\">\r\n      <span id=\"ships-value\" class=\"value-display\">1<\/span>\r\n    <\/div>\r\n    <div class=\"control-item\">\r\n      <label for=\"logi-skill\" class=\"control-label\">Logistics Cruiser Skill (0-5)<\/label>\r\n      <input type=\"range\" id=\"logi-skill\" class=\"slider\" min=\"0\" max=\"5\" value=\"5\" step=\"1\" aria-label=\"Logistics Cruiser Skill level from 0 to 5\">\r\n      <span id=\"logi-value\" class=\"value-display\">5<\/span>\r\n    <\/div>\r\n    <div class=\"control-item\">\r\n      <label for=\"overload\" class=\"control-label\">Overload Modules<\/label>\r\n      <input type=\"checkbox\" id=\"overload\" class=\"checkbox\" aria-label=\"Toggle Overload Modules\">\r\n    <\/div>\r\n    <details id=\"custom-details\">\r\n      <summary>Use Custom <i id=\"custom-chevron\" class=\"fa fa-chevron-down\" aria-hidden=\"true\"><\/i><\/summary>\r\n      <div id=\"custom-config\">\r\n        <div class=\"custom-item\">\r\n          <label for=\"shield-maxhp\" class=\"custom-label shield-label\">Shield Max HP\/mod<\/label>\r\n          <input type=\"number\" id=\"shield-maxhp\" class=\"custom-input shield-input\" value=\"680\" step=\"1\" aria-label=\"Shield Max HP per module\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"shield-cycle-time\" class=\"custom-label shield-label\">Shield Cycle (s)<\/label>\r\n          <input type=\"number\" id=\"shield-cycle-time\" class=\"custom-input shield-input\" value=\"8\" step=\"0.1\" aria-label=\"Shield Cycle time in seconds\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"shield-opt\" class=\"custom-label shield-label\">Shield Opt (km)<\/label>\r\n          <input type=\"number\" id=\"shield-opt\" class=\"custom-input shield-input\" value=\"8.04\" step=\"0.01\" aria-label=\"Shield Optimal range in kilometers\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"shield-fall\" class=\"custom-label shield-label\">Shield Fall (km)<\/label>\r\n          <input type=\"number\" id=\"shield-fall\" class=\"custom-input shield-input\" value=\"12\" step=\"0.1\" aria-label=\"Shield Falloff in kilometers\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"armor-maxhp\" class=\"custom-label armor-label\">Armor Max HP\/mod<\/label>\r\n          <input type=\"number\" id=\"armor-maxhp\" class=\"custom-input armor-input\" value=\"512\" step=\"1\" aria-label=\"Armor Max HP per module\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"armor-cycle-time\" class=\"custom-label armor-label\">Armor Cycle (s)<\/label>\r\n          <input type=\"number\" id=\"armor-cycle-time\" class=\"custom-input armor-input\" value=\"6\" step=\"0.1\" aria-label=\"Armor Cycle time in seconds\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"armor-opt\" class=\"custom-label armor-label\">Armor Opt (km)<\/label>\r\n          <input type=\"number\" id=\"armor-opt\" class=\"custom-input armor-input\" value=\"14.4\" step=\"0.1\" aria-label=\"Armor Optimal range in kilometers\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"armor-fall\" class=\"custom-label armor-label\">Armor Fall (km)<\/label>\r\n          <input type=\"number\" id=\"armor-fall\" class=\"custom-input armor-input\" value=\"4.2\" step=\"0.1\" aria-label=\"Armor Falloff in kilometers\">\r\n        <\/div>\r\n        <div class=\"custom-item\">\r\n          <label for=\"custom-num-ships\" class=\"custom-label shield-label\"># of Logi<\/label>\r\n          <input type=\"number\" id=\"custom-num-ships\" class=\"custom-input shield-input\" min=\"1\" value=\"1\" step=\"1\" aria-label=\"Number of Logi Ships in custom mode\">\r\n        <\/div>\r\n      <\/div>\r\n    <\/details>\r\n    <button id=\"simulate-cycle\">Simulate Repair Cycle<\/button>\r\n    <button id=\"fetch-live\">Fetch Live SDE\/ESI Data<\/button>\r\n    <button id=\"reset-defaults\">Reset to Defaults<\/button>\r\n  <\/div>\r\n  <!-- Visualizer -->\r\n  <div class=\"visualizer\">\r\n    <div id=\"shield-viz\">\r\n      <h3>Shield Logistics (e.g., Basilisk)<\/h3>\r\n      <img decoding=\"async\" src=\"https:\/\/gamingwithdaopa.ellatha.com\/media\/eveonline\/rr-shield.png\" alt=\"Shield Transfer Module icon\" class=\"module-icon\">\r\n      <div id=\"shield-beam\"><\/div>\r\n      <i id=\"shield-endpoint\" class=\"fa fa-rocket\" aria-hidden=\"true\"><\/i>\r\n      <svg id=\"shield-rings\" viewBox=\"0 0 400 400\">\r\n        <!-- Grid circles -->\r\n        <circle cx=\"200\" cy=\"200\" r=\"18\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>10km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"36\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>20km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"54\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>30km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"72\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>40km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"90\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>50km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"108\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>60km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"126\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>70km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"144\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>80km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"162\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>90km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"180\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>100km<\/title><\/circle>\r\n        <!-- Optimal range circle -->\r\n        <circle id=\"shield-opt-ring\" cx=\"200\" cy=\"200\" r=\"0\" fill=\"none\" stroke=\"#00ff88\" stroke-width=\"3\" stroke-dasharray=\"5,5\"\/>\r\n        <text id=\"shield-opt-text\" x=\"200\" y=\"115\" fill=\"#00ff88\" text-anchor=\"middle\" font-size=\"16\" font-weight=\"bold\">OPTIMAL RANGE<\/text>\r\n        <text id=\"shield-opt-km\" x=\"200\" y=\"135\" fill=\"#00ff88\" text-anchor=\"middle\" font-size=\"14\"><\/text>\r\n      <\/svg>\r\n      <div id=\"shield-cycle\"><\/div>\r\n      <div id=\"shield-hp\">\r\n        <div id=\"shield-hp-fill\"><\/div>\r\n      <\/div>\r\n      <div id=\"shield-stats\"><\/div>\r\n    <\/div>\r\n    <div id=\"armor-viz\">\r\n      <h3>Armor Logistics (e.g., Guardian)<\/h3>\r\n      <img decoding=\"async\" src=\"https:\/\/gamingwithdaopa.ellatha.com\/media\/eveonline\/rr-armor.png\" alt=\"Armor Repair Module icon\" class=\"module-icon\">\r\n      <div id=\"armor-beam\"><\/div>\r\n      <i id=\"armor-endpoint\" class=\"fa fa-rocket\" aria-hidden=\"true\"><\/i>\r\n      <svg id=\"armor-rings\" viewBox=\"0 0 400 400\">\r\n        <!-- Grid circles -->\r\n        <circle cx=\"200\" cy=\"200\" r=\"18\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>10km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"36\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>20km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"54\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>30km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"72\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>40km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"90\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>50km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"108\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>60km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"126\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>70km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"144\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>80km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"162\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>90km<\/title><\/circle>\r\n        <circle cx=\"200\" cy=\"200\" r=\"180\" fill=\"none\" stroke=\"#ffffff\" stroke-width=\"1\" stroke-dasharray=\"3,3\"><title>100km<\/title><\/circle>\r\n        <!-- Optimal range circle -->\r\n        <circle id=\"armor-opt-ring\" cx=\"200\" cy=\"200\" r=\"0\" fill=\"none\" stroke=\"#00ff88\" stroke-width=\"3\" stroke-dasharray=\"5,5\"\/>\r\n        <text id=\"armor-opt-text\" x=\"200\" y=\"178\" fill=\"#00ff88\" text-anchor=\"middle\" font-size=\"16\" font-weight=\"bold\">OPTIMAL RANGE<\/text>\r\n        <text id=\"armor-opt-km\" x=\"200\" y=\"198\" fill=\"#00ff88\" text-anchor=\"middle\" font-size=\"14\"><\/text>\r\n      <\/svg>\r\n      <div id=\"armor-cycle\"><\/div>\r\n      <div id=\"armor-hp\">\r\n        <div id=\"armor-hp-fill\"><\/div>\r\n      <\/div>\r\n      <div id=\"armor-stats\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <!-- Chart -->\r\n  <div id=\"chart-container\">\r\n    <h3>Repair Output vs Distance (HP per Cycle)<\/h3>\r\n    <div class=\"chart-wrapper\">\r\n      <canvas id=\"rep-chart\"><\/canvas>\r\n    <\/div>\r\n  <\/div>\r\n  <!-- Comparison Table -->\r\n  <div class=\"comparison\">\r\n    <h3>Live Comparison<\/h3>\r\n    <table id=\"comparison-table\">\r\n      <thead>\r\n        <tr>\r\n          <th>Metric<\/th>\r\n          <th>Shield Logi<\/th>\r\n          <th>Armor Logi<\/th>\r\n        <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n        <tr><td>HP per Cycle (Per Ship, Current Dist)<\/td><td id=\"shield-hp-cyc\">0<\/td><td id=\"armor-hp-cyc\">0<\/td><\/tr>\r\n        <tr><td>HP\/s (Per Ship, Avg)<\/td><td id=\"shield-hps\">0<\/td><td id=\"armor-hps\">0<\/td><\/tr>\r\n        <tr><td>Fleet HP per Cycle (Current Dist)<\/td><td id=\"shield-fleet-hp-cyc\">0<\/td><td id=\"armor-fleet-hp-cyc\">0<\/td><\/tr>\r\n        <tr><td>Fleet HP\/s (Avg)<\/td><td id=\"shield-fleet-hps\">0<\/td><td id=\"armor-fleet-hps\">0<\/td><\/tr>\r\n        <tr><td>Efficiency (%)<\/td><td id=\"shield-eff\">100%<\/td><td id=\"armor-eff\">100%<\/td><\/tr>\r\n        <tr><td>Rep Timing<\/td><td id=\"shield-timing\">Start of Cycle<\/td><td id=\"armor-timing\">End of Cycle<\/td><\/tr>\r\n      <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n  <!-- Poll -->\r\n  <div class=\"poll\">\r\n    <p class=\"poll-question\">Which do you prefer flying?<\/p>\r\n        <div class=\"quiz-section\" style=\"margin:30px auto; padding:20px; border:2px solid #3399ff; border-radius:12px; background:#0d0d0d; color:#fff; text-align:center; max-width:500px;\">\r\n        <h3><i class=\"fa fa-question-circle\" aria-hidden=\"true\"><\/i> Quick Poll: Your Take<\/h3>\r\n        <p>Do you prefer Shield Logistics over Armor?<\/p>\r\n\r\n        <button class=\"poll-btn\" data-vote=\"yes\" style=\"background:#00ff88; border:none; padding:10px 20px; margin:5px; border-radius:8px; cursor:pointer; color:#000;\">\r\n            Yes <i class=\"fa fa-thumbs-up\"><\/i>\r\n        <\/button>\r\n        <button class=\"poll-btn\" data-vote=\"no\" style=\"background:#ff4444; border:none; padding:10px 20px; margin:5px; border-radius:8px; cursor:pointer; color:#fff;\">\r\n            No <i class=\"fa fa-thumbs-down\"><\/i>\r\n        <\/button>\r\n\r\n        <p class=\"poll-result\" style=\"font-weight:bold; margin-top:10px;\"><\/p>\r\n    <\/div>\r\n\r\n    <script>\r\n    (function(){\r\n        var container = document.querySelector('.quiz-section[data-poll-id=\"eve_logi_preference\"]') || document.querySelector('.quiz-section');\r\n        if(!container) return;\r\n\r\n        var buttons = container.querySelectorAll('.poll-btn');\r\n        var resultEl = container.querySelector('.poll-result');\r\n        var ajaxUrl = \"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-admin\/admin-ajax.php\";\r\n\r\n        function disableButtons(){\r\n            buttons.forEach(function(b){\r\n                b.disabled = true;\r\n                b.style.opacity = '0.6';\r\n                b.style.cursor = 'not-allowed';\r\n            });\r\n        }\r\n\r\n        buttons.forEach(function(btn){\r\n            btn.addEventListener('click', function(){\r\n                disableButtons();\r\n                var vote = btn.getAttribute('data-vote');\r\n                var form = new FormData();\r\n                form.append('action','minimal_save_poll_vote');\r\n                form.append('poll_id','eve_logi_preference');\r\n                form.append('vote',vote);\r\n\r\n                fetch(ajaxUrl,{method:'POST',body:form})\r\n                .then(r=>r.json())\r\n                .then(json=>{\r\n                    if(json && json.success && json.data){\r\n                        resultEl.textContent='Yes: '+(json.data.yes||0)+' | No: '+(json.data.no||0);\r\n                    } else {\r\n                        resultEl.textContent='Thanks for voting';\r\n                    }\r\n                }).catch(()=>{ resultEl.textContent='Network error'; });\r\n            });\r\n        });\r\n    })();\r\n    <\/script>\r\n    \r\n  <\/div>\r\n  <p class=\"footer-note\">Stats based on Large T2 modules w\/ max skills (Shield: ~680 HP\/cyc\/mod, 8s cycle, ~32km opt, ~48km fall; Armor: ~512 HP\/cyc\/mod, 6s cycle, ~58km opt, ~17km fall). Adjust for your fits! Base values (unskilled): Shield: 680 HP\/cyc\/mod, 8s cycle, 8.04km opt, 12km fall; Armor: 512 HP\/cyc\/mod, 6s cycle, 14.4km opt, 4.2km fall.<\/p>\r\n<\/div>\r\n<style>\r\n#eve-logi-simulator {\r\n  max-width: 1200px;\r\n  margin: 0 auto;\r\n  padding: 20px;\r\n  background: linear-gradient(135deg, #000000 0%, #0a0a1a 50%, #000000 100%);\r\n  border-radius: 15px;\r\n  box-shadow: 0 0 50px rgba(0, 255, 255, 0.3);\r\n  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n  color: #ffffff;\r\n  position: relative;\r\n}\r\n.title-p {\r\n  text-align: center;\r\n  font-size: 1.2em;\r\n  margin-bottom: 30px;\r\n  opacity: 0.9;\r\n}\r\n.controls {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n  gap: 15px;\r\n  margin-bottom: 30px;\r\n  padding: 20px;\r\n  background: rgba(10,10,26,0.8);\r\n  border-radius: 10px;\r\n  border: 1px solid rgba(0,255,255,0.2);\r\n}\r\n.control-item {\r\n}\r\n.control-label {\r\n  display: block;\r\n  margin-bottom: 5px;\r\n  font-weight: bold;\r\n  color: #00ffff;\r\n}\r\n.slider {\r\n  width: 100%;\r\n}\r\n.value-display {\r\n  display: block;\r\n  text-align: center;\r\n  font-size: 1.1em;\r\n  color: #ffaa00;\r\n}\r\n.checkbox {\r\n  transform: scale(1.5);\r\n}\r\n#custom-details {\r\n  grid-column: 1 \/ -1;\r\n  background: rgba(255,255,255,0.1);\r\n  border-radius: 8px;\r\n  padding: 10px;\r\n}\r\n#custom-details summary {\r\n  font-weight: bold;\r\n  color: #00ffff;\r\n  cursor: pointer;\r\n  list-style: none;\r\n}\r\n#custom-chevron {\r\n  float: right;\r\n  transition: transform 0.3s;\r\n}\r\n#custom-config {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\r\n  gap: 10px;\r\n}\r\n.custom-item {\r\n}\r\n.custom-label {\r\n  display: block;\r\n  margin-bottom: 5px;\r\n}\r\n.shield-label {\r\n  color: #00ffff;\r\n}\r\n.armor-label {\r\n  color: #ffaa00;\r\n}\r\n.custom-input {\r\n  width: 100%;\r\n  background: transparent;\r\n  color: #ffffff;\r\n  border: 1px solid;\r\n}\r\n.shield-input {\r\n  border-color: #00ffff;\r\n}\r\n.armor-input {\r\n  border-color: #ffaa00;\r\n}\r\n#simulate-cycle {\r\n  grid-column: 1 \/ -1;\r\n  padding: 12px;\r\n  background: linear-gradient(45deg, #00ffff, #0088cc);\r\n  border: none;\r\n  border-radius: 8px;\r\n  color: #000;\r\n  font-weight: bold;\r\n  font-size: 1.1em;\r\n  cursor: pointer;\r\n  transition: all 0.3s;\r\n  box-shadow: 0 0 20px rgba(0,255,255,0.5);\r\n}\r\n#fetch-live {\r\n  grid-column: 1 \/ -1;\r\n  padding: 12px;\r\n  background: linear-gradient(45deg, #ffaa00, #ff5500);\r\n  border: none;\r\n  border-radius: 8px;\r\n  color: #000;\r\n  font-weight: bold;\r\n  font-size: 1.1em;\r\n  cursor: pointer;\r\n  transition: all 0.3s;\r\n  box-shadow: 0 0 20px rgba(255,170,0,0.5);\r\n}\r\n#reset-defaults {\r\n  grid-column: 1 \/ -1;\r\n  padding: 12px;\r\n  background: linear-gradient(45deg, #ffffff, #aaaaaa);\r\n  border: none;\r\n  border-radius: 8px;\r\n  color: #000;\r\n  font-weight: bold;\r\n  font-size: 1.1em;\r\n  cursor: pointer;\r\n  transition: all 0.3s;\r\n  box-shadow: 0 0 20px rgba(255,255,255,0.5);\r\n}\r\n.visualizer {\r\n  display: grid;\r\n  grid-template-columns: 1fr;\r\n  gap: 40px;\r\n  margin-bottom: 30px;\r\n  height: auto;\r\n  position: relative;\r\n}\r\n#shield-viz {\r\n  position: relative;\r\n  background: rgba(0,50,100,0.3);\r\n  border-radius: 15px;\r\n  padding: 40px;\r\n  border: 2px solid rgba(0,255,255,0.4);\r\n  min-height: 500px;\r\n}\r\n#armor-viz {\r\n  position: relative;\r\n  background: rgba(100,20,0,0.3);\r\n  border-radius: 15px;\r\n  padding: 40px;\r\n  border: 2px solid rgba(255,170,0,0.4);\r\n  min-height: 500px;\r\n}\r\n#shield-viz h3,\r\n#armor-viz h3 {\r\n  text-align: center;\r\n  margin-bottom: 20px;\r\n}\r\n#shield-viz h3 {\r\n  color: #00ffff;\r\n  text-shadow: 0 0 10px #00ffff;\r\n}\r\n#armor-viz h3 {\r\n  color: #ffaa00;\r\n  text-shadow: 0 0 10px #ffaa00;\r\n}\r\n.module-icon {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  transform: translate(-50%, -50%);\r\n  width: 50px;\r\n  height: 50px;\r\n  z-index: 5;\r\n}\r\n#shield-beam {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  height: 6px;\r\n  width: 0;\r\n  background: linear-gradient(90deg, transparent, #00ffff, transparent);\r\n  transform: translate(-50%, -50%);\r\n  transform-origin: center left;\r\n  opacity: 0;\r\n  transition: opacity 0.3s, width 0.3s;\r\n  box-shadow: 0 0 20px #00ffff;\r\n  z-index: 10;\r\n}\r\n#armor-beam {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  height: 6px;\r\n  width: 0;\r\n  background: linear-gradient(90deg, transparent, #ffaa00, transparent);\r\n  transform: translate(-50%, -50%);\r\n  transform-origin: center left;\r\n  opacity: 0;\r\n  transition: opacity 0.3s, width 0.3s;\r\n  box-shadow: 0 0 20px #ffaa00;\r\n  z-index: 10;\r\n}\r\n#shield-endpoint,\r\n#armor-endpoint {\r\n  position: absolute;\r\n  font-size: 40px;\r\n  opacity: 0.9;\r\n  z-index: 15;\r\n  transform: translate(-50%, -50%);\r\n}\r\n#shield-endpoint {\r\n  color: #00ffff;\r\n}\r\n#armor-endpoint {\r\n  color: #ffaa00;\r\n}\r\n#shield-rings,\r\n#armor-rings {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 50%;\r\n  transform: translate(-50%, -50%);\r\n  width: min(500px, 100%);\r\n  height: auto;\r\n  opacity: 0.6;\r\n  z-index: 1;\r\n}\r\n#shield-cycle,\r\n#armor-cycle {\r\n  position: absolute;\r\n  top: 20px;\r\n  right: 20px;\r\n  width: 60px;\r\n  height: 60px;\r\n  border-radius: 50%;\r\n  transition: all 0.1s;\r\n  z-index: 20;\r\n}\r\n#shield-cycle {\r\n  border: 3px solid #00ffff;\r\n  background: rgba(0,255,255,0.1);\r\n}\r\n#armor-cycle {\r\n  border: 3px solid #ffaa00;\r\n  background: rgba(255,170,0,0.1);\r\n}\r\n#shield-hp,\r\n#armor-hp {\r\n  position: absolute;\r\n  bottom: 20px;\r\n  left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 80%;\r\n  max-width: 250px;\r\n  height: 16px;\r\n  background: #333;\r\n  border: 1px solid #666;\r\n  border-radius: 12px;\r\n  overflow: hidden;\r\n  z-index: 20;\r\n}\r\n#shield-hp-fill,\r\n#armor-hp-fill {\r\n  height: 100%;\r\n  width: 0%;\r\n  transition: width 1s ease;\r\n}\r\n#shield-hp-fill {\r\n  background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.1) 10px, rgba(255,255,255,0.1) 20px),\r\n              linear-gradient(90deg, #00ff00, #88ff88);\r\n}\r\n#armor-hp-fill {\r\n  background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255,255,255,0.1) 10px, rgba(255,255,255,0.1) 20px),\r\n              linear-gradient(90deg, #ff8844, #ffbb77);\r\n}\r\n#shield-stats,\r\n#armor-stats {\r\n  position: absolute;\r\n  top: 50%;\r\n  left: 20px;\r\n  transform: translateY(-50%);\r\n  font-size: 1em;\r\n  background: rgba(0,0,0,0.4);\r\n  padding: 12px;\r\n  border-radius: 8px;\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: flex-start;\r\n  z-index: 20;\r\n}\r\n#chart-container {\r\n  margin-bottom: 30px;\r\n  height: 500px;\r\n  background: rgba(10,10,26,0.8);\r\n  border-radius: 10px;\r\n  padding: 20px;\r\n  border: 1px solid rgba(0,255,255,0.2);\r\n  display: flex;\r\n  flex-direction: column;\r\n}\r\n#chart-container h3 {\r\n  text-align: center;\r\n  color: #00ffff;\r\n  margin-bottom: 20px;\r\n  flex: none;\r\n}\r\n.chart-wrapper {\r\n  flex: 1;\r\n  position: relative;\r\n}\r\n#rep-chart {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n}\r\n.comparison {\r\n  background: rgba(10,10,26,0.8);\r\n  border-radius: 10px;\r\n  padding: 20px;\r\n  border: 1px solid rgba(0,255,255,0.2);\r\n}\r\n.comparison h3 {\r\n  text-align: center;\r\n  color: #ffaa00;\r\n  margin-bottom: 20px;\r\n}\r\n#comparison-table {\r\n  width: 100%;\r\n  border-collapse: collapse;\r\n  font-size: 1em;\r\n}\r\n#comparison-table thead tr {\r\n  background: rgba(0,255,255,0.2);\r\n}\r\n#comparison-table th {\r\n  padding: 12px;\r\n  border-bottom: 2px solid;\r\n}\r\n#comparison-table th:first-child {\r\n  text-align: left;\r\n  border-bottom-color: #00ffff;\r\n}\r\n#comparison-table th:nth-child(2) {\r\n  text-align: center;\r\n  border-bottom-color: #00ffff;\r\n  color: #00ffff;\r\n}\r\n#comparison-table th:nth-child(3) {\r\n  text-align: center;\r\n  border-bottom-color: #ffaa00;\r\n  color: #ffaa00;\r\n}\r\n#comparison-table td {\r\n  padding: 10px;\r\n}\r\n#comparison-table td:first-child {\r\n  text-align: left;\r\n}\r\n#comparison-table td:nth-child(2) {\r\n  text-align: center;\r\n  font-weight: bold;\r\n  color: #00ffff;\r\n}\r\n#comparison-table td:nth-child(3) {\r\n  text-align: center;\r\n  font-weight: bold;\r\n  color: #ffaa00;\r\n}\r\n#shield-timing {\r\n  color: #00ff88;\r\n}\r\n#armor-timing {\r\n  color: #ff8844;\r\n}\r\n.poll {\r\n  text-align: center;\r\n  margin-top: 30px;\r\n  padding: 20px;\r\n  background: rgba(20,20,40,0.8);\r\n  border-radius: 10px;\r\n}\r\n.poll-question {\r\n  font-size: 1.2em;\r\n  margin-bottom: 15px;\r\n}\r\n.footer-note {\r\n  text-align: center;\r\n  font-size: 0.9em;\r\n  opacity: 0.7;\r\n  margin-top: 20px;\r\n}\r\n@keyframes glow { 0% { text-shadow: 0 0 20px rgba(0,255,255,0.5); } 100% { text-shadow: 0 0 40px rgba(0,255,255,0.8), 0 0 60px rgba(255,170,0,0.4); } }\r\n#eve-logi-simulator input[type=range] { height: 8px; border-radius: 5px; background: rgba(255,255,255,0.2); outline: none; }\r\n#eve-logi-simulator input[type=range]::-webkit-slider-thumb { appearance: none; width: 20px; height: 20px; border-radius: 50%; background: #00ffff; box-shadow: 0 0 15px #00ffff; cursor: pointer; }\r\n#eve-logi-simulator input[type=range]::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: #00ffff; box-shadow: 0 0 15px #00ffff; border: none; cursor: pointer; }\r\n@media (max-width: 768px) {\r\n  #eve-logi-simulator { grid-template-columns: 1fr; height: auto !important; }\r\n  #shield-viz, #armor-viz { min-height: 600px; }\r\n  #chart-container { height: 600px; }\r\n}\r\n#eve-logi-simulator details summary::-webkit-details-marker { display: none; }\r\n#eve-logi-simulator details summary { list-style: none; }\r\n<\/style>\r\n<script src=\"https:\/\/gamingwithdaopa.ellatha.com\/media\/evefrontier\/chart.js\"><\/script>\r\n<script>\r\nlet chart;\r\nconst ctx = document.getElementById('rep-chart').getContext('2d');\r\nlet simActive = false;\r\nconst baseShield = { maxHp: 680, cycle: 8, opt: 8.04, fall: 12 };\r\nconst baseArmor = { maxHp: 512, cycle: 6, opt: 14.4, fall: 4.2 };\r\nlet SHIELD = { ...baseShield };\r\nlet ARMOR = { ...baseArmor };\r\nconst FIXED_MAX_KM = 100;\r\nconst MAX_RADIUS = 180;\r\nconst SCALE = MAX_RADIUS \/ FIXED_MAX_KM;\r\nlet lastFetch = 0;\r\nconst COOLDOWN_MS = 30000;\r\nfunction update() {\r\n  const customDetails = document.getElementById('custom-details');\r\n  const useCustom = customDetails.open;\r\n  const logiSkill = parseInt(document.getElementById('logi-skill').value);\r\n  const rangeBonus = 1 + 0.6 * logiSkill;\r\n  const overload = document.getElementById('overload').checked;\r\n  const shieldOverAmount = overload ? 1.1 : 1;\r\n  const armorOverAmount = overload ? 1.12 : 1;\r\n  const overDuration = overload ? 0.85 : 1;\r\n  if (useCustom) {\r\n    SHIELD.maxHp = parseFloat(document.getElementById('shield-maxhp').value) || baseShield.maxHp;\r\n    SHIELD.cycle = parseFloat(document.getElementById('shield-cycle-time').value) || baseShield.cycle;\r\n    SHIELD.opt = parseFloat(document.getElementById('shield-opt').value) || baseShield.opt;\r\n    SHIELD.fall = parseFloat(document.getElementById('shield-fall').value) || baseShield.fall;\r\n    ARMOR.maxHp = parseFloat(document.getElementById('armor-maxhp').value) || baseArmor.maxHp;\r\n    ARMOR.cycle = parseFloat(document.getElementById('armor-cycle-time').value) || baseArmor.cycle;\r\n    ARMOR.opt = parseFloat(document.getElementById('armor-opt').value) || baseArmor.opt;\r\n    ARMOR.fall = parseFloat(document.getElementById('armor-fall').value) || baseArmor.fall;\r\n  } else {\r\n    SHIELD = { ...baseShield };\r\n    ARMOR = { ...baseArmor };\r\n    SHIELD.opt *= rangeBonus;\r\n    SHIELD.fall *= rangeBonus;\r\n    ARMOR.opt *= rangeBonus;\r\n    ARMOR.fall *= rangeBonus;\r\n  }\r\n  \/\/ Shield rings\r\n  const shield_opt_r = SHIELD.opt * SCALE;\r\n  document.getElementById('shield-opt-ring').setAttribute('r', shield_opt_r);\r\n  document.getElementById('shield-opt-text').setAttribute('y', 200 - shield_opt_r - 20);\r\n  document.getElementById('shield-opt-km').textContent = SHIELD.opt.toFixed(0) + ' km';\r\n  document.getElementById('shield-opt-km').setAttribute('y', 200 - shield_opt_r - 5);\r\n  \/\/ Armor rings\r\n  const armor_opt_r = ARMOR.opt * SCALE;\r\n  document.getElementById('armor-opt-ring').setAttribute('r', armor_opt_r);\r\n  document.getElementById('armor-opt-text').setAttribute('y', 200 - armor_opt_r - 20);\r\n  document.getElementById('armor-opt-km').textContent = ARMOR.opt.toFixed(0) + ' km';\r\n  document.getElementById('armor-opt-km').setAttribute('y', 200 - armor_opt_r - 5);\r\n  const dist = parseFloat(document.getElementById('distance').value);\r\n  const num = parseInt(document.getElementById('num-mods').value);\r\n  const bonus = parseFloat(document.getElementById('skill-bonus').value) \/ 100;\r\n  let num_ships = parseInt(document.getElementById('num-ships').value);\r\n  if (useCustom) {\r\n    num_ships = parseInt(document.getElementById('custom-num-ships').value) || num_ships;\r\n  }\r\n  const shieldEff = dist <= SHIELD.opt ? 1 : (dist >= SHIELD.opt + SHIELD.fall * 2 ? 0 : 1 - ((dist - SHIELD.opt) \/ (SHIELD.fall * 2)));\r\n  const armorEff = dist <= ARMOR.opt ? 1 : (dist >= ARMOR.opt + ARMOR.fall * 2 ? 0 : 1 - ((dist - ARMOR.opt) \/ (ARMOR.fall * 2)));\r\n  const shieldHpCyc_per = SHIELD.maxHp * shieldOverAmount * num * (1 + bonus) * shieldEff;\r\n  const armorHpCyc_per = ARMOR.maxHp * armorOverAmount * num * (1 + bonus) * armorEff;\r\n  const shieldHpCyc_fleet = shieldHpCyc_per * num_ships;\r\n  const armorHpCyc_fleet = armorHpCyc_per * num_ships;\r\n  const shieldCycleEff = SHIELD.cycle * overDuration;\r\n  const armorCycleEff = ARMOR.cycle * overDuration;\r\n  const shieldHps_per = shieldHpCyc_per \/ shieldCycleEff;\r\n  const armorHps_per = armorHpCyc_per \/ armorCycleEff;\r\n  const shieldHps_fleet = shieldHpCyc_fleet \/ shieldCycleEff;\r\n  const armorHps_fleet = armorHpCyc_fleet \/ armorCycleEff;\r\n  document.getElementById('dist-value').textContent = dist + \" km\";\r\n  document.getElementById('mods-value').textContent = num;\r\n  document.getElementById('bonus-value').textContent = \"+\" + (bonus * 100) + \"%\";\r\n  document.getElementById('ships-value').textContent = num_ships;\r\n  document.getElementById('logi-value').textContent = logiSkill;\r\n  document.getElementById('shield-hp-cyc').textContent = Math.round(shieldHpCyc_per);\r\n  document.getElementById('armor-hp-cyc').textContent = Math.round(armorHpCyc_per);\r\n  document.getElementById('shield-fleet-hp-cyc').textContent = Math.round(shieldHpCyc_fleet);\r\n  document.getElementById('armor-fleet-hp-cyc').textContent = Math.round(armorHpCyc_fleet);\r\n  document.getElementById('shield-hps').textContent = Math.round(shieldHps_per) + \"\/s\";\r\n  document.getElementById('armor-hps').textContent = Math.round(armorHps_per) + \"\/s\";\r\n  document.getElementById('shield-fleet-hps').textContent = Math.round(shieldHps_fleet) + \"\/s\";\r\n  document.getElementById('armor-fleet-hps').textContent = Math.round(armorHps_fleet) + \"\/s\";\r\n  document.getElementById('shield-eff').textContent = (shieldEff * 100).toFixed(0) + \"%\";\r\n  document.getElementById('armor-eff').textContent = (armorEff * 100).toFixed(0) + \"%\";\r\n  updateViz('shield', dist, shieldEff, shieldHpCyc_per);\r\n  updateViz('armor', dist, armorEff, armorHpCyc_per);\r\n  updateChart(dist, num, bonus, shieldOverAmount, armorOverAmount, overDuration);\r\n}\r\nfunction updateViz(type, dist, eff, hpCyc) {\r\n  const prefix = type;\r\n  const viz = document.getElementById(prefix + '-viz');\r\n  const rect = viz.getBoundingClientRect();\r\n  const centerX = rect.width \/ 2;\r\n  const centerY = rect.height \/ 2;\r\n  const opt = type === 'shield' ? SHIELD.opt : ARMOR.opt;\r\n  const fall = type === 'shield' ? SHIELD.fall : ARMOR.fall;\r\n  const scale = Math.min(dist \/ FIXED_MAX_KM, 1);\r\n  const svg = document.getElementById(prefix + '-rings');\r\n  const svgRect = svg.getBoundingClientRect();\r\n  const scaleFactor = svgRect.width \/ 400;\r\n  const maxBeamLength = MAX_RADIUS * scaleFactor;\r\n  const beamLength = scale * maxBeamLength;\r\n  const beam = document.getElementById(prefix + '-beam');\r\n  beam.style.left = centerX + 'px';\r\n  beam.style.top = centerY + 'px';\r\n  beam.style.width = beamLength + 'px';\r\n  beam.style.transform = 'translateY(-50%)';\r\n  beam.style.transformOrigin = 'left';\r\n  beam.style.opacity = eff;\r\n  const endpoint = document.getElementById(prefix + '-endpoint');\r\n  const endpointX = centerX + beamLength;\r\n  endpoint.style.left = endpointX + 'px';\r\n  endpoint.style.top = centerY + 'px';\r\n  endpoint.style.transform = 'translate(-50%, -50%)';\r\n  const stats = document.getElementById(prefix + '-stats');\r\n  const color = type === 'shield' ? '#00ffff' : '#ffaa00';\r\n  stats.innerHTML = `\r\n    <span style=\"color: ${color};\"><strong>${Math.round(hpCyc)}<\/strong> HP\/cyc<\/span>\r\n    <span style=\"color: ${color};\">${(hpCyc\/(type==='shield'?SHIELD.cycle:ARMOR.cycle)).toFixed(0)} HP\/s<\/span>\r\n    <span style=\"color: ${color};\">${(eff*100).toFixed(0)}% eff<\/span>\r\n  `;\r\n  document.getElementById(prefix + '-hp-fill').style.width = (eff * 100) + '%';\r\n}\r\nfunction updateChart(dist, num, bonus, shieldOverAmount, armorOverAmount, overDuration) {\r\n  const dists = Array.from({length:201},(_,i)=>i\/2);\r\n  const shieldData = dists.map(d => SHIELD.maxHp * shieldOverAmount * num * (1 + bonus) * (d <= SHIELD.opt ? 1 : (d >= SHIELD.opt + SHIELD.fall * 2 ? 0 : 1 - ((d - SHIELD.opt) \/ (SHIELD.fall * 2)))));\r\n  const armorData = dists.map(d => ARMOR.maxHp * armorOverAmount * num * (1 + bonus) * (d <= ARMOR.opt ? 1 : (d >= ARMOR.opt + ARMOR.fall * 2 ? 0 : 1 - ((d - ARMOR.opt) \/ (ARMOR.fall * 2)))));\r\n  if (chart) chart.destroy();\r\n  chart = new Chart(ctx, {\r\n    type: 'line',\r\n    data: { labels: dists.map(d => d.toFixed(0)), datasets: [\r\n      { label: 'Shield Logi', data: shieldData, borderColor: '#00ffff', backgroundColor: 'rgba(0,255,255,0.1)', tension: 0.4, fill: true },\r\n      { label: 'Armor Logi', data: armorData, borderColor: '#ffaa00', backgroundColor: 'rgba(255,170,0,0.1)', tension: 0.4, fill: true }\r\n    ]},\r\n    options: {\r\n      responsive: true,\r\n      maintainAspectRatio: false,\r\n      scales: { y: { beginAtZero: true, grid: { color: 'rgba(0,255,255,0.1)' } }, x: { grid: { color: 'rgba(255,170,0,0.1)' } } },\r\n      plugins: { legend: { labels: { color: '#fff' } } },\r\n      animation: { duration: 500 },\r\n      layout: { padding: { left: 10, right: 10, top: 10, bottom: 10 } }\r\n    }\r\n  });\r\n}\r\n\/\/ Simulate repair cycle\r\ndocument.getElementById('simulate-cycle').onclick = () => {\r\n  if (simActive) return; simActive = true;\r\n  const overload = document.getElementById('overload').checked;\r\n  const overDuration = overload ? 0.85 : 1;\r\n  const shieldCycleEff = SHIELD.cycle * overDuration;\r\n  const armorCycleEff = ARMOR.cycle * overDuration;\r\n  const dist = parseFloat(document.getElementById('distance').value);\r\n  const shieldEff = dist <= SHIELD.opt ? 1 : (dist >= SHIELD.opt + SHIELD.fall * 2 ? 0 : 1 - ((dist - SHIELD.opt) \/ (SHIELD.fall * 2)));\r\n  const armorEff = dist <= ARMOR.opt ? 1 : (dist >= ARMOR.opt + ARMOR.fall * 2 ? 0 : 1 - ((dist - ARMOR.opt) \/ (ARMOR.fall * 2)));\r\n  const anim_speed_factor = 0.25; \/\/ seconds of animation per second of cycle\r\n  const interval_ms = 50; \/\/ for smoother animation\r\n  const shield_anim_time = shieldCycleEff * anim_speed_factor * 1000;\r\n  const armor_anim_time = armorCycleEff * anim_speed_factor * 1000;\r\n  const shield_steps = Math.max(1, Math.round(shield_anim_time \/ interval_ms));\r\n  const armor_steps = Math.max(1, Math.round(armor_anim_time \/ interval_ms));\r\n  const shield_increment = 1 \/ shield_steps;\r\n  const armor_increment = 1 \/ armor_steps;\r\n  \/\/ Shield: rep at start\r\n  document.getElementById('shield-hp-fill').style.width = (shieldEff*100) + '%';\r\n  let shieldProg = 0;\r\n  const shieldInt = setInterval(() => {\r\n    shieldProg += shield_increment;\r\n    document.getElementById('shield-cycle').style.background = `conic-gradient(#00ffff ${shieldProg*360}deg, rgba(0,255,255,0.1) 0deg)`;\r\n    if (shieldProg >= 1) clearInterval(shieldInt);\r\n  }, interval_ms);\r\n  \/\/ Armor: rep at end\r\n  let armorProg = 0;\r\n  const armorInt = setInterval(() => {\r\n    armorProg += armor_increment;\r\n    document.getElementById('armor-cycle').style.background = `conic-gradient(#ffaa00 ${armorProg*360}deg, rgba(255,170,0,0.1) 0deg)`;\r\n    if (armorProg >= 1) {\r\n      clearInterval(armorInt);\r\n      document.getElementById('armor-hp-fill').style.width = (armorEff*100) + '%';\r\n    }\r\n  }, interval_ms);\r\n  const max_anim_time = Math.max(shield_anim_time, armor_anim_time) + 1000;\r\n  setTimeout(() => { simActive = false; resetViz(); }, max_anim_time);\r\n  function resetViz() {\r\n    document.getElementById('shield-hp-fill').style.width = '0%';\r\n    document.getElementById('armor-hp-fill').style.width = '0%';\r\n    document.getElementById('shield-cycle').style.background = 'rgba(0,255,255,0.1)';\r\n    document.getElementById('armor-cycle').style.background = 'rgba(255,170,0,0.1)';\r\n  }\r\n};\r\n\/\/ Fetch live data\r\ndocument.getElementById('fetch-live').onclick = async function() {\r\n  if (Date.now() - lastFetch < COOLDOWN_MS) {\r\n    alert('Please wait 30 seconds before fetching again.');\r\n    return;\r\n  }\r\n  lastFetch = Date.now();\r\n  const button = this;\r\n  button.disabled = true;\r\n  try {\r\n    let shieldAmount, shieldCycle, shieldOpt, shieldFall;\r\n    const shieldResponse = await fetch('https:\/\/esi.evetech.net\/latest\/universe\/types\/3608\/?datasource=tranquility');\r\n    if (!shieldResponse.ok) {\r\n      throw new Error(`Shield fetch failed with status: ${shieldResponse.status}`);\r\n    }\r\n    const shieldData = await shieldResponse.json();\r\n    shieldAmount = shieldData.dogma_attributes.find(attr => attr.attribute_id === 68)?.value || baseShield.maxHp;\r\n    shieldCycle = shieldData.dogma_attributes.find(attr => attr.attribute_id === 73)?.value \/ 1000 || baseShield.cycle;\r\n    shieldOpt = shieldData.dogma_attributes.find(attr => attr.attribute_id === 54)?.value \/ 1000 || baseShield.opt;\r\n    shieldFall = shieldData.dogma_attributes.find(attr => attr.attribute_id === 2044)?.value \/ 1000 || baseShield.fall;\r\n    let armorAmount, armorCycle, armorOpt, armorFall;\r\n    const armorResponse = await fetch('https:\/\/esi.evetech.net\/latest\/universe\/types\/26914\/?datasource=tranquility');\r\n    if (!armorResponse.ok) {\r\n      throw new Error(`Armor fetch failed with status: ${armorResponse.status}`);\r\n    }\r\n    const armorData = await armorResponse.json();\r\n    armorAmount = armorData.dogma_attributes.find(attr => attr.attribute_id === 84)?.value || baseArmor.maxHp;\r\n    armorCycle = armorData.dogma_attributes.find(attr => attr.attribute_id === 73)?.value \/ 1000 || baseArmor.cycle;\r\n    armorOpt = armorData.dogma_attributes.find(attr => attr.attribute_id === 54)?.value \/ 1000 || baseArmor.opt;\r\n    armorFall = armorData.dogma_attributes.find(attr => attr.attribute_id === 2044)?.value \/ 1000 || baseArmor.fall;\r\n    document.getElementById('shield-maxhp').value = shieldAmount;\r\n    document.getElementById('shield-cycle-time').value = shieldCycle;\r\n    document.getElementById('shield-opt').value = shieldOpt;\r\n    document.getElementById('shield-fall').value = shieldFall;\r\n    document.getElementById('armor-maxhp').value = armorAmount;\r\n    document.getElementById('armor-cycle-time').value = armorCycle;\r\n    document.getElementById('armor-opt').value = armorOpt;\r\n    document.getElementById('armor-fall').value = armorFall;\r\n    alert(`Updated base stats from ESI:\\nShield: ${shieldAmount} HP\/cyc, ${shieldCycle}s cycle, ${shieldOpt}km opt, ${shieldFall}km fall\\nArmor: ${armorAmount} HP\/cyc, ${armorCycle}s cycle, ${armorOpt}km opt, ${armorFall}km fall`);\r\n    update();\r\n  } catch (e) {\r\n    alert('Error fetching data: ' + e.message + '. Falling back to default values.');\r\n    document.getElementById('shield-maxhp').value = baseShield.maxHp;\r\n    document.getElementById('shield-cycle-time').value = baseShield.cycle;\r\n    document.getElementById('shield-opt').value = baseShield.opt;\r\n    document.getElementById('shield-fall').value = baseShield.fall;\r\n    document.getElementById('armor-maxhp').value = baseArmor.maxHp;\r\n    document.getElementById('armor-cycle-time').value = baseArmor.cycle;\r\n    document.getElementById('armor-opt').value = baseArmor.opt;\r\n    document.getElementById('armor-fall').value = baseArmor.fall;\r\n    update();\r\n  } finally {\r\n    button.disabled = false;\r\n  }\r\n};\r\n\/\/ Reset to defaults\r\ndocument.getElementById('reset-defaults').onclick = () => {\r\n  document.getElementById('distance').value = 30;\r\n  document.getElementById('num-mods').value = 4;\r\n  document.getElementById('skill-bonus').value = 30;\r\n  document.getElementById('num-ships').value = 1;\r\n  document.getElementById('logi-skill').value = 5;\r\n  document.getElementById('overload').checked = false;\r\n  document.getElementById('shield-maxhp').value = 680;\r\n  document.getElementById('shield-cycle-time').value = 8;\r\n  document.getElementById('shield-opt').value = 8.04;\r\n  document.getElementById('shield-fall').value = 12;\r\n  document.getElementById('armor-maxhp').value = 512;\r\n  document.getElementById('armor-cycle-time').value = 6;\r\n  document.getElementById('armor-opt').value = 14.4;\r\n  document.getElementById('armor-fall').value = 4.2;\r\n  document.getElementById('custom-num-ships').value = 1;\r\n  document.getElementById('custom-details').open = false;\r\n  document.getElementById('custom-chevron').style.transform = 'rotate(0deg)';\r\n  update();\r\n};\r\n\/\/ Listeners\r\ndocument.getElementById('distance').oninput = update;\r\ndocument.getElementById('num-mods').oninput = update;\r\ndocument.getElementById('skill-bonus').oninput = update;\r\ndocument.getElementById('num-ships').oninput = update;\r\ndocument.getElementById('logi-skill').oninput = update;\r\ndocument.getElementById('overload').onchange = update;\r\nconst customDetails = document.getElementById('custom-details');\r\ncustomDetails.addEventListener('toggle', () => {\r\n  const chevron = document.getElementById('custom-chevron');\r\n  if (customDetails.open) {\r\n    chevron.style.transform = 'rotate(180deg)';\r\n    \/\/ Set custom inputs to current computed values\r\n    document.getElementById('shield-maxhp').value = SHIELD.maxHp;\r\n    document.getElementById('shield-cycle-time').value = SHIELD.cycle;\r\n    document.getElementById('shield-opt').value = SHIELD.opt.toFixed(2);\r\n    document.getElementById('shield-fall').value = SHIELD.fall.toFixed(2);\r\n    document.getElementById('armor-maxhp').value = ARMOR.maxHp;\r\n    document.getElementById('armor-cycle-time').value = ARMOR.cycle;\r\n    document.getElementById('armor-opt').value = ARMOR.opt.toFixed(2);\r\n    document.getElementById('armor-fall').value = ARMOR.fall.toFixed(2);\r\n    document.getElementById('custom-num-ships').value = document.getElementById('num-ships').value;\r\n  } else {\r\n    chevron.style.transform = 'rotate(0deg)';\r\n  }\r\n  update();\r\n});\r\nconst customInputs = ['shield-maxhp', 'shield-cycle-time', 'shield-opt', 'shield-fall', 'armor-maxhp', 'armor-cycle-time', 'armor-opt', 'armor-fall', 'custom-num-ships'];\r\ncustomInputs.forEach(id => {\r\n  const input = document.getElementById(id);\r\n  input.oninput = update;\r\n});\r\nlet resizeTimeout;\r\nwindow.addEventListener('resize', () => {\r\n  clearTimeout(resizeTimeout);\r\n  resizeTimeout = setTimeout(update, 200);\r\n});\r\nupdate();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Visualize Shield vs Armor remote reps: Range, Timing &#038; Output Distance to Target (km) 30 km Active Rep Modules (per ship) 4 Rep Amount Bonus (%) +30% Number of Logi Ships 1 Logistics Cruiser Skill (0-5) 5 Overload Modules Use Custom Shield Max HP\/mod Shield Cycle (s) Shield Opt (km) Shield Fall (km) Armor Max [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2231","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tool"],"yoast_head":"<!-- Meta Tags -->\r\n<title>EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps<\/title>\r\n<meta name=\"description\" content=\"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps\" \/>\r\n<meta property=\"og:description\" content=\"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\" \/>\r\n<meta property=\"og:site_name\" content=\"EVE Online\" \/>\r\n<meta property=\"article:publisher\" content=\"facebook.com\/gamingwithdaopa\/\" \/>\r\n<meta property=\"article:author\" content=\"facebook.com\/gamingwithdaopa\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-11-27T22:18:35+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"400\" \/>\r\n\t<meta property=\"og:image:height\" content=\"263\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"daopa\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@gamingwithdaopa\" \/>\r\n<meta name=\"twitter:site\" content=\"@gamingwithdaopa\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"daopa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\"},\"author\":{\"name\":\"daopa\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"headline\":\"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps\",\"datePublished\":\"2025-11-27T22:18:35+00:00\",\"dateModified\":\"2025-11-27T22:18:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\"},\"wordCount\":237,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg\",\"articleSection\":[\"Tools\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\",\"name\":\"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg\",\"datePublished\":\"2025-11-27T22:18:35+00:00\",\"dateModified\":\"2025-11-27T22:18:35+00:00\",\"description\":\"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.\",\"breadcrumb\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg\",\"width\":400,\"height\":263,\"caption\":\"eve online logistics simulator\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#website\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/\",\"name\":\"EVE Online\",\"description\":\"DaOpa&#039;s EVE Online fansite covering exploration sites, missions with video guides and write ups.\",\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"alternateName\":\"eve\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\",\"name\":\"daopa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/DaOpa.jpg\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/DaOpa.jpg\",\"width\":116,\"height\":172,\"caption\":\"daopa\"},\"logo\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/image\/\"},\"description\":\"DaOpa has been variety streamer since 2009 with game focuses on primarily MMOs, Sandbox, RPG and FPS genres. For inquires comment in the comments sections. This channel is syndicated across various micro niche gaming related blogs operated by DaOpa. He creates fansites, guides, tools for gamers\",\"sameAs\":[\"https:\/\/gamingwithdaopa.ellatha.com\",\"facebook.com\/gamingwithdaopa\/\",\"https:\/\/x.com\/gamingwithdaopa\",\"youtube.com\/@daopa\"],\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/author\/daopa\/\"}]}<\/script>","yoast_head_json":{"title":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps","description":"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/","og_locale":"en_US","og_type":"article","og_title":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps","og_description":"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.","og_url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/","og_site_name":"EVE Online","article_publisher":"facebook.com\/gamingwithdaopa\/","article_author":"facebook.com\/gamingwithdaopa\/","article_published_time":"2025-11-27T22:18:35+00:00","og_image":[{"width":400,"height":263,"url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg","type":"image\/jpeg"}],"author":"daopa","twitter_card":"summary_large_image","twitter_creator":"@gamingwithdaopa","twitter_site":"@gamingwithdaopa","twitter_misc":{"Written by":"daopa","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#article","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/"},"author":{"name":"daopa","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"headline":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps","datePublished":"2025-11-27T22:18:35+00:00","dateModified":"2025-11-27T22:18:35+00:00","mainEntityOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/"},"wordCount":237,"commentCount":0,"publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg","articleSection":["Tools"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/","name":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg","datePublished":"2025-11-27T22:18:35+00:00","dateModified":"2025-11-27T22:18:35+00:00","description":"Explore the differences between shield and armor logistics in EVE Online with this interactive simulator. Visualize repair ranges, cycle timings, and output based on distance, skills, modules, and overloads. Ideal for optimizing your logi fits and fleet strategies \u2013 adjust parameters and fetch live ESI data for accurate results.","breadcrumb":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#primaryimage","url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/eve-online-logistics-simulator.jpg","width":400,"height":263,"caption":"eve online logistics simulator"},{"@type":"BreadcrumbList","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/logi-simulator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/"},{"@type":"ListItem","position":2,"name":"EVE Online Logistics Simulator: Compare Shield vs Armor Remote Reps"}]},{"@type":"WebSite","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#website","url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/","name":"EVE Online","description":"DaOpa&#039;s EVE Online fansite covering exploration sites, missions with video guides and write ups.","publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"alternateName":"eve","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/fb03a927907d90f409fac550ba375638","name":"daopa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/image\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/DaOpa.jpg","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-content\/uploads\/sites\/2\/DaOpa.jpg","width":116,"height":172,"caption":"daopa"},"logo":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/#\/schema\/person\/image\/"},"description":"DaOpa has been variety streamer since 2009 with game focuses on primarily MMOs, Sandbox, RPG and FPS genres. For inquires comment in the comments sections. This channel is syndicated across various micro niche gaming related blogs operated by DaOpa. He creates fansites, guides, tools for gamers","sameAs":["https:\/\/gamingwithdaopa.ellatha.com","facebook.com\/gamingwithdaopa\/","https:\/\/x.com\/gamingwithdaopa","youtube.com\/@daopa"],"url":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/author\/daopa\/"}]}},"_links":{"self":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/posts\/2231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/comments?post=2231"}],"version-history":[{"count":3,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/posts\/2231\/revisions"}],"predecessor-version":[{"id":2318,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/posts\/2231\/revisions\/2318"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/media\/2317"}],"wp:attachment":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/media?parent=2231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/categories?post=2231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eveonline\/wp-json\/wp\/v2\/tags?post=2231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}