Gotham Knights brings a fair number of fun combat mechanics to the table, which, when mastered, can make the title’s endgame progression significantly easier.
Some of the more challenging encounters in the game, along with the boss fights, can be quite difficult, especially for those new to the Arkham franchise, and WB Games have made it so that players have enough tools at their disposal to make the game highly versatile in the combat aspect.
One such fun combat mechanic to pull off in Gotham Knights is the Perfect Dodge and the Perfect Attack.
Perfect Attack/Dodge is one of the most efficient ways to deal with mobs and more challenging foes later on in the game. However, it’s not all that easy to pull off.
It takes a fair amount of practice and knowledge to complete this combat feature perfectly. However, the investment is well worth it, as it’s one of the most fun mechanics to pull off in the game.
There are a few nuances to implementing Perfect Dodge and Perfect Attack in Gotham Knights, and today’s guide will go over how you can efficiently execute them in the game.
Perfect Dodge and Perfect Attack are part of the same attack string but are executed a little bit differently. However, to perform them, you will first need to unlock them from the Gear Tab, which can be found in the in-game menu under Skills.
Perfect Dodging in the game is all about baiting an enemy melee attack and dodging it right before the hit lands. This will help the character you are playing evade the incoming attack in a different manner than usual.
To be able to execute it, you will be required to,
You will know when a Perfect Dodge happens in Gotham Knights when the character dashes out of harm's way much faster than usual.
Once you have mastered the Perfect Dodge, landing a Perfect Attack becomes child’s play. A Perfect Attack can only be landed on an enemy when you have been able to Perfectly Dodge their melee attacks.
To be able to land one in the game, you will need to,
Perfect Dodge and Perfect Attack in Gotham Knights is one of the best ways to take care of a mob or takedown a challenging boss without breaking a sweat, as it allows you to continuously rack up damage and momentum.
Quick Links
More from Sportskeeda
" modalPopup.closeOnEsc = false; modalPopup.setHeader("Why did you not like this content?"); modalPopup.setContentText(modalText); modalPopup.addCancelOkButton("Submit", resetRatingAndFeedbackForm, sendRating); modalPopup.removeCloseModalIcon(); modalPopup.disableDismissPopup(); modalPopup.open(); } else { sendRating(index); } } function sendRating() { var requestPayload = { "post_id": 1269393, "rating_value": ratingValue } if (ratingValue > 3) { requestPayload.rating_feedback_type = null; requestPayload.rating_feedback = null; } else { if (!$('input[name="drone"]:checked') || !$('input[name="drone"]:checked').value) { showErrorMessage('option'); return; } if (!$(".post-rating-feedback-note textarea") || !$(".post-rating-feedback-note textarea").value) { showErrorMessage('note'); return; } var selectedOption = $('input[name="drone"]:checked').value; var feedbackNote = $(".post-rating-feedback-note textarea").value; requestPayload.rating_feedback_type = selectedOption; requestPayload.rating_feedback = feedbackNote; } pureJSAjaxPost(addratingAPI, requestPayload, onsaveRatingSuccess, onsaveRatingFail, function() {}, true); } function resetRatingAndFeedbackForm() { var activeStars = Array.from($all('.rating span.rating-star.active')); for (var i=0; i < activeStars.length; i++) { activeStars[i].classList.remove("active"); } if ($('input[name="drone"]:checked')) { $('input[name="drone"]:checked').checked = false; } var userNote = document.querySelector(".post-rating-feedback-note textarea"); userNote.value = ''; modalPopup.close(); } function onsaveRatingSuccess() { modalPopup.close(); savePostIdInUserRatedPostsCookie(); $("#post-rating-layout").classList.add("hidden"); $("#post-rating-message").classList.remove("hidden"); window.setInterval(function showMessage() { $("#post-rating-widget").classList.add("hidden"); }, 3000); } function onsaveRatingFail() { console.error('Saving post rating failed!'); modalPopup.close(); } function savePostIdInUserRatedPostsCookie() { userRatedPostIds.push(1269393); var expiryTime = new Date(); expiryTime.setMonth(expiryTime.getMonth() + 12); // Expiry after 1 year setCookie("user_rated_post_ids", JSON.stringify(userRatedPostIds), expiryTime); } function isPostRatedByUser() { var userRatedPostIds = getCookie('user_rated_post_ids'); if (userRatedPostIds) { try { userRatedPostIds = JSON.parse(userRatedPostIds); } catch (err) { console.error(err); return false; } } else { return false; } if(userRatedPostIds.indexOf(1269393) >= 0) { return true; } else { return false; } } function getRatingCountByPostId(postId) { return new Promise(function(resolve, reject) { pureJSAjaxGet( getRatingCountBaseURL + postId + '/rating/count', function(data) { try { data = JSON.parse(data); if (data.meta_value) { resolve(data.meta_value); } reject("Failed to fetch rating count for the post:" + postId); } catch (err) { reject("Failed to fetch rating count for the post:" + postId); } }, function(err) { reject("Failed to fetch rating count for the post:" + postId); }, true); }); } function showErrorMessage(messageType) { var messageContainerId = '#' + messageType + '-error'; $(messageContainerId).classList.remove('hidden'); window.setInterval(function () { $(messageContainerId).classList.add("hidden"); }, 5000); } (function() { var callFired = false; function lazyLoadPostRating() { if (callFired) return; callFired = true; if (!isPostRatedByUser()) { getRatingCountByPostId(1269393) .then(function(ratingCount) { if (ratingCount < 10) { $("#post-rating-widget").classList.remove("hidden"); } }) .catch(function(err){ console.error(err); }); } } document.addEventListener("scroll", lazyLoadPostRating, { passive: true, once: true }); document.addEventListener("mousemove", lazyLoadPostRating, { passive: true, once: true }); document.addEventListener("touchmove", lazyLoadPostRating, { passive: true, once: true }); })();ncG1vNJzZmivp6x7tLzOq6uso5WasaJ6wqikaJ2jpbyzwNJon6ivXZqutLXLsmSesJWYwrWxjKmcq56VmMFusM6dnp5loJq%2Fp7HCrWSarKSWsKx5xqiroZmdYrivtcahq6w%3D