// ==UserScript==
// @name Dragons War Script
// @namespace http://tampermonkey.net/
// @version 1.2
// @description try to take over the world!
// @author You
// @match https://w12.crownofthegods.com/
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Claim Portion starts here
var addbuttonpt1='<a id="pt1button" class=""><span id="irtmsp">Point 1</span></a>';
var addbuttonpt2='<a id="pt2button" class=""><span id="irtmsp">Point 2</span></a>';
var addbuttonemptypt1='<a id="emptypt1button" class=""><span id="irtmsp">Point 1</span></a>';
var addbuttonemptypt2='<a id="emptypt2button" class=""><span id="irtmsp">Point 2</span></a>';
$("#cityplayerInfo").append(addbuttonpt1);
$("#cityplayerInfo").append(addbuttonpt2);
$("#emptyspsptb").append(addbuttonemptypt1);
$("#emptyspsptb").append(addbuttonemptypt2);
var ptx1 = 0;
var pty1 = 0;
var ptx2 = 0;
var pty2 = 0;
function distance_coords(x1,y1,x2,y2){
var distance = Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2));
return distance;
}
function msToTime(duration) {
var milliseconds = parseInt((duration%1000)/100),
seconds = parseInt((duration/1000)%60),
minutes = parseInt((duration/(1000*60))%60),
hours = parseInt((duration/(1000*60*60))%24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return hours + ":" + minutes + ":" + seconds + "." + milliseconds;
}
var troop_types = {inf:"Infantry", cav:"Cavalry", sco:"Scouts", sie:"Siege", shi:"Ships", nob:"Senator", crt:"Carts", mst:"Trader Ships"};
function display_troop_travel(x1,y1,x2,y2) {
if(x1!=0 && y1!=0 && x2!=0 && y2!=0){
var distance = distance_coords(x1,y1,x2,y2);
var travel_times = cotg.info.travel(0,0,0,1);
if ($("#MYpopupbox").length == 0){
createmypopup();
}
if ($("#MYpopupbox").css('display') == 'none'){
$("#MYpopupbox").show();
}
var outtext="<br><div class='beigemenutable'><table class='sortable beigetablescrollp'>";
outtext+="<thead><th>Troop</th><th>Time</th></thead><tbody>";
outtext+='<tr><td style="text-align:center;" >From: '+x1+':'+y1+'</td><td style="text-align:center;" >To: '+x2+':'+y2+'</td></tr>';
for (var t in travel_times) {
outtext+='<tr><td style="text-align:center;" >'+troop_types[t]+'</td>'+
'<td style="text-align:center;" >'+msToTime(travel_times[t]*distance)+'</td></tr>';
}
outtext+='</tbody></table></div>';
$("#MyDevOutput").html(outtext);
}
}
$('#pt1button').click(function() {
var citycoords = document.getElementById('citycoords').innerHTML;
citycoords = citycoords.split(":");
ptx1 = citycoords[0];
pty1 = citycoords[1];
display_troop_travel(ptx1,pty1,ptx2,pty2);
});
$('#pt2button').click(function() {
var citycoords = document.getElementById('citycoords').innerHTML;
citycoords = citycoords.split(":");
ptx2 = citycoords[0];
pty2 = citycoords[1];
display_troop_travel(ptx1,pty1,ptx2,pty2);
});
$('#emptypt1button').click(function() {
var citycoords = document.getElementById('emptyspotcoord').innerHTML;
citycoords = citycoords.split(":");
ptx1 = citycoords[0];
pty1 = citycoords[1];
display_troop_travel(ptx1,pty1,ptx2,pty2);
});
$('#emptypt2button').click(function() {
var citycoords = document.getElementById('emptyspotcoord').innerHTML;
citycoords = citycoords.split(":");
ptx2 = citycoords[0];
pty2 = citycoords[1];
display_troop_travel(ptx1,pty1,ptx2,pty2);
});
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
function claim_write(text) {
var outtext="<h2>"+text+"</h2>";
$("#claimed_result").html(outtext);
}
function listAllCities(citylist) {
if ($("#MYpopupbox").length == 0){
createmypopup();
}
if ($("#MYpopupbox").css('display') == 'none'){
$("#MYpopupbox").show();
}
var outtext="<br><div class='beigemenutable'><table class='sortable beigetablescrollp'>";
outtext+="<thead><th>Your Claimed Spots</th></thead><tbody>";
for (var x in citylist) {
outtext+='<tr><td style="text-align:center;" ><coords><span class="coordblink">'+citylist[x].xpos+':'+citylist[x].ypos+'<span><coords></td></tr>';
}
outtext+='</tbody></table></div>';
$("#MyDevOutput").html(outtext);
}
var popupboxGeneral="<div id='MYpopupboxGeneral' style='display:none;width:350px;height:300px;right:10px;bottom:50px;z-index:4000;' class='popUpBox'>"+
"<div class='popUpBar'><span class='ppspan'>Dragons Options</span>"+
"<button id='MYpopupboxGeneralX' onclick=\"$('#MYpopupboxGeneral').hide('slow');\" class='xbutton greenb'>"+
"<div id='xbuttondiv'><div><div id='centxbuttondiv'></div></div></div></button></div>"+
"<div style='overflow-y: auto;overflow-x: hidden;height: 85%;' id='MYpopupboxGeneralOutput'>"+
"<button class='regButton greenbuttonGo greenb' id='showPlayerGetBox'><span id=\"irtmsp\">Show Player Get</span></button><br>"+
'<button class="regButton greenbuttonGo greenb" id="Checkall"><span id="irtmsp">My Claims</span></button>'+
'<button class="regButton greenbuttonGo greenb" id="downloadOutgoings"><span id="irtmsp">Download Alliance Outgoing Attacks</span></button>'+
"</div></div>";
var popupbox="<div id='MYpopupbox' style='display:none;width:350px;height:300px;right:10px;bottom:50px;z-index:4000;' class='popUpBox'>"+
"<div class='popUpBar'><span class='ppspan'>Claims</span>"+
"<button id='MYpopupboxX' onclick=\"$('#MYpopupbox').hide('slow');\" class='xbutton greenb'>"+
"<div id='xbuttondiv'><div><div id='centxbuttondiv'></div></div></div></button></div>"+
"<div style='overflow-y: auto;overflow-x: hidden;height: 85%;' id='MyDevOutput'>"+
"</div></div>";
var addDragonsButton='<img id="DragonsButton" src="http://icons.iconarchive.com/icons/3xhumed/mega-games-pack-31/32/Dragon-Age-Origins-new-4-icon.png">';
var addsupportrequestbutton='<p>Please make sure to go to the city requiring support before submitting the request</p><button id="requestSupport" class="regButton greenbuttonGo greenb" style="width: 130px;">Request Support</button>';
$("body").append(popupboxGeneral);
$("body").append(popupbox);
$("#tpdcontent").append(addDragonsButton);
//$("#MYpopupboxGeneralOutput").append(addsupportrequestbutton);
var zNode = document.getElementById("DragonsButton");
zNode.addEventListener ("click", ButtonClickAction, true);
zNode.addEventListener ("mouseover", mouseOver, true);
zNode.addEventListener ("mouseout", mouseOut, true);
function mouseOver(){
document.getElementById("DragonsButton").src ="http://icons.iconarchive.com/icons/3xhumed/mega-games-pack-31/128/Dragon-Age-Origins-new-4-icon.png";
}
function mouseOut(){
document.getElementById("DragonsButton").src ="http://icons.iconarchive.com/icons/3xhumed/mega-games-pack-31/32/Dragon-Age-Origins-new-4-icon.png";
}
function ButtonClickAction(){
if ($("#MYpopupboxGeneral").length == 0){
createmypopup();
}
$("#MYpopupboxGeneral").show();
}
$('#allianceOutgoings').click(function() {
setTimeout(function(){
$("#MYpopupboxGeneral").show();
}, 2000);
});
$('#showPlayerGetBox').click(function() {
$("#MYpopupboxPeople").show();
$("#MYpopupboxGeneral").hide();
});
$('#requestSupport').click(function() {
var url = "https://www.firehawk.co.za:1880/support_request";
var request = new XMLHttpRequest();
var params = "action=run";
request.open('POST', url, true);
request.onreadystatechange = function() {
if (request.readyState==4){
is_claimed = request.responseText;
}
};
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(params);
});
document.getElementById('createCityGo').style.display = 'none';
var div = document.getElementById('emptyspotAction');
var addcheckbutton = "<button class='regButton greenbuttonGo greenb' id='Check'>Check Claim</button>";
var addclaimbutton = "<button class='regButton greenbuttonGo greenb' id='Claim'>Claim</button>";
var addunclaimbutton = "<button class='regButton greenbuttonGo greenb' id='Unclaim'>Remove Claim</button>";
var addclaimresult = "<div style='overflow-y: auto;overflow-x: hidden;height: 85%;' id='claimed_result'></div>";
div.innerHTML += addcheckbutton;
div.innerHTML += addclaimbutton;
div.innerHTML += addunclaimbutton;
div.innerHTML += addclaimresult;
document.getElementById('Unclaim').style.display = 'none';
document.getElementById('Claim').style.display = 'none';
document.getElementById('Check').style.display = 'block';
$("#createCityGo").insertAfter("#Unclaim");
var is_claimed = "";
var claimed = "";
$('#Checkall').click(function() {
$("#MYpopupboxGeneral").hide();
var url = "https://www.firehawk.co.za/cotg/list/" + cotg.player.name();
var request = new XMLHttpRequest();
var params = "action=run";
request.open('POST', url, true);
request.onreadystatechange = function() {
if (request.readyState==4){
is_claimed = request.responseText;
}
};
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(params);
sleep(1000);
request.onreadystatechange = function() {
if (request.readyState==4){
is_claimed = JSON.parse(request.response);
listAllCities(is_claimed);
}
};
});
$('#Check').click(function() {
var coordinates = document.getElementById('emptyspotcoord').innerHTML;
var url = "https://www.firehawk.co.za/cotg/claim_check/" + coordinates + "/" + cotg.player.alliance();
var request = new XMLHttpRequest();
var params = "action=run";
request.open('POST', url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(params);
request.onreadystatechange = function() {
if (request.readyState==4){
is_claimed = request.responseText;
}
};
if (is_claimed !== "False") {
if (is_claimed.includes(cotg.player.name())) {
claim_write('The claim belongs to you');
document.getElementById('createCityGo').style.display = 'block';
document.getElementById('Claim').style.display = 'none';
document.getElementById('Unclaim').style.display = 'block';
document.getElementById('Check').style.display = 'none';
} else {
claim_write(is_claimed);
document.getElementById('createCityGo').style.display = 'none';
document.getElementById('Claim').style.display = 'none';
document.getElementById('Unclaim').style.display = 'none';
document.getElementById('Check').style.display = 'block';
}
}
if (is_claimed === "False") {
claim_write("Spot unclaimed");
document.getElementById('createCityGo').style.display = 'block';
document.getElementById('Claim').style.display = 'block';
document.getElementById('Check').style.display = 'none';
document.getElementById('Unclaim').style.display = 'none';
}
});
$('#Claim').click(function() {
var coordinates = document.getElementById('emptyspotcoord').innerHTML;
var url = "https://www.firehawk.co.za/cotg/claim/" + coordinates + "/"+ cotg.player.alliance() +"/" + cotg.player.name();
var request = new XMLHttpRequest();
var params = "action=run";
request.open('POST', url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(params);
request.onreadystatechange = function() {
if (request.readyState==4){
claimed = request.responseText;
//cotg.chat.alliance('Location <coords>'+coordinates+'</coords> claimed by ' + playername);
claim_write("Claimed: " + coordinates);
}
};
});
$('#Unclaim').click(function() {
var coordinates = document.getElementById('emptyspotcoord').innerHTML;
var url = "https://www.firehawk.co.za/cotg/unclaim/" + coordinates + "/"+ cotg.player.alliance() +"/" + cotg.player.name();
var request = new XMLHttpRequest();
var params = "action=run";
request.open('POST', url, true);
request.onreadystatechange = function() {
if (request.readyState==4){
claimed = request.responseText;
//cotg.chat.alliance('Location <coords>'+coordinates+'</coords> claimed by ' + playername);
claim_write("Claim Removed: " + coordinates);
}
};
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(params);
});
$('#emptyspotcoord').bind("DOMSubtreeModified",function(){
document.getElementById('createCityGo').style.display = 'none';
document.getElementById('Claim').style.display = 'none';
document.getElementById('Unclaim').style.display = 'none';
document.getElementById('Check').style.display = 'block';
claim_write("");
});
if ( document.getElementById("Sum").classList.contains('greenb') ){
document.getElementById("Sum").classList.toggle('greenb');
}
// War Portion Starts here
let csvContent = "data:text/csv;charset=utf-8,";
csvContent += "City Name,Coords,Continent,City Score,Name,Type,Water\r\n";
var popupbox1="<div id='MYpopupboxPeople' style='display:none;width:350px;height:300px;right:10px;bottom:50px;z-index:4000;' class='popUpBox'>"+
"<div class='popUpBar'><span class='ppspan'>People Exporting</span>"+
"<button id='MYpopupboxPeopleX' onclick=\"$('#MYpopupboxPeople').hide('slow');\" class='xbutton greenb'>"+
"<div id='xbuttondiv'><div><div id='centxbuttondiv'></div></div></div></button></div>"+
"<div style=' overflow-y: auto;overflow-x: hidden;height: 85%;' id='MyDevOutputPeople'>"+
"</div><button class='regButton greenbuttonGo greenb' id='playerinfodownload'>Download Player Info</button><button class='regButton greenbuttonGo greenb' id='resetPlayerCSV'>Reset</button></div>";
$("body").append(popupbox1);
var addinfogetbutton = "<button class='regButton greenbuttonGo greenb' id='playerinfoget'>Get Info</button>";
$("#playercittablet").append(addinfogetbutton);
$("#playerinfoget").insertAfter("#plSpanName");
$('#playerinfoget').click(function() {
addDataToCSV();
});
$('#playerinfodownload').click(function() {
downloadCSV();
});
$('#resetPlayerCSV').click(function() {
resetCSV();
});
function resetCSV() {
document.getElementById("MyDevOutputPeople").innerHTML = "";
csvContent = "data:text/csv;charset=utf-8,";
csvContent += "City Name,Coords,Continent,City Score,Name,Type,Water\r\n";
console.log(csvContent);
}
function addDataToCSV() {
var playername = document.getElementById('plSpanName').innerHTML;
$("#MyDevOutputPeople").append(playername+"<br>");
var rows = Array.prototype.map.call(document.querySelectorAll('#citiestablebody tr'), function(tr){
return Array.prototype.map.call(tr.querySelectorAll('td'), function(td){
return td.innerHTML;
});
});
rows.forEach(function(rowArray){
let row = rowArray.join(",");
csvContent += rowArray[1] +",";
csvContent += rowArray[2] +",";
csvContent += rowArray[3] +",";
csvContent += rowArray[4] +"," + playername +"," + rowArray[0].split('"')[3].split(" ")[1] +"," + rowArray[0].split('"')[3].split(" ")[0] +"\r\n";
});
if ($("#MYpopupboxPeople").length == 0){
createmypopup();
}
$("#MYpopupboxPeople").show();
}
function downloadCSV() {
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "data.csv");
link.innerHTML= "Click Here to download";
document.body.appendChild(link); // Required for FF
link.click();
}
$('#downloadOutgoings').click(function() {
let csvOutgoingContent = "data:text/csv;charset=utf-8,";
csvOutgoingContent += ",,Type,Defender,Alliance,Target,Coordinates,Arrives/Next Wave,Attacker,Coordinates,Attacking TS,Defending TS, Senator Claim\r\n";
var rows = Array.prototype.map.call(document.querySelectorAll('#oaBody tr'), function(tr){
return Array.prototype.map.call(tr.querySelectorAll('td'), function(td){
return td.innerHTML;
});
});
rows.forEach(function(rowArray){
let row = rowArray.join(",");
csvOutgoingContent += rowArray[0] +",";
if (rowArray[1] == '<div id="clockpicTD"></div>'){
csvOutgoingContent += "Future Attack,";
} else {
csvOutgoingContent += ",";
}
csvOutgoingContent += rowArray[2] +",";
csvOutgoingContent += rowArray[3] +",";
csvOutgoingContent += rowArray[4] +"," ;
csvOutgoingContent += rowArray[5].split(">")[1].split("<")[0] +"," ;
csvOutgoingContent += rowArray[6].split(">")[2].split("<")[0] +"," ;
csvOutgoingContent += rowArray[7] +"," ;
csvOutgoingContent += rowArray[8] +"," ;
csvOutgoingContent += rowArray[9].split(">")[1].split("<")[0] +"," ;
csvOutgoingContent += rowArray[10] +"," ;
csvOutgoingContent += rowArray[11] +"," ;
csvOutgoingContent += rowArray[12] +"\r\n";
});
var encodedUri = encodeURI(csvOutgoingContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "outgoings.csv");
link.innerHTML= "Click Here to download";
document.body.appendChild(link); // Required for FF
link.click();
});
})();