41 lines
920 B
PHP
41 lines
920 B
PHP
<?php
|
|
|
|
class beta5_bq_getReplacementCost {
|
|
|
|
function beta5_bq_getReplacementCost($lib) {
|
|
$this->lib = $lib;
|
|
$this->db = $this->lib->game->db;
|
|
$this->rules = $this->lib->game->getLib('beta5/rules');
|
|
}
|
|
|
|
// Computes the cost of replacing a set of build queue items
|
|
function run($pid, $items, $rCost) {
|
|
if (count($items) == 0) {
|
|
return 0;
|
|
}
|
|
|
|
$q = $this->db->query("SELECT owner FROM planet WHERE id = $pid");
|
|
list($uid) = dbFetchArray($q);
|
|
$ru = $this->rules->call('get', $uid);
|
|
|
|
if (count($items) == 1) {
|
|
$wc = "=".$items[0];
|
|
} else {
|
|
$wc = "IN (" . join(',', $items) . ")";
|
|
}
|
|
$q = $this->db->query("SELECT item,quantity FROM buildqueue WHERE planet = $pid AND bq_order $wc");
|
|
if (!dbCount($q)) {
|
|
return 0;
|
|
}
|
|
|
|
$sum = 0;
|
|
while ($r = dbFetchArray($q)) {
|
|
$sum -= $r[1] * $ru['build_cost_'.$this->lib->mainClass->types[$r[0]]];
|
|
$sum += $rCost;
|
|
}
|
|
|
|
return $sum;
|
|
}
|
|
}
|
|
|
|
?>
|