{"id":90,"date":"2026-06-09T22:57:06","date_gmt":"2026-06-09T22:57:06","guid":{"rendered":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/?p=90"},"modified":"2026-06-10T10:56:20","modified_gmt":"2026-06-10T10:56:20","slug":"combat-and-controls","status":"publish","type":"post","link":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/","title":{"rendered":"Combat and Controls in Embers of the Uncrowned"},"content":{"rendered":"\r\n<article id=\"custom-article\" style=\"line-height: 1.6; color: #e6e6e6; background: #18181b; padding: 30px; border-radius: 16px; max-width: 900px; margin: auto;\" itemscope itemtype=\"https:\/\/schema.org\/Article\">\r\n<style>\r\n    \/* ---------------------- BASE TYPOGRAPHY ---------------------- *\/\r\n    #custom-article { font-family: Arial, sans-serif; line-height: 1.6; max-width: 1200px; margin: 0 auto; padding: 20px; }\r\n    #custom-article h1, #custom-article h2, #custom-article h3 { color: #F44336; }\r\n    #custom-article h1 { font-size: 32px; }\r\n    #custom-article h2 { font-size: 26px; margin-top: 25px; }\r\n    #custom-article h3 { font-size: 20px; margin-top: 20px; }\r\n    #custom-article p, #custom-article ul, #custom-article li { color: #e6e6e6; }\r\n    \/* ---------------------- SECTIONS ---------------------- *\/\r\n    #custom-article section { margin-bottom: 40px; padding: 20px; background-color: #1f1f23; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }\r\n    #custom-article section.visible { opacity: 1; transform: translateY(0); }\r\n    \/* ---------------------- ACCORDION & INTERACTIVE LIST ---------------------- *\/\r\n    #custom-article .accordion, #custom-article .tips-list li {\r\n        cursor: pointer;\r\n        background-color: #1f1f23;\r\n        padding: 15px;\r\n        border-radius: 5px;\r\n        transition: background-color 0.3s;\r\n        margin-bottom: 10px;\r\n        color: #e6e6e6;\r\n        font-weight: bold;\r\n    }\r\n    #custom-article .accordion:hover, #custom-article .tips-list li:hover { background-color: #2a2a2e; }\r\n    #custom-article .accordion i.fa-chevron-down, #custom-article .tips-list li i.fa-chevron-down { float: right; transition: transform 0.3s; }\r\n    #custom-article .accordion.active i.fa-chevron-down, #custom-article .tips-list li.active i.fa-chevron-down { transform: rotate(180deg); }\r\n    #custom-article .hidden-content, #custom-article .tip-content { display: none; margin-top: 10px; padding: 10px; background-color: #1f1f23; border-radius: 5px; }\r\n    \/* ---------------------- LIGHTBOX ---------------------- *\/\r\n    #lightbox-overlay { position: fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.85); display:none; justify-content:center; align-items:center; z-index:9999; }\r\n    #lightbox-overlay img { max-width:90%; max-height:90%; border-radius:8px; box-shadow:0 0 20px rgba(0,0,0,0.5); }\r\n    \/* ---------------------- IMAGES ---------------------- *\/\r\n    #custom-article .centered-image, #custom-article .aligncenter { display:block; margin:20px auto; max-width:300px; height:auto; border-radius:8px; cursor:pointer; }\r\n    \/* ---------------------- LINKS ---------------------- *\/\r\n    #custom-article a { color:#007bff; text-decoration:none; }\r\n    #custom-article a:hover { text-decoration:underline; }\r\n    \/* ---------------------- RESPONSIVE ---------------------- *\/\r\n    @media(max-width:600px) {\r\n        #custom-article { padding: 15px; }\r\n        #custom-article h1 { font-size: 24px; }\r\n        #custom-article h2 { font-size: 20px; }\r\n        #custom-article .centered-image { margin: 10px auto; }\r\n    }\r\n    \/* ---------------------- CUSTOM WIDGET STYLES ---------------------- *\/\r\n    .control-table { width: 100%; border-collapse: collapse; margin: 15px 0; background: #25252a; border-radius: 8px; overflow: hidden; }\r\n    .control-table th, .control-table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid #333; }\r\n    .control-table th { background: #F44336; color: white; font-weight: bold; }\r\n    .control-table tr:hover { background: #2a2a2e; }\r\n    .control-table td:first-child { font-weight: 600; }\r\n    \r\n    .sp-trainer, .combat-simulator { background: #25252a; border-radius: 12px; padding: 20px; margin: 20px 0; border: 1px solid #333; }\r\n    .sp-segments { display: flex; gap: 8px; margin: 15px 0; justify-content: center; }\r\n    .sp-segment { width: 42px; height: 28px; background: #1a1a1e; border: 2px solid #444; border-radius: 6px; transition: all 0.2s ease; position: relative; overflow: hidden; }\r\n    .sp-segment.active { background: linear-gradient(180deg, #00d4ff, #0099cc); border-color: #00d4ff; box-shadow: 0 0 15px rgba(0, 212, 255, 0.6); }\r\n    .sp-segment.consumed { background: #333; border-color: #555; }\r\n    \r\n    .action-btn { background: #F44336; color: white; border: none; padding: 12px 24px; border-radius: 8px; font-size: 16px; font-weight: bold; cursor: pointer; transition: all 0.2s; margin: 8px 4px; }\r\n    .action-btn:hover { background: #d32f2f; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(244, 67, 54, 0.4); }\r\n    .action-btn:active { transform: scale(0.98); }\r\n    .action-btn:disabled { background: #555; cursor: not-allowed; transform: none; }\r\n    \r\n    .combat-simulator .boss-area { text-align: center; margin: 20px 0; }\r\n    .stagger-bar-container { background: #1a1a1e; height: 24px; border-radius: 12px; overflow: hidden; margin: 10px auto; max-width: 420px; border: 2px solid #444; }\r\n    .stagger-bar { height: 100%; background: linear-gradient(90deg, #9c27b0, #e91e63); transition: width 0.4s cubic-bezier(0.23, 1, 0.32, 1); width: 100%; box-shadow: 0 0 10px rgba(156, 39, 176, 0.5); }\r\n    .stagger-bar.staggered { background: linear-gradient(90deg, #ffeb3b, #ff9800); box-shadow: 0 0 20px rgba(255, 235, 59, 0.7); animation: pulse 1s infinite; }\r\n    \r\n    @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.7; } }\r\n    \r\n    .sim-log { background: #1a1a1e; border-radius: 8px; padding: 12px; height: 140px; overflow-y: auto; font-family: monospace; font-size: 13px; margin-top: 15px; border: 1px solid #333; }\r\n    .sim-log .log-entry { margin: 4px 0; padding: 4px 8px; border-radius: 4px; }\r\n    .sim-log .log-perfect { color: #00d4ff; font-weight: bold; }\r\n    .sim-log .log-stagger { color: #ffeb3b; font-weight: bold; }\r\n    .sim-log .log-damage { color: #4caf50; }\r\n    \r\n    .dmg-pop { position: absolute; color: #ffeb3b; font-weight: bold; font-size: 18px; pointer-events: none; animation: dmgFloat 0.8s forwards; text-shadow: 0 0 8px rgba(0,0,0,0.8); }\r\n    @keyframes dmgFloat { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(-60px); opacity: 0; } }\r\n    \r\n    .key-visualizer { display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 8px; max-width: 620px; margin: 20px auto; }\r\n    .key-cap { background: #25252a; border: 2px solid #555; border-radius: 8px; padding: 14px 8px; text-align: center; font-weight: bold; transition: all 0.15s; cursor: pointer; position: relative; user-select: none; }\r\n    .key-cap:hover { border-color: #F44336; background: #2a2a2e; }\r\n    .key-cap.pressed { background: #F44336; color: white; border-color: #F44336; transform: scale(0.92); box-shadow: 0 0 12px rgba(244, 67, 54, 0.6); }\r\n    .key-cap .key-label { font-size: 11px; color: #aaa; margin-top: 4px; display: block; }\r\n    \r\n    .state-toggle { display: flex; gap: 10px; margin: 15px 0; }\r\n    .state-btn { flex: 1; padding: 10px; background: #333; border: 2px solid #555; color: #e6e6e6; border-radius: 8px; cursor: pointer; transition: all 0.2s; }\r\n    .state-btn.active { background: #F44336; border-color: #F44336; color: white; }\r\n    \r\n    .timing-window { background: #1a1a1e; padding: 12px; border-radius: 8px; margin: 12px 0; border-left: 4px solid #00d4ff; display: none; }\r\n    .timing-window.active { display: block; animation: fadeIn 0.3s; }\r\n<\/style>\r\n\r\n<header>\r\n    <meta itemprop=\"headline\" content=\"Mastering Combat and Controls in Embers of the Uncrowned\" \/>\r\n    <meta itemprop=\"datePublished\" content=\"2026-06-09\" \/>\r\n    <meta itemprop=\"dateModified\" content=\"2026-06-09\" \/>\r\n    <p itemprop=\"description\">Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage, and get comfortable with keyboard, mouse, and controller controls. Includes interactive practice tools to build muscle memory fast.<\/p>\r\n<\/header>\r\n\r\n<main>\r\n<!-- ===================== INTRO SECTION ===================== -->\r\n<section id=\"intro\">\r\n    <h2><i class=\"fa fa-info-circle\"><\/i> Enter the Dance of Combat<\/h2>\r\n    <p>Embers of the Uncrowned builds its combat around three core actions: basic attacks for steady damage, skills for powerful effects and crowd control, and evasion to stay alive. Recovery potions keep you in the fight longer. Against bosses, two special systems shine. Interrupt skills stop devastating attacks before they land. Stagger turns a powerful foe into a helpless target for a short window of massive damage.<\/p>\r\n    <p>Whether you play with precise keyboard and mouse or an Xbox controller in beta, the fundamentals stay the same. This guide walks you through every mechanic with clear explanations and hands on practice tools so you can move from surviving fights to truly mastering them.<\/p>\r\n    \r\n    <img decoding=\"async\" src=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/evade-300x169.jpg\" data-large=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/evade.jpg\" alt=\"Embers of the Uncrowned evade mechanic in action with blue effects and on screen prompt\" class=\"centered-image\"\/>\r\n    <p style=\"text-align:center; font-style:italic; color:#aaa; margin-top:-10px;\">A perfectly timed evade creates breathing room and can even trigger special rewards.<\/p>\r\n<\/section>\r\n\r\n<!-- ===================== POTIONS SECTION ===================== -->\r\n<section id=\"potions\">\r\n    <h2><i class=\"fa fa-flask\"><\/i> Recovery Potions and Monuments of Life<\/h2>\r\n    <p>Your HP and MP potions are not unlimited. Smart players treat Monuments of Life as critical waypoints. These glowing pillars appear both inside your House Settlement and across the wider continent. Simply interact with one to refill your potion supply completely.<\/p>\r\n    \r\n    <p>Monsters offer another source. Every defeated enemy has a chance to restore a potion charge. Stronger foes give noticeably higher chances. When you are in a tough spot, your Bloodline Skill can also replenish potions. Destroying Elven Stakes scattered in the world provides yet another emergency refill option.<\/p>\r\n    \r\n    <img decoding=\"async\" src=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/monuments-of-life-300x169.jpg\" data-large=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/monuments-of-life.jpg\" alt=\"Monuments of Life glowing pillar in a stone settlement area\" class=\"centered-image\"\/>\r\n    \r\n    <div class=\"accordion\">\r\n        <i class=\"fa fa-chevron-down\"><\/i> Why Monuments Matter More Than You Think\r\n        <div class=\"tip-content hidden-content\">\r\n            <p>Always mark the nearest Monument on your mental map before engaging tough content. Many players get caught in long boss fights with empty potion slots because they ignored the refill point two minutes earlier. Make it a habit to top up after every major fight or before entering a new area.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n<\/section>\r\n\r\n<!-- ===================== EVADE SECTION ===================== -->\r\n<section id=\"evade\">\r\n    <h2><i class=\"fa fa-shield\"><\/i> The Art of Evasion and Perfect Dodges<\/h2>\r\n    <p>Pressing the spacebar makes your character dash forward in the direction they face while granting brief immunity to attacks. This is your primary survival tool. The SP gauge powers every evade. It contains multiple segments that refill automatically over time. Each evade consumes one segment, so you must manage the gauge carefully during long fights.<\/p>\r\n    \r\n    <p>When you evade an enemy attack at the exact right moment, the game registers a Perfect Dodge. This not only keeps you safe but often creates extra opportunities for damage or special effects. Good players learn enemy attack patterns so they can consistently land these perfect moments instead of simply spamming the spacebar.<\/p>\r\n    \r\n    <div class=\"sp-trainer\">\r\n        <h3 style=\"margin-top:0; text-align:center;\">Interactive SP Gauge Trainer<\/h3>\r\n        <p style=\"text-align:center; color:#aaa; font-size:14px;\">Click EVADE or press SPACE while focused here. Try to time it with the incoming attack for a Perfect Dodge!<\/p>\r\n        \r\n        <div class=\"sp-segments\" id=\"sp-segments\">\r\n            <!-- JS populates 6 segments -->\r\n        <\/div>\r\n        \r\n        <div style=\"text-align:center; margin:10px 0;\">\r\n            <span style=\"font-size:18px; font-weight:bold;\">SP: <span id=\"sp-current\">6<\/span>\/6<\/span>\r\n        <\/div>\r\n        \r\n        <div style=\"text-align:center;\">\r\n            <button id=\"evade-btn\" class=\"action-btn\"><i class=\"fa fa-shield\"><\/i> EVADE (Space)<\/button>\r\n            <button id=\"simulate-attack-btn\" class=\"action-btn\" style=\"background:#555;\"><i class=\"fa fa-bolt\"><\/i> Simulate Incoming Attack<\/button>\r\n        <\/div>\r\n        \r\n        <div id=\"timing-window\" class=\"timing-window\">\r\n            <strong style=\"color:#00d4ff;\">INCOMING ATTACK!<\/strong> Press EVADE now for a <span style=\"color:#ffeb3b; font-weight:bold;\">PERFECT DODGE<\/span>!\r\n            <div style=\"margin-top:8px; height:6px; background:#333; border-radius:3px; overflow:hidden;\">\r\n                <div id=\"timing-bar\" style=\"height:100%; width:100%; background:#00d4ff; transition: width linear;\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <div id=\"evade-feedback\" style=\"text-align:center; min-height:28px; font-weight:bold; margin-top:8px;\"><\/div>\r\n    <\/div>\r\n    \r\n    <p style=\"font-size:13px; color:#888; text-align:center;\">This simulator teaches timing and resource management. Perfect Dodges reward precise play.<\/p>\r\n<\/section>\r\n\r\n<!-- ===================== BOSS MECHANICS SECTION ===================== -->\r\n<section id=\"boss\">\r\n    <h2><i class=\"fa fa-bomb\"><\/i> Boss Battles: Interrupt Skills and Stagger<\/h2>\r\n    <p>Boss monsters periodically prepare powerful skills. A purple gauge appears at the bottom of the monster information UI while they wind up. This is your interrupt window. Any skill tagged with Interrupt can be used during this time to cancel the incoming attack and heavily reduce the boss Stagger gauge.<\/p>\r\n    \r\n    <p>Interrupt skills carry a purple diamond icon and the Interrupt tag in their description. Landing one successfully creates a major opening because it both stops the dangerous ability and advances the Stagger process.<\/p>\r\n    \r\n    <p>Every point of damage you deal slowly drains the boss Stagger gauge. Once it empties completely, the boss becomes Staggered for a short but extremely valuable window. During this time the boss cannot attack or use abilities. All your damage output spikes dramatically. Focus everything you have into this window.<\/p>\r\n    \r\n    <div class=\"combat-simulator\">\r\n        <h3 style=\"text-align:center; margin-top:0;\">Combat Mastery Simulator<\/h3>\r\n        <p style=\"text-align:center; color:#aaa; font-size:13px;\">Practice the full boss loop: build stagger, interrupt casts, and unload during the Staggered phase.<\/p>\r\n        \r\n        <div class=\"boss-area\">\r\n            <div style=\"margin-bottom:8px;\">\r\n                <strong>BOSS STAGGER GAUGE<\/strong>\r\n            <\/div>\r\n            <div class=\"stagger-bar-container\">\r\n                <div id=\"stagger-bar\" class=\"stagger-bar\" style=\"width:100%;\"><\/div>\r\n            <\/div>\r\n            <div id=\"boss-state\" style=\"margin-top:6px; font-weight:bold; color:#9c27b0;\">IDLE \u2014 Ready for combat<\/div>\r\n        <\/div>\r\n        \r\n        <div style=\"display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:15px 0;\">\r\n            <button id=\"basic-attack-btn\" class=\"action-btn\"><i class=\"fa fa-hand-rock-o\"><\/i> Basic Attack<\/button>\r\n            <button id=\"skill-attack-btn\" class=\"action-btn\"><i class=\"fa fa-magic\"><\/i> Skill (Interrupt)<\/button>\r\n            <button id=\"interrupt-btn\" class=\"action-btn\" disabled style=\"background:#7b1fa2;\"><i class=\"fa fa-bolt\"><\/i> INTERRUPT!<\/button>\r\n        <\/div>\r\n        \r\n        <div style=\"text-align:center; margin-bottom:10px;\">\r\n            <span style=\"color:#aaa;\">Damage during Stagger: <\/span>\r\n            <span id=\"stagger-damage\" style=\"color:#ffeb3b; font-weight:bold; font-size:18px;\">0<\/span>\r\n        <\/div>\r\n        \r\n        <div class=\"sim-log\" id=\"sim-log\"><\/div>\r\n        \r\n        <div style=\"text-align:center; margin-top:12px;\">\r\n            <button id=\"reset-sim-btn\" class=\"action-btn\" style=\"background:#555; padding:8px 20px; font-size:14px;\">Reset Encounter<\/button>\r\n        <\/div>\r\n    <\/div>\r\n<\/section>\r\n\r\n<!-- ===================== KEYBOARD CONTROLS SECTION ===================== -->\r\n<section id=\"keyboard\">\r\n    <h2><i class=\"fa fa-keyboard-o\"><\/i> Keyboard and Mouse Controls<\/h2>\r\n    <p>Embers of the Uncrowned is optimized for keyboard and mouse. The layout feels natural for most players coming from other action games. You can rebind almost every action in Settings \u2192 Controls \u2192 Keyboard. Some system keys cannot be changed.<\/p>\r\n    \r\n    <h3>Basic Movement and Camera<\/h3>\r\n    <table class=\"control-table\">\r\n        <thead>\r\n            <tr><th>Function<\/th><th>Hotkey<\/th><\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr><td>Move Forward<\/td><td><strong>W<\/strong><\/td><\/tr>\r\n            <tr><td>Move Backward<\/td><td><strong>S<\/strong><\/td><\/tr>\r\n            <tr><td>Move Left<\/td><td><strong>A<\/strong><\/td><\/tr>\r\n            <tr><td>Move Right<\/td><td><strong>D<\/strong><\/td><\/tr>\r\n            <tr><td>Basic Attack<\/td><td><strong>Left Click<\/strong><\/td><\/tr>\r\n            <tr><td>Rotate Camera<\/td><td><strong>Right Click<\/strong><\/td><\/tr>\r\n            <tr><td>Evade<\/td><td><strong>Space Bar<\/strong><\/td><\/tr>\r\n            <tr><td>Rotate Camera Left<\/td><td><strong>\u2190 Left Arrow<\/strong><\/td><\/tr>\r\n            <tr><td>Rotate Camera Right<\/td><td><strong>\u2192 Right Arrow<\/strong><\/td><\/tr>\r\n            <tr><td>Zoom In<\/td><td><strong>\u2191 Up Arrow<\/strong><\/td><\/tr>\r\n            <tr><td>Zoom Out<\/td><td><strong>\u2193 Down Arrow<\/strong><\/td><\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n    \r\n    <h3>Combat Skills and Items<\/h3>\r\n    <table class=\"control-table\">\r\n        <thead>\r\n            <tr><th>Function<\/th><th>Hotkey<\/th><\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr><td>Active Skill Slot 1<\/td><td><strong>Q<\/strong><\/td><\/tr>\r\n            <tr><td>Active Skill Slot 2<\/td><td><strong>E<\/strong><\/td><\/tr>\r\n            <tr><td>Active Skill Slot 3<\/td><td><strong>R<\/strong><\/td><\/tr>\r\n            <tr><td>Active Skill Slot 4<\/td><td><strong>T<\/strong><\/td><\/tr>\r\n            <tr><td>Active Skill Slot 5<\/td><td><strong>F<\/strong><\/td><\/tr>\r\n            <tr><td>Bloodline Skill Slot<\/td><td><strong>V<\/strong><\/td><\/tr>\r\n            <tr><td>Use HP Potion<\/td><td><strong>1<\/strong><\/td><\/tr>\r\n            <tr><td>Use MP Potion<\/td><td><strong>2<\/strong><\/td><\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n    \r\n    <div class=\"accordion\">\r\n        <i class=\"fa fa-chevron-down\"><\/i> Hotkey Customization Tips\r\n        <div class=\"tip-content hidden-content\">\r\n            <p>You can combine keys with Ctrl, Shift, or Alt for extra bindings. Many players put frequently used skills on easy to reach keys near WASD. Test your layout in safe areas before taking it into difficult content. The game remembers your custom bindings across sessions.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <!-- Keyboard Visualizer -->\r\n    <h3 style=\"margin-top:30px;\">Live Keyboard Visualizer<\/h3>\r\n    <p style=\"text-align:center; color:#aaa;\">Click any key below or toggle Live Practice Mode and press the real keys on your keyboard to see the action light up.<\/p>\r\n    \r\n    <div style=\"text-align:center; margin-bottom:10px;\">\r\n        <label style=\"cursor:pointer;\">\r\n            <input type=\"checkbox\" id=\"live-practice-toggle\"> Enable Live Practice Mode (press real keys)\r\n        <\/label>\r\n    <\/div>\r\n    \r\n    <div class=\"key-visualizer\" id=\"key-visualizer\">\r\n        <!-- Populated by JS -->\r\n    <\/div>\r\n    \r\n    <div id=\"key-action-display\" style=\"text-align:center; min-height:32px; font-weight:bold; color:#F44336; margin-top:8px;\"><\/div>\r\n<\/section>\r\n\r\n<!-- ===================== CONTROLLER SECTION ===================== -->\r\n<section id=\"controller\">\r\n    <h2><i class=\"fa fa-gamepad\"><\/i> Controller Support (Xbox Beta)<\/h2>\r\n    <p>The game offers partial controller support focused on Xbox controllers. Other controllers may work but are not officially supported yet. Chat and some menu functions still require a keyboard and mouse.<\/p>\r\n    \r\n    <p>The game automatically detects your input device and switches modes. When it sees controller input it switches to gamepad mode. Keyboard or mouse input switches it back. If both are detected at the same time, keyboard and mouse take priority.<\/p>\r\n    \r\n    <div class=\"state-toggle\">\r\n        <div id=\"state-character\" class=\"state-btn active\">Character Control State<\/div>\r\n        <div id=\"state-menu\" class=\"state-btn\">Menu Navigation State<\/div>\r\n    <\/div>\r\n    \r\n    <div id=\"controller-state-info\" style=\"background:#25252a; padding:15px; border-radius:8px; min-height:90px;\">\r\n        <p id=\"state-description\">In Character Control you move with the left stick and battle with face buttons and triggers. Press the Mouse Mode button to switch to Menu Navigation where the left stick controls the cursor.<\/p>\r\n    <\/div>\r\n    \r\n    <div class=\"accordion\" style=\"margin-top:15px;\">\r\n        <i class=\"fa fa-chevron-down\"><\/i> Controller Combo Actions\r\n        <div class=\"tip-content hidden-content\">\r\n            <ul style=\"margin:8px 0; padding-left:20px;\">\r\n                <li>LT + RT = Bloodline Skill<\/li>\r\n                <li>LT + X = HP Potion<\/li>\r\n                <li>LT + Y = MP Potion<\/li>\r\n                <li>LT + RS = Camera Zoom<\/li>\r\n                <li>Many quick slots are accessed by holding LT and pressing a face button or D pad direction<\/li>\r\n            <\/ul>\r\n            <p>Check Settings \u2192 Controls \u2192 Gamepad in game for the complete visual layout with every binding shown on the controller diagram.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n<\/section>\r\n\r\n<!-- ===================== TIPS SECTION ===================== -->\r\n<section id=\"tips\">\r\n    <h2><i class=\"fa fa-list\"><\/i> Pro Tips for Smoother Combat<\/h2>\r\n    <ul class=\"tips-list\">\r\n        <li class=\"accordion\">Always keep one eye on the purple interrupt gauge <i class=\"fa fa-chevron-down\"><\/i>\r\n            <div class=\"tip-content hidden-content\">Bosses telegraph big attacks clearly. The moment you see the purple bar start filling, get ready. Have an Interrupt skill ready on a comfortable key so you can react instantly.<\/div>\r\n        <\/li>\r\n        <li class=\"accordion\">Save at least one SP segment for emergencies <i class=\"fa fa-chevron-down\"><\/i>\r\n            <div class=\"tip-content hidden-content\">It is tempting to dodge every small attack. Smart players sometimes take minor chip damage so they have SP available when the boss uses a devastating ability that must be evaded.<\/div>\r\n        <\/li>\r\n        <li class=\"accordion\">Stagger windows are your damage amplifiers <i class=\"fa fa-chevron-down\"><\/i>\r\n            <div class=\"tip-content hidden-content\">Do not waste cooldowns right before a stagger. Time your biggest skills to land the moment the boss becomes vulnerable. The damage difference is massive.<\/div>\r\n        <\/li>\r\n        <li class=\"accordion\">Practice in safe zones first <i class=\"fa fa-chevron-down\"><\/i>\r\n            <div class=\"tip-content hidden-content\">Use the interactive tools in this guide and the in game training dummies or low level mobs to build muscle memory before you attempt difficult content.<\/div>\r\n        <\/li>\r\n    <\/ul>\r\n<\/section>\r\n\r\n<!-- ===================== PRACTICE SUMMARY ===================== -->\r\n<section id=\"summary\">\r\n    <h2><i class=\"fa fa-flag-checkered\"><\/i> Your Path to Combat Mastery<\/h2>\r\n    <p>Combat in Embers of the Uncrowned rewards players who understand timing over players who simply press buttons faster. The evade system, interrupt windows, and stagger phases create a rich rhythm once you internalize the patterns.<\/p>\r\n    \r\n    <p>Use the interactive simulators above until the muscle memory feels natural. Then take that confidence into real fights. Every Perfect Dodge and every successful stagger window will feel incredibly satisfying.<\/p>\r\n    \r\n    <div style=\"background:#25252a; padding:20px; border-radius:10px; margin:25px 0; text-align:center;\">\r\n        <p style=\"margin:0 0 12px 0; font-size:18px;\">Ready to test your timing?<\/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>Have you landed your first Perfect Dodge in Embers of the Uncrowned?<\/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=\"eotu-perfect-dodge\"]') || 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\/eotu\/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','eotu-perfect-dodge');\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    \r\n    <p style=\"text-align:center; color:#888;\">The battlefield awaits. Move with purpose, time your actions, and turn every boss into a staggering opportunity.<\/p>\r\n<\/section>\r\n\r\n<\/main>\r\n\r\n<footer>\r\n    <p><strong>Disclaimer:<\/strong> This guide reflects game mechanics current as of June 2026. Future patches may adjust timings, SP costs, or interrupt windows. Always verify the latest behavior in game and check the official patch notes.<\/p>\r\n<\/footer>\r\n\r\n<div id=\"lightbox-overlay\"><\/div>\r\n\r\n<!-- ===================== JS BEHAVIOR ===================== -->\r\n<script src=\"https:\/\/gamingwithdaopa.ellatha.com\/media\/evefrontier\/chart.js\"><\/script>\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    \/\/ Reveal Animation\r\n    const sections = document.querySelectorAll('section');\r\n    const observer = new IntersectionObserver(entries => {\r\n        entries.forEach(entry => {\r\n            if(entry.isIntersecting) entry.target.classList.add('visible');\r\n        });\r\n    }, { threshold: 0.1 });\r\n    sections.forEach(section => observer.observe(section));\r\n    \r\n    \/\/ Accordion with keyboard support\r\n    document.querySelectorAll('.accordion').forEach(el => {\r\n        const toggle = () => {\r\n            const box = el.querySelector('.tip-content');\r\n            el.classList.toggle('active');\r\n            if (box) box.style.display = box.style.display === 'block' ? 'none' : 'block';\r\n        };\r\n        el.addEventListener('click', toggle);\r\n        el.addEventListener('keydown', (e) => {\r\n            if (e.key === 'Enter' || e.key === ' ') {\r\n                e.preventDefault();\r\n                toggle();\r\n            }\r\n        });\r\n        el.setAttribute('tabindex', '0');\r\n    });\r\n    \r\n    \/\/ Lightbox\r\n    const lb = document.getElementById('lightbox-overlay');\r\n    if (lb) {\r\n        document.querySelectorAll('.centered-image').forEach(img => {\r\n            img.addEventListener('click', () => {\r\n                lb.innerHTML = '';\r\n                const image = document.createElement('img');\r\n                image.src = img.dataset.large;\r\n                image.alt = img.alt || 'Expanded view';\r\n                image.style.maxWidth = '92%';\r\n                image.style.maxHeight = '92%';\r\n                image.style.borderRadius = '10px';\r\n                image.style.boxShadow = '0 0 30px rgba(0,0,0,0.6)';\r\n                lb.appendChild(image);\r\n                lb.style.display = 'flex';\r\n            });\r\n        });\r\n        lb.addEventListener('click', () => {\r\n            lb.style.display = 'none';\r\n            lb.innerHTML = '';\r\n        });\r\n    }\r\n    \r\n    \/\/ ========== SP GAUGE TRAINER (Fully WordPress-safe - no &&) ==========\r\n    const spContainer = document.getElementById('sp-segments');\r\n    const spCurrentEl = document.getElementById('sp-current');\r\n    const evadeBtn = document.getElementById('evade-btn');\r\n    const simulateBtn = document.getElementById('simulate-attack-btn');\r\n    const timingWindow = document.getElementById('timing-window');\r\n    const timingBar = document.getElementById('timing-bar');\r\n    const evadeFeedback = document.getElementById('evade-feedback');\r\n    \r\n    let currentSP = 6;\r\n    let maxSP = 6;\r\n    let rechargeInterval = null;\r\n    let attackWindowActive = false;\r\n    \r\n    function updateSPDisplay() {\r\n        if (spCurrentEl) spCurrentEl.textContent = currentSP;\r\n        if (!spContainer) return;\r\n        spContainer.innerHTML = '';\r\n        for (let i = 0; i < maxSP; i++) {\r\n            const seg = document.createElement('div');\r\n            seg.className = 'sp-segment';\r\n            if (i < currentSP) {\r\n                seg.classList.add('active');\r\n            } else {\r\n                seg.classList.add('consumed');\r\n            }\r\n            spContainer.appendChild(seg);\r\n        }\r\n    }\r\n    \r\n    function consumeSP(amount) {\r\n        if (amount === undefined) amount = 1;\r\n        if (currentSP >= amount) {\r\n            currentSP -= amount;\r\n            updateSPDisplay();\r\n            return true;\r\n        }\r\n        if (evadeFeedback) {\r\n            evadeFeedback.innerHTML = '<span style=\"color:#f44336;\">Not enough SP!<\/span>';\r\n            setTimeout(function() { if (evadeFeedback) evadeFeedback.innerHTML = ''; }, 1200);\r\n        }\r\n        return false;\r\n    }\r\n    \r\n    function rechargeSP() {\r\n        if (currentSP < maxSP) {\r\n            currentSP++;\r\n            updateSPDisplay();\r\n        }\r\n    }\r\n    \r\n    function startRecharge() {\r\n        if (rechargeInterval) clearInterval(rechargeInterval);\r\n        rechargeInterval = setInterval(function() {\r\n            if (currentSP < maxSP) {\r\n                if (!attackWindowActive) {\r\n                    rechargeSP();\r\n                }\r\n            }\r\n        }, 1800);\r\n    }\r\n    \r\n    function performEvade(isPerfect) {\r\n        if (isPerfect === undefined) isPerfect = false;\r\n        \r\n        if (!consumeSP(1)) return;\r\n        \r\n        if (isPerfect) {\r\n            if (evadeFeedback) evadeFeedback.innerHTML = '<span style=\"color:#00d4ff; font-size:18px;\">\u2605 PERFECT DODGE! \u2605<\/span>';\r\n            setTimeout(function() {\r\n                if (currentSP < maxSP) {\r\n                    currentSP = Math.min(maxSP, currentSP + 1);\r\n                    updateSPDisplay();\r\n                }\r\n            }, 400);\r\n        } else {\r\n            if (evadeFeedback) evadeFeedback.innerHTML = '<span style=\"color:#4caf50;\">Evaded!<\/span>';\r\n        }\r\n        \r\n        if (evadeBtn) {\r\n            evadeBtn.style.transform = 'scale(0.9)';\r\n            setTimeout(function() { if (evadeBtn) evadeBtn.style.transform = ''; }, 120);\r\n        }\r\n        \r\n        setTimeout(function() {\r\n            if (evadeFeedback) evadeFeedback.innerHTML = '';\r\n        }, 1400);\r\n    }\r\n    \r\n    if (spContainer) {\r\n        updateSPDisplay();\r\n        startRecharge();\r\n    }\r\n    \r\n    if (evadeBtn) {\r\n        evadeBtn.addEventListener('click', function() { performEvade(false); });\r\n    }\r\n    \r\n    \/\/ WordPress-safe version - no && operator\r\n    document.addEventListener('keydown', function(e) {\r\n        if (e.key === ' ') {\r\n            if (document.activeElement.tagName === 'BODY') {\r\n                const evadeSection = document.getElementById('evade');\r\n                if (evadeSection) {\r\n                    if (evadeSection.getBoundingClientRect().top < window.innerHeight) {\r\n                        if (evadeSection.getBoundingClientRect().bottom > 0) {\r\n                            e.preventDefault();\r\n                            performEvade(false);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    });\r\n    \r\n    \/\/ Simulate attack timing window\r\n    if (simulateBtn && evadeBtn && timingWindow && timingBar) {\r\n        simulateBtn.addEventListener('click', function() {\r\n            if (attackWindowActive) return;\r\n            attackWindowActive = true;\r\n            timingWindow.style.display = 'block';\r\n            timingWindow.classList.add('active');\r\n            timingBar.style.transition = 'none';\r\n            timingBar.style.width = '100%';\r\n            \r\n            void timingBar.offsetWidth;\r\n            timingBar.style.transition = 'width 850ms linear';\r\n            timingBar.style.width = '0%';\r\n            \r\n            const closeWindow = function() {\r\n                timingWindow.style.display = 'none';\r\n                timingWindow.classList.remove('active');\r\n                attackWindowActive = false;\r\n                if (evadeFeedback) evadeFeedback.innerHTML = '<span style=\"color:#888;\">Attack missed you!<\/span>';\r\n                setTimeout(function() { if (evadeFeedback) evadeFeedback.innerHTML = ''; }, 900);\r\n            };\r\n            \r\n            const perfectWindowTimeout = setTimeout(function() {\r\n                if (attackWindowActive) closeWindow();\r\n            }, 900);\r\n            \r\n            const handlePerfect = function() {\r\n                clearTimeout(perfectWindowTimeout);\r\n                timingWindow.style.display = 'none';\r\n                timingWindow.classList.remove('active');\r\n                attackWindowActive = false;\r\n                performEvade(true);\r\n            };\r\n            \r\n            evadeBtn.addEventListener('click', handlePerfect, { once: true });\r\n            \r\n            const handleSpacePerfect = function(ev) {\r\n                if (ev.key === ' ') {\r\n                    if (attackWindowActive) {\r\n                        ev.preventDefault();\r\n                        clearTimeout(perfectWindowTimeout);\r\n                        timingWindow.style.display = 'none';\r\n                        timingWindow.classList.remove('active');\r\n                        attackWindowActive = false;\r\n                        performEvade(true);\r\n                        document.removeEventListener('keydown', handleSpacePerfect);\r\n                    }\r\n                }\r\n            };\r\n            document.addEventListener('keydown', handleSpacePerfect, { once: true });\r\n        });\r\n    }\r\n    \r\n    \/\/ ========== COMBAT SIMULATOR ==========\r\n    const staggerBar = document.getElementById('stagger-bar');\r\n    const bossState = document.getElementById('boss-state');\r\n    const basicBtn = document.getElementById('basic-attack-btn');\r\n    const skillBtn = document.getElementById('skill-attack-btn');\r\n    const interruptBtn = document.getElementById('interrupt-btn');\r\n    const resetBtn = document.getElementById('reset-sim-btn');\r\n    const simLog = document.getElementById('sim-log');\r\n    const staggerDamageEl = document.getElementById('stagger-damage');\r\n    \r\n    let staggerPercent = 100;\r\n    let isStaggered = false;\r\n    let isCasting = false;\r\n    let staggerDamage = 0;\r\n    let castTimeout = null;\r\n    \r\n    function addLog(message, type) {\r\n        if (type === undefined) type = '';\r\n        if (!simLog) return;\r\n        const entry = document.createElement('div');\r\n        entry.className = 'log-entry ' + type;\r\n        entry.textContent = message;\r\n        simLog.appendChild(entry);\r\n        simLog.scrollTop = simLog.scrollHeight;\r\n        while (simLog.children.length > 8) {\r\n            simLog.removeChild(simLog.children[0]);\r\n        }\r\n    }\r\n    \r\n    function updateStaggerBar() {\r\n        if (!staggerBar) return;\r\n        staggerBar.style.width = staggerPercent + '%';\r\n        if (isStaggered) {\r\n            staggerBar.classList.add('staggered');\r\n        } else {\r\n            staggerBar.classList.remove('staggered');\r\n        }\r\n    }\r\n    \r\n    function updateBossState(text, color) {\r\n        if (color === undefined) color = '#9c27b0';\r\n        if (bossState) {\r\n            bossState.textContent = text;\r\n            bossState.style.color = color;\r\n        }\r\n    }\r\n    \r\n    function createDamagePop(text, color) {\r\n        if (color === undefined) color = '#ffeb3b';\r\n        const pop = document.createElement('div');\r\n        pop.className = 'dmg-pop';\r\n        pop.textContent = text;\r\n        pop.style.color = color;\r\n        const area = document.querySelector('.boss-area');\r\n        if (area) {\r\n            area.style.position = 'relative';\r\n            area.appendChild(pop);\r\n            setTimeout(function() { pop.remove(); }, 900);\r\n        }\r\n    }\r\n    \r\n    function dealDamage(amount, isDuringStagger) {\r\n        if (isDuringStagger === undefined) isDuringStagger = false;\r\n        \r\n        if (isDuringStagger) {\r\n            amount = Math.floor(amount * 2.2);\r\n            staggerDamage += amount;\r\n            if (staggerDamageEl) staggerDamageEl.textContent = staggerDamage;\r\n            createDamagePop('+' + amount, '#ffeb3b');\r\n            addLog('STAGGER BONUS! ' + amount + ' damage', 'log-stagger');\r\n        } else {\r\n            createDamagePop(amount);\r\n            addLog('Dealt ' + amount + ' damage', 'log-damage');\r\n        }\r\n        \r\n        const reduction = isDuringStagger ? amount * 0.8 : amount * 1.1;\r\n        staggerPercent = Math.max(0, staggerPercent - reduction);\r\n        updateStaggerBar();\r\n        \r\n        if (staggerPercent <= 0) {\r\n            if (!isStaggered) {\r\n                triggerStagger();\r\n            }\r\n        }\r\n    }\r\n    \r\n    function triggerStagger() {\r\n        isStaggered = true;\r\n        updateStaggerBar();\r\n        updateBossState('STAGGERED! Focus damage now!', '#ffeb3b');\r\n        addLog('BOSS STAGGERED! 5 second window open!', 'log-stagger');\r\n        \r\n        setTimeout(function() {\r\n            if (isStaggered) {\r\n                isStaggered = false;\r\n                staggerPercent = 100;\r\n                updateStaggerBar();\r\n                updateBossState('IDLE \u2014 Ready for combat', '#9c27b0');\r\n                addLog('Stagger phase ended. Boss recovered.', '');\r\n                if (staggerDamageEl) staggerDamageEl.textContent = '0';\r\n                staggerDamage = 0;\r\n            }\r\n        }, 5000);\r\n    }\r\n    \r\n    function startBossCast() {\r\n        if (isCasting || isStaggered) return;\r\n        isCasting = true;\r\n        updateBossState('CASTING POWERFUL SKILL!', '#e91e63');\r\n        addLog('Boss preparing big attack! Interrupt now!', '');\r\n        if (interruptBtn) {\r\n            interruptBtn.disabled = false;\r\n            interruptBtn.style.background = '#9c27b0';\r\n        }\r\n        \r\n        castTimeout = setTimeout(function() {\r\n            if (isCasting) {\r\n                isCasting = false;\r\n                if (interruptBtn) {\r\n                    interruptBtn.disabled = true;\r\n                    interruptBtn.style.background = '#555';\r\n                }\r\n                updateBossState('Attack landed! (simulated)', '#f44336');\r\n                addLog('Boss attack resolved. You took damage.', '');\r\n                setTimeout(function() {\r\n                    if (!isStaggered) updateBossState('IDLE \u2014 Ready for combat', '#9c27b0');\r\n                }, 1400);\r\n            }\r\n        }, 2200);\r\n    }\r\n    \r\n    function performInterrupt() {\r\n        if (!isCasting) {\r\n            addLog('No cast to interrupt right now.', '');\r\n            return;\r\n        }\r\n        clearTimeout(castTimeout);\r\n        isCasting = false;\r\n        if (interruptBtn) {\r\n            interruptBtn.disabled = true;\r\n            interruptBtn.style.background = '#555';\r\n        }\r\n        \r\n        staggerPercent = Math.max(0, staggerPercent - 45);\r\n        updateStaggerBar();\r\n        updateBossState('INTERRUPT SUCCESSFUL!', '#00d4ff');\r\n        addLog('INTERRUPT! Stagger greatly reduced.', 'log-perfect');\r\n        \r\n        if (staggerPercent <= 0) {\r\n            if (!isStaggered) {\r\n                triggerStagger();\r\n            }\r\n        } else {\r\n            setTimeout(function() {\r\n                if (!isStaggered) updateBossState('IDLE \u2014 Ready for combat', '#9c27b0');\r\n            }, 1200);\r\n        }\r\n        \r\n        setTimeout(function() {\r\n            if (!isStaggered) {\r\n                if (!isCasting) {\r\n                    if (Math.random() > 0.4) {\r\n                        startBossCast();\r\n                    }\r\n                }\r\n            }\r\n        }, 1600);\r\n    }\r\n    \r\n    if (basicBtn) {\r\n        basicBtn.addEventListener('click', function() {\r\n            const dmg = isStaggered ? 18 : 8;\r\n            dealDamage(dmg, isStaggered);\r\n            if (!isCasting) {\r\n                if (!isStaggered) {\r\n                    if (Math.random() > 0.65) {\r\n                        setTimeout(startBossCast, 600);\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    }\r\n    \r\n    if (skillBtn) {\r\n        skillBtn.addEventListener('click', function() {\r\n            const dmg = isStaggered ? 32 : 14;\r\n            dealDamage(dmg, isStaggered);\r\n            if (!isCasting) {\r\n                if (!isStaggered) {\r\n                    setTimeout(startBossCast, 450);\r\n                }\r\n            }\r\n        });\r\n    }\r\n    \r\n    if (interruptBtn) {\r\n        interruptBtn.addEventListener('click', performInterrupt);\r\n    }\r\n    \r\n    if (resetBtn) {\r\n        resetBtn.addEventListener('click', function() {\r\n            staggerPercent = 100;\r\n            isStaggered = false;\r\n            isCasting = false;\r\n            staggerDamage = 0;\r\n            if (castTimeout) clearTimeout(castTimeout);\r\n            updateStaggerBar();\r\n            updateBossState('IDLE \u2014 Ready for combat', '#9c27b0');\r\n            if (staggerDamageEl) staggerDamageEl.textContent = '0';\r\n            if (simLog) simLog.innerHTML = '';\r\n            if (interruptBtn) {\r\n                interruptBtn.disabled = true;\r\n                interruptBtn.style.background = '#555';\r\n            }\r\n            addLog('Encounter reset. Good luck!', '');\r\n        });\r\n    }\r\n    \r\n    if (simLog) {\r\n        setTimeout(function() {\r\n            addLog('Click Basic Attack or Skill to begin. Watch for cast windows!', '');\r\n        }, 600);\r\n    }\r\n    \r\n    \/\/ ========== KEYBOARD VISUALIZER ==========\r\n    const keyVisualizer = document.getElementById('key-visualizer');\r\n    const keyActionDisplay = document.getElementById('key-action-display');\r\n    const liveToggle = document.getElementById('live-practice-toggle');\r\n    \r\n    const keyMap = [\r\n        {key: 'W', action: 'Move Forward'},\r\n        {key: 'A', action: 'Move Left'},\r\n        {key: 'S', action: 'Move Backward'},\r\n        {key: 'D', action: 'Move Right'},\r\n        {key: 'SPACE', action: 'Evade'},\r\n        {key: 'Q', action: 'Skill Slot 1'},\r\n        {key: 'E', action: 'Skill Slot 2'},\r\n        {key: 'R', action: 'Skill Slot 3'},\r\n        {key: 'T', action: 'Skill Slot 4'},\r\n        {key: 'F', action: 'Skill Slot 5'},\r\n        {key: 'V', action: 'Bloodline Skill'},\r\n        {key: '1', action: 'HP Potion'},\r\n        {key: '2', action: 'MP Potion'},\r\n        {key: '\u2190', action: 'Camera Left'},\r\n        {key: '\u2192', action: 'Camera Right'},\r\n        {key: '\u2191', action: 'Zoom In'},\r\n        {key: '\u2193', action: 'Zoom Out'},\r\n    ];\r\n    \r\n    let liveKeydownHandler = null;\r\n    \r\n    function createKeyCaps() {\r\n        if (!keyVisualizer) return;\r\n        keyVisualizer.innerHTML = '';\r\n        keyMap.forEach(function(item) {\r\n            const cap = document.createElement('div');\r\n            cap.className = 'key-cap';\r\n            cap.innerHTML = item.key + '<span class=\"key-label\">' + item.action + '<\/span>';\r\n            cap.dataset.key = item.key;\r\n            cap.dataset.action = item.action;\r\n            \r\n            cap.addEventListener('click', function() {\r\n                cap.classList.add('pressed');\r\n                setTimeout(function() { cap.classList.remove('pressed'); }, 280);\r\n                if (keyActionDisplay) {\r\n                    keyActionDisplay.textContent = item.action;\r\n                    setTimeout(function() {\r\n                        if (keyActionDisplay && keyActionDisplay.textContent === item.action) keyActionDisplay.textContent = '';\r\n                    }, 1600);\r\n                }\r\n            });\r\n            \r\n            keyVisualizer.appendChild(cap);\r\n        });\r\n    }\r\n    \r\n    createKeyCaps();\r\n    \r\n    function enableLivePractice() {\r\n        if (liveKeydownHandler) return;\r\n        liveKeydownHandler = function(e) {\r\n            let pressedKey = e.key.toUpperCase();\r\n            if (pressedKey === ' ') pressedKey = 'SPACE';\r\n            if (pressedKey === 'ARROWLEFT') pressedKey = '\u2190';\r\n            if (pressedKey === 'ARROWRIGHT') pressedKey = '\u2192';\r\n            if (pressedKey === 'ARROWUP') pressedKey = '\u2191';\r\n            if (pressedKey === 'ARROWDOWN') pressedKey = '\u2193';\r\n            \r\n            const matchingCap = document.querySelector('.key-cap[data-key=\"' + pressedKey + '\"]');\r\n            if (matchingCap) {\r\n                matchingCap.classList.add('pressed');\r\n                setTimeout(function() { matchingCap.classList.remove('pressed'); }, 280);\r\n                \r\n                const action = matchingCap.dataset.action;\r\n                if (keyActionDisplay) {\r\n                    keyActionDisplay.textContent = action;\r\n                    setTimeout(function() {\r\n                        if (keyActionDisplay && keyActionDisplay.textContent === action) keyActionDisplay.textContent = '';\r\n                    }, 1600);\r\n                }\r\n                \r\n                if (pressedKey === 'SPACE' && evadeBtn) {\r\n                    const evadeSection = document.getElementById('evade');\r\n                    if (evadeSection) {\r\n                        if (evadeSection.getBoundingClientRect().top < window.innerHeight) {\r\n                            if (evadeSection.getBoundingClientRect().bottom > 0) {\r\n                                performEvade(false);\r\n                            }\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        };\r\n        document.addEventListener('keydown', liveKeydownHandler);\r\n    }\r\n    \r\n    function disableLivePractice() {\r\n        if (liveKeydownHandler) {\r\n            document.removeEventListener('keydown', liveKeydownHandler);\r\n            liveKeydownHandler = null;\r\n        }\r\n    }\r\n    \r\n    if (liveToggle) {\r\n        liveToggle.addEventListener('change', function() {\r\n            if (this.checked) {\r\n                enableLivePractice();\r\n                if (keyActionDisplay) keyActionDisplay.textContent = 'Live mode active \u2014 press keys!';\r\n                setTimeout(function() {\r\n                    if (keyActionDisplay && keyActionDisplay.textContent && keyActionDisplay.textContent.includes('Live mode')) keyActionDisplay.textContent = '';\r\n                }, 2200);\r\n            } else {\r\n                disableLivePractice();\r\n            }\r\n        });\r\n    }\r\n    \r\n    \/\/ ========== CONTROLLER STATE TOGGLE ==========\r\n    const stateChar = document.getElementById('state-character');\r\n    const stateMenu = document.getElementById('state-menu');\r\n    const stateDesc = document.getElementById('state-description');\r\n    \r\n    function setControllerState(isCharacter) {\r\n        if (stateChar && stateMenu) {\r\n            if (isCharacter) {\r\n                stateChar.classList.add('active');\r\n                stateMenu.classList.remove('active');\r\n                if (stateDesc) stateDesc.innerHTML = 'In <strong>Character Control<\/strong> you move with the left stick and battle with face buttons and triggers. Press the Mouse Mode button to switch to menu navigation.';\r\n            } else {\r\n                stateChar.classList.remove('active');\r\n                stateMenu.classList.add('active');\r\n                if (stateDesc) stateDesc.innerHTML = 'In <strong>Menu Navigation<\/strong> the left stick controls the cursor. Useful for inventory, map, and dialogue. Press Mouse Mode again to return to character control.';\r\n            }\r\n        }\r\n    }\r\n    \r\n    if (stateChar) stateChar.addEventListener('click', function() { setControllerState(true); });\r\n    if (stateMenu) stateMenu.addEventListener('click', function() { setControllerState(false); });\r\n    \r\n    setControllerState(true);\r\n    \r\n    \/\/ Easter egg\r\n    const headerArea = document.querySelector('#custom-article header');\r\n    if (headerArea) {\r\n        headerArea.addEventListener('click', function() {\r\n            headerArea.style.transition = 'transform 0.4s';\r\n            headerArea.style.transform = 'scale(1.015)';\r\n            setTimeout(function() { headerArea.style.transform = ''; }, 420);\r\n        });\r\n    }\r\n});\r\n<\/script>\r\n<\/article>\r\n","protected":false},"excerpt":{"rendered":"<p>Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage, and get comfortable with keyboard, mouse, and controller controls. Includes interactive practice tools to build muscle memory fast. Enter the Dance of Combat Embers of the Uncrowned builds its combat [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3,2],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-combat-builds","category-faqs","category-guides"],"yoast_head":"<!-- Meta Tags -->\r\n<title>Combat and Controls in Embers of the Uncrowned<\/title>\r\n<meta name=\"description\" content=\"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,\" \/>\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\/eotu\/combat-and-controls\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Combat and Controls in Embers of the Uncrowned\" \/>\r\n<meta property=\"og:description\" content=\"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Embers of the Uncrowned\" \/>\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=\"2026-06-09T22:57:06+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-06-10T10:56:20+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.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=\"7 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\"},\"author\":{\"name\":\"daopa\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"headline\":\"Combat and Controls in Embers of the Uncrowned\",\"datePublished\":\"2026-06-09T22:57:06+00:00\",\"dateModified\":\"2026-06-10T10:56:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\"},\"wordCount\":1335,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg\",\"articleSection\":[\"Combat &amp; Builds\",\"FAQs\",\"Guides\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\",\"name\":\"Combat and Controls in Embers of the Uncrowned\",\"isPartOf\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg\",\"datePublished\":\"2026-06-09T22:57:06+00:00\",\"dateModified\":\"2026-06-10T10:56:20+00:00\",\"description\":\"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,\",\"breadcrumb\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg\",\"width\":400,\"height\":263,\"caption\":\"embers of the uncrowned combat and controls\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Combat and Controls in Embers of the Uncrowned\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#website\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/\",\"name\":\"Embers of the Uncrowned\",\"description\":\"Embers of the Uncrowned EOTU Guide &amp; Fansite by DaOpa. Pro builds, class guides, House &amp; companion strategies for Nexon&#039;s dark fantasy MMORPG.\",\"publisher\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\"},\"alternateName\":\"eotu\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/?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\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638\",\"name\":\"daopa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/DaOpa.png\",\"contentUrl\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/DaOpa.png\",\"width\":1087,\"height\":1604,\"caption\":\"daopa\"},\"logo\":{\"@id\":\"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/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\/eotu\/author\/daopa\/\"}]}<\/script>","yoast_head_json":{"title":"Combat and Controls in Embers of the Uncrowned","description":"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,","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\/eotu\/combat-and-controls\/","og_locale":"en_US","og_type":"article","og_title":"Combat and Controls in Embers of the Uncrowned","og_description":"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,","og_url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/","og_site_name":"Embers of the Uncrowned","article_publisher":"facebook.com\/gamingwithdaopa\/","article_author":"facebook.com\/gamingwithdaopa\/","article_published_time":"2026-06-09T22:57:06+00:00","article_modified_time":"2026-06-10T10:56:20+00:00","og_image":[{"width":400,"height":263,"url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.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":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#article","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/"},"author":{"name":"daopa","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"headline":"Combat and Controls in Embers of the Uncrowned","datePublished":"2026-06-09T22:57:06+00:00","dateModified":"2026-06-10T10:56:20+00:00","mainEntityOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/"},"wordCount":1335,"commentCount":0,"publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg","articleSection":["Combat &amp; Builds","FAQs","Guides"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/","name":"Combat and Controls in Embers of the Uncrowned","isPartOf":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage"},"image":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage"},"thumbnailUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg","datePublished":"2026-06-09T22:57:06+00:00","dateModified":"2026-06-10T10:56:20+00:00","description":"Learn the core combat loop of Embers of the Uncrowned. Master evasion with the SP gauge, interrupt boss skills, trigger stagger phases for massive damage,","breadcrumb":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#primaryimage","url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/embers-of-the-uncrowned-combat-and-controls.jpg","width":400,"height":263,"caption":"embers of the uncrowned combat and controls"},{"@type":"BreadcrumbList","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/combat-and-controls\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/"},{"@type":"ListItem","position":2,"name":"Combat and Controls in Embers of the Uncrowned"}]},{"@type":"WebSite","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#website","url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/","name":"Embers of the Uncrowned","description":"Embers of the Uncrowned EOTU Guide &amp; Fansite by DaOpa. Pro builds, class guides, House &amp; companion strategies for Nexon&#039;s dark fantasy MMORPG.","publisher":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638"},"alternateName":"eotu","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/?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\/eotu\/#\/schema\/person\/fb03a927907d90f409fac550ba375638","name":"daopa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/schema\/person\/image\/","url":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/DaOpa.png","contentUrl":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-content\/uploads\/sites\/43\/2026\/06\/DaOpa.png","width":1087,"height":1604,"caption":"daopa"},"logo":{"@id":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/#\/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\/eotu\/author\/daopa\/"}]}},"_links":{"self":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":4,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":118,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/posts\/90\/revisions\/118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/media\/100"}],"wp:attachment":[{"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamingwithdaopa.ellatha.com\/eotu\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}