/** * Met les Rivieres de la collection dans le RiviereStore * Vérifie si le Riviere était déjà storé, dans ce cas, remplace le Riviere concerné par celui du RiviereStore */ public function store() { $replaces = array(); foreach ($this as $offset => $riviere) { /** @var Riviere $riviere */ if (RiviereStore::exists($riviere->getId())) { $replaces[$offset] = $riviere; } else { RiviereStore::store($riviere); } } unset($offset); foreach ($replaces as $offset => $riviere) { $this->offsetSet($offset, RiviereStore::getById($riviere->getId())); } }
/** * Renvoie le type de traversée qu'il y a entre 2 cases * @param Hexa $hexa1 * @param Hexa $hexa2 * @return bool */ public static function typeTraversee(Hexa $hexa1, Hexa $hexa2) { $traversee = self::TRAVERSEE_RIEN; $riviere = RiviereStore::getByHexas($hexa1, $hexa2); if (self::$types[$hexa1->getTypeTerrain()]['naval'] != self::$types[$hexa2->getTypeTerrain()]['naval']) { return self::TRAVERSEE_LITTORAL; } elseif (!is_null($riviere)) { $traversee = self::TRAVERSEE_RIVIERE; if ($riviere->getGue() != 0) { $traversee = self::TRAVERSEE_GUE; } if (!is_null($riviere->getPont())) { $traversee = self::TRAVERSEE_PONT; } } return $traversee; }