module Update.SelectCharacter exposing (apply_to) import Dict import Character import Battlemap import Battlemap.Direction import Battlemap.Navigator import Battlemap.Tile import Battlemap.RangeIndicator import Model apply_to : Model.Type -> Character.Ref -> Model.Type apply_to model char_id = {model | selection = (Just char_id), battlemap = (Battlemap.apply_to_all_tiles model.battlemap (Battlemap.Tile.set_navigation Battlemap.Direction.None) ), navigator = (case (Dict.get char_id model.characters) of Nothing -> Nothing (Just char) -> (Just (Battlemap.Navigator.new_navigator char.location char.movement_points ) ) ), range_indicator = (case (Dict.get char_id model.characters) of Nothing -> Dict.empty (Just char) -> (Battlemap.RangeIndicator.generate model.battlemap char.location char.movement_points ) ) }