The Zap Quake strategy in Clash of Clans is a powerful method to eliminate high-value defenses like the Air Defense, Inferno Tower, or Eagle Artillery before starting your main push. By combining the percentage-based damage of the Earthquake spell with the flat damage of the Lightning spell, you can save valuable housing space.
Common Building Hitpoints (Max Levels)
Defense
HP (Town Hall 15/16)
Air Defense (Lvl 14)
1,750
Inferno Tower (Lvl 9)
4,200
Scattershot (Lvl 4)
5,100
Eagle Artillery (Lvl 6)
5,600
Monolith (Lvl 2)
5,040
The Calculation Logic
1. The Earthquake Spell always deals damage based on a percentage of the building's maximum health for the first cast. For subsequent casts, the damage decreases significantly, which is why players almost always use only one Earthquake.
2. The Lightning Spell deals a fixed amount of damage regardless of the building's health. To find the optimal combination, we subtract the Earthquake damage from the total HP and divide the remainder by the Lightning spell's damage value.
Pro Tip: Always check if you can hit two defenses at once! Lightning spells have a small radius. If two buildings are within 3 tiles of each other, one set of spells can often destroy both if aimed perfectly.
function calculateZapQuake() {
var targetHp = parseFloat(document.getElementById('targetHp').value);
var zapDamage = parseInt(document.getElementById('zapLevel').value);
var eqPercent = parseFloat(document.getElementById('eqLevel').value);
var useEq = document.getElementById('useEq').value;
var resultArea = document.getElementById('resultArea');
var spellsResult = document.getElementById('spellsResult');
var damageDetails = document.getElementById('damageDetails');
if (!targetHp || targetHp <= 0) {
alert('Please enter a valid Building HP value.');
return;
}
var totalZapNeeded = 0;
var eqDmgDealt = 0;
var remainingHp = targetHp;
var outputText = "";
if (useEq === "yes") {
eqDmgDealt = Math.floor(targetHp * eqPercent);
remainingHp = targetHp – eqDmgDealt;
totalZapNeeded = Math.ceil(remainingHp / zapDamage);
outputText = "Required: 1 Earthquake + " + totalZapNeeded + " Lightning Spells";
damageDetails.innerHTML = "Earthquake dealt " + eqDmgDealt + " damage. Lightning needs to cover " + remainingHp + " HP.";
} else {
totalZapNeeded = Math.ceil(targetHp / zapDamage);
outputText = "Required: " + totalZapNeeded + " Lightning Spells";
damageDetails.innerHTML = "No Earthquake used. Total damage needed: " + targetHp + " HP.";
}
spellsResult.innerText = outputText;
resultArea.style.display = "block";
resultArea.style.background = "#e1f5fe";
resultArea.style.border = "1px solid #81d4fa";
}