Fixed a spy bug

+Fixed a bug that didn't permit to detect upgraded (in the blachsmith)
spies
+Changed a debug function, from public to public static
This commit is contained in:
iopietro
2018-05-15 20:55:43 +02:00
parent 95cc6180a9
commit 656bd4f970
2 changed files with 22 additions and 22 deletions
+21 -20
View File
@@ -250,7 +250,9 @@ class Battle {
//dp = Infantry defense points //dp = Infantry defense points
//rap = Result attack points //rap = Result attack points
//rdp = Result defense points //rdp = Result defense points
//detected = Detected or not by enemy spies
$cap = $ap = $dp = $cdp = $rap = $rdp = 0; $cap = $ap = $dp = $cdp = $rap = $rdp = 0;
$detected = false;
//Get involved artifacts //Get involved artifacts
$attacker_artefact = $database->getArtifactsValueInfluence($AttackerID, $AttackerWref, 3, 1, false); $attacker_artefact = $database->getArtifactsValueInfluence($AttackerID, $AttackerWref, 3, 1, false);
@@ -269,7 +271,7 @@ class Battle {
$dp += $datadefScout['dp']; $dp += $datadefScout['dp'];
$cdp += $datadefScout['cdp']; $cdp += $datadefScout['cdp'];
$involve = $datadefScout['involve']; $involve = $datadefScout['involve'];
if ($datadefScout['detect'] == 1) $detected = 1; if(!$detected && $datadefScout['detect']) $detected = $datadefScout['detect'];
}else{ }else{
$datadef = $this->getDataDef($Defender, $def_ab); $datadef = $this->getDataDef($Defender, $def_ab);
$dp += $datadef['dp']; $dp += $datadef['dp'];
@@ -319,7 +321,7 @@ class Battle {
$dp += $datadefScout['dp']; $dp += $datadefScout['dp'];
$cdp += $datadefScout['cdp']; $cdp += $datadefScout['cdp'];
$involve = $datadefScout['involve']; $involve = $datadefScout['involve'];
if ($datadefScout['detect'] == 1) $detected = 1; if(!$detected && $datadefScout['detect']) $detected = $datadefScout['detect'];
}else{ }else{
$datadef = $this->getDataDef($defenders, $def_ab); $datadef = $this->getDataDef($defenders, $def_ab);
$dp += $datadef['dp']; $dp += $datadef['dp'];
@@ -419,7 +421,7 @@ class Battle {
// Defense infantry = Infantry * Wall (%) // Defense infantry = Infantry * Wall (%)
// Defense calvary calvary = * Wall (%) // Defense calvary calvary = * Wall (%)
if ($dp > 0 || $cdp > 0){ if ($dp > 0 || $cdp > 0){
if($type==1) { if($type == 1) {
$dp *= $wallMultiplier; $dp *= $wallMultiplier;
$dp += 10; $dp += 10;
}else{ }else{
@@ -486,24 +488,22 @@ class Battle {
$holder = pow((($rdp * $moralbonus) / $rap), $Mfactor); $holder = pow((($rdp * $moralbonus) / $rap), $Mfactor);
if($holder > 1) $holder = 1; if($holder > 1) $holder = 1;
if ($rdp > $rap) $holder = 1; if ($rdp > $rap) $holder = 1;
// Attacker
$result[1] = $holder;
//Birds of Prey cannot die when scouting //Birds of Prey cannot die when scouting
//Spies cannot die if the attacked village has no defending spies //Spies cannot die if the attacked village has no defending spies
if ($att_tribe == 5 || !$detected) $result[1] = 0; //Attacker result
$result[1] = ($att_tribe == 5 || !$detected) ? 0 : $holder;
// Defender //Defender result
$result[2] = 0; $result[2] = 0;
}else if($type == 2){ }else if($type == 2){
}else if($type == 4) { }else if($type == 4) {
$holder = ($winner) ? pow((($rdp * $moralbonus) / $rap), $Mfactor) : pow(($rap / ($rdp * $moralbonus)), $Mfactor); $holder = ($winner) ? pow((($rdp * $moralbonus) / $rap), $Mfactor) : pow(($rap / ($rdp * $moralbonus)), $Mfactor);
$holder = $holder / (1 + $holder); $holder = $holder / (1 + $holder);
// Attacker //Attacker result
$result[1] = $winner ? $holder : 1 - $holder; $result[1] = $winner ? $holder : 1 - $holder;
// Defender //Defender result
$result[2] = $winner ? 1 - $holder : $holder; $result[2] = $winner ? 1 - $holder : $holder;
$ram -= round($ram * $result[1] / 100); $ram -= round($ram * $result[1] / 100);
$catp -= round($catp * $result[1] / 100); $catp -= round($catp * $result[1] / 100);
@@ -686,22 +686,23 @@ class Battle {
public function getDataDefScout($defenders, $def_ab, $defender_artefact) { public function getDataDefScout($defenders, $def_ab, $defender_artefact) {
$abcount = 1; $abcount = 1;
$invol = $dp = $cdp = $detected = 0; $invol = $dp = $cdp = 0;
$detected = false;
for($y = 4; $y <= 54; $y++) { for($y = 4; $y <= 50; $y++) {
if($y == 4 || $y == 14 || $y == 23 || $y == 44){ if($y == 4 || $y == 14 || $y == 23 || $y == 44){
global ${'u'.$y}; global ${'u'.$y};
if($defenders['u'.$y] > 0 && $def_ab[$y] > 0) { if($defenders['u'.$y] > 0 && $def_ab[$y] > 0){
$dp += round(20 + (20 + 300 * ${'u'.$y}['pop'] / 7) * (pow(1.007, $def_ab[$y]) - 1), 4) * $defenders['u'.$y] * $defender_artefact; $dp += round(20 + (20 + 300 * ${'u'.$y}['pop'] / 7) * (pow(1.007, $def_ab[$y]) - 1), 4) * $defenders['u'.$y] * $defender_artefact;
}else { $detected = true;
if($defenders['u'.$y] > 0) { }else{
$dp += $defenders['u'.$y] * 20 * $defender_artefact; if($defenders['u'.$y] > 0){
} $dp += $defenders['u'.$y] * 20 * $defender_artefact;
$detected = true;
$units['Def_unit'][$y] = $defenders['u'.$y]; }
if($units['Def_unit'][$y] > 0) $detected = 1;
} }
$invol += $defenders['u'.$y]; //total troops $invol += $defenders['u'.$y]; //total troops
$units['Def_unit'][$y] = $defenders['u'.$y]; $units['Def_unit'][$y] = $defenders['u'.$y];
} }
+1 -2
View File
@@ -98,7 +98,7 @@ class Logging {
global $database; global $database;
} }
public function debug($debug_info, $time = 0) { public static function debug($debug_info, $time = 0) {
global $database, $generator; global $database, $generator;
list($debug_info) = $database->escape_input($debug_info); list($debug_info) = $database->escape_input($debug_info);
@@ -107,5 +107,4 @@ class Logging {
}; };
$logging = new Logging; $logging = new Logging;
//$logging->debug(time(),2,'Logging.php loaded');
?> ?>