aboutsummaryrefslogtreecommitdiffstats
path: root/js/craftmine.js
blob: 608efb788d579bebbdbcffa44f5754f822298774 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
data = {
	gold: 0,
	mine: 0,
	miners: 0,
	level: 1
}

function sendRequest(url, params, callback) {
	var xhr = new XMLHttpRequest();
	xhr.open("POST", url);
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr.onreadystatechange = function() {
		if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == "200") {
			var data = "";
			if(xhr.responseText) data = JSON.parse(xhr.responseText);
			if(data.info)
				showInfo(data.info);
			if(data.error) {
				showError(data.error);
				return;
			}
			if(callback) callback(data);
		}
	}
	xhr.send(params);
}


function updateData() {
	for (var i = 0; i < arguments.length; i++) {
		document.getElementById(arguments[i]).innerHTML = data[arguments[i]];
	}
}

function debitAccount(amount) {
	data.gold -= amount;
	updateData("gold");
}

function withdrawMine() {
	sendRequest("craftmine.php", "op=withdrawMine&amount="+data.mine, function(xhr) {
		var gold = parseInt(xhr); // Server's response is a string
		if(isNaN(gold)) return;
		data.gold = gold;
		data.mine = 0;
		updateData("gold", "mine");
	})
}

function initCraftMine() {
	sendRequest("craftmine.php", "op=getCraftMine", function(ret) {
		data.gold = parseInt(ret.gold); // Server's response is a string
		if(ret.shop) displayShop(ret.shop);
		displayInventory(ret.inventory);
		data.miners = parseInt(ret.miners);
		updateData("gold","miners");
	})
}


function updateMine() {
	data.mine += (data.miners+1);
	updateData("mine");
}

function saveGame() {
	sendRequest("craftmine.php", "op=saveGame");
}

function downGame() {
	window.open("craftmine.php?op=downGame", "_blank");
}

function init() {
	initCraftMine();
	changeTab();
	window.setInterval(updateMine, 1000);
}