private function finishAll() {
global $database,$session,$logging,$village,$bid18,$bid10,$bid11,$technology,$_SESSION;
if($session->access!=BANNED){
if($session->gold >= 2){
foreach($this->buildArray as $jobs) {
if($jobs['wid']==$village->wid){
for ($i = 1; $i <= 40; $i++) {
$wwvillage = $database->getResourceLevel($jobs['wid']);
if($wwvillage['f99t']!=40 and $wwvillage['f'.$i.'t']!=40){
$level = $database->getFieldLevel($jobs['wid'],$jobs['field']);
$level = ($level == -1) ? 0 : $level;
if($jobs['type'] != 25 AND $jobs['type'] != 26 AND $jobs['type'] != 40) {
$gold=$database->getUserField($_SESSION['username'],'gold','username');
$gold-=2;
$database->updateUserField($_SESSION['username'],'gold',$gold,0);
$resource = $this->resourceRequired($jobs['field'],$jobs['type']);
$q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = f".$jobs['field']." + 1, f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid'];
if($database->query($q)) {
$database->modifyPop($jobs['wid'],$resource['pop'],0);
$database->addCP($jobs['wid'],$resource['cp']);
$database->finishDemolition($village->wid);
$q = "DELETE FROM ".TB_PREFIX."bdata where id = ".$jobs['id'];
$database->query($q);
if($jobs['type'] == 18) {
$owner = $database->getVillageField($jobs['wid'],"owner");
$max = $bid18[$level]['attri'];
$q = "UPDATE ".TB_PREFIX."alidata set max = $max where leader = $owner";
$database->query($q);
}
if($jobs['type'] == 10) {
$max=$database->getVillageField($jobs['wid'],"maxstore");
if($level=='0' && $this->getTypeLevel(10) != 20){ $max-=STORAGE_BASE; }
$max-=$bid10[$level]['attri']*STORAGE_MULTIPLIER;
$max+=$bid10[$level+1]['attri']*STORAGE_MULTIPLIER;
$database->setVillageField($jobs['wid'],"maxstore",$max);
}
if($jobs['type'] == 11) {
$max=$database->getVillageField($jobs['wid'],"maxcrop");
if($level=='0' && $this->getTypeLevel(11) != 20){ $max-=STORAGE_BASE; }
$max-=$bid11[$level]['attri']*STORAGE_MULTIPLIER;
$max+=$bid11[$level+1]['attri']*STORAGE_MULTIPLIER;
$database->setVillageField($jobs['wid'],"maxcrop",$max);
}
if($jobs['type'] == 38) {
$max=$database->getVillageField($jobs['wid'],"maxstore");
if($level=='0' && $this->getTypeLevel(38) != 20){ $max-=STORAGE_BASE; }
$max-=$bid38[$level]['attri']*STORAGE_MULTIPLIER;
$max+=$bid38[$level+1]['attri']*STORAGE_MULTIPLIER;
$database->setVillageField($jobs['wid'],"maxstore",$max);
}
if($jobs['type'] == 39) {
$max=$database->getVillageField($jobs['wid'],"maxcrop");
if($level=='0' && $this->getTypeLevel(39) != 20){ $max-=STORAGE_BASE; }
$max-=$bid39[$level]['attri']*STORAGE_MULTIPLIER;
$max+=$bid39[$level+1]['attri']*STORAGE_MULTIPLIER;
$database->setVillageField($jobs['wid'],"maxcrop",$max);
}
}
if(($jobs['field'] >= 19 && ($session->tribe == 1 || ALLOW_ALL_TRIBE)) || (!ALLOW_ALL_TRIBE && $session->tribe != 1)) { $innertimestamp = $jobs['timestamp']; }
}
}
}
}
}
$technology->finishTech();
$logging->goldFinLog($village->wid);
$database->modifyGold($session->uid,0,0);
$stillbuildingarray = $database->getJobs($village->wid);
if(count($stillbuildingarray) == 1) {
if($stillbuildingarray[0]['loopcon'] == 1) {
$q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0,timestamp=".(time()+$stillbuildingarray[0]['timestamp']-$innertimestamp)." WHERE id=".$stillbuildingarray[0]['id'];
$database->query($q);
}
}
header("Location: ".$session->referrer);
}
}else{
header("Location: banned.php");
}
}