MediaWiki:Common.js

/*

=
========================================= Clicker 1 Calculator

=
========================================= $(function {	$('#Clicker1_EndDate').html('');	$('#Clicker1_XP').html('');	$('#Clicker1_Level').html('');	$('#Clicker1_Aphro').html(''); });

var clicker1Intimacy = [ {		power: 5, // points per click cost: 1, // stamina cost ahpro: 0 // cost to unlock this intimacy level },	{		power: 20, cost: 2, aphro:400 },		{		power: 60, cost: 3, aphro: 1200 },	{		power: 240, cost: 6, aphro: 1800 },	{		power: 1000, cost: 10, aphro: 2400 }, ];

function calcClicker1 {	var endDateDiv = document.getElementById("Click1EndDate"); if (endDateDiv == null) return; var endDate = new Date(endDateDiv.value); var curDate = Date.now; var diffDate = endDate-curDate; var days = Math.floor(diffDate/1000/60/60/24); var hours = Math.floor(diffDate/1000/60/60) % 24; var minutes = Math.floor(diffDate/1000/60) % 60; document.getElementById("Clicker1_Countdown").innerText = "Event ends in: " + days + "d " + hours + "h " + minutes + "m "; var xp = parseInt(document.getElementById("XPInput").value); var level = parseInt(document.getElementById("LevelInput").value); var aphro = parseInt(document.getElementById("AphroInput").value); var content_totals = document.getElementById("Clicker1_Totals"); var content = document.getElementById("Clicker1_Content"); if (document.getElementById("LevelInput").value !== "") {		if (level < 1) {			level = 1; }		if (level > 5) {			level = 5; }		document.getElementById("LevelInput").value = level; }	//var endDate = new Date(document.getElementById("Clicker1_EndDate").innerText); //var curDate = Date.now; //var diffDate = endDate-curDate; var eventEndTime = diffDate/1000/60; var requiredXP = 814000; var minPerAphro = 2.5; var outputText = ""; var currentPointsEarned = xp; var totalRequiredTime = 0; var powerPerStamina = 0; for (var i=level; i<5; i++) {		outputText +="### Intimacy Level " + i + " ###\n"; powerPerStamina = clicker1Intimacy[i-1].power/clicker1Intimacy[i-1].cost; var levelUpCost = clicker1Intimacy[i].aphro; var remainingAphro = levelUpCost-aphro; if (remainingAphro <= 0) {			outputText += "Enough aphro, skipping this intimacy level\n\n"; aphro -= levelUpCost; continue; }		else {			aphro = 0; }		var timeToNextLevel = Math.ceil(remainingAphro * minPerAphro); var pointsEarned = timeToNextLevel * powerPerStamina; outputText += "Aphrodisiac required: " + remainingAphro + " --- " + formatTime(timeToNextLevel/60) + "\n"; outputText += "Points Earned: " + pointsEarned + " (" + ((pointsEarned/requiredXP)*100).toFixed(2) + "% xp)\n\n"; currentPointsEarned += pointsEarned; totalRequiredTime += timeToNextLevel; }	var remainingXP = requiredXP - currentPointsEarned; powerPerStamina = clicker1Intimacy[4].power/clicker1Intimacy[4].cost; var minutesTillComplete = remainingXP/powerPerStamina; outputText += "### Intimacy Level 5 ###\n"; outputText += "Remaining XP: " + remainingXP + " --- " + formatTime(minutesTillComplete/60); content.innerText = outputText; totalRequiredTime += minutesTillComplete; var output = ""; if (eventEndTime < totalRequiredTime) {       output += 'Total Time Required: ' + formatTime(totalRequiredTime/60) + ''; }   else {       output += 'Total Time Required: '+ formatTime(totalRequiredTime/60); }	content_totals.innerHTML = output; }

/*

=
========================================= Clicker 2 Calculator

=
=========================================

$(function {	var endDateDiv = document.getElementById("Clicker2_EndDate");	if (endDateDiv == null) return;	var endDate = new Date(endDateDiv.innerText);	var curDate = Date.now;	var diffDate = endDate-curDate;	var days = Math.floor(diffDate/1000/60/60/24);	var hours = Math.floor(diffDate/1000/60/60) % 24;	var minutes = Math.floor(diffDate/1000/60) % 60;	document.getElementById("Clicker2_Countdown").innerText = "Event ends in: " + days + "d " + hours + "h " + minutes + "m "; 	$('#Clicker2_Stage').html('');	$('#Clicker2_XP').html('');

$('#Clicker2_Brewer2').html('Brewer level 2 '); $('#Clicker2_Brewer3').html('Brewer level 3 '); $('#Clicker2_Brewer4').html('Brewer level 4 '); $('#Clicker2_Shunga2').html('Shunga level 2 '); $('#Clicker2_Shunga3').html('<input type="checkbox" onclick="calcClicker2" id="Clicker2_Shunga3_checkbox"><label for="Clicker2_Shunga3_label">Shunga level 3 '); $('#Clicker2_Shunga4').html('<input type="checkbox" onclick="calcClicker2" id="Clicker2_Shunga4_checkbox"><label for="Clicker2_Shunga4_label">Shunga level 4 '); });

var clicker2StageInfo = [ {       xp: 8000, unlockRatio: [0, 0.5], xpForUnlock: [4000, 4000], storyWine: 16, },   {        xp: 28000, unlockRatio: [0, 0.5], xpForUnlock: [14000, 14000], storyWine: 30, },   {        xp: 58000, unlockRatio: [0, 0.2, 0.6], xpForUnlock: [11600, 23200, 23200], storyWine: 50, },   {        xp: 173000, unlockRatio: [0, 0.2, 0.5, 0.7], xpForUnlock: [34600, 51900, 34600, 51900], storyWine: 120, } ];

function calcClicker2 {	var stage = parseInt(document.getElementById("StageInput").value); var xp = parseInt(document.getElementById("XPInput").value); var content_totals = document.getElementById("Clicker2_Totals"); var content = document.getElementById("Clicker2_Content");

for (var i=2; i<5; i++) {       document.getElementById('Clicker2_Brewer' + i + '_checkbox').disabled = false; document.getElementById('Clicker2_Shunga' + i + '_checkbox').disabled = false; }

for (var i=1; i<stage; i++) {       var checkbox = document.getElementById('Clicker2_Brewer' + (i+1) + '_checkbox'); checkbox.disabled = true; }	var winePerHour = [24, 30, 42, 54]; // wine cost per shuga is 1, 2, 4, 6 and click power 10,40,120, 360 var xpPerWine = [10, 20, 30, 60]; var endDate = new Date(document.getElementById("Clicker2_EndDate").innerText); var curDate = Date.now; var diffDate = endDate-curDate; var eventEndTime = diffDate/1000/60/60; var stageInfo = clicker2StageInfo[stage-1]; // progress percent var progress = xp / stageInfo.xp; // find the current clicking power var index = 0; for (var i=0; i < stageInfo.unlockRatio.length; i++) {		if (progress >= stageInfo.unlockRatio[i]) {			index = i;           if (i > 0) {               var checkbox = document.getElementById('Clicker2_Shunga' + (i+1) + '_checkbox'); checkbox.disabled = true; }		}	}

var currentBrewing = stage; for (var i = 4; i>stage; i--) {       if (document.getElementById('Clicker2_Brewer' + i + '_checkbox').checked) {           currentBrewing = i;            break; }   }

var currentShunga = index+1; for (var i = stageInfo.unlockRatio.length; i>(index+1); i--) {       if (document.getElementById('Clicker2_Shunga' + i + '_checkbox').checked) {           currentShunga = i;            break; }   }

var output =''; var totalWine = 0; var totalBrewTime = 0;

var wineRate = winePerHour[currentBrewing-1]; var clickPower = xpPerWine[currentShunga-1];

output += '### Current Chapter ###\n\n' output += 'Active Brew Level: ' + currentBrewing + ' ('+wineRate+'/h)\n\n';

// get the progress made twards the next shuga var xpTillNextShunga = stageInfo.xpForUnlock[index] - ((progress - stageInfo.unlockRatio[index]) * stageInfo.xp);

var chapterWine = 0; //output += 'Story Wine Costs: ' + stageInfo.storyWine + ' wine\n'; //chapterWine += stageInfo.storyWine;

var wine = Math.ceil(xpTillNextShunga/clickPower); chapterWine += wine; output += 'Shunga ' + currentShunga + ' ('+ Math.floor(stageInfo.unlockRatio[currentShunga-1]*100) +'%): '+xpTillNextShunga+'p ---> '+wine+' wine\n';

for(var i=index+1; i<stageInfo.unlockRatio.length; i++) {       wine = Math.ceil(stageInfo.xpForUnlock[i]/xpPerWine[i]); output += 'Shunga ' + (i+1) + ' ('+ Math.floor(stageInfo.unlockRatio[i]*100) +'%): ' + stageInfo.xpForUnlock[i] + 'p ---> ' + wine + ' wine\n'; chapterWine += wine; }

var time = chapterWine/wineRate; totalBrewTime += time; totalWine += chapterWine; output += 'Total: ' + chapterWine + ' wine --- ' + formatTime(time);

for(var s = stage+1; s<=4; s++) {       var chapterWine = 0;

if (currentBrewing < s)       { currentBrewing = s;       }

stageInfo = clicker2StageInfo[s-1]; wineRate = winePerHour[currentBrewing-1];

output += '\n\n### Chapter '+s+' ###\n\n' output += 'Active Brew Level: ' + currentBrewing + ' ('+wineRate+'/h)\n\n';

output += 'Story Wine Costs: ' + stageInfo.storyWine + ' wine\n'; chapterWine += stageInfo.storyWine;

for(var i=0; i<stageInfo.unlockRatio.length; i++) {           wine = Math.ceil(stageInfo.xpForUnlock[i]/xpPerWine[i]); output += 'Shunga ' + (i+1) + ' ('+ Math.floor(stageInfo.unlockRatio[i]*100) +'%): ' + stageInfo.xpForUnlock[i] + 'p ---> ' + wine + ' wine\n'; chapterWine += wine; }

var time = chapterWine/wineRate; totalBrewTime += time; totalWine += chapterWine;

output += 'Total: ' + chapterWine + ' wine --- ' + formatTime(time); }

content.innerText = output;

output = '';

if (eventEndTime < totalBrewTime) {       output += 'Grand Total: '+ totalWine +' wine --- ' + formatTime(totalBrewTime) + '</b>'; }   else {       output += 'Grand Total: '+ totalWine +' wine --- ' + formatTime(totalBrewTime); }

content_totals.innerHTML = output; }

function formatTime (timeInHours) {   var days = Math.floor(timeInHours / 24); var hours = Math.floor(timeInHours % 24); var minutes = Math.floor(timeInHours*60 % 60); return days + 'd ' + hours + 'h ' + minutes + 'm'; }

/*

=
========================================= Hero Search

=
========================================= var classFilter = ''; var factionFilter = ''; var tierFilter = ''; var summonsFilter = '';

$(function {	$('#HeroSearch').html('<input style="width:200px" id="HeroSearchBox" type="text" onkeyup="FilterHeroes" placeholder="Hero name...">'); });

$('#ClassSearch').children('div').on('click', function(e) {	var value = this.children[0].title;	if (classFilter === value)	{		classFilter = ;	}	else	{		classFilter = value;	}	var p = document.getElementById("ClassSearch");	for(var i=0; i<p.children.length; i++)	{		var c = p.children[i];		if(classFilter === )		{			c.style.opacity = 1;				} 		else if (c.children[0].title === classFilter)		{			c.style.opacity = 1;		}		else		{			c.style.opacity = 0.5;			}	}	FilterHeroes; });

$('#FactionSearch').children('div').on('click', function(e) {	var value = this.children[0].title;	if (factionFilter === value)	{		factionFilter = ;	}	else	{		factionFilter = value;	}	var p = document.getElementById("FactionSearch");	for(var i=0; i<p.children.length; i++)	{		var c = p.children[i];		if(factionFilter === )		{			c.style.opacity = 1;				} 		else if (c.children[0].title === factionFilter)		{			c.style.opacity = 1;		}		else		{			c.style.opacity = 0.5;			}	}	FilterHeroes; });

$('#TierSearch').children('div').on('click', function(e) {	var value = this.children[0].title;	if (tierFilter === value)	{		tierFilter = ;	}	else	{		tierFilter = value;	}	var p = document.getElementById("TierSearch");	for(var i=0; i<p.children.length; i++)	{		var c = p.children[i];		if(tierFilter === )		{			c.style.opacity = 1;				} 		else if (c.children[0].title === tierFilter)		{			c.style.opacity = 1;		}		else		{			c.style.opacity = 0.5;			}	}	FilterHeroes; });

$('#SummonsSearch').children('div').on('click', function(e) {	var value = this.children[0].title;	if (summonsFilter === value)	{		summonsFilter = ;	}	else	{		summonsFilter = value;	}	var p = document.getElementById("SummonsSearch");	for(var i=0; i<p.children.length; i++)	{		var c = p.children[i];		if(summonsFilter === )		{			c.style.opacity = 1;				} 		else if (c.children[0].title === summonsFilter)		{			c.style.opacity = 1;		}		else		{			c.style.opacity = 0.5;			}	}	FilterHeroes; });

function FilterHeroes {	var heroListDiv = document.getElementById("HeroList"); if (heroListDiv == null) return; var heroes = heroListDiv; var filter = document.getElementById("HeroSearchBox").value.toUpperCase; for(var i=0; i<heroes.children.length; i++) {		var validText = false; var validClass = false; var validFaction = false; var validTier = false; var validSummons = false; var child = heroes.children[i]; validText = filter === '' || child.children["name"].innerText.toUpperCase.indexOf(filter) > -1; validClass = classFilter === '' || child.children["class"].innerText.toUpperCase.indexOf(classFilter.toUpperCase) > -1; validFaction = factionFilter === '' || child.children["faction"].innerText.toUpperCase.indexOf(factionFilter.toUpperCase) > -1; validTier = tierFilter === '' || child.children["tier"].innerText.toUpperCase.indexOf(tierFilter.toUpperCase) > -1; validSummons = summonsFilter === '' || child.children["summoningPool"].innerText.toUpperCase.indexOf(summonsFilter.toUpperCase) > -1; if (validText && validClass && validFaction && validTier && validSummons) {			child.style.display = ''; }		else {			child.style.display = 'none'; }	} }

/*

=
========================================= Skill search function below

=
=========================================

var parsingData = [ {		type: "priority", name: "Front Row", keywords: ["FRONT ROW"] },	{		type: "priority", name: "Back Row", keywords: ["BACK ROW"] },	{		type: "target", name: "Self", keywords: ["SELF", "OWN"] },	{		type: "target", name: "Random", keywords: ["RANDOM"] },   {		type: "target", name: "Ally", keywords: ["PARTY"] },   {        type: "target", name: "Enemy", keywords: ["ENEMY", "ENEMIES"] },	{		type: "target", name: "All", keywords: ["ALL", "EXCEPT SELF"] },	{		type: "target", name: "Mage", keywords: [" MAGE"] },	{		type: "target", name: "Support", keywords: ["SUPPORT"] },	{		type: "target", name: "Ranger", keywords: ["RANGER"] },	{		type: "target", name: "Tank", keywords: ["TANK"] },	{		type: "target", name: "Assassin", keywords: ["ASSASSIN"] },	{		type: "target", name: "Warrior", keywords: ["WARRIOR"] },	{		type: "target", name: "Penglai", keywords: ["PENGLAI"] },	{		type: "target", name: "Western Alliance", keywords: ["WESTERN ALLIANCE"] },   {		type: "target", name: "Lowest HP", keywords: ["LOWEST HP"] },   {		type: "target", name: "Highest HP", keywords: ["HIGHEST HP"] },	{		type: "target", name: "Highest ATK", keywords: ["HIGHEST ATK"] },	{		type: "target", name: "Highest Speed", keywords: ["HIGHEST SPEED"] },	{		type: "target", name: "Lowest Speed", keywords: ["LOWEST SPEED"] },	{		type: "target", name: "Highest Energy", keywords: ["HIGHEST ENERGY", "HIGHEST ENERGIES"] },	{		type: "target", name: "Lowest Energy", keywords: ["LOWEST ENERGY", "LOWEST ENERGIES"] },   {		type: "target", name: "Lowest PDEF", keywords: ["LOWEST PDEF", "LOWEST PHYSICAL DEFENSE"] },   {		type: "damageType", name: "True", keywords: ["TRUE DAMAGE"] },   {		type: "damageType", name: "Physical", keywords: ["PHYSICAL DAMAGE"] },   {		type: "damageType", name: "Magic", keywords: ["MAGIC DAMAGE"] },   {		type: "damageType", name: "Elemental", keywords: ["ELEMENTAL DAMAGE"] },   {		type: "damageType", name: "Crit", keywords: ["CRIT DAMAGE"] },   {		type: "damageType", name: "Direct", keywords: ["DIRECT DAMAGE"] },	{		type: "statusEffect", name: "Weaken", keywords: ["WEAKEN"] },	{		type: "statusEffect", name: "Strengthen", keywords: ["STRENGTHEN"] },   {		type: "statusEffect", name: "Taunt", keywords: ["TAUNT"] },   {		type: "statusEffect", name: "Stun", keywords: ["STUN"] },   {		type: "statusEffect", name: "Halt", keywords: ["HALT"] },   {		type: "statusEffect", name: "Silence", keywords: ["SILENCE"] },	{		type: "statusEffect", name: "Steal", keywords: ["STEAL"] },		{		type: "statusEffect", name: " Seal ", keywords: ["SEAL"] },	{		type: "statusEffect", name: "Paralysis", keywords: ["PARALYSIS"] },	{		type: "statusEffect", name: "Petrify", keywords: ["PETRIFY"] },   {		type: "statusEffect", name: "Charm", keywords: ["CHARM"] },   {		type: "statusEffect", name: "Poison", keywords: ["POISON"] },	{		type: "statusEffect", name: "Burn", keywords: ["BURN"] },	{		type: "statusEffect", name: "Electrocute", keywords: ["ELECTROCUTE"] },   {		type: "statusEffect", name: "Hidden", keywords: ["HIDING"] },	{		type: "statusEffect", name: "Immune", keywords: ["IMMUNE"] },   {		type: "statusEffect", name: "Dispel", keywords: ["DISPEL"] },	{		type: "statusEffect", name: "Purify", keywords: ["PURIFY"] },	{		type: "statusEffect", name: "Guardian", keywords: ["GUARDIAN"] },	{		type: "statusEffect", name: "Holy Shield", keywords: ["HOLY SHIELD"] },   {		type: "statusEffect", name: "Heal", keywords: ["CAST HEALING", "CASTS HEALING", "CAST A HEALING", "CASTS A HEALING", "CASTING A HEALING", "CAST A RECOVERY", "CASTS A RECOVERY", "RECOVER HP", "RECOVERS HP"] },	{		type: "statusEffect", name: "Heal up", keywords: ["INCREASE THE RATE OF HEALING", "INCREASES THE RATE OF HEALING"] },	{		type: "statusEffect", name: "Heal down", keywords: ["HEALING EFFECTS ON THE TARGET IS REDUCED", "HEALING EFFECT ON THE AFFECTED TARGET IS REDUCED"] },	{		type: "statusEffect", name: "HP up", keywords: ["INCREASE THE HP", "INCREASES THE HP", "INCREASING THE HP", "INCREASE OWN HP", "INCREASES OWN HP", "INCREASING OWN HP", "INCREASE SELF HP", "INCREASES SELF HP", "INCREASING SELF HP", "INCREASE THEIR HP", "INCREASES THEIR HP", "INCREASING THEIR HP", "INCREASE THE TARGET'S HP", "INCREASES THE TARGET'S HP", "INCREASING THE TARGET'S HP", "INCREASE THE AFFECTED TARGET'S HP", "INCREASES THE AFFECTED TARGET'S HP", "INCREASING THE AFFECTED TARGET'S HP"] },	{		type: "statusEffect", name: "HP down", keywords: ["CONSUMES HP", "DEDUCTS OF THE CASTER'S HP"] },   {		type: "statusEffect", name: "Energy up", keywords: ["ADDITIONAL ENERGY", "ADDITIONAL ENERGIES", "CAST AN ENERGY GRANT", "CASTS AN ENERGY GRANT"] },	{		type: "statusEffect", name: "Energy down", keywords: ["REDUCES ENERGIES", "REDUCES ENERGY", "ENERGY REDUCTION"] },	{		type: "statusEffect", name: "Speed up", keywords: ["INCREASE THE SPEED", "INCREASES THE SPEED", "INCREASING THE SPEED", "INCREASE OWN SPEED", "INCREASES OWN SPEED", "INCREASING OWN SPEED", "INCREASE SELF SPEED", "INCREASES SELF SPEED", "INCREASING SELF SPEED", "INCREASE THEIR SPEED", "INCREASES THEIR SPEED", "INCREASING THEIR SPEED", "INCREASE THE TARGET'S SPEED", "INCREASES THE TARGET'S SPEED", "INCREASING THE TARGET'S SPEED", "INCREASE THE AFFECTED TARGET'S SPEED", "INCREASES THE AFFECTED TARGET'S SPEED", "INCREASING THE AFFECTED TARGET'S SPEED"] },	{		type: "statusEffect", name: "Speed down", keywords: ["DECREASE THE SPEED", "DECREASES THE SPEED", "DECREASING THE SPEED", "REDUCING THE SPEED", "DECREASE OWN SPEED", "DECREASES OWN SPEED", "DECREASING OWN SPEED", "REDUCING OWN SPEED", "DECREASE SELF SPEED", "DECREASES SELF SPEED", "DECREASING SELF SPEED", "REDUCING SELF SPEED", "DECREASE THEIR SPEED", "DECREASES THEIR SPEED", "DECREASING THEIR SPEED", "REDUCING THEIR SPEED", "DECREASE THE TARGET'S SPEED", "DECREASES THE TARGET'S SPEED", "DECREASING THE TARGET'S SPEED", "REDUCING THE TARGET'S SPEED", "DECREASE THE AFFECTED TARGET'S SPEED", "DECREASES THE AFFECTED TARGET'S SPEED", "DECREASING THE AFFECTED TARGET'S SPEED", "REDUCING THE AFFECTED TARGET'S SPEED",] },   {		type: "statusEffect", name: "CRIT up", keywords: ["CRIT CHANCE", "INCREASE THE CRIT RATE", "INCREASES THE CRIT RATE", "INCREASING THE CRIT RATE", "INCREASE OWN CRIT RATE", "INCREASES OWN CRIT RATE", "INCREASING OWN CRIT RATE", "INCREASE SELF CRIT RATE", "INCREASES SELF CRIT RATE", "INCREASING SELF CRIT RATE", "INCREASE THEIR CRIT RATE", "INCREASES THEIR CRIT RATE", "INCREASING THEIR CRIT RATE", "INCREASE THE TARGET'S CRIT RATE", "INCREASES THE TARGET'S CRIT RATE", "INCREASING THE TARGET'S CRIT RATE", "INCREASE THE AFFECTED TARGET'S CRIT RATE", "INCREASES THE AFFECTED TARGET'S CRIT RATE", "INCREASING THE AFFECTED TARGET'S CRIT RATE", ] },   {		type: "statusEffect", name: "CRIT down", keywords: ["DECREASE THE CRIT RATE", "DECREASES THE CRIT RATE", "DECREASING THE CRIT RATE", "REDUCING THE CRIT RATE", "DECREASE OWN CRIT RATE", "DECREASES OWN CRIT RATE", "DECREASING OWN CRIT RATE", "REDUCING OWN CRIT RATE", "DECREASE SELF CRIT RATE", "DECREASES SELF CRIT RATE", "DECREASING SELF CRIT RATE", "REDUCING SELF CRIT RATE", "DECREASE THEIR CRIT RATE", "DECREASES THEIR CRIT RATE", "DECREASING THEIR CRIT RATE", "REDUCING THEIR CRIT RATE", "DECREASE THE TARGET'S CRIT RATE", "DECREASES THE TARGET'S CRIT RATE", "DECREASING THE TARGET'S CRIT RATE", "REDUCING THE TARGET'S CRIT RATE", "DECREASE THE AFFECTED TARGET'S CRIT RATE", "DECREASES THE AFFECTED TARGET'S CRIT RATE", "DECREASING THE AFFECTED TARGET'S CRIT RATE", "REDUCING THE AFFECTED TARGET'S CRIT RATE"] },   {		type: "statusEffect", name: "CDMG up", keywords: ["INCREASE SELF CRIT DAMAGE", "INCREASES SELF CRIT DAMAGE", "INCREASING SELF CRIT DAMAGE", "INCREASE OWN CRIT DAMAGE", "INCREASES OWN CRIT DAMAGE", "INCREASING OWN CRIT DAMAGE", "INCREASE THEIR CRIT DAMAGE", "INCREASES THEIR CRIT DAMAGE", "INCREASING THEIR CRIT DAMAGE", "INCREASE THE TARGET'S CRIT DAMAGE", "INCREASES THE TARGET'S CRIT DAMAGE", "INCREASING THE TARGET'S CRIT DAMAGE", "INCREASE THE AFFECTED TARGET'S CRIT DAMAGE", "INCREASES THE AFFECTED TARGET'S CRIT DAMAGE", "INCREASING THE AFFECTED TARGET'S CRIT DAMAGE", "INCREASE SELF CDMG", "INCREASES SELF CDMG", "INCREASING SELF CDMG", "INCREASE OWN CDMG", "INCREASES OWN CDMG", "INCREASING OWN CDMG", "INCREASE THEIR CDMG", "INCREASES THEIR CDMG", "INCREASING THEIR CDMG", "INCREASE THE TARGET'S CDMG", "INCREASES THE TARGET'STHE TARGET'S CDMG", "INCREASING THE TARGET'S CDMG", "INCREASE THE AFFECTED TARGET'S CDMG", "INCREASES THE AFFECTED TARGET'S CDMG", "INCREASING THE AFFECTED TARGET'S CDMG" ]	},   {		type: "statusEffect", name: "CDMG down", keywords: ["DECREASE SELF CRIT DAMAGE", "DECREASES SELF CRIT DAMAGE", "DECREASING SELF CRIT DAMAGE", "REDUCING SELF CRIT DAMAGE", "DECREASE OWN CRIT DAMAGE", "DECREASES OWN CRIT DAMAGE", "DECREASING OWN CRIT DAMAGE", "REDUCING OWN CRIT DAMAGE", "DECREASE THEIR CRIT DAMAGE", "DECREASES THEIR CRIT DAMAGE", "DECREASING THEIR CRIT DAMAGE", "REDUCING THEIR CRIT DAMAGE", "DECREASE THE TARGET'S CRIT DAMAGE", "DECREASES THE TARGET'S CRIT DAMAGE", "DECREASING THE TARGET'S CRIT DAMAGE", "REDUCING THE TARGET'S CRIT DAMAGE", "DECREASE THE AFFECTED TARGET'S CRIT DAMAGE", "DECREASES THE AFFECTED TARGET'S CRIT DAMAGE", "DECREASING THE AFFECTED TARGET'S CRIT DAMAGE", "REDUCING THE AFFECTED TARGET'S CRIT DAMAGE", "DECREASE SELF CDMG", "DECREASES SELF CDMG", "DECREASING SELF CDMG", "REDUCING SELF CDMG", "DECREASE OWN CDMG", "DECREASES OWN CDMG", "DECREASING OWN CDMG", "REDUCING OWN CDMG", "DECREASE THEIR CDMG", "DECREASES THEIR CDMG", "DECREASING THEIR CDMG", "REDUCING THEIR CDMG", "DECREASE THE TARGET'S CDMG", "DECREASES THE TARGET'S CDMG", "DECREASING THE TARGET'S CDMG", "REDUCING THE TARGET'S CDMG", "DECREASE THE AFFECTED TARGET'S CDMG", "DECREASES THE AFFECTED TARGET'S CDMG", "DECREASING THE AFFECTED TARGET'S CDMG", "REDUCING THE AFFECTED TARGET'S CDMG", ]	},   {		type: "statusEffect", name: "ATK up", keywords: ["INCREASE ATK", "INCREASES ATK", "INCREASING ATK", "INCREASE SELF ATK", "INCREASES SELF ATK", "INCREASING SELF ATK", "INCREASE OWN ATK", "INCREASES OWN ATK", "INCREASING OWN ATK", "INCREASE THEIR ATK", "INCREASES THEIR ATK", "INCREASING THEIR ATK", "INCREASE THE TARGET'S ATK", "INCREASES THE TARGET'S ATK", "INCREASING THE TARGET'S ATK", "INCREASE THE AFFECTED TARGET'S ATK", "INCREASES THE AFFECTED TARGET'S ATK", "INCREASING THE AFFECTED TARGET'S ATK"] },   {		type: "statusEffect", name: "PATK up", keywords: ["INCREASE THE PHYSICAL DAMAGE", "INCREASES THE PHYSICAL DAMAGE", "INCREASING THE PHYSICAL DAMAGE", "INCREASE OWN PHYSICAL DAMAGE", "INCREASES OWN PHYSICAL DAMAGE", "INCREASING OWN PHYSICAL DAMAGE", "INCREASE SELF PHYSICAL DAMAGE", "INCREASES SELF PHYSICAL DAMAGE", "INCREASING SELF PHYSICAL DAMAGE", "INCREASE THEIR PHYSICAL DAMAGE", "INCREASES THEIR PHYSICAL DAMAGE", "INCREASING THEIR PHYSICAL DAMAGE", "INCREASE THE TARGET'S PHYSICAL DAMAGE", "INCREASES THE TARGET'S PHYSICAL DAMAGE", "INCREASING THE TARGET'S PHYSICAL DAMAGE", "INCREASE THE AFFECTED TARGET'S PHYSICAL DAMAGE", "INCREASES THE AFFECTED TARGET'S PHYSICAL DAMAGE", "INCREASING THE AFFECTED TARGET'S PHYSICAL DAMAGE", "INCREASE THE PDMG", "INCREASES THE PDMG", "INCREASING THE PDMG", "INCREASE OWN PDMG", "INCREASES OWN PDMG", "INCREASING OWN PDMG", "INCREASE SELF PDMG", "INCREASES SELF PDMG", "INCREASING SELF PDMG", "INCREASE THEIR PDMG", "INCREASES THEIR PDMG", "INCREASING THEIR PDMG", "INCREASE THE TARGET'S PDMG", "INCREASES THE TARGET'S PDMG", "INCREASING THE TARGET'S PDMG", "INCREASE THE AFFECTED TARGET'S PDMG", "INCREASES THE AFFECTED TARGET'S PDMG", "INCREASING THE AFFECTED TARGET'S PDMG"] },   {		type: "statusEffect", name: "MATK up", keywords: ["INCREASE THE MAGIC DAMAGE", "INCREASES THE MAGIC DAMAGE", "INCREASING THE MAGIC DAMAGE", "INCREASE OWN MAGIC DAMAGE", "INCREASES OWN MAGIC DAMAGE", "INCREASING OWN MAGIC DAMAGE", "INCREASE SELF MAGIC DAMAGE", "INCREASES SELF MAGIC DAMAGE", "INCREASING SELF MAGIC DAMAGE", "INCREASE THEIR MAGIC DAMAGE", "INCREASES THEIR MAGIC DAMAGE", "INCREASING THEIR MAGIC DAMAGE", "INCREASE THE TARGET'S MAGIC DAMAGE", "INCREASES THE TARGET'S MAGIC DAMAGE", "INCREASING THE TARGET'S MAGIC DAMAGE", "INCREASE THE AFFECTED TARGET'S MAGIC DAMAGE", "INCREASES THE AFFECTED TARGET'S MAGIC DAMAGE", "INCREASING THE AFFECTED TARGET'S MAGIC DAMAGE",

"INCREASE THE MDMG", "INCREASES THE MDMG", "INCREASING THE MDMG", "INCREASE OWN MDMG", "INCREASES OWN MDMG", "INCREASING OWN MDMG", "INCREASE SELF MDMG", "INCREASES SELF MDMG", "INCREASING SELF MDMG", "INCREASE THEIR MDMG", "INCREASES THEIR MDMG", "INCREASING THEIR MDMG", "INCREASE THE TARGET'S MDMG", "INCREASES THE TARGET'S MDMG", "INCREASING THE TARGET'S MDMG", "INCREASE THE AFFECTED TARGET'S MDMG", "INCREASES THE AFFECTED TARGET'S MDMG", "INCREASING THE AFFECTED TARGET'S MDMG"] },   {		type: "statusEffect", name: "EATK up", keywords: ["INCREASE THE ELEMENTAL DAMAGE", "INCREASES THE ELEMENTAL DAMAGE", "INCREASING THE ELEMENTAL DAMAGE", "INCREASE OWN ELEMENTAL DAMAGE", "INCREASES OWN ELEMENTAL DAMAGE", "INCREASING OWN ELEMENTAL DAMAGE", "INCREASE SELF ELEMENTAL DAMAGE", "INCREASES SELF ELEMENTAL DAMAGE", "INCREASING SELF ELEMENTAL DAMAGE", "INCREASE THEIR ELEMENTAL DAMAGE", "INCREASES THEIR ELEMENTAL DAMAGE", "INCREASING THEIR ELEMENTAL DAMAGE", "INCREASE THE TARGET'S ELEMENTAL DAMAGE", "INCREASES THE TARGET'S ELEMENTAL DAMAGE", "INCREASING THE TARGET'S ELEMENTAL DAMAGE", "INCREASE THE AFFECTED TARGET'S ELEMENTAL DAMAGE", "INCREASES THE AFFECTED TARGET'S ELEMENTAL DAMAGE", "INCREASING THE AFFECTED TARGET'S ELEMENTAL DAMAGE",

"INCREASE THE EDMG", "INCREASES THE EDMG", "INCREASING THE EDMG", "INCREASE OWN EDMG", "INCREASES OWN EDMG", "INCREASING OWN EDMG", "INCREASE SELF EDMG", "INCREASES SELF EDMG", "INCREASING SELF EDMG", "INCREASE THEIR EDMG", "INCREASES THEIR EDMG", "INCREASING THEIR EDMG", "INCREASE THE TARGET'S EDMG", "INCREASES THE TARGET'S EDMG", "INCREASING THE TARGET'S EDMG", "INCREASE THE AFFECTED TARGET'S EDMG", "INCREASES THE AFFECTED TARGET'S EDMG", "INCREASING THE AFFECTED TARGET'S EDMG"] },	{		type: "statusEffect", name: "ATK down", keywords: ["DECREASE THEIR ATTACK", "DECREASES THEIR ATTACK", "DECREASING THEIR ATTACK", "REDUCING THEIR ATTACK", "DECREASE THE TARGET'S ATTACK", "DECREASES THE TARGET'S ATTACK", "DECREASING THE TARGET'S ATTACK", "REDUCING THE TARGET'S ATTACK", "DECREASE THE AFFECTED TARGET'S ATTACK", "DECREASES THE AFFECTED TARGET'S ATTACK", "DECREASING THE AFFECTED TARGET'S ATTACK", "REDUCING THE AFFECTED TARGET'S ATTACK", "DECREASE THEIR ATK", "DECREASES THEIR ATK", "DECREASING THEIR ATK", "REDUCING THEIR ATK", "DECREASE THE TARGET'S ATK", "DECREASES THE TARGET'S ATK", "DECREASING THE TARGET'S ATK", "REDUCING THE TARGET'S ATK", "DECREASE THE AFFECTED TARGET'S ATK", "DECREASES THE AFFECTED TARGET'S ATK", "DECREASING THE AFFECTED TARGET'S ATK", "REDUCING THE AFFECTED TARGET'S ATK", ]	},	{		type: "statusEffect", name: "PATK down", keywords: ["DECREASE THEIR PHYSICAL DAMAGE", "DECREASES THEIR PHYSICAL DAMAGE", "DECREASING THEIR PHYSICAL DAMAGE", "REDUCING THEIR PHYSICAL DAMAGE", "DECREASE THE TARGET'S PHYSICAL DAMAGE", "DECREASES THE TARGET'S PHYSICAL DAMAGE", "DECREASING THE TARGET'S PHYSICAL DAMAGE", "REDUCING THE TARGET'S PHYSICAL DAMAGE", "DECREASE THE AFFECTED TARGET'S PHYSICAL DAMAGE", "DECREASES THE AFFECTED TARGET'S PHYSICAL DAMAGE", "DECREASING THE AFFECTED TARGET'S PHYSICAL DAMAGE", "REDUCING THE AFFECTED TARGET'S PHYSICAL DAMAGE", "DECREASE THEIR PDMG", "DECREASES THEIR PDMG", "DECREASING THEIR PDMG", "REDUCING THEIR PDMG", "DECREASE THE TARGET'S PDMG", "DECREASES THE TARGET'S PDMG", "DECREASING THE TARGET'S PDMG", "REDUCING THE TARGET'S PDMG", "DECREASE THE AFFECTED TARGET'S PDMG", "DECREASES THE AFFECTED TARGET'S PDMG", "DECREASING THE AFFECTED TARGET'S PDMG", "REDUCING THE AFFECTED TARGET'S PDMG"] },   {		type: "statusEffect", name: "MATK down", keywords: ["DECREASE THEIR MAGIC DAMAGE", "DECREASES THEIR MAGIC DAMAGE", "DECREASING THEIR MAGIC DAMAGE", "REDUCING THEIR MAGIC DAMAGE", "DECREASE THE TARGET'S MAGIC DAMAGE", "DECREASES THE TARGET'S MAGIC DAMAGE", "DECREASING THE TARGET'S MAGIC DAMAGE", "REDUCING THE TARGET'S MAGIC DAMAGE", "DECREASE THE AFFECTED TARGET'S MAGIC DAMAGE", "DECREASES THE AFFECTED TARGET'S MAGIC DAMAGE", "DECREASING THE AFFECTED TARGET'S MAGIC DAMAGE", "REDUCING THE AFFECTED TARGET'S MAGIC DAMAGE",

"DECREASE THEIR MDMG", "DECREASES THEIR MDMG", "DECREASING THEIR MDMG", "REDUCING THEIR MDMG", "DECREASE THE TARGET'S MDMG", "DECREASES THE TARGET'S MDMG", "DECREASING THE TARGET'S MDMG", "REDUCING THE TARGET'S MDMG", "DECREASE THE AFFECTED TARGET'S MDMG", "DECREASES THE AFFECTED TARGET'S MDMG", "DECREASING THE AFFECTED TARGET'S MDMG", "REDUCING THE AFFECTED TARGET'S MDMG"] },   {		type: "statusEffect", name: "EATK down", keywords: ["DECREASE THEIR ELEMENTAL DAMAGE", "DECREASES THEIR ELEMENTAL DAMAGE", "DECREASING THEIR ELEMENTAL DAMAGE", "REDUCING THEIR ELEMENTAL DAMAGE", "DECREASE THE TARGET'S ELEMENTAL DAMAGE", "DECREASES THE TARGET'S ELEMENTAL DAMAGE", "DECREASING THE TARGET'S ELEMENTAL DAMAGE", "REDUCING THE TARGET'S ELEMENTAL DAMAGE", "DECREASE THE AFFECTED TARGET'S ELEMENTAL DAMAGE", "DECREASES THE AFFECTED TARGET'S ELEMENTAL DAMAGE", "DECREASING THE AFFECTED TARGET'S ELEMENTAL DAMAGE", "REDUCING THE AFFECTED TARGET'S ELEMENTAL DAMAGE",

"DECREASE THEIR EDMG", "DECREASES THEIR EDMG", "DECREASING THEIR EDMG", "REDUCING THEIR EDMG", "DECREASE THE TARGET'S EDMG", "DECREASES THE TARGET'S EDMG", "DECREASING THE TARGET'S EDMG", "REDUCING THE TARGET'S EDMG", "DECREASE THE AFFECTED TARGET'S EDMG", "DECREASES THE AFFECTED TARGET'S EDMG", "DECREASING THE AFFECTED TARGET'S EDMG", "REDUCING THE AFFECTED TARGET'S EDMG"] },	{		type: "statusEffect", name: "DEF up", keywords: ["INCREASE THE ARMOR", "INCREASES THE ARMOR", "INCREASING THE ARMOR", "INCREASE OWN ARMOR", "INCREASES OWN ARMOR", "INCREASING OWN ARMOR", "INCREASE SELF ARMOR", "INCREASES SELF ARMOR", "INCREASING SELF ARMOR", "INCREASE THEIR ARMOR", "INCREASES THEIR ARMOR", "INCREASING THEIR ARMOR", "INCREASE THE TARGET'S ARMOR", "INCREASES THE TARGET'S ARMOR", "INCREASING THE TARGET'S ARMOR", "INCREASE THE AFFECTED TARGET'S ARMOR", "INCREASES THE AFFECTED TARGET'S ARMOR", "INCREASING THE AFFECTED TARGET'S ARMOR"] },   {		type: "statusEffect", name: "PDEF up", keywords: ["INCREASE THE PHYSICAL DEFENSE", "INCREASES THE PHYSICAL DEFENSE", "INCREASING THE PHYSICAL DEFENSE", "INCREASE OWN PHYSICAL DEFENSE", "INCREASES OWN PHYSICAL DEFENSE", "INCREASING OWN PHYSICAL DEFENSE", "INCREASE SELF PHYSICAL DEFENSE", "INCREASES SELF PHYSICAL DEFENSE", "INCREASING SELF PHYSICAL DEFENSE", "INCREASE THEIR PHYSICAL DEFENSE", "INCREASES THEIR PHYSICAL DEFENSE", "INCREASING THEIR PHYSICAL DEFENSE", "INCREASE THE TARGET'S PHYSICAL DEFENSE", "INCREASES THE TARGET'S PHYSICAL DEFENSE", "INCREASING THE TARGET'S PHYSICAL DEFENSE", "INCREASE THE AFFECTED TARGET'S PHYSICAL DEFENSE", "INCREASES THE AFFECTED TARGET'S PHYSICAL DEFENSE", "INCREASING THE AFFECTED TARGET'S PHYSICAL DEFENSE", "INCREASE THE PDEF", "INCREASES THE PDEF", "INCREASING THE PDEF", "INCREASE OWN PDEF", "INCREASES OWN PDEF", "INCREASING OWN PDEF", "INCREASE SELF PDEF", "INCREASES SELF PDEF", "INCREASING SELF PDEF", "INCREASE THEIR PDEF", "INCREASES THEIR PDEF", "INCREASING THEIR PDEF", "INCREASE THE TARGET'S PDEF", "INCREASES THE TARGET'S PDEF", "INCREASING THE TARGET'S PDEF", "INCREASE THE AFFECTED TARGET'S PDEF", "INCREASES THE AFFECTED TARGET'S PDEF", "INCREASING THE AFFECTED TARGET'S PDEF"] },   {		type: "statusEffect", name: "MDEF up", keywords: ["INCREASE THE MAGIC DEFENSE", "INCREASES THE MAGIC DEFENSE", "INCREASING THE MAGIC DEFENSE", "INCREASE OWN MAGIC DEFENSE", "INCREASES OWN MAGIC DEFENSE", "INCREASING OWN MAGIC DEFENSE", "INCREASE SELF MAGIC DEFENSE", "INCREASES SELF MAGIC DEFENSE", "INCREASING SELF MAGIC DEFENSE", "INCREASE THEIR MAGIC DEFENSE", "INCREASES THEIR MAGIC DEFENSE", "INCREASING THEIR MAGIC DEFENSE", "INCREASE THE TARGET'S MAGIC DEFENSE", "INCREASES THE TARGET'S MAGIC DEFENSE", "INCREASING THE TARGET'S MAGIC DEFENSE", "INCREASE THE AFFECTED TARGET'S MAGIC DEFENSE", "INCREASES THE AFFECTED TARGET'S MAGIC DEFENSE", "INCREASING THE AFFECTED TARGET'S MAGIC DEFENSE", "INCREASE THE MDEF", "INCREASES THE MDEF", "INCREASING THE MDEF", "INCREASE OWN MDEF", "INCREASES OWN MDEF", "INCREASING OWN MDEF", "INCREASE SELF MDEF", "INCREASES SELF MDEF", "INCREASING SELF MDEF", "INCREASE THEIR MDEF", "INCREASES THEIR MDEF", "INCREASING THEIR MDEF", "INCREASE THE TARGET'S MDEF", "INCREASES THE TARGET'S MDEF", "INCREASING THE TARGET'S MDEF", "INCREASE THE AFFECTED TARGET'S MDEF", "INCREASES THE AFFECTED TARGET'S MDEF", "INCREASING THE AFFECTED TARGET'S MDEF"] },   {		type: "statusEffect", name: "EDEF up", keywords: ["INCREASE THE ELEMENTAL DEFENSE", "INCREASES THE ELEMENTAL DEFENSE", "INCREASING THE ELEMENTAL DEFENSE", "INCREASE OWN ELEMENTAL DEFENSE", "INCREASES OWN ELEMENTAL DEFENSE", "INCREASING OWN ELEMENTAL DEFENSE", "INCREASE SELF ELEMENTAL DEFENSE", "INCREASES SELF ELEMENTAL DEFENSE", "INCREASING SELF ELEMENTAL DEFENSE", "INCREASE THEIR ELEMENTAL DEFENSE", "INCREASES THEIR ELEMENTAL DEFENSE", "INCREASING THEIR ELEMENTAL DEFENSE", "INCREASE THE TARGET'S ELEMENTAL DEFENSE", "INCREASES THE TARGET'S ELEMENTAL DEFENSE", "INCREASING THE TARGET'S ELEMENTAL DEFENSE", "INCREASE THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "INCREASES THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "INCREASING THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "INCREASE THE EDEF", "INCREASES THE EDEF", "INCREASING THE EDEF", "INCREASE OWN EDEF", "INCREASES OWN EDEF", "INCREASING OWN EDEF", "INCREASE SELF EDEF", "INCREASES SELF EDEF", "INCREASING SELF EDEF", "INCREASE THEIR EDEF", "INCREASES THEIR EDEF", "INCREASING THEIR EDEF", "INCREASE THE TARGET'S EDEF", "INCREASES THE TARGET'S EDEF", "INCREASING THE TARGET'S EDEF", "INCREASE THE AFFECTED TARGET'S EDEF", "INCREASES THE AFFECTED TARGET'S EDEF", "INCREASING THE AFFECTED TARGET'S EDEF"] },	{		type: "statusEffect", name: "DEF down", keywords: ["DECREASE THE ARMOR", "DECREASES THE ARMOR", "DECREASING THE ARMOR", "REDUCING THE ARMOR", "DECREASE OWN ARMOR", "DECREASES OWN ARMOR", "DECREASING OWN ARMOR", "REDUCING OWN ARMOR", "DECREASE SELF ARMOR", "DECREASES SELF ARMOR", "DECREASING SELF ARMOR", "REDUCING SELF ARMOR", "DECREASE THEIR ARMOR", "DECREASES THEIR ARMOR", "DECREASING THEIR ARMOR", "REDUCING THEIR ARMOR", "DECREASE THE TARGET'S ARMOR", "DECREASES THE TARGET'S ARMOR", "DECREASING THE TARGET'S ARMOR", "REDUCING THE TARGET'S ARMOR", "DECREASE THE AFFECTED TARGET'S ARMOR", "DECREASES THE AFFECTED TARGET'S ARMOR", "DECREASING THE AFFECTED TARGET'S ARMOR", "REDUCING THE AFFECTED TARGET'S ARMOR"] },   {		type: "statusEffect", name: "PDEF down", keywords: ["DECREASE THE PHYSICAL DEFENSE", "DECREASES THE PHYSICAL DEFENSE", "DECREASING THE PHYSICAL DEFENSE", "REDUCING THE PHYSICAL DEFENSE", "DECREASE OWN PHYSICAL DEFENSE", "DECREASES OWN PHYSICAL DEFENSE", "DECREASING OWN PHYSICAL DEFENSE", "REDUCING OWN PHYSICAL DEFENSE", "DECREASE SELF PHYSICAL DEFENSE", "DECREASES SELF PHYSICAL DEFENSE", "DECREASING SELF PHYSICAL DEFENSE", "REDUCING SELF PHYSICAL DEFENSE", "DECREASE THEIR PHYSICAL DEFENSE", "DECREASES THEIR PHYSICAL DEFENSE", "DECREASING THEIR PHYSICAL DEFENSE", "REDUCING THEIR PHYSICAL DEFENSE", "DECREASE THE TARGET'S PHYSICAL DEFENSE", "DECREASES THE TARGET'S PHYSICAL DEFENSE", "DECREASING THE TARGET'S PHYSICAL DEFENSE", "REDUCING THE TARGET'S PHYSICAL DEFENSE", "DECREASE THE AFFECTED TARGET'S PHYSICAL DEFENSE", "DECREASES THE AFFECTED TARGET'S PHYSICAL DEFENSE", "DECREASING THE AFFECTED TARGET'S PHYSICAL DEFENSE", "REDUCING THE AFFECTED TARGET'S PHYSICAL DEFENSE", "DECREASE THE PDEF", "DECREASES THE PDEF", "DECREASING THE PDEF", "REDUCING THE PDEF", "DECREASE OWN PDEF", "DECREASES OWN PDEF", "DECREASING OWN PDEF", "REDUCING OWN PDEF", "DECREASE SELF PDEF", "DECREASES SELF PDEF", "DECREASING SELF PDEF", "REDUCING SELF PDEF", "DECREASE THEIR PDEF", "DECREASES THEIR PDEF", "DECREASING THEIR PDEF", "REDUCING THEIR PDEF", "DECREASE THE TARGET'S PDEF", "DECREASES THE TARGET'S PDEF", "DECREASING THE TARGET'S PDEF", "REDUCING THE TARGET'S PDEF", "DECREASE THE AFFECTED TARGET'S PDEF", "DECREASES THE AFFECTED TARGET'S PDEF", "DECREASING THE AFFECTED TARGET'S PDEF", "REDUCING THE AFFECTED TARGET'S PDEF"] },   {		type: "statusEffect", name: "MDEF down", keywords: ["DECREASE THE MAGIC DEFENSE", "DECREASES THE MAGIC DEFENSE", "DECREASING THE MAGIC DEFENSE", "REDUCING THE MAGIC DEFENSE", "DECREASE OWN MAGIC DEFENSE", "DECREASES OWN MAGIC DEFENSE", "DECREASING OWN MAGIC DEFENSE", "REDUCING OWN MAGIC DEFENSE", "DECREASE SELF MAGIC DEFENSE", "DECREASES SELF MAGIC DEFENSE", "DECREASING SELF MAGIC DEFENSE", "REDUCING SELF MAGIC DEFENSE", "DECREASE THEIR MAGIC DEFENSE", "DECREASES THEIR MAGIC DEFENSE", "DECREASING THEIR MAGIC DEFENSE", "REDUCING THEIR MAGIC DEFENSE", "DECREASE THE TARGET'S MAGIC DEFENSE", "DECREASES THE TARGET'S MAGIC DEFENSE", "DECREASING THE TARGET'S MAGIC DEFENSE", "REDUCING THE TARGET'S MAGIC DEFENSE", "DECREASE THE AFFECTED TARGET'S MAGIC DEFENSE", "DECREASES THE AFFECTED TARGET'S MAGIC DEFENSE", "DECREASING THE AFFECTED TARGET'S MAGIC DEFENSE", "REDUCING THE AFFECTED TARGET'S MAGIC DEFENSE", "DECREASE THE MDEF", "DECREASES THE MDEF", "DECREASING THE MDEF", "REDUCING THE MDEF", "DECREASE OWN MDEF", "DECREASES OWN MDEF", "DECREASING OWN MDEF", "REDUCING OWN MDEF", "DECREASE SELF MDEF", "DECREASES SELF MDEF", "DECREASING SELF MDEF", "REDUCING SELF MDEF", "DECREASE THEIR MDEF", "DECREASES THEIR MDEF", "DECREASING THEIR MDEF", "REDUCING THEIR MDEF", "DECREASE THE TARGET'S MDEF", "DECREASES THE TARGET'S MDEF", "DECREASING THE TARGET'S MDEF", "REDUCING THE TARGET'S MDEF", "DECREASE THE AFFECTED TARGET'S MDEF", "DECREASES THE AFFECTED TARGET'S MDEF", "DECREASING THE AFFECTED TARGET'S MDEF", "REDUCING THE AFFECTED TARGET'S MDEF"] },   {		type: "statusEffect", name: "EDEF down", keywords: ["DECREASE THE ELEMENTAL DEFENSE", "DECREASES THE ELEMENTAL DEFENSE", "DECREASING THE ELEMENTAL DEFENSE", "REDUCING THE ELEMENTAL DEFENSE", "DECREASE OWN ELEMENTAL DEFENSE", "DECREASES OWN ELEMENTAL DEFENSE", "DECREASING OWN ELEMENTAL DEFENSE", "REDUCING OWN ELEMENTAL DEFENSE", "DECREASE SELF ELEMENTAL DEFENSE", "DECREASES SELF ELEMENTAL DEFENSE", "DECREASING SELF ELEMENTAL DEFENSE", "REDUCING SELF ELEMENTAL DEFENSE", "DECREASE THEIR ELEMENTAL DEFENSE", "DECREASES THEIR ELEMENTAL DEFENSE", "DECREASING THEIR ELEMENTAL DEFENSE", "REDUCING THEIR ELEMENTAL DEFENSE", "DECREASE THE TARGET'S ELEMENTAL DEFENSE", "DECREASES THE TARGET'S ELEMENTAL DEFENSE", "DECREASING THE TARGET'S ELEMENTAL DEFENSE", "REDUCING THE TARGET'S ELEMENTAL DEFENSE", "DECREASE THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "DECREASES THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "DECREASING THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "REDUCING THE AFFECTED TARGET'S ELEMENTAL DEFENSE", "DECREASE THE EDEF", "DECREASES THE EDEF", "DECREASING THE EDEF", "REDUCING THE EDEF", "DECREASE OWN EDEF", "DECREASES OWN EDEF", "DECREASING OWN EDEF", "REDUCING OWN EDEF", "DECREASE SELF EDEF", "DECREASES SELF EDEF", "DECREASING SELF EDEF", "REDUCING SELF EDEF", "DECREASE THEIR EDEF", "DECREASES THEIR EDEF", "DECREASING THEIR EDEF", "REDUCING THEIR EDEF", "DECREASE THE TARGET'S EDEF", "DECREASES THE TARGET'S EDEF", "DECREASING THE TARGET'S EDEF", "REDUCING THE TARGET'S EDEF", "DECREASE THE AFFECTED TARGET'S EDEF", "DECREASES THE AFFECTED TARGET'S EDEF", "DECREASING THE AFFECTED TARGET'S EDEF", "REDUCING THE AFFECTED TARGET'S EDEF"] },	{		type: "statusEffect", name: "PRES up", keywords: [ "INCREASE THE PHYSICAL RESISTANCE", "INCREASES THE PHYSICAL RESISTANCE", "INCREASING THE PHYSICAL RESISTANCE", "INCREASE OWN PHYSICAL RESISTANCE", "INCREASES OWN PHYSICAL RESISTANCE", "INCREASING OWN PHYSICAL RESISTANCE", "INCREASE SELF PHYSICAL RESISTANCE", "INCREASES SELF PHYSICAL RESISTANCE", "INCREASING SELF PHYSICAL RESISTANCE", "INCREASE THEIR PHYSICAL RESISTANCE", "INCREASES THEIR PHYSICAL RESISTANCE", "INCREASING THEIR PHYSICAL RESISTANCE", "INCREASE THE TARGET'S PHYSICAL RESISTANCE", "INCREASES THE TARGET'S PHYSICAL RESISTANCE", "INCREASING THE TARGET'S PHYSICAL RESISTANCE", "INCREASE THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "INCREASES THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "INCREASING THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "INCREASE THE PRES", "INCREASES THE PRES", "INCREASING THE PRES", "INCREASE OWN PRES", "INCREASES OWN PRES", "INCREASING OWN PRES", "INCREASE SELF PRES", "INCREASES SELF PRES", "INCREASING SELF PRES", "INCREASE THEIR PRES", "INCREASES THEIR PRES", "INCREASING THEIR PRES", "INCREASE THE TARGET'S PRES", "INCREASES THE TARGET'S PRES", "INCREASING THE TARGET'S PRES", "INCREASE THE AFFECTED TARGET'S PRES", "INCREASES THE AFFECTED TARGET'S PRES", "INCREASING THE AFFECTED TARGET'S PRES"] },       {		type: "statusEffect", name: "MRES up", keywords: ["INCREASE THE MAGIC RESISTANCE", "INCREASES THE MAGIC RESISTANCE", "INCREASING THE MAGIC RESISTANCE", "INCREASE OWN MAGIC RESISTANCE", "INCREASES OWN MAGIC RESISTANCE", "INCREASING OWN MAGIC RESISTANCE", "INCREASE SELF MAGIC RESISTANCE", "INCREASES SELF MAGIC RESISTANCE", "INCREASING SELF MAGIC RESISTANCE", "INCREASE THEIR MAGIC RESISTANCE", "INCREASES THEIR MAGIC RESISTANCE", "INCREASING THEIR MAGIC RESISTANCE", "INCREASE THE TARGET'S MAGIC RESISTANCE", "INCREASES THE TARGET'S MAGIC RESISTANCE", "INCREASING THE TARGET'S MAGIC RESISTANCE", "INCREASE THE AFFECTED TARGET'S MAGIC RESISTANCE", "INCREASES THE AFFECTED TARGET'S MAGIC RESISTANCE", "INCREASING THE AFFECTED TARGET'S MAGIC RESISTANCE", "INCREASE THE MRES", "INCREASES THE MRES", "INCREASING THE MRES", "INCREASE OWN MRES", "INCREASES OWN MRES", "INCREASING OWN MRES", "INCREASE SELF MRES", "INCREASES SELF MRES", "INCREASING SELF MRES", "INCREASE THEIR MRES", "INCREASES THEIR MRES", "INCREASING THEIR MRES", "INCREASE THE TARGET'S MRES", "INCREASES THE TARGET'S MRES", "INCREASING THE TARGET'S MRES", "INCREASE THE AFFECTED TARGET'S MRES", "INCREASES THE AFFECTED TARGET'S MRES", "INCREASING THE AFFECTED TARGET'S MRES"] },	{		type: "statusEffect", name: "ERES up", keywords: ["INCREASE THE ELEMENTAL RESISTANCE", "INCREASES THE ELEMENTAL RESISTANCE", "INCREASING THE ELEMENTAL RESISTANCE", "INCREASE OWN ELEMENTAL RESISTANCE", "INCREASES OWN ELEMENTAL RESISTANCE", "INCREASING OWN ELEMENTAL RESISTANCE", "INCREASE SELF ELEMENTAL RESISTANCE", "INCREASES SELF ELEMENTAL RESISTANCE", "INCREASING SELF ELEMENTAL RESISTANCE", "INCREASE THEIR ELEMENTAL RESISTANCE", "INCREASES THEIR ELEMENTAL RESISTANCE", "INCREASING THEIR ELEMENTAL RESISTANCE", "INCREASE THE TARGET'S ELEMENTAL RESISTANCE", "INCREASES THE TARGET'S ELEMENTAL RESISTANCE", "INCREASING THE TARGET'S ELEMENTAL RESISTANCE", "INCREASE THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "INCREASES THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "INCREASING THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "INCREASE THE ERES", "INCREASES THE ERES", "INCREASING THE ERES", "INCREASE OWN ERES", "INCREASES OWN ERES", "INCREASING OWN ERES", "INCREASE SELF ERES", "INCREASES SELF ERES", "INCREASING SELF ERES", "INCREASE THEIR ERES", "INCREASES THEIR ERES", "INCREASING THEIR ERES", "INCREASE THE TARGET'S ERES", "INCREASES THE TARGET'S ERES", "INCREASING THE TARGET'S ERES", "INCREASE THE AFFECTED TARGET'S ERES", "INCREASES THE AFFECTED TARGET'S ERES", "INCREASING THE AFFECTED TARGET'S ERES"] },   {		type: "statusEffect", name: "PRES down", keywords: ["DECREASE THE PHYSICAL RESISTANCE", "DECREASES THE PHYSICAL RESISTANCE", "DECREASING THE PHYSICAL RESISTANCE", "REDUCING THE PHYSICAL RESISTANCE", "DECREASE OWN PHYSICAL RESISTANCE", "DECREASES OWN PHYSICAL RESISTANCE", "DECREASING OWN PHYSICAL RESISTANCE", "REDUCING OWN PHYSICAL RESISTANCE", "DECREASE SELF PHYSICAL RESISTANCE", "DECREASES SELF PHYSICAL RESISTANCE", "DECREASING SELF PHYSICAL RESISTANCE", "REDUCING SELF PHYSICAL RESISTANCE", "DECREASE THEIR PHYSICAL RESISTANCE", "DECREASES THEIR PHYSICAL RESISTANCE", "DECREASING THEIR PHYSICAL RESISTANCE", "REDUCING THEIR PHYSICAL RESISTANCE", "DECREASE THE TARGET'S PHYSICAL RESISTANCE", "DECREASES THE TARGET'S PHYSICAL RESISTANCE", "DECREASING THE TARGET'S PHYSICAL RESISTANCE", "REDUCING THE TARGET'S PHYSICAL RESISTANCE", "DECREASE THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "DECREASES THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "DECREASING THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "REDUCING THE AFFECTED TARGET'S PHYSICAL RESISTANCE", "DECREASE THE PRES", "DECREASES THE PRES", "DECREASING THE PRES", "REDUCING THE PRES", "DECREASE OWN PRES", "DECREASES OWN PRES", "DECREASING OWN PRES", "REDUCING OWN PRES", "DECREASE SELF PRES", "DECREASES SELF PRES", "DECREASING SELF PRES", "REDUCING SELF PRES", "DECREASE THEIR PRES", "DECREASES THEIR PRES", "DECREASING THEIR PRES", "REDUCING THEIR PRES", "DECREASE THE TARGET'S PRES", "DECREASES THE TARGET'S PRES", "DECREASING THE TARGET'S PRES", "REDUCING THE TARGET'S PRES", "DECREASE THE AFFECTED TARGET'S PRES", "DECREASES THE AFFECTED TARGET'S PRES", "DECREASING THE AFFECTED TARGET'S PRES", "REDUCING THE AFFECTED TARGET'S PRES"] },   {		type: "statusEffect", name: "MRES down", keywords: ["DECREASE THE MAGIC RESISTANCE", "DECREASES THE MAGIC RESISTANCE", "DECREASING THE MAGIC RESISTANCE", "REDUCING THE MAGIC RESISTANCE", "DECREASE OWN MAGIC RESISTANCE", "DECREASES OWN MAGIC RESISTANCE", "DECREASING OWN MAGIC RESISTANCE", "REDUCING OWN MAGIC RESISTANCE", "DECREASE SELF MAGIC RESISTANCE", "DECREASES SELF MAGIC RESISTANCE", "DECREASING SELF MAGIC RESISTANCE", "REDUCING SELF MAGIC RESISTANCE", "DECREASE THEIR MAGIC RESISTANCE", "DECREASES THEIR MAGIC RESISTANCE", "DECREASING THEIR MAGIC RESISTANCE", "REDUCING THEIR MAGIC RESISTANCE", "DECREASE THE TARGET'S MAGIC RESISTANCE", "DECREASES THE TARGET'S MAGIC RESISTANCE", "DECREASING THE TARGET'S MAGIC RESISTANCE", "REDUCING THE TARGET'S MAGIC RESISTANCE", "DECREASE THE AFFECTED TARGET'S MAGIC RESISTANCE", "DECREASES THE AFFECTED TARGET'S MAGIC RESISTANCE", "DECREASING THE AFFECTED TARGET'S MAGIC RESISTANCE", "REDUCING THE AFFECTED TARGET'S MAGIC RESISTANCE", "DECREASE THE MRES", "DECREASES THE MRES", "DECREASING THE MRES", "REDUCING THE MRES", "DECREASE OWN MRES", "DECREASES OWN MRES", "DECREASING OWN MRES", "REDUCING OWN MRES", "DECREASE SELF MRES", "DECREASES SELF MRES", "DECREASING SELF MRES", "REDUCING SELF MRES", "DECREASE THEIR MRES", "DECREASES THEIR MRES", "DECREASING THEIR MRES", "REDUCING THEIR MRES", "DECREASE THE TARGET'S MRES", "DECREASES THE TARGET'S MRES", "DECREASING THE TARGET'S MRES", "REDUCING THE TARGET'S MRES", "DECREASE THE AFFECTED TARGET'S MRES", "DECREASES THE AFFECTED TARGET'S MRES", "DECREASING THE AFFECTED TARGET'S MRES", "REDUCING THE AFFECTED TARGET'S MRES"] },   {		type: "statusEffect", name: "ERES down", keywords: ["DECREASE THE ELEMENTAL RESISTANCE", "DECREASES THE ELEMENTAL RESISTANCE", "DECREASING THE ELEMENTAL RESISTANCE", "REDUCING THE ELEMENTAL RESISTANCE", "DECREASE OWN ELEMENTAL RESISTANCE", "DECREASES OWN ELEMENTAL RESISTANCE", "DECREASING OWN ELEMENTAL RESISTANCE", "REDUCING OWN ELEMENTAL RESISTANCE", "DECREASE SELF ELEMENTAL RESISTANCE", "DECREASES SELF ELEMENTAL RESISTANCE", "DECREASING SELF ELEMENTAL RESISTANCE", "REDUCING SELF ELEMENTAL RESISTANCE", "DECREASE THEIR ELEMENTAL RESISTANCE", "DECREASES THEIR ELEMENTAL RESISTANCE", "DECREASING THEIR ELEMENTAL RESISTANCE", "REDUCING THEIR ELEMENTAL RESISTANCE", "DECREASE THE TARGET'S ELEMENTAL RESISTANCE", "DECREASES THE TARGET'S ELEMENTAL RESISTANCE", "DECREASING THE TARGET'S ELEMENTAL RESISTANCE", "REDUCING THE TARGET'S ELEMENTAL RESISTANCE", "DECREASE THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "DECREASES THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "DECREASING THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "REDUCING THE AFFECTED TARGET'S ELEMENTAL RESISTANCE", "DECREASE THE ERES", "DECREASES THE ERES", "DECREASING THE ERES", "REDUCING THE ERES", "DECREASE OWN ERES", "DECREASES OWN ERES", "DECREASING OWN ERES", "REDUCING OWN ERES", "DECREASE SELF ERES", "DECREASES SELF ERES", "DECREASING SELF ERES", "REDUCING SELF ERES", "DECREASE THEIR ERES", "DECREASES THEIR ERES", "DECREASING THEIR ERES", "REDUCING THEIR ERES", "DECREASE THE TARGET'S ERES", "DECREASES THE TARGET'S ERES", "DECREASING THE TARGET'S ERES", "REDUCING THE TARGET'S ERES", "DECREASE THE AFFECTED TARGET'S ERES", "DECREASES THE AFFECTED TARGET'S ERES", "DECREASING THE AFFECTED TARGET'S ERES", "REDUCING THE AFFECTED TARGET'S ERES"] }];

function FilterSkills(filterChanged) {	// increment the filter state of the button pressed var callingElement = document.getElementById(filterChanged); var imgValue = callingElement.children[0].src; if (imgValue.toUpperCase.indexOf("NEUTRAL") != -1) {		callingElement.children[0].src = 'https://static.miraheze.org/kingofkinkswiki/4/4d/Icon_Include.png'; }	else if (imgValue.toUpperCase.indexOf("INCLUDE") != -1) {		callingElement.children[0].src = 'https://static.miraheze.org/kingofkinkswiki/d/da/Icon_Exclude.png'; }	else {		callingElement.children[0].src = 'https://static.miraheze.org/kingofkinkswiki/6/61/Icon_Neutral.png'; }	var include = []; var exclude = []; var list = document.getElementById("skills"); var oneIsChecked = false; for(var i=0; i<parsingData.length; i++) {		var ftr = document.getElementById(parsingData[i].name); var img = ftr.children[0].src; if (img.toUpperCase.indexOf("EXCLUDE") != -1) {			exclude.push(parsingData[i].name); oneIsChecked = true; }		else if (img.toUpperCase.indexOf("INCLUDE") != -1) {			include.push(parsingData[i].name); oneIsChecked = true; }	}	for(var i=0; i<list.children.length; i++) {		var keywords = list.children[i].children["skill-keywords"].innerText; if (oneIsChecked) {			var found = false; for (var j=0; j<parsingData.length; j++) {				if (exclude.indexOf(parsingData[j].name) != -1) {					if (keywords.indexOf(parsingData[j].name) > -1) {						found = false; break; }				}				if (include.indexOf(parsingData[j].name) != -1) {					if (keywords.indexOf(parsingData[j].name) > -1) {						found = true; break; }				}			}			if (found) {				list.children[i].style.display = 'flex'; }			else {				list.children[i].style.display = 'none'; }		}		else {			list.children[i].style.display = 'flex'; }	} }

// populate keywords $(function {	var searchPriority = document.getElementById("SearchPriority");	var searchTarget = document.getElementById("SearchTarget");	var searchDamageType = document.getElementById("SearchDamageType");	var searchEffect = document.getElementById("SearchEffect");	if (searchPriority == null) return;	for (var i=0; i<parsingData.length; i++)	{		var data = parsingData[i];		switch(data.type)		{			case "priority":				searchPriority.innerHTML += '<div id="'+data.name+'" onclick="FilterSkills(\+data.name+'\')"><img src="https://static.miraheze.org/kingofkinkswiki/6/61/Icon_Neutral.png" style="width:16px; height:16px; padding-right: 3px;"/>'+data.name+' ';				break;			case "target":				searchTarget.innerHTML += '<div id="'+data.name+'" onclick="FilterSkills(\+data.name+'\')"><img src="https://static.miraheze.org/kingofkinkswiki/6/61/Icon_Neutral.png" style="width:16px; height:16px; padding-right: 3px;"/>'+data.name+' '; break; case "damageType": searchDamageType.innerHTML += '<div id="'+data.name+'" onclick="FilterSkills(\''+data.name+'\')"><img src="https://static.miraheze.org/kingofkinkswiki/6/61/Icon_Neutral.png" style="width:16px; height:16px; padding-right: 3px;"/>'+data.name+' '; break; case "statusEffect": searchEffect.innerHTML += '<div id="'+data.name+'" onclick="FilterSkills(\''+data.name+'\')"><img src="https://static.miraheze.org/kingofkinkswiki/6/61/Icon_Neutral.png" style="width:16px; height:16px; padding-right: 3px;"/>'+data.name+' '; break; }	}	var list = document.getElementById("skills"); for(var i=0; i<list.children.length; i++) {		var content = list.children[i].children["skill-description"].innerText.toUpperCase; var output = list.children[i].children["skill-keywords"]; // remove special characters and clean up whitespaces content = content.replace(/\/|[0-9]|%|\./g, ''); content = content.replace(/\s+/g, ' '); for(var j=0; j<parsingData.length; j++) {			var data = parsingData[j]; for(var k=0; k<data.keywords.length; k++) {				if(content.indexOf(data.keywords[k]) > -1) {					if (output.innerText === '') {						output.innerText = data.name; }					else {						output.innerText = output.innerText + ", " + data.name; }					break; }			}		}	} });

/*

=
========================================= Event List

=
=========================================

$(document).ready(function {	$('div.EventItem').click(function { var thing = this.children['eventDescription']; if (thing.style.display == 'none') {			thing.style.display = ''; }		else {			thing.style.display = 'none'; }	}); });

/*

=
========================================= Summoning Resource Calculations

=
=========================================

// number of perple shards var FreeSpecialDealsInfo = { Daily: { PurpleSoulstone: 60 }, // 2 times 30 days Weekly: { PurpleSoulstone: 20 }, // 5 times 4 weeks Monthly: { PurpleSoulstone: 10 } // 10 per month };

var QuestInfo = { Daily: { BlueSoulstone: 150, // 5 times 30 Ticket: 30 // 1 times 30 },	Weekly: { Ticket: 16, // 4 times 4 PurpleSoulstone: 40, // 10 times 40 } }

var WishingFountainInfo = { Rewards: [{ ItemName: "Purple Shards", Quantity: 5, DropRate: 0.02 },{		ItemName: "Blue Shards", Quantity: 10, DropRate: 0.035 }] }

var LuckyWheelInfo = {	Chips: 150, Coins: 25, Shop: [{ ItemName: "Purple Shards", Price: 4000, Quantity: 20, PurchaseCount: 6 },{		ItemName: "Blue Shards", Price: 900, Quantity: 30, PurchaseCount: 10 },{		ItemName: "Ticket", Price: 1500, Quantity: 1, PurchaseCount: 20 },{		ItemName: "Faction Ticket", Price: 2000, Quantity: 1, PurchaseCount: 10 }],	Rewards: [{ ItemName: "Purple Shards", Quantity: 5, DropRate: 0.04 },{		ItemName: "Blue Shards", Quantity: 10, DropRate: 0.09 }] };

var Clicker1EventInfo = { Rewards: [ {BlueSoulstone: 20}, {BlueSoulstone: 20}, {BlueSoulstone: 20}, {BlueSoulstone: 20}, {BlueSoulstone: 20}, {BlueSoulstone: 20}, {BlueSoulstone: 20},

{BlueSoulstone: 30}, {BlueSoulstone: 30}, {BlueSoulstone: 30}, {BlueSoulstone: 30}, {Ticket: 2, PurpleSoulstone: 15}, {Ticket: 3, PurpleSoulstone: 15}, {Ticket: 4, PurpleSoulstone: 15}, {Ticket: 5, PurpleSoulstone: 15}, {FactionTicket: 10, PurpleSoulstone: 60, FactionLegendary: 1} ] }

var Clicker2EventInfo = { Rewards: [ {BlueSoulstone: 60}, {BlueSoulstone: 60}, {PurpleSoulstone: 30}, {PurpleSoulstone: 60} ] }

// island exploration happens 15 times a month // (180 * 6) + (300 * 8) + 250 + 300 var IsleExplorationInfo = { Shop: [{ ItemName: "Blue Shards", Price: 2400, Quantity: 60, PurchaseCount: 7 },{		ItemName: "4-star Epic", Price: 4800, Quantity: 60, PurchaseCount: 4 },{		ItemName: "5-star Legendary", Price: 45000, Quantity: 60, PurchaseCount: 5 }],	Rewards:{ Ticket: 2, BlueSoulstone: 90, },	Currency: 4030 // assumes best path };

// arena has 15 days in a season 2 seasons per month var ArenaInfo = { Shop: [{ ItemName: "Purple Shards", Price: 18000, Quantity: 60, PurchaseCount: 4 },{		ItemName: "Blue Shards", Price: 2400, Quantity: 60, PurchaseCount: 6 },{		ItemName: "5-star Legendary", Price: 45000, Quantity: 60, PurchaseCount: 2 }],	Income: { Daily: [{ Tier: "C", RankUp: 300, Currency: 1400 },		{			Tier: "B", RankUp: 300, Currency: 1600 },		{			Tier: "A", RankUp: 200, Currency: 1800 },		{			Tier: "S", RankUp: 0, // this is max rank Currency: 2000 }],		Season: [{ Placement: 1, Currency: 15000, Tickets: 20 },		{			Placement: 2, Currency: 12000, Tickets: 15 },		{			Placement: 3, Currency: 10000, Tickets: 14 },		{			Placement: 10, Currency: 8000, Tickets: 12 },		{			Placement: 20, Currency: 7000, Tickets: 10 },		{			Placement: 50, Currency: 6000, Tickets: 8 }]	} };

// happens 2 times a month, 13 day event var AdvancedArenaInfo = { Shop: [{ ItemName: "Purple Shards", Price: 380000, Quantity: 60, PurchaseCount: 4 },{		ItemName: "Blue Faction Token", Price: 120000, Quantity: 2, PurchaseCount: 2 },{		ItemName: "Blue Shards", Price: 50000, Quantity: 60, PurchaseCount: 2 },{		ItemName: "5-star Legendary", Price: 980000, Quantity: 60, PurchaseCount: 2 }],	Currency: { Daily: 2400, Season: [{ AtRank: 1000, Reward: 20000 },{			AtRank: 800, Reward: 25000 },{			AtRank: 600, Reward: 30000 },{			AtRank: 500, Reward: 35000 },{			AtRank: 400, Reward: 40000 },{			AtRank: 300, Reward: 45000 },{			AtRank: 200, Reward: 50000 },{			AtRank: 100, Reward: 55000 },{			AtRank: 50, Reward: 60000 },{			AtRank: 20, Reward: 65000 },{			AtRank: 10, Reward: 70000 },{			AtRank: 3, Reward: 80000 },{			AtRank: 2, Reward: 90000 },{			AtRank: 1, Reward: 100000 }],		Minutely: [{ AtRank: 1000, Rate: 9 },{			AtRank: 800, Rate: 10 },{			AtRank: 600, Rate: 11 },{			AtRank: 500, Rate: 16 },{			AtRank: 450, Rate: 18 },{			AtRank: 400, Rate: 19 },{			AtRank: 350, Rate: 20 },{			AtRank: 300, Rate: 21 },{			AtRank: 250, Rate: 23 },{			AtRank: 200, Rate: 24 },{			AtRank: 150, Rate: 25 },{			AtRank: 100, Rate: 27 },{			AtRank: 50, Rate: 27 },{			AtRank: 30, Rate: 28 },{			AtRank: 24, Rate: 29 },{			AtRank: 21, Rate: 30 },{			AtRank: 16, Rate: 31 },{			AtRank: 11, Rate: 32 },{			AtRank: 8, Rate: 33 },{			AtRank: 5, Rate: 34 },{			AtRank: 3, Rate: 36 },{			AtRank: 2, Rate: 40 },{			AtRank: 1, Rate: 45 }]	},	ClimbRate: [{ AtRank: 1000, Rate: 80, },{		AtRank: 700, Rate: 70, },{		AtRank: 600, Rate: 60, },{		AtRank: 500, Rate: 50, },{		AtRank: 400, Rate: 40, },{		AtRank: 300, Rate: 30, },{		AtRank: 50, Rate: 5, },{		AtRank: 10, Rate: 2, }],

Worship: {		Ticket: 2, PurpleSoulstone: 15, BlueSoulstone: 40 } }

// happens once a month // requires users to enter how many points they get per win. // 2 times a month at 12 days var InvasionInfo = { Shop: [{ ItemName: "Purple Shards", Price: 1500, Quantity: 10, PurchaseCount: 12 },{		ItemName: "Faction Ticket", Price: 1900, Quantity: 1, PurchaseCount: 10 },{		ItemName: "Blue Faction Token", Price: 1800, Quantity: 1, PurchaseCount: 40 },{		ItemName: "5-star Legendary", Price: 7500, Quantity: 20, PurchaseCount: 6 }] }

// vault info per floor // 7 + 5 + 7 + 8 + 4 + 5 + 8 + 7 + 6 + 7 = 6.4 avr blue soulstone // 2 + 2 + 3 + 3 + 3 + 2 + 3 + 3 + 2 + 3 = 2.6 avr tickets // 26 + 28 + 30 + 31 + 25 + 25 + 29 + 29 + 32 + 32 = 28.7 avr keys

var VaultEventInfo = { Shop: [{ ItemName: "Purple Shards", Price: 1, Quantity: 20, PurchaseCount: 10 },{		ItemName: "5-star Legendary", Price: 1, Quantity: 20, PurchaseCount: 220 },{		ItemName: "Faction Tickets", Price: 1, Quantity: 5, PurchaseCount: 5 },{		ItemName: "Blue Faction Token", Price: 1, Quantity: 3, PurchaseCount: 396 },{		ItemName: "Tickets", Price: 1, Quantity: 4, PurchaseCount: 10 }],	Keys: { Mission: 180, PerFloorAverage: 30, // 28.7 true average },	RewardsPerFloor: [{ ItemName: "Ticket", Quantity: 1, DropRate: 0.09 },{		ItemName: "Blue Shards", Quantity: 20, DropRate: 0.223 }] }

var ExplorationInfo = { Rewards: [{ ItemName: "Blue Shards", Quantity: 5, DropRate: 0.0348 },{		ItemName: "Blue Shards", Quantity: 7, DropRate: 0.0436 },{		ItemName: "Blue Shards", Quantity: 10, DropRate: 0.1132 },{		ItemName: "Blue Shards", Quantity: 30, DropRate: 0.0575 },{		ItemName: "Purple Shards", Quantity: 5, DropRate: 0.007 },{		ItemName: "Purple Shards", Quantity: 10, DropRate: 0 // this is not accurate but i dont have a good sample for it	}] }

var MonthlySummonItems = { Ticket: 0, FactionTicket: 0, Friendship: 0, PurpleSoulstone: 0, BlueSoulstone: 0, FactionToken: 0, FactionLegendary: 0, TotalTickets: 0 };

function AddMonthlyItems(items) {	var output = ""; if (items.Ticket != undefined) {		MonthlySummonItems.Ticket += items.Ticket; output += "+" + items.Ticket + " Ticket(s) "; }

if (items.FactionTicket != undefined) {		MonthlySummonItems.FactionTicket += items.FactionTicket; output += "+" + items.FactionTicket + " Faction Ticket(s) "; }	if (items.PurpleSoulstone != undefined) {		MonthlySummonItems.PurpleSoulstone += items.PurpleSoulstone; output += "+" + items.PurpleSoulstone + " Purple Soulstone(s) "; }	if (items.BlueSoulstone != undefined) {		MonthlySummonItems.BlueSoulstone += items.BlueSoulstone; output += "+" + items.BlueSoulstone + " Blue Soulstone(s) "; }	if (items.FactionToken != undefined) {		MonthlySummonItems.FactionToken += items.FactionToken; output += "+" + items.FactionToken + " Faction Token(s) "; }

if (items.FactionLegendary != undefined) {		MonthlySummonItems.FactionLegendary += items.FactionLegendary; output += "+" + items.FactionLegendary + " Faction Legendary Token(s) "; }	if (items.Friendship != undefined) {		MonthlySummonItems.Friendship += items.Friendship; output += "+" + items.Friendship + " Friendship Summons "; }

return output; }

function ConvertNameAndAdd(name, quantity) {	if (name == "Ticket") {		return AddMonthlyItems({Ticket: quantity}); }	if (name == "Faction Ticket") {		return AddMonthlyItems({FactionTicket: quantity}); }

if (name == "Blue Shards" || name == "4-star Epic") {		return AddMonthlyItems({BlueSoulstone: quantity}) }

if (name == "Purple Shards" || name == "5-star Legendary") {		return AddMonthlyItems({PurpleSoulstone: quantity}); }	if (name == "Blue Faction Token") {		return AddMonthlyItems({FactionToken: quantity}); } }

var purchaseLog = ""; function purchase(currency, store) {	purchaseLog = ""; var currencyRemaining = currency; for (var i=0; i<store.length; i++) {		var item = store[i];

var purchasable = Math.floor(currencyRemaining/item.Price); if (purchasable > item.PurchaseCount) {			purchasable = item.PurchaseCount; }

if (purchasable >= 1) {			var price = (purchasable*item.Price); var quantity = (purchasable*item.Quantity);

currencyRemaining -= price; purchaseLog += "\n-" + price + " " + purchasable + " " + item.ItemName + ": "; purchaseLog += ConvertNameAndAdd(item.ItemName, quantity); }	}

return currencyRemaining; }

var gatchaLog = ""; function gatcha(rolls, pool) {	gatchaLog = ""; for(var i=0;i<pool.length;i++) {		var item = pool[i]; var n = Math.floor(item.DropRate * rolls); var quantity = n*item.Quantity;

gatchaLog += "\n"+ item.ItemName + " Drop Chance: " + (item.DropRate*100).toFixed(2) + "% Quantity: " + item.Quantity + " Total: ";

gatchaLog += ConvertNameAndAdd(item.ItemName, quantity); } }

function CalculateSummons {	MonthlySummonItems = { Ticket: 0, FactionTicket: 0, Friendship: 0, PurpleSoulstone: 0, BlueSoulstone: 0, FactionToken: 0, FactionLegendary: 0, TotalTickets: 0 };	var output = document.getElementById("Summons_DailyQuests"); if (output != undefined) {		output.innerText = "Daily: " + AddMonthlyItems(QuestInfo.Daily) + "\nWeekly: " + AddMonthlyItems(QuestInfo.Weekly); }	output = document.getElementById("Summons_FreeSpecialDeals"); if (output != undefined) {		output.innerText = "Daily: " + AddMonthlyItems(FreeSpecialDealsInfo.Daily) + "\nWeekly: " + AddMonthlyItems(FreeSpecialDealsInfo.Weekly) + "\nMonthly: " + AddMonthlyItems(FreeSpecialDealsInfo.Monthly); }	output = document.getElementById("Summons_SecretMandate"); if (output != undefined) {		output.innerText = AddMonthlyItems({BlueSoulstone: 600}); }	output = document.getElementById("Summons_Exploration_Details"); if (output != undefined) {		var quests = document.getElementById("Summons_Exploration_Quests_Input").value; var rerolls = document.getElementById("Summons_Exploration_Rerolls_Input").value; var questsMonth = quests*30; var log = ""; log += "\nQuests/day: " + quests; log += "\nTotal Explorations/mo: " + questsMonth; gatcha(questsMonth, ExplorationInfo.Rewards); log += gatchaLog; output.innerText = log; }

output = document.getElementById("Summons_IslesExploration_Details"); if (output != undefined) {		var currency = document.getElementById("Summons_IslesExploration_Currency_Input").value; var currencyMonth = currency*15; var rewards = { Ticket: IsleExplorationInfo.Rewards.Ticket*15, BlueSoulstone: IsleExplorationInfo.Rewards.BlueSoulstone*15 };		var log = ""; log += "\nBoss Completion Rewards: "; log += AddMonthlyItems(rewards); log += "\nMaximum Monthly Currency: " + currency; var currencyRemaining = purchase(currencyMonth, IsleExplorationInfo.Shop); log += purchaseLog; log += "\nRemaining Monthly Currency: " + currencyRemaining; output.innerText = log; }	output = document.getElementById("Summons_Arena_Details"); if (output != undefined) {		var log = ""; var AverageDailyGrowth = document.getElementById("Summons_Arena_Rank_Input").value; var EndOfSeasonRank = document.getElementById("Summons_Arena_Final_Input").value; var daysPerSeason = 13; log += "\nSeason Duration: " + daysPerSeason + " days"; var totalCurrency = 0; var remainder = 0; var daysUsed = 0; for(var i=0; i<ArenaInfo.Income.Daily.length; i++) {			var tier = ArenaInfo.Income.Daily[i]; var days = Math.ceil((tier.RankUp-remainder)/AverageDailyGrowth); if (days + daysUsed > daysPerSeason || tier.Tier == "S") {				days = daysPerSeason-daysUsed; }			daysUsed += days; remainder = tier.RankUp-(days*AverageDailyGrowth); var c = tier.Currency*days; totalCurrency += c;			log += "\nTier " + tier.Tier + ": " + days + " days - " + c + " White Tiger Coins"; }		for(var i=0; i<ArenaInfo.Income.Season.length; i++) {			var rank = ArenaInfo.Income.Season[i]; if (EndOfSeasonRank <= rank.Placement) {				log += "\nTop: " + rank.Placement + " Currency: " + rank.Currency + " Tickets: " + rank.Tickets; totalCurrency += rank.Currency; log += "\n\nSeason Tickets (2x): " + AddMonthlyItems({Ticket: rank.Tickets*2}); break; }		}		totalCurrency *= 2 log += "\nTotal Currency (2x): " + totalCurrency; var arenaCurrencyRemaining = purchase(totalCurrency, ArenaInfo.Shop); log += purchaseLog; log += "\n Remaining Currency: " + arenaCurrencyRemaining; output.innerText = log; }	output = document.getElementById("Summons_AdvancedArena_Details"); if (output != undefined) {		var log = ""; var EndingRank = document.getElementById("Summons_AdvancedArena_Final_Input").value; var TotalDailyGeneration = 0; var DailyGeneration = 0; var currentRank = 1000; var minutePerDay = 60 * 24; for(var d = 0; d<13; d++) {			var previousRank = currentRank; for(var f=0; f<5; f++) {				var advancement = 0; for (var i=0; i<AdvancedArenaInfo.ClimbRate.length; i++) {					var cr = AdvancedArenaInfo.ClimbRate[i]; if (currentRank <= cr.AtRank) {						advancement = cr.Rate; }					else {						break; }				}				currentRank -= advancement; }			if (currentRank <= EndingRank) {				currentRank = EndingRank; }			var gen = 0; for(var i=0;i<AdvancedArenaInfo.Currency.Minutely.length;i++) {				var m = AdvancedArenaInfo.Currency.Minutely[i]; if (currentRank <= m.AtRank) {					gen = m.Rate; }				else {					break; }			}			DailyGeneration = (gen*minutePerDay) + AdvancedArenaInfo.Currency.Daily; TotalDailyGeneration += DailyGeneration; log += "\nDay " + (d+1) + " Rank Advancement +" + (previousRank-currentRank) + " ("+currentRank+") - " +DailyGeneration + " Currency"; }		var EoSCurrency = 0 for(var i=0;i<AdvancedArenaInfo.Currency.Season.length;i++) {			var s = AdvancedArenaInfo.Currency.Season[i]; if (EndingRank <= s.AtRank) {				EoSCurrency = s.Reward; }		}		log += "\nEnd of Season Currency: " + EoSCurrency; var TotalAACurrency = (TotalDailyGeneration + EoSCurrency)*2; log += "\n\nTotal Currency (2x): " + TotalAACurrency; var AACurrencyRemaining = purchase(TotalAACurrency, AdvancedArenaInfo.Shop); log += purchaseLog; log += "\nRemaining Currency: " + AACurrencyRemaining; log += "\nWorship: " + AddMonthlyItems({Ticket: AdvancedArenaInfo.Worship.Ticket*2}) + AddMonthlyItems({PurpleSoulstone: AdvancedArenaInfo.Worship.PurpleSoulstone*2}) + AddMonthlyItems({BlueSoulstone: AdvancedArenaInfo.Worship.BlueSoulstone*2}); output.innerText = log; }	output = document.getElementById("Summons_Invasion_Details"); if (output != undefined) {		var log = "" var InvasionRate = document.getElementById("Summons_Invasion_Currency_Input").value; var TotalInvasionCurrency = (InvasionRate*3)*12; log += "\nTotal Currency: " + TotalInvasionCurrency; log += "\nTwo times per month"; var InvasionCurrencyRemaining = purchase(TotalInvasionCurrency, InvasionInfo.Shop); log += purchaseLog; log += "\n"; var InvasionCurrencyRemaining = purchase(TotalInvasionCurrency, InvasionInfo.Shop); log += purchaseLog; log += "\nRemaining Currency: " + InvasionCurrencyRemaining; output.innerText = log; }	output = document.getElementById("Summons_Vault"); if (output != undefined) {		var log = ""; log += "\nNumber of keys: " + VaultEventInfo.Keys.Mission; log += "\nKeys per floor: " + VaultEventInfo.Keys.PerFloorAverage; var remaining = VaultEventInfo.Keys.Mission-(VaultEventInfo.Keys.Mission/VaultEventInfo.Keys.PerFloorAverage); gatcha(remaining, VaultEventInfo.RewardsPerFloor); log += gatchaLog; output.innerText = log; }	output = document.getElementById("Summons_WishingFountain_Details"); if (output != undefined) {		var log = ""; var wfCoins = document.getElementById("Summons_WishingFountain_Coins_Input").value; var wfTotalCoins = wfCoins * 6 log += "\nCoins per Month: " + wfTotalCoins; gatcha(wfTotalCoins, WishingFountainInfo.Rewards); log += gatchaLog; output.innerText = log; }	output = document.getElementById("Summons_LuckyWheel_Details"); if (output != undefined) {		var log = ""; var coins = document.getElementById("Summons_LuckyWheel_Coins_Input").value; var chips = coins * LuckyWheelInfo.Chips; log += "\nCoins: " + coins; gatcha(LuckyWheelInfo.Coins, LuckyWheelInfo.Rewards); log += gatchaLog; log += "\nChips: " + chips; purchase(chips, LuckyWheelInfo.Shop); log += purchaseLog; output.innerText = log; }	output = document.getElementById("Summons_ClickerEvent1_Details"); if (output != undefined) {		var log = ""; var stagesComplete = document.getElementById("Summons_ClickerEvent1_Stage_Input").value;

log += "\nStages complete: " + stagesComplete + " out of " + Clicker1EventInfo.Rewards.length; for(var i=0;i<stagesComplete; i++) {			log += "\nStage "+ (i+1) + ": " + AddMonthlyItems(Clicker1EventInfo.Rewards[i]); }		output.innerText = log; }	output = document.getElementById("Summons_ClickerEvent2_Details"); if (output != undefined) {		var log = ""; var stagesComplete = document.getElementById("Summons_ClickerEvent2_Stage_Input").value;

log += "\nStages complete: " + stagesComplete + " out of " + Clicker2EventInfo.Rewards.length; for(var i=0;i<stagesComplete; i++) {			log += "\nStage "+ (i+1) + ": " + AddMonthlyItems(Clicker2EventInfo.Rewards[i]); }		output.innerText = log; }	output = document.getElementById("Summons_Friendship_Details"); if (output != undefined) {		var log = ""; var friendshipTokensPerDay = document.getElementById("Summons_Friendship_Coins_Input").value; var tokensPerMonth = 30 * friendshipTokensPerDay; var tokenSummons = tokensPerMonth/10; log += "\nTokens/mo: " + tokensPerMonth + "\n " + AddMonthlyItems({Friendship: tokenSummons}); output.innerText = log; }	output = document.getElementById("Summons_Pity"); if (output != undefined) {		var log = ""; var totalTickets = MonthlySummonItems.Ticket + MonthlySummonItems.FactionTicket + MonthlySummonItems.Friendship + 30; var pityPurple = ((totalTickets+40)/150) * 30; var pityLegendary = (totalTickets/150); log += AddMonthlyItems({PurpleSoulstone: pityPurple}); log += "\n" + AddMonthlyItems({FactionLegendary: pityLegendary}); MonthlySummonItems.TotalTickets = totalTickets; output.innerText = log; }	output = document.getElementById("Summons_"); if (output != undefined) {		var log = ""; output.innerText = log; }	output = document.getElementById("Summons_TotalMonthlySummons"); if (output != undefined) {		var log = ""; var purpleFiveStarCount = MonthlySummonItems.PurpleSoulstone/60; var blueFiveStarCount = ((MonthlySummonItems.BlueSoulstone/60) + MonthlySummonItems.FactionToken)/8; log += "\nFree Daily Summons: 30"; log += "\nStandard Summoning Tickets: " + MonthlySummonItems.Ticket; log += "\nFaction Summoning Tickets: " + MonthlySummonItems.FactionTicket; log += "\nFriend Summons: " + MonthlySummonItems.Friendship; log += "\nFaction Summoning Tokens (Epics): " + MonthlySummonItems.FactionToken; log += "\nFaction Summoning Tokens (Legendary): " + MonthlySummonItems.FactionLegendary.toFixed(2); log += "\nPurple Soulstone Shards: " + MonthlySummonItems.PurpleSoulstone + " (" + purpleFiveStarCount.toFixed(2) + ")"; log += "\nBlue Soulstone Shards: " + MonthlySummonItems.BlueSoulstone + " (" + (MonthlySummonItems.BlueSoulstone/60).toFixed(2) + ")"; var fiveStarCount = MonthlySummonItems.TotalTickets/30; log += "\n\nConvert Tickets to 5-star random and fodder units (2 per 30 tickets)" log += "\nRandom 5-star: " + fiveStarCount.toFixed(2); log += "\nFodder 5-star:" + fiveStarCount.toFixed(2); log += "\n\n5-star Legendaries: " + MonthlySummonItems.FactionLegendary.toFixed(2); log += "\n5-star Random: " + (fiveStarCount + purpleFiveStarCount).toFixed(2); log += "\n5-star Fodder: " + (fiveStarCount + blueFiveStarCount).toFixed(2); log += "\n\n5-star Grand Total: " + (MonthlySummonItems.FactionLegendary + (fiveStarCount*2) + purpleFiveStarCount + blueFiveStarCount).toFixed(2); output.innerText = log; } }

// quests $(function{	var output = document.getElementById("Summons_Exploration_Quests");	if (output != undefined)	{		output.innerHTML = 'Number of Quests: <input id="Summons_Exploration_Quests_Input" type="text" onkeyup="CalculateSummons" value="7">';	}	var output = document.getElementById("Summons_Exploration_Rerolls");	if (output != undefined)	{		output.innerHTML = 'Rerolls/day (TODO): <input id="Summons_Exploration_Rerolls_Input" type="text" onkeyup="CalculateSummons" placeholder="Not Implemented">';	}	var output = document.getElementById("Summons_IslesExploration_Currency");	if (output != undefined)	{		output.innerHTML = 'Currency: <input id="Summons_IslesExploration_Currency_Input" type="text" onkeyup="CalculateSummons" value="4030">';	}	var output = document.getElementById("Summons_Arena_Rank");	if (output != undefined)	{		output.innerHTML = 'Ranks/day: <input id="Summons_Arena_Rank_Input" type="text" onkeyup="CalculateSummons" value="75">'; }	var output = document.getElementById("Summons_Arena_Final"); if (output != undefined) {		output.innerHTML = 'End of Season Rank: <input id="Summons_Arena_Final_Input" type="text" onkeyup="CalculateSummons" value="20">'; }	var output = document.getElementById("Summons_AdvancedArena_Final"); if (output != undefined) {		output.innerHTML = 'End of Season Rank: <input id="Summons_AdvancedArena_Final_Input" type="text" onkeyup="CalculateSummons" value="40">'; }	var output = document.getElementById("Summons_Invasion_Currency"); if (output != undefined) {		output.innerHTML = 'Currency/win: <input id="Summons_Invasion_Currency_Input" type="text" onkeyup="CalculateSummons" value="650">'; }	var output = document.getElementById("Summons_WishingFountain_Coins"); if (output != undefined) {		output.innerHTML = 'Coins: <input id="Summons_WishingFountain_Coins_Input" type="text" onkeyup="CalculateSummons" value="19">'; }	var output = document.getElementById("Summons_LuckyWheel_Coins"); if (output != undefined) {		output.innerHTML = 'Coins: <input id="Summons_LuckyWheel_Coins_Input" type="text" onkeyup="CalculateSummons" value="25">'; }	var output = document.getElementById("Summons_ClickerEvent1_Stage"); if (output != undefined) {		output.innerHTML = 'Stages Complete (max 16): <input id="Summons_ClickerEvent1_Stage_Input" type="text" onkeyup="CalculateSummons" value="16">'; }	var output = document.getElementById("Summons_ClickerEvent2_Stage"); if (output != undefined) {		output.innerHTML = 'Stages Complete (max 4): <input id="Summons_ClickerEvent2_Stage_Input" type="text" onkeyup="CalculateSummons" value="3">'; }		var output = document.getElementById("Summons_Friendship_Coins"); if (output != undefined) {		output.innerHTML = 'Coins: <input id="Summons_Friendship_Coins_Input" type="text" onkeyup="CalculateSummons" value="25">'; }	CalculateSummons; });