29-07-2019, 10:43 AM
(29-07-2019, 10:18 AM)niahoo a écrit : Hey sympa tout ça ça fait quoi DeployStartingUnit
en termes de gameplay ? ça spawn ?
Ça ajoute une unité à la partie.
def apply(game = %Seelies.Game{units: units}, %Seelies.StartingUnitDeployed{territory_id: territory_id, unit_id: unit_id, unit_type: unit_type}) do
unit = %{unit_id: unit_id, unit_type: unit_type, territory_id: territory_id}
%{game | units: Map.put(units, unit_id, unit)}
end
(29-07-2019, 10:18 AM)niahoo a écrit :Citation :je vais construire un module dont le but sera de modifier cette structure
N'est-ce pas le rôle deBoard
qui contient déjà les fonctions de lecture du state ?
Tout à fait, mais pour le board : c'est un sous ensemble du state de Game pour stocker la map. C'est donc plutôt statique. Si j'utilisais la même map sur plusieurs parties, je pourrais sans problème le sortir du state de Game.
Puisque c'est la structure liée au module Game que je manipule, je pourrais utiliser des fonctions privée dans ce module, mais avec toutes les définitions de execute et de apply, ça risque de vite devenir très gros.