' . $title . ' »
' . $count . ' ' . $short . '
in  ' . $generator->getTimeFormat($arrivalTime - time()) . '  ' . HOURS . '
'; } } /** * --------------------------------------------------------- * Preload oasis data * --------------------------------------------------------- */ $oases = 0; $oasisMovements = array(); $oasisArray = $database->getOasis($village->wid); foreach ($oasisArray as $conqured) { $oasisData = $database->getMovement(6, $conqured['wref'], 0); $oases += count($oasisData); if (!empty($oasisData)) { $oasisMovements = array_merge($oasisMovements, $oasisData); } } /** * --------------------------------------------------------- * Cache movement queries * Reduces duplicated SQL/database calls * --------------------------------------------------------- */ $movement4_1 = $database->getMovement(4, $village->wid, 1); $movement7_1 = $database->getMovement(7, $village->wid, 1); $movement3_1 = $database->getMovement(3, $village->wid, 1); $movement3_0 = $database->getMovement(3, $village->wid, 0); $movement5_0 = $database->getMovement(5, $village->wid, 0); $movement8_1 = $database->getMovement(8, $village->wid, 1); $movement9_0 = $database->getMovement(9, $village->wid, 0); /** * --------------------------------------------------------- * Total movement count * --------------------------------------------------------- */ $totalMovements = count($movement4_1) + count($movement3_1) + count($movement3_0) + count($movement7_1) + count($movement5_0) + $oases - count($movement8_1) - count($movement9_0); /** * --------------------------------------------------------- * Table header * --------------------------------------------------------- */ if ($totalMovements > 0) { echo ' '; } /** * ========================================================= * ARRIVING REINFORCEMENTS * ========================================================= */ $reinforcementCount = 0; $reinforcementArrival = array(); /** * Returning reinforcement */ foreach ($movement4_1 as $receive) { $reinforcementCount++; $reinforcementArrival[] = $receive['endtime']; } /** * Evasion / special reinforcement */ foreach ($movement7_1 as $receive) { $reinforcementCount++; $reinforcementArrival[] = $receive['endtime']; } /** * Incoming support from movement type 3 */ foreach ($movement3_1 as $receive) { if ($receive['attack_type'] == 2) { $reinforcementCount++; $reinforcementArrival[] = $receive['endtime']; } } renderMovementRow( 'def1', 'd1', ARRIVING_REINF_TROOPS, ARRIVING_REINF_TROOPS_SHORT, $reinforcementCount, !empty($reinforcementArrival) ? min($reinforcementArrival) : 0, $generator, $session ); /** * ========================================================= * INCOMING ATTACKS / RAIDS * ========================================================= */ $attackCount = 0; $attackArrival = array(); foreach ($movement3_1 as $receive) { if ( $receive['attack_type'] != 2 && $receive['attack_type'] != 1 ) { $attackCount++; $attackArrival[] = $receive['endtime']; } } renderMovementRow( 'att1', 'a1', UNDERATTACK, ATTACK, $attackCount, !empty($attackArrival) ? min($attackArrival) : 0, $generator, $session ); /** * ========================================================= * OWN ATTACKING TROOPS * ========================================================= */ $ownAttackCount = 0; $ownAttackArrival = array(); foreach ($movement3_0 as $receive) { if ($receive['attack_type'] != 2) { $ownAttackCount++; $ownAttackArrival[] = $receive['endtime']; } } renderMovementRow( 'att2', 'a2', OWN_ATTACKING_TROOPS, ATTACK, $ownAttackCount, !empty($ownAttackArrival) ? min($ownAttackArrival) : 0, $generator, $session ); /** * ========================================================= * OWN REINFORCING TROOPS * ========================================================= */ $ownReinfCount = 0; $ownReinfArrival = array(); foreach ($movement3_0 as $receive) { if ($receive['attack_type'] == 2) { $ownReinfCount++; $ownReinfArrival[] = $receive['endtime']; } } renderMovementRow( 'def2', 'd2', OWN_REINFORCING_TROOPS, ARRIVING_REINF_TROOPS_SHORT, $ownReinfCount, !empty($ownReinfArrival) ? min($ownReinfArrival) : 0, $generator, $session ); /** * ========================================================= * FOUNDING NEW VILLAGE * ========================================================= */ $newVillageCount = count($movement5_0); $newVillageArrival = array(); foreach ($movement5_0 as $receive) { $newVillageArrival[] = $receive['endtime']; } renderMovementRow( 'att3', 'a3', FOUNDNEWVILLAGE, NEWVILLAGE, $newVillageCount, !empty($newVillageArrival) ? min($newVillageArrival) : 0, $generator, $session ); /** * ========================================================= * OASIS ATTACKS / REINFORCEMENTS * ========================================================= */ $oasisCount = count($oasisMovements); $oasisArrival = array(); $oasisAction = 'att3'; $oasisClass = 'a3'; $oasisTitle = OASISATTACK; $oasisShort = OASISATTACKS; foreach ($oasisMovements as $receive) { /** * Reinforcement to oasis */ if ($receive['attack_type'] == 2) { $oasisAction = 'def3'; $oasisClass = 'd3'; $oasisTitle = ARRIVING_REINF_TROOPS; $oasisShort = ARRIVING_REINF_TROOPS_SHORT; } $oasisArrival[] = $receive['endtime']; } renderMovementRow( $oasisAction, $oasisClass, $oasisTitle, $oasisShort, $oasisCount, !empty($oasisArrival) ? min($oasisArrival) : 0, $generator, $session ); /** * --------------------------------------------------------- * Close table * --------------------------------------------------------- */ if ($totalMovements > 0) { echo '
' . TROOP_MOVEMENTS . '
'; } ?>