<?php

class beta5_alliance_library {
	var $index	= array(
		'acceptRequest',
		'addCandidate',
		'cancelRequest',
		'changeRank',
		'create',
		'createForum',
		'createRank',
		'deleteForum',
		'deleteRank',
		'get',
		'getCandidates',
		'getForums',
		'getForumsComplete',
		'getId',
		'getKeepers',
		'getMembers',
		'getMilitary',
		'getPlanets',
		'getPrivileges',
		'getRankPrivileges',
		'getRankSize',
		'getRanks',
		'getRequests',
		'getTechList',
		'getTechOrder',
		'getTechOrders',
		'getTechRequests',
		'getTechSubmission',
		'getVoters',
		'kick',
		'leave',
		'modifyForum',
		'modifyRank',
		'moveForum',
		'rejectRequest',
		'removeCandidate',
		'sendRequest',
		'setDemocratic',
		'setForumAccess',
		'setSuccessor',
		'setTechRequests',
		'setTechTradeMode',
		'stepDown',
		'submitTechList',
		'submitTechOrders',
		'takePresidency',
		'updateRequests',
		'updateVictory'
	);


	public function __construct($lib) {
		$this->lib	= $lib;
		$this->db	= $this->lib->game->db;
	}


	// Changes a player's vote
	function setVote($pid,$v) {
		$this->db->query("UPDATE player SET a_vote=$v WHERE id=$pid");
		$this->players[$pid] = null;
	}

	// Marks a tech trading order as obeyed
	public function obeyOrder($pid) {
		$this->db->query("UPDATE tech_trade_order SET obeyed = UNIX_TIMESTAMP( NOW() ) WHERE player = $pid");
	}

	// Get the timestamp of the latest tech trading orders and the next time it'll be possible to
	// change the orders
	public function getLatestTechOrders($alliance) {
		// Get latest submission, if any
		$q = $this->db->query("SELECT MAX(submitted) FROM tech_trade_order WHERE alliance = $alliance");
		list($sub) = dbFetchArray($q);
		$sub = (int) $sub;

		// Get delays
		$interval = 2 * $this->lib->game->ticks['battle']->interval;
		$now = time();
		if ($now - $sub >= $interval) {
			$next = 0;
		} else {
			$next = $sub + $interval;
		}

		return array($sub, $next);
	}
}

?>