diff --git a/hwe/sammo/Event/Action/RaiseInvader.php b/hwe/sammo/Event/Action/RaiseInvader.php index fa2fba83..c043a0b9 100644 --- a/hwe/sammo/Event/Action/RaiseInvader.php +++ b/hwe/sammo/Event/Action/RaiseInvader.php @@ -67,15 +67,13 @@ class RaiseInvader extends \sammo\Event\Action foreach ($db->queryAllLists('SELECT capital, nation from nation WHERE capital in %li', $cities) as $row) { [$oldCapital, $nation] = $row; - $capitalCandidates = $db->queryFirstColumn('SELECT city from city WHERE nation = %i AND city != %i', $nation, $oldCapital); + $capitalCandidates = $db->queryFirstColumn('SELECT city from city WHERE nation = %i AND city != %i NOT IN %li', $nation, $oldCapital, $cities); if (!$capitalCandidates) { $disabledInvaderCity->add($oldCapital); continue; } - do { - $newCapital = $rng->choice($capitalCandidates); - } while(in_array($newCapital, $cities)); + $newCapital = $rng->choice($capitalCandidates); $db->update('nation', ['capital' => $newCapital], 'nation=%i', $nation); $db->update('general', ['city' => $newCapital], 'nation=%i and city=%i', $nation, $oldCapital);