summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 16:56:15 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 16:56:15 +0200 |
commit | f974d5b263140d8564d7e36ed8cfd0eac1734e2c (patch) | |
tree | 789a49a5689b1ae0cc2a3bf75f0bc23f09c99f1d /src | |
parent | 7b891ce04190365080fb4ef5d8dac68528a81af1 (diff) |
The map editor compiles (but does not work).
Diffstat (limited to 'src')
33 files changed, 319 insertions, 1385 deletions
diff --git a/src/map-editor/src/Comm/Send.elm b/src/map-editor/src/Comm/Send.elm index cbb6a28..2b9c4aa 100644 --- a/src/map-editor/src/Comm/Send.elm +++ b/src/map-editor/src/Comm/Send.elm @@ -8,6 +8,7 @@ import Json.Encode -- Battlemap ------------------------------------------------------------------- import Comm.AddTile +import Comm.Okay import Comm.SetMap import Struct.Event diff --git a/src/map-editor/src/Comm/SetMap.elm b/src/map-editor/src/Comm/SetMap.elm index dc499cf..754c82b 100644 --- a/src/map-editor/src/Comm/SetMap.elm +++ b/src/map-editor/src/Comm/SetMap.elm @@ -3,8 +3,8 @@ module Comm.SetMap exposing (decode) -- Elm ------------------------------------------------------------------------- import Json.Decode --- Battlemap ------------------------------------------------------------------- -import Struct.Battlemap +-- Map ------------------------------------------------------------------------- +import Struct.Map import Struct.ServerReply import Struct.Tile @@ -34,7 +34,7 @@ deserialize_tile_instance map_width index id = internal_decoder : MapData -> Struct.ServerReply.Type internal_decoder map_data = (Struct.ServerReply.SetMap - (Struct.Battlemap.new + (Struct.Map.new map_data.w map_data.h (List.indexedMap diff --git a/src/map-editor/src/Constants/IO.elm.m4 b/src/map-editor/src/Constants/IO.elm.m4 index 645ad14..07043dc 100644 --- a/src/map-editor/src/Constants/IO.elm.m4 +++ b/src/map-editor/src/Constants/IO.elm.m4 @@ -10,7 +10,7 @@ map_update_handler : String map_update_handler = (map_editor_handler_url ++ "/me_update") map_loading_handler : String -map_loading_handler = (map_edit_handler_url ++ "/me_load_state") +map_loading_handler = (map_editor_handler_url ++ "/me_load_state") tile_assets_url : String tile_assets_url = (base_url ++ "/asset/svg/tile/") diff --git a/src/map-editor/src/ElmModule/View.elm b/src/map-editor/src/ElmModule/View.elm index de86372..40ec9b0 100644 --- a/src/map-editor/src/ElmModule/View.elm +++ b/src/map-editor/src/ElmModule/View.elm @@ -12,7 +12,7 @@ import Struct.Event import Struct.Model import View.Map -import View.Controlled +import View.Toolbox import View.MessageBoard import View.MainMenu import View.SubMenu @@ -32,8 +32,8 @@ view model = ] [ (View.MainMenu.get_html), - (Html.Lazy.lazy2 - (View.ToolBox.get_html) + (Html.Lazy.lazy + (View.Toolbox.get_html) model.toolbox ), (Html.div diff --git a/src/map-editor/src/Struct/HelpRequest.elm b/src/map-editor/src/Struct/HelpRequest.elm index 92d80eb..774ecdc 100644 --- a/src/map-editor/src/Struct/HelpRequest.elm +++ b/src/map-editor/src/Struct/HelpRequest.elm @@ -10,4 +10,3 @@ import Struct.Toolbox -------------------------------------------------------------------------------- type Type = None - | HelpOnTool Struct.Toolbox.Tool diff --git a/src/map-editor/src/Struct/Map.elm b/src/map-editor/src/Struct/Map.elm index b5ee795..d6a9cea 100644 --- a/src/map-editor/src/Struct/Map.elm +++ b/src/map-editor/src/Struct/Map.elm @@ -6,7 +6,7 @@ module Struct.Map exposing get_width, get_height, get_tiles, - get_movement_cost_function, + set_tile_to, solve_tiles, try_getting_tile_at ) @@ -56,6 +56,12 @@ get_height map = map.height get_tiles : Type -> (Array.Array Struct.Tile.Instance) get_tiles map = map.content +set_tile_to : Struct.Location.Type -> Struct.Tile.Instance -> Type -> Type +set_tile_to loc tile_inst map = + {map | + content = (Array.set (location_to_index loc map) tile_inst map.content) + } + empty : Type empty = { diff --git a/src/map-editor/src/Struct/Model.elm b/src/map-editor/src/Struct/Model.elm index 4f089ec..634867e 100644 --- a/src/map-editor/src/Struct/Model.elm +++ b/src/map-editor/src/Struct/Model.elm @@ -14,11 +14,12 @@ import Array import Dict -- Map ------------------------------------------------------------------- -import Struct.Map import Struct.Error import Struct.Flags import Struct.HelpRequest +import Struct.Map import Struct.Tile +import Struct.Toolbox import Struct.UI import Util.Array @@ -28,12 +29,13 @@ import Util.Array -------------------------------------------------------------------------------- type alias Type = { + toolbox: Struct.Toolbox.Type, help_request: Struct.HelpRequest.Type, map: Struct.Map.Type, tiles: (Dict.Dict Struct.Tile.Ref Struct.Tile.Type), error: (Maybe Struct.Error.Type), player_id: String, - map_id: String, + map_ix: String, session_token: String, ui: Struct.UI.Type } @@ -48,14 +50,15 @@ type alias Type = new : Struct.Flags.Type -> Type new flags = let - maybe_map_id = (Struct.Flags.maybe_get_param "id" flags) + maybe_map_ix = (Struct.Flags.maybe_get_param "id" flags) model = { + toolbox = (Struct.Toolbox.default), help_request = Struct.HelpRequest.None, map = (Struct.Map.empty), tiles = (Dict.empty), error = Nothing, - map_id = "", + map_ix = "", player_id = ( if (flags.user_id == "") @@ -66,7 +69,7 @@ new flags = ui = (Struct.UI.default) } in - case maybe_map_id of + case maybe_map_ix of Nothing -> (invalidate (Struct.Error.new @@ -76,7 +79,7 @@ new flags = model ) - (Just id) -> {model | map_id = id} + (Just id) -> {model | map_ix = id} add_tile : Struct.Tile.Type -> Type -> Type add_tile tl model = @@ -92,12 +95,10 @@ add_tile tl model = reset : Type -> Type reset model = {model | + toolbox = (Struct.Toolbox.default), help_request = Struct.HelpRequest.None, error = Nothing, - ui = - (Struct.UI.reset_displayed_nav - (Struct.UI.set_previous_action Nothing model.ui) - ) + ui = (Struct.UI.set_previous_action Nothing model.ui) } invalidate : Struct.Error.Type -> Type -> Type diff --git a/src/map-editor/src/Struct/Tile.elm b/src/map-editor/src/Struct/Tile.elm index a683be3..d1ba4cf 100644 --- a/src/map-editor/src/Struct/Tile.elm +++ b/src/map-editor/src/Struct/Tile.elm @@ -4,6 +4,7 @@ module Struct.Tile exposing Type, Instance, new, + clone_instance, new_instance, error_tile_instance, get_id, @@ -112,6 +113,9 @@ new id name crossing_cost range_minimum range_maximum = range_maximum = range_maximum } +clone_instance : Struct.Location.Type -> Instance -> Instance +clone_instance loc inst = {inst | location = loc} + new_instance : Int -> Int -> Int -> Int -> Int -> Instance new_instance x y icon_id crossing_cost type_id = { diff --git a/src/map-editor/src/Struct/Toolbox.elm b/src/map-editor/src/Struct/Toolbox.elm index 81f7c2a..9b95948 100644 --- a/src/map-editor/src/Struct/Toolbox.elm +++ b/src/map-editor/src/Struct/Toolbox.elm @@ -1,15 +1,188 @@ -module Struct.Toolbox exposing (Tool(..)) +module Struct.Toolbox exposing + ( + Type, + Mode(..), + Shape(..), + apply_to, + is_selected, + clear_selection, + set_template, + set_mode, + set_shape, + get_template, + get_mode, + get_shape, + get_selection, + default + ) -- Elm ------------------------------------------------------------------------- -- Battlemap ------------------------------------------------------------------- -import Struct.Toolbox +import Struct.Location +import Struct.Map +import Struct.Tile -------------------------------------------------------------------------------- -- TYPES ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -type Tool = +type alias Type = + { + template : Struct.Tile.Instance, + mode : Mode, + shape : Shape, + selection : (List Struct.Location.Type), + square_corner : (Maybe Struct.Location.Type) + } + +type Mode = + Draw + | RemoveSelection + | AddSelection + +type Shape = Simple - | Select | Fill | Square + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +apply_mode_to : ( + Struct.Location.Type -> + (Type, Struct.Map.Type) -> + (Type, Struct.Map.Type) + ) +apply_mode_to loc (tb, map) = + case tb.mode of + Draw -> + ( + tb, + (Struct.Map.set_tile_to + loc + (Struct.Tile.clone_instance loc tb.template) + map + ) + ) + + RemoveSelection -> + ( + {tb | + selection = (List.filter (\e -> (e /= loc)) tb.selection) + }, + map + ) + + AddSelection -> + ( + ( + if (List.member loc tb.selection) + then tb + else + {tb | + selection = (loc :: tb.selection) + } + ), + map + ) + +get_filled_tiles : ( + Struct.Location.Type -> + Struct.Map.Type -> + (List Struct.Location.Type) + ) +get_filled_tiles loc map = + -- TODO: unimplemented + [] + +get_square_tiles : ( + Struct.Location.Type -> + Struct.Location.Type -> + Struct.Map.Type -> + (List Struct.Location.Type) + ) +get_square_tiles new_loc corner map = + -- TODO: unimplemented + [] + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +default : Type +default = + { + template = (Struct.Tile.error_tile_instance 0 0), + mode = Draw, + shape = Simple, + selection = [], + square_corner = Nothing + } + +get_template : Type -> Struct.Tile.Instance +get_template tb = tb.template + +get_mode : Type -> Mode +get_mode tb = tb.mode + +get_shape : Type -> Shape +get_shape tb = tb.shape + +get_selection : Type -> (List Struct.Location.Type) +get_selection tb = tb.selection + +set_template : Struct.Tile.Instance -> Type -> Type +set_template template tb = + {tb | + template = template + } + +set_mode : Mode -> Type -> Type +set_mode mode tb = + {tb | + mode = mode, + square_corner = Nothing + } + +set_shape : Shape -> Type -> Type +set_shape shape tb = + {tb | + shape = shape, + square_corner = Nothing + } + +clear_selection : Type -> Type +clear_selection tb = + {tb | + selection = [], + square_corner = Nothing + } + +is_selected : Type -> Struct.Location.Type -> Bool +is_selected tb loc = + (List.member loc tb.selection) + +apply_to : ( + Struct.Location.Type -> + Type -> + Struct.Map.Type -> + (Type, Struct.Map.Type) + ) +apply_to loc tb map = + case tb.shape of + Simple -> (apply_mode_to loc (tb, map)) + Fill -> + (List.foldl + (apply_mode_to) + (tb, map) + (get_filled_tiles loc map) + ) + + Square -> + case tb.square_corner of + Nothing -> ({tb | square_corner = (Just loc)}, map) + (Just corner) -> + (List.foldl + (apply_mode_to) + (tb, map) + (get_square_tiles loc corner map) + ) diff --git a/src/map-editor/src/Struct/UI.elm b/src/map-editor/src/Struct/UI.elm index aa83bd6..fe7b700 100644 --- a/src/map-editor/src/Struct/UI.elm +++ b/src/map-editor/src/Struct/UI.elm @@ -14,10 +14,6 @@ module Struct.UI exposing reset_displayed_tab, to_string, get_all_tabs, - -- Navigator - try_getting_displayed_nav, - set_displayed_nav, - reset_displayed_nav, -- Previous Action get_previous_action, set_previous_action diff --git a/src/map-editor/src/Update/HandleServerReply.elm b/src/map-editor/src/Update/HandleServerReply.elm index 8d5f07d..2622cf2 100644 --- a/src/map-editor/src/Update/HandleServerReply.elm +++ b/src/map-editor/src/Update/HandleServerReply.elm @@ -89,5 +89,9 @@ apply_to model query_result = (Result.Ok commands) -> case (List.foldl (apply_command) (model, Nothing) commands) of - (updated_model, Nothing) -> updated_model - (_, (Just error)) -> (Struct.Model.invalidate error model) + (updated_model, Nothing) -> (updated_model, Cmd.none) + (_, (Just error)) -> + ( + (Struct.Model.invalidate error model), + Cmd.none + ) diff --git a/src/map-editor/src/Update/SelectTile.elm b/src/map-editor/src/Update/SelectTile.elm index e6bb9fd..f1c0e07 100644 --- a/src/map-editor/src/Update/SelectTile.elm +++ b/src/map-editor/src/Update/SelectTile.elm @@ -25,13 +25,11 @@ apply_to model loc_ref = ( {model | ui = - (Struct.UI.reset_displayed_nav - (Struct.UI.set_displayed_tab - Struct.UI.StatusTab - (Struct.UI.set_previous_action - (Just (Struct.UI.SelectedLocation loc_ref)) - model.ui - ) + (Struct.UI.set_displayed_tab + Struct.UI.StatusTab + (Struct.UI.set_previous_action + (Just (Struct.UI.SelectedLocation loc_ref)) + model.ui ) ) }, diff --git a/src/map-editor/src/View/MainMenu.elm b/src/map-editor/src/View/MainMenu.elm index f301ea6..b9a8922 100644 --- a/src/map-editor/src/View/MainMenu.elm +++ b/src/map-editor/src/View/MainMenu.elm @@ -29,7 +29,7 @@ get_html : (Html.Html Struct.Event.Type) get_html = (Html.div [ - (Html.Attributes.class "battlemap-main-menu") + (Html.Attributes.class "map-main-menu") ] (List.map (get_menu_button_html) diff --git a/src/map-editor/src/View/Map.elm b/src/map-editor/src/View/Map.elm index c185486..f3caa95 100644 --- a/src/map-editor/src/View/Map.elm +++ b/src/map-editor/src/View/Map.elm @@ -1,4 +1,4 @@ -module View.Battlemap exposing (get_html) +module View.Map exposing (get_html) -- Elm ------------------------------------------------------------------------- import Array @@ -9,30 +9,26 @@ import Html.Lazy import List --- Battlemap ------------------------------------------------------------------- +-- Map ------------------------------------------------------------------------- import Constants.UI -import Struct.Battlemap -import Struct.Character +import Struct.Map import Struct.Event import Struct.Model -import Struct.Navigator import Struct.UI import Util.Html -import View.Battlemap.Character -import View.Battlemap.Navigator -import View.Battlemap.Tile +import View.Map.Tile -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -get_tiles_html : Struct.Battlemap.Type -> (Html.Html Struct.Event.Type) -get_tiles_html battlemap = +get_tiles_html : Struct.Map.Type -> (Html.Html Struct.Event.Type) +get_tiles_html map = (Html.div [ - (Html.Attributes.class "battlemap-tiles-layer"), + (Html.Attributes.class "map-tiles-layer"), (Html.Attributes.style [ ( @@ -40,7 +36,7 @@ get_tiles_html battlemap = ( (toString ( - (Struct.Battlemap.get_width battlemap) + (Struct.Map.get_width map) * Constants.UI.tile_size ) ) @@ -52,7 +48,7 @@ get_tiles_html battlemap = ( (toString ( - (Struct.Battlemap.get_height battlemap) + (Struct.Map.get_height map) * Constants.UI.tile_size ) ) @@ -63,53 +59,8 @@ get_tiles_html battlemap = ) ] (List.map - (View.Battlemap.Tile.get_html) - (Array.toList (Struct.Battlemap.get_tiles battlemap)) - ) - ) - -maybe_print_navigator : ( - Bool -> - (Maybe Struct.Navigator.Type) -> - (Html.Html Struct.Event.Type) - ) -maybe_print_navigator interactive maybe_nav = - let - name_suffix = - if (interactive) - then - "interactive" - else - "non-interactive" - in - case maybe_nav of - (Just nav) -> - (Html.div - [ - (Html.Attributes.class ("battlemap-navigator" ++ name_suffix)) - ] - (View.Battlemap.Navigator.get_html - (Struct.Navigator.get_summary nav) - interactive - ) - ) - - Nothing -> - (Util.Html.nothing) - -get_characters_html : ( - Struct.Model.Type -> - (Array.Array Struct.Character.Type) -> - (Html.Html Struct.Event.Type) - ) -get_characters_html model characters = - (Html.div - [ - (Html.Attributes.class "battlemap-characters") - ] - (List.map - (View.Battlemap.Character.get_html model) - (Array.toList model.characters) + (View.Map.Tile.get_html) + (Array.toList (Struct.Map.get_tiles map)) ) ) @@ -123,7 +74,7 @@ get_html : ( get_html model = (Html.div [ - (Html.Attributes.class "battlemap-actual"), + (Html.Attributes.class "map-actual"), (Html.Attributes.style ( if ((Struct.UI.get_zoom_level model.ui) == 1) @@ -144,19 +95,6 @@ get_html model = ) ] [ - (Html.Lazy.lazy (get_tiles_html) model.battlemap), - -- Not in lazy mode, because I can't easily get rid of that 'model' - -- parameter. - (get_characters_html model model.characters), - (Html.Lazy.lazy2 - (maybe_print_navigator) - True - model.char_turn.navigator - ), - (Html.Lazy.lazy2 - (maybe_print_navigator) - False - (Struct.UI.try_getting_displayed_nav model.ui) - ) + (Html.Lazy.lazy (get_tiles_html) model.map) ] ) diff --git a/src/map-editor/src/View/Map/Character.elm b/src/map-editor/src/View/Map/Character.elm deleted file mode 100644 index fa1bdc1..0000000 --- a/src/map-editor/src/View/Map/Character.elm +++ /dev/null @@ -1,218 +0,0 @@ -module View.Battlemap.Character exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Html -import Html.Attributes -import Html.Events - --- Battlemap ------------------------------------------------------------------ -import Constants.UI - -import Util.Html - -import Struct.Character -import Struct.CharacterTurn -import Struct.Event -import Struct.Model -import Struct.TurnResult -import Struct.TurnResultAnimator -import Struct.UI - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_animation_class : ( - Struct.Model.Type -> - Struct.Character.Type -> - (Html.Attribute Struct.Event.Type) - ) -get_animation_class model char = - case model.animator of - Nothing -> (Html.Attributes.class "") - (Just animator) -> - case (Struct.TurnResultAnimator.get_current_animation animator) of - (Struct.TurnResultAnimator.Focus char_index) -> - if ((Struct.Character.get_index char) /= char_index) - then - (Html.Attributes.class "") - else - (Html.Attributes.class "battlemap-character-selected") - - (Struct.TurnResultAnimator.TurnResult current_action) -> - if - ( - (Struct.TurnResult.get_actor_index current_action) - /= - (Struct.Character.get_index char) - ) - then - (Html.Attributes.class "") - else - case current_action of - (Struct.TurnResult.Moved _) -> - (Html.Attributes.class - "battlemap-animated-character-icon" - ) - - _ -> (Html.Attributes.class "") - _ -> (Html.Attributes.class "") - -get_activation_level_class : ( - Struct.Character.Type -> - (Html.Attribute Struct.Event.Type) - ) -get_activation_level_class char = - if (Struct.Character.is_enabled char) - then - (Html.Attributes.class "battlemap-character-icon-enabled") - else - (Html.Attributes.class "battlemap-character-icon-disabled") - -get_alliance_class : ( - Struct.Model.Type -> - Struct.Character.Type -> - (Html.Attribute Struct.Event.Type) - ) -get_alliance_class model char = - if ((Struct.Character.get_player_ix char) == model.player_ix) - then - (Html.Attributes.class "battlemap-character-ally") - else - (Html.Attributes.class "battlemap-character-enemy") - -get_position_style : ( - Struct.Character.Type -> - (Html.Attribute Struct.Event.Type) - ) -get_position_style char = - let char_loc = (Struct.Character.get_location char) in - (Html.Attributes.style - [ - ("top", ((toString (char_loc.y * Constants.UI.tile_size)) ++ "px")), - ("left", ((toString (char_loc.x * Constants.UI.tile_size)) ++ "px")) - ] - ) - -get_focus_class : ( - Struct.Model.Type -> - Struct.Character.Type -> - (Html.Attribute Struct.Event.Type) - ) -get_focus_class model char = - if - ( - (Struct.UI.get_previous_action model.ui) - == - (Just (Struct.UI.SelectedCharacter (Struct.Character.get_index char))) - ) - then - (Html.Attributes.class "battlemap-character-selected") - else - if - ( - (Struct.CharacterTurn.try_getting_target model.char_turn) - == - (Just (Struct.Character.get_index char)) - ) - then - (Html.Attributes.class "battlemap-character-targeted") - else - (Html.Attributes.class "") - -get_body_html : Struct.Character.Type -> (Html.Html Struct.Event.Type) -get_body_html char = - (Html.div - [ - (Html.Attributes.class "battlemap-character-icon-body"), - (Html.Attributes.class - ( - "asset-character-team-body-" - ++ (toString (Struct.Character.get_player_ix char)) - ) - ) - ] - [ - ] - ) - -get_head_html : Struct.Character.Type -> (Html.Html Struct.Event.Type) -get_head_html char = - (Html.div - [ - (Html.Attributes.class "battlemap-character-icon-head"), - (Html.Attributes.class - ("asset-character-icon-" ++ (Struct.Character.get_icon_id char)) - ) - ] - [ - ] - ) - -get_banner_html : Struct.Character.Type -> (Html.Html Struct.Event.Type) -get_banner_html char = - case (Struct.Character.get_rank char) of - Struct.Character.Commander -> - (Html.div - [ - (Html.Attributes.class "battlemap-character-icon-banner"), - (Html.Attributes.class "asset-character-icon-commander-banner") - ] - [ - ] - ) - - Struct.Character.Target -> - (Html.div - [ - (Html.Attributes.class "battlemap-character-icon-banner"), - (Html.Attributes.class "asset-character-icon-target-banner") - ] - [ - ] - ) - - _ -> (Util.Html.nothing) - -get_actual_html : ( - Struct.Model.Type -> - Struct.Character.Type -> - (Html.Html Struct.Event.Type) - ) -get_actual_html model char = - (Html.div - [ - (Html.Attributes.class "battlemap-tiled"), - (Html.Attributes.class "battlemap-character-icon"), - (get_animation_class model char), - (get_activation_level_class char), - (get_alliance_class model char), - (get_position_style char), - (get_focus_class model char), - (Html.Attributes.class "clickable"), - (Html.Events.onClick - (Struct.Event.CharacterSelected - (Struct.Character.get_index char) - ) - ) - ] - [ - (get_body_html char), - (get_head_html char), - (get_banner_html char) - ] - ) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : ( - Struct.Model.Type -> - Struct.Character.Type -> - (Html.Html Struct.Event.Type) - ) -get_html model char = - if (Struct.Character.is_alive char) - then - (get_actual_html model char) - else - (Util.Html.nothing) diff --git a/src/map-editor/src/View/Map/Navigator.elm b/src/map-editor/src/View/Map/Navigator.elm deleted file mode 100644 index a03e7d0..0000000 --- a/src/map-editor/src/View/Map/Navigator.elm +++ /dev/null @@ -1,245 +0,0 @@ -module View.Battlemap.Navigator exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Html -import Html.Attributes -import Html.Events - -import List - --- Battlemap ------------------------------------------------------------------- -import Constants.UI - -import Struct.Direction -import Struct.Event -import Struct.Location -import Struct.Marker -import Struct.Navigator - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -marker_get_html : ( - Bool -> - (Struct.Location.Ref, Struct.Marker.Type) -> - (Html.Html Struct.Event.Type) - ) -marker_get_html is_interactive (loc_ref, marker) = - (Html.div - ( - [ - (Html.Attributes.class "battlemap-marker-icon"), - (Html.Attributes.class "battlemap-tiled"), - (Html.Attributes.class - ( - "battlemap-" - ++ - ( - case marker of - Struct.Marker.CanGoToCanDefend -> "can-go-to-can-defend" - Struct.Marker.CanGoToCantDefend -> - "can-go-to-cant-defend" - - Struct.Marker.CanAttackCanDefend -> - "can-attack-can-defend" - - Struct.Marker.CanAttackCantDefend -> - "can-attack-cant-defend" - ) - ++ - "-marker" - ) - ), - (Html.Attributes.style - ( - let - loc = (Struct.Location.from_ref loc_ref) - in - [ - ( - "top", - ((toString (loc.y * Constants.UI.tile_size)) ++ "px") - ), - ( - "left", - ((toString (loc.x * Constants.UI.tile_size)) ++ "px") - ) - ] - ) - ) - ] - ++ - ( - if (is_interactive) - then - if - ( - (marker == Struct.Marker.CanGoToCanDefend) - || (marker == Struct.Marker.CanGoToCantDefend) - ) - then - [ - (Html.Attributes.class "battlemap-navigator-interactive"), - (Html.Attributes.class "clickable"), - (Html.Events.onClick - (Struct.Event.CharacterOrTileSelected loc_ref) - ) - ] - else - [ - (Html.Attributes.class "battlemap-navigator-interactive") - ] - else - [ - (Html.Attributes.class "battlemap-navigator-non-interactive"), - (Html.Events.onClick - (Struct.Event.CharacterOrTileSelected loc_ref) - ) - ] - ) - ) - [ - ] - ) - -path_node_get_html : ( - Bool -> - Struct.Direction.Type -> - ( - Struct.Location.Type, - Struct.Direction.Type, - (List (Html.Html Struct.Event.Type)) - ) -> - ( - Struct.Location.Type, - Struct.Direction.Type, - (List (Html.Html Struct.Event.Type)) - ) - ) -path_node_get_html is_below_markers next_dir (curr_loc, curr_dir, curr_nodes) = - ( - (Struct.Location.neighbor next_dir curr_loc), - next_dir, - ( - (Html.div - [ - (Html.Attributes.class "battlemap-path-icon"), - (Html.Attributes.class - ( - if (is_below_markers) - then - "battlemap-path-icon-below-markers" - else - "battlemap-path-icon-above-markers" - ) - ), - (Html.Attributes.class "battlemap-tiled"), - (Html.Attributes.class - ( - "battlemap-path-icon-" - ++ - (Struct.Direction.to_string curr_dir) - ++ - (Struct.Direction.to_string next_dir) - ) - ), - (Html.Events.onClick - (Struct.Event.CharacterOrTileSelected - (Struct.Location.get_ref curr_loc) - ) - ), - (Html.Attributes.style - [ - ( - "top", - ( - (toString (curr_loc.y * Constants.UI.tile_size)) - ++ - "px" - ) - ), - ( - "left", - ( - (toString (curr_loc.x * Constants.UI.tile_size)) - ++ - "px" - ) - ) - ] - ) - ] - [ - ] - ) - :: - curr_nodes - ) - ) - -mark_the_spot : ( - Struct.Location.Type -> - Struct.Direction.Type -> - (Html.Html Struct.Event.Type) - ) -mark_the_spot loc origin_dir = - (Html.div - [ - (Html.Attributes.class "battlemap-path-icon"), - (Html.Attributes.class "battlemap-path-icon-above-markers"), - (Html.Attributes.class "battlemap-tiled"), - (Html.Attributes.class - ( - "battlemap-path-icon-mark" - ++ - (Struct.Direction.to_string origin_dir) - ) - ), - (Html.Events.onClick - (Struct.Event.CharacterOrTileSelected (Struct.Location.get_ref loc)) - ), - (Html.Attributes.style - [ - ( - "top", - ((toString (loc.y * Constants.UI.tile_size)) ++ "px") - ), - ( - "left", - ((toString (loc.x * Constants.UI.tile_size)) ++ "px") - ) - ] - ) - ] - [ - ] - ) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : ( - Struct.Navigator.Summary -> - Bool -> - (List (Html.Html Struct.Event.Type)) - ) -get_html nav_summary is_interactive = - if (is_interactive) - then - ( - (List.map (marker_get_html True) nav_summary.markers) - ++ - ( - let - (final_loc, final_dir, path_node_htmls) = - (List.foldr - (path_node_get_html nav_summary.locked_path) - (nav_summary.starting_location, Struct.Direction.None, []) - nav_summary.path - ) - in - ((mark_the_spot final_loc final_dir) :: path_node_htmls) - ) - ) - else - (List.map (marker_get_html False) nav_summary.markers) diff --git a/src/map-editor/src/View/Map/Tile.elm b/src/map-editor/src/View/Map/Tile.elm index a049acf..9aa8411 100644 --- a/src/map-editor/src/View/Map/Tile.elm +++ b/src/map-editor/src/View/Map/Tile.elm @@ -1,4 +1,4 @@ -module View.Battlemap.Tile exposing (get_html) +module View.Map.Tile exposing (get_html) -- Elm ------------------------------------------------------------------------- import Html @@ -30,11 +30,11 @@ get_html tile = in (Html.div [ - (Html.Attributes.class "battlemap-tile-icon"), - (Html.Attributes.class "battlemap-tiled"), + (Html.Attributes.class "map-tile-icon"), + (Html.Attributes.class "map-tiled"), (Html.Attributes.class ( - "battlemap-tile-variant-" + "map-tile-variant-" ++ (toString (Struct.Tile.get_variant_id tile)) ) ), diff --git a/src/map-editor/src/View/MessageBoard.elm b/src/map-editor/src/View/MessageBoard.elm index 5de6e8d..f1a2e9b 100644 --- a/src/map-editor/src/View/MessageBoard.elm +++ b/src/map-editor/src/View/MessageBoard.elm @@ -3,11 +3,10 @@ module View.MessageBoard exposing (get_html) -- Elm ------------------------------------------------------------------------- import Html --- Struct.Battlemap ------------------------------------------------------------------- +-- Battlemap ------------------------------------------------------------------- import Struct.Event import Struct.Model -import View.MessageBoard.Animator import View.MessageBoard.Error import View.MessageBoard.Help @@ -22,9 +21,4 @@ get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type) get_html model = case (model.error) of (Just error) -> (View.MessageBoard.Error.get_html model error) - Nothing -> - case model.animator of - (Just animator) -> - (View.MessageBoard.Animator.get_html model animator) - - Nothing -> (View.MessageBoard.Help.get_html model) + Nothing -> (View.MessageBoard.Help.get_html model) diff --git a/src/map-editor/src/View/MessageBoard/Animator.elm b/src/map-editor/src/View/MessageBoard/Animator.elm deleted file mode 100644 index 5c8938b..0000000 --- a/src/map-editor/src/View/MessageBoard/Animator.elm +++ /dev/null @@ -1,57 +0,0 @@ -module View.MessageBoard.Animator exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Html - --- Battlemap ------------------------------------------------------------------- -import Struct.Event -import Struct.Model -import Struct.TurnResult -import Struct.TurnResultAnimator - -import Util.Html - -import View.MessageBoard.Animator.Attack - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_turn_result_html : ( - Struct.Model.Type -> - Struct.TurnResult.Type -> - (Html.Html Struct.Event.Type) - ) -get_turn_result_html model turn_result = - case turn_result of - (Struct.TurnResult.Attacked attack) -> - (View.MessageBoard.Animator.Attack.get_html - model - (Struct.TurnResult.get_actor_index turn_result) - (Struct.TurnResult.get_attack_defender_index attack) - (Struct.TurnResult.maybe_get_attack_next_step attack) - ) - - _ -> (Util.Html.nothing) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : ( - Struct.Model.Type -> - Struct.TurnResultAnimator.Type -> - (Html.Html Struct.Event.Type) - ) -get_html model animator = - case (Struct.TurnResultAnimator.get_current_animation animator) of - (Struct.TurnResultAnimator.TurnResult turn_result) -> - (get_turn_result_html model turn_result) - - (Struct.TurnResultAnimator.AttackSetup (attacker_id, defender_id)) -> - (View.MessageBoard.Animator.Attack.get_html - model - attacker_id - defender_id - Nothing - ) - - _ -> (Util.Html.nothing) diff --git a/src/map-editor/src/View/MessageBoard/Animator/Attack.elm b/src/map-editor/src/View/MessageBoard/Animator/Attack.elm deleted file mode 100644 index 211ada4..0000000 --- a/src/map-editor/src/View/MessageBoard/Animator/Attack.elm +++ /dev/null @@ -1,297 +0,0 @@ -module View.MessageBoard.Animator.Attack exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Array - -import Html -import Html.Attributes - --- Battlemap ------------------------------------------------------------------- -import Struct.Attack -import Struct.Character -import Struct.Event -import Struct.Model - -import View.Controlled.CharacterCard --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_effect_text : Struct.Attack.Type -> String -get_effect_text attack = - ( - ( - case attack.precision of - Struct.Attack.Hit -> " hit for " - Struct.Attack.Graze -> " grazed for " - Struct.Attack.Miss -> " missed." - ) - ++ - ( - if (attack.precision == Struct.Attack.Miss) - then - "" - else - ( - ((toString attack.damage) ++ " damage") - ++ - ( - if (attack.critical) - then " (Critical Hit)." - else "." - ) - ) - ) - ) - -get_empty_attack_html : (Html.Html Struct.Event.Type) -get_empty_attack_html = - (Html.div - [ - (Html.Attributes.class "battlemap-message-attack-text") - ] - [] - ) - -get_attack_html : ( - Struct.Character.Type -> - Struct.Character.Type -> - Struct.Attack.Type -> - (Html.Html Struct.Event.Type) - ) -get_attack_html attacker defender attack = - let - attacker_name = (Struct.Character.get_name attacker) - defender_name = (Struct.Character.get_name defender) - in - (Html.div - [ - (Html.Attributes.class "battlemap-message-attack-text") - ] - [ - (Html.text - ( - case (attack.order, attack.parried) of - (Struct.Attack.Counter, True) -> - ( - defender_name - ++ " attempted to strike back, but " - ++ attacker_name - ++ " parried, and " - ++ (get_effect_text attack) - ) - - (Struct.Attack.Counter, _) -> - ( - defender_name - ++ " striked back, and " - ++ (get_effect_text attack) - ) - - (_, True) -> - ( - attacker_name - ++ " attempted a hit, but " - ++ defender_name - ++ " parried, and " - ++ (get_effect_text attack) - ) - - (_, _) -> - (attacker_name ++ " " ++ (get_effect_text attack)) - ) - ) - ] - ) - -get_attack_animation_class : ( - Struct.Attack.Type -> - Struct.Character.Type -> - String - ) -get_attack_animation_class attack char = - if (attack.critical) - then - "battlemap-animated-portrait-attack-critical" - else - "battlemap-animated-portrait-attacks" - -get_defense_animation_class : ( - Struct.Attack.Type -> - Struct.Character.Type -> - String - ) -get_defense_animation_class attack char = - if (attack.damage == 0) - then - if (attack.precision == Struct.Attack.Miss) - then - "battlemap-animated-portrait-dodges" - else - "battlemap-animated-portrait-undamaged" - else if ((Struct.Character.get_current_health char) > 0) - then - if (attack.precision == Struct.Attack.Graze) - then - "battlemap-animated-portrait-grazed-damage" - else - "battlemap-animated-portrait-damaged" - else - if (attack.precision == Struct.Attack.Graze) - then - "battlemap-animated-portrait-grazed-death" - else - "battlemap-animated-portrait-dies" - -get_attacker_card : ( - (Maybe Struct.Attack.Type) -> - Struct.Character.Type -> - (Html.Html Struct.Event.Type) - ) -get_attacker_card maybe_attack char = - (Html.div - (case maybe_attack of - Nothing -> - if ((Struct.Character.get_current_health char) > 0) - then - [ - (Html.Attributes.class "battlemap-animated-portrait") - ] - else - [ - (Html.Attributes.class "battlemap-animated-portrait-absent"), - (Html.Attributes.class "battlemap-animated-portrait") - ] - - (Just attack) -> - [ - (Html.Attributes.class - (case (attack.order, attack.parried) of - (Struct.Attack.Counter, True) -> - (get_attack_animation_class attack char) - - (Struct.Attack.Counter, _) -> - (get_defense_animation_class attack char) - - (_, True) -> - (get_defense_animation_class attack char) - - (_, _) -> - (get_attack_animation_class attack char) - ) - ), - (Html.Attributes.class "battlemap-animated-portrait") - ] - ) - [ - (View.Controlled.CharacterCard.get_minimal_html - (Struct.Character.get_player_ix char) - char - ) - ] - ) - -get_defender_card : ( - (Maybe Struct.Attack.Type) -> - Struct.Character.Type -> - (Html.Html Struct.Event.Type) - ) -get_defender_card maybe_attack char = - (Html.div - (case maybe_attack of - Nothing -> - if ((Struct.Character.get_current_health char) > 0) - then - [ - (Html.Attributes.class "battlemap-animated-portrait") - ] - else - [ - (Html.Attributes.class "battlemap-animated-portrait-absent"), - (Html.Attributes.class "battlemap-animated-portrait") - ] - - (Just attack) -> - [ - (Html.Attributes.class - (case (attack.order, attack.parried) of - (Struct.Attack.Counter, True) -> - (get_defense_animation_class attack char) - - (Struct.Attack.Counter, _) -> - (get_attack_animation_class attack char) - - (_, True) -> - (get_attack_animation_class attack char) - - (_, _) -> - (get_defense_animation_class attack char) - ) - ), - (Html.Attributes.class "battlemap-animated-portrait") - ] - ) - [ - (View.Controlled.CharacterCard.get_minimal_html -1 char) - ] - ) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_placeholder_html : ( - (Array.Array Struct.Character.Type) -> - Int -> - Int -> - (Maybe Struct.Attack.Type) -> - (Html.Html Struct.Event.Type) - ) -get_placeholder_html characters attacker_ix defender_ix maybe_attack = - case - ( - (Array.get attacker_ix characters), - (Array.get defender_ix characters) - ) - of - ((Just atkchar), (Just defchar)) -> - (Html.div - [ - (Html.Attributes.class "battlemap-message-board"), - (Html.Attributes.class "battlemap-message-attack") - ] - ( - [ - (get_attacker_card maybe_attack atkchar), - ( - case maybe_attack of - (Just attack) -> - (get_attack_html atkchar defchar attack) - - Nothing -> - (get_empty_attack_html) - ), - (get_defender_card maybe_attack defchar) - ] - ) - ) - - _ -> - (Html.div - [ - ] - [ - (Html.text "Error: Attack with unknown characters") - ] - ) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : ( - Struct.Model.Type -> - Int -> - Int -> - (Maybe Struct.Attack.Type) -> - (Html.Html Struct.Event.Type) - ) -get_html model attacker_ix defender_ix maybe_attack = - (get_placeholder_html model.characters attacker_ix defender_ix maybe_attack) diff --git a/src/map-editor/src/View/MessageBoard/Error.elm b/src/map-editor/src/View/MessageBoard/Error.elm index 642634a..5e961a7 100644 --- a/src/map-editor/src/View/MessageBoard/Error.elm +++ b/src/map-editor/src/View/MessageBoard/Error.elm @@ -24,8 +24,8 @@ get_html : ( get_html model error = (Html.div [ - (Html.Attributes.class "battlemap-message-board"), - (Html.Attributes.class "battlemap-error") + (Html.Attributes.class "map-message-board"), + (Html.Attributes.class "map-error") ] [ (Html.text (Struct.Error.to_string error)) diff --git a/src/map-editor/src/View/MessageBoard/Help.elm b/src/map-editor/src/View/MessageBoard/Help.elm index 15a33a5..4225518 100644 --- a/src/map-editor/src/View/MessageBoard/Help.elm +++ b/src/map-editor/src/View/MessageBoard/Help.elm @@ -10,7 +10,6 @@ import Struct.HelpRequest import Struct.Model import View.MessageBoard.Help.Guide -import View.MessageBoard.Help.Rank -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- @@ -23,15 +22,12 @@ get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type) get_html model = (Html.div [ - (Html.Attributes.class "battlemap-message-board"), - (Html.Attributes.class "battlemap-message-board-help") + (Html.Attributes.class "map-message-board"), + (Html.Attributes.class "map-message-board-help") ] ( case model.help_request of Struct.HelpRequest.None -> (View.MessageBoard.Help.Guide.get_html_contents model) - - (Struct.HelpRequest.HelpOnRank rank) -> - (View.MessageBoard.Help.Rank.get_html_contents rank) ) ) diff --git a/src/map-editor/src/View/MessageBoard/Help/Guide.elm b/src/map-editor/src/View/MessageBoard/Help/Guide.elm index a10b96e..526abf0 100644 --- a/src/map-editor/src/View/MessageBoard/Help/Guide.elm +++ b/src/map-editor/src/View/MessageBoard/Help/Guide.elm @@ -5,7 +5,6 @@ import Html import Html.Attributes -- Battlemap ------------------------------------------------------------------- -import Struct.CharacterTurn import Struct.Event import Struct.Model @@ -18,52 +17,13 @@ get_header_html title = [] [ (Html.div - [(Html.Attributes.class "battlemap-help-guide-icon")] + [(Html.Attributes.class "map-help-guide-icon")] [] ), (Html.text title) ] ) -get_selected_character_html_contents : (List (Html.Html Struct.Event.Type)) -get_selected_character_html_contents = - [ - (get_header_html "Controlling a Character"), - (Html.text - ( - "Click on a target tile to select a path or use the manual" - ++ " controls (on the left panel) to make your own. Click on the" - ++ " destination tile again to confirm (this can be reverted)." - ) - ) - ] - -get_moved_character_html_contents : (List (Html.Html Struct.Event.Type)) -get_moved_character_html_contents = - [ - (get_header_html "Selecting a Target"), - (Html.text - ( - "You can now choose a target in range. Dashed tiles indicate" - ++ " where your character will not be able to defend themselves" - ++ " against counter attacks." - ) - ) - ] - -get_chose_target_html_contents : (List (Html.Html Struct.Event.Type)) -get_chose_target_html_contents = - [ - (get_header_html "Finalizing the Character's Turn"), - (Html.text - ( - "If you are satisfied with your choices, you can end this" - ++ " character's turn and see the results unfold. Otherwise, click" - ++ " on the abort button to undo it all." - ) - ) - ] - get_default_html_contents : (List (Html.Html Struct.Event.Type)) get_default_html_contents = [ @@ -85,16 +45,4 @@ get_html_contents : ( Struct.Model.Type -> (List (Html.Html Struct.Event.Type)) ) -get_html_contents model = - case (Struct.CharacterTurn.get_state model.char_turn) of - Struct.CharacterTurn.SelectedCharacter -> - (get_selected_character_html_contents) - - Struct.CharacterTurn.MovedCharacter -> - (get_moved_character_html_contents) - - Struct.CharacterTurn.ChoseTarget -> - (get_chose_target_html_contents) - - _ -> - (get_default_html_contents) +get_html_contents model = (get_default_html_contents) diff --git a/src/map-editor/src/View/MessageBoard/Help/Rank.elm b/src/map-editor/src/View/MessageBoard/Help/Rank.elm deleted file mode 100644 index 95477d3..0000000 --- a/src/map-editor/src/View/MessageBoard/Help/Rank.elm +++ /dev/null @@ -1,97 +0,0 @@ -module View.MessageBoard.Help.Rank exposing (get_html_contents) - --- Elm ------------------------------------------------------------------------- -import Html -import Html.Attributes - --- Battlemap ------------------------------------------------------------------- -import Struct.Character -import Struct.Event - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_guide_icon_html : (Html.Html Struct.Event.Type) -get_guide_icon_html = - (Html.div - [(Html.Attributes.class "battlemap-help-guide-icon")] - [] - ) - -get_header_with_icon_html : String -> String -> (Html.Html Struct.Event.Type) -get_header_with_icon_html title rank_name = - (Html.h1 - [] - [ - (get_guide_icon_html), - (Html.text (title ++ " - ")), - (Html.div - [ - (Html.Attributes.class - "battlemap-message-board-help-figure" - ), - (Html.Attributes.class - ("battlemap-character-card-" ++ rank_name ++ "-status") - ) - ] - [] - ) - ] - ) - -get_target_help_message : (List (Html.Html Struct.Event.Type)) -get_target_help_message = - [ - (get_header_with_icon_html "Protected Character" "target"), - (Html.text - ( - "Players that lose all of their Protected Characters are" - ++ " eliminated." - ) - ) - ] - -get_commander_help_message : (List (Html.Html Struct.Event.Type)) -get_commander_help_message = - [ - (get_header_with_icon_html "Critical Character" "commander"), - (Html.text - ( - "Players that lose any of their Critical Characters are" - ++ " eliminated." - ) - ) - ] - -get_optional_help_message : (List (Html.Html Struct.Event.Type)) -get_optional_help_message = - [ - (Html.h1 - [] - [ - (get_guide_icon_html), - (Html.text "Reinforcement Character") - ] - ), - (Html.text - ( - "Unless it is their very last character, losing a" - ++ " Reinforcement characters never causes a player to be" - ++ " eliminated." - ) - ) - ] - - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html_contents : ( - Struct.Character.Rank -> - (List (Html.Html Struct.Event.Type)) - ) -get_html_contents rank = - case rank of - Struct.Character.Target -> (get_target_help_message) - Struct.Character.Commander -> (get_commander_help_message) - Struct.Character.Optional -> (get_optional_help_message) diff --git a/src/map-editor/src/View/SubMenu.elm b/src/map-editor/src/View/SubMenu.elm index 8537452..75b5101 100644 --- a/src/map-editor/src/View/SubMenu.elm +++ b/src/map-editor/src/View/SubMenu.elm @@ -8,19 +8,15 @@ import Html.Attributes import Html.Lazy -- Battlemap ------------------------------------------------------------------- -import Struct.CharacterTurn import Struct.Event import Struct.Model import Struct.UI import Util.Html -import View.Controlled.CharacterCard - -import View.SubMenu.Characters +import View.SubMenu.Tiles import View.SubMenu.Settings import View.SubMenu.Status -import View.SubMenu.Timeline -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- @@ -35,19 +31,12 @@ get_inner_html model tab = Struct.UI.StatusTab -> (View.SubMenu.Status.get_html model) - Struct.UI.CharactersTab -> - (Html.Lazy.lazy2 - (View.SubMenu.Characters.get_html) - model.characters - model.player_ix - ) + Struct.UI.TilesTab -> + (View.SubMenu.Tiles.get_html) Struct.UI.SettingsTab -> (View.SubMenu.Settings.get_html model) - Struct.UI.TimelineTab -> - (View.SubMenu.Timeline.get_html model) - -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- @@ -56,30 +45,9 @@ get_html model = case (Struct.UI.try_getting_displayed_tab model.ui) of (Just tab) -> (Html.div - [(Html.Attributes.class "battlemap-sub-menu")] + [(Html.Attributes.class "map-sub-menu")] [(get_inner_html model tab)] ) Nothing -> - case (Struct.CharacterTurn.try_getting_target model.char_turn) of - (Just char_ref) -> - case (Array.get char_ref model.characters) of - (Just char) -> - (Html.div - [(Html.Attributes.class "battlemap-sub-menu")] - [ - (Html.text "Targeting:"), - (Html.Lazy.lazy3 - (View.Controlled.CharacterCard.get_summary_html) - model.char_turn - model.player_ix - char - ) - ] - ) - - Nothing -> - (Util.Html.nothing) - - Nothing -> - (Util.Html.nothing) + (Util.Html.nothing) diff --git a/src/map-editor/src/View/SubMenu/Characters.elm b/src/map-editor/src/View/SubMenu/Characters.elm deleted file mode 100644 index be5bac4..0000000 --- a/src/map-editor/src/View/SubMenu/Characters.elm +++ /dev/null @@ -1,69 +0,0 @@ -module View.SubMenu.Characters exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Array - -import Html -import Html.Attributes -import Html.Events - --- Battlemap ------------------------------------------------------------------- -import Struct.Character -import Struct.Event - -import View.Controlled.CharacterCard - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_character_element_html : ( - Int -> - Struct.Character.Type -> - (Html.Html Struct.Event.Type) - ) -get_character_element_html player_ix char = - (Html.div - [ - (Html.Attributes.class "battlemap-characters-element"), - ( - if (Struct.Character.is_alive char) - then - (Html.Attributes.class "clickable") - else - (Html.Attributes.class "") - ), - (Html.Events.onClick - (Struct.Event.LookingForCharacter (Struct.Character.get_index char)) - ), - ( - if (Struct.Character.is_enabled char) - then - (Html.Attributes.class "battlemap-characters-element-active") - else - (Html.Attributes.class "battlemap-characters-element-inactive") - ) - ] - [ - (View.Controlled.CharacterCard.get_minimal_html player_ix char) - ] - ) - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : ( - (Array.Array Struct.Character.Type) -> - Int -> - (Html.Html Struct.Event.Type) - ) -get_html characters player_ix = - (Html.div - [ - (Html.Attributes.class "battlemap-tabmenu-content"), - (Html.Attributes.class "battlemap-tabmenu-characters-tab") - ] - (List.map - (get_character_element_html player_ix) - (Array.toList characters) - ) - ) diff --git a/src/map-editor/src/View/SubMenu/Settings.elm b/src/map-editor/src/View/SubMenu/Settings.elm index 22aa99a..1661053 100644 --- a/src/map-editor/src/View/SubMenu/Settings.elm +++ b/src/map-editor/src/View/SubMenu/Settings.elm @@ -30,30 +30,12 @@ get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type) get_html model = (Html.div [ - (Html.Attributes.class "battlemap-tabmenu-content"), - (Html.Attributes.class "battlemap-tabmenu-settings-tab") + (Html.Attributes.class "map-tabmenu-content"), + (Html.Attributes.class "map-tabmenu-settings-tab") ] [ (scale_button (0.75) "Zoom -"), (scale_button 0 "Zoom Reset"), - (scale_button (1.15) "Zoom +"), - (Html.button - [ - (Html.Events.onClick Struct.Event.DebugTeamSwitchRequest) - ] - [ (Html.text "[DEBUG] Switch team") ] - ), - (Html.button - [ - (Html.Events.onClick Struct.Event.DebugLoadBattlemapRequest) - ] - [ (Html.text "[DEBUG] Load battlemap") ] - ), - (Html.button - [ - (Html.Events.onClick Struct.Event.DebugTestAnimation) - ] - [ (Html.text "[DEBUG] Test animations") ] - ) + (scale_button (1.15) "Zoom +") ] ) diff --git a/src/map-editor/src/View/SubMenu/Status.elm b/src/map-editor/src/View/SubMenu/Status.elm index f67c85e..5c47552 100644 --- a/src/map-editor/src/View/SubMenu/Status.elm +++ b/src/map-editor/src/View/SubMenu/Status.elm @@ -13,7 +13,6 @@ import Struct.Location import Struct.Model import Struct.UI -import View.SubMenu.Status.CharacterInfo import View.SubMenu.Status.TileInfo -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- @@ -26,8 +25,8 @@ get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type) get_html model = (Html.div [ - (Html.Attributes.class "battlemap-footer-tabmenu-content"), - (Html.Attributes.class "battlemap-footer-tabmenu-content-status") + (Html.Attributes.class "map-footer-tabmenu-content"), + (Html.Attributes.class "map-footer-tabmenu-content-status") ] [ (case (Struct.UI.get_previous_action model.ui) of @@ -37,17 +36,6 @@ get_html model = (Struct.Location.from_ref loc) ) - (Just (Struct.UI.SelectedCharacter target_char)) -> - case (Array.get target_char model.characters) of - (Just char) -> - (Html.Lazy.lazy2 - (View.SubMenu.Status.CharacterInfo.get_html) - model.player_ix - char - ) - - _ -> (Html.text "Error: Unknown character selected.") - _ -> (Html.text "Nothing is being focused.") ) diff --git a/src/map-editor/src/View/SubMenu/Status/CharacterInfo.elm b/src/map-editor/src/View/SubMenu/Status/CharacterInfo.elm index a927158..646bb53 100644 --- a/src/map-editor/src/View/SubMenu/Status/CharacterInfo.elm +++ b/src/map-editor/src/View/SubMenu/Status/CharacterInfo.elm @@ -25,7 +25,7 @@ get_html : ( get_html player_ix char = (Html.div [ - (Html.Attributes.class "battlemap-tabmenu-character-info") + (Html.Attributes.class "map-tabmenu-character-info") ] [ (Html.text ("Focusing:")), diff --git a/src/map-editor/src/View/SubMenu/Status/TileInfo.elm b/src/map-editor/src/View/SubMenu/Status/TileInfo.elm index a009bc3..0ac727e 100644 --- a/src/map-editor/src/View/SubMenu/Status/TileInfo.elm +++ b/src/map-editor/src/View/SubMenu/Status/TileInfo.elm @@ -6,11 +6,11 @@ import Dict import Html import Html.Attributes --- Struct.Battlemap ------------------------------------------------------------------- +-- Map Editor ------------------------------------------------------------------ import Constants.IO import Constants.Movement -import Struct.Battlemap +import Struct.Map import Struct.Event import Struct.Location import Struct.Model @@ -24,10 +24,10 @@ get_icon : (Struct.Tile.Instance -> (Html.Html Struct.Event.Type)) get_icon tile = (Html.div [ - (Html.Attributes.class "battlemap-tile-card-icon"), + (Html.Attributes.class "map-tile-card-icon"), (Html.Attributes.class ( - "battlemap-tile-variant-" + "map-tile-variant-" ++ (toString (Struct.Tile.get_variant_id tile)) ) ), @@ -60,7 +60,7 @@ get_name model tile = (Just tile_type) -> (Html.div [ - (Html.Attributes.class "battlemap-tile-card-name") + (Html.Attributes.class "map-tile-card-name") ] [ (Html.text (Struct.Tile.get_name tile_type)) @@ -80,7 +80,7 @@ get_cost tile = in (Html.div [ - (Html.Attributes.class "battlemap-tile-card-cost") + (Html.Attributes.class "map-tile-card-cost") ] [ (Html.text text) @@ -94,7 +94,7 @@ get_location tile = in (Html.div [ - (Html.Attributes.class "battlemap-tile-card-location") + (Html.Attributes.class "map-tile-card-location") ] [ (Html.text @@ -118,17 +118,17 @@ get_html : ( (Html.Html Struct.Event.Type) ) get_html model loc = - case (Struct.Battlemap.try_getting_tile_at loc model.battlemap) of + case (Struct.Map.try_getting_tile_at loc model.map) of (Just tile) -> (Html.div [ - (Html.Attributes.class "battlemap-tile-card") + (Html.Attributes.class "map-tile-card") ] [ (get_name model tile), (Html.div [ - (Html.Attributes.class "battlemap-tile-card-top") + (Html.Attributes.class "map-tile-card-top") ] [ (get_icon tile), diff --git a/src/map-editor/src/View/SubMenu/Tiles.elm b/src/map-editor/src/View/SubMenu/Tiles.elm new file mode 100644 index 0000000..067339a --- /dev/null +++ b/src/map-editor/src/View/SubMenu/Tiles.elm @@ -0,0 +1,27 @@ +module View.SubMenu.Tiles exposing (get_html) + +-- Elm ------------------------------------------------------------------------- +import Html +import Html.Attributes +import Html.Events + +-- Battlemap ------------------------------------------------------------------- +import Struct.Event + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +get_html : (Html.Html Struct.Event.Type) +get_html = + (Html.div + [ + (Html.Attributes.class "map-tabmenu-content"), + (Html.Attributes.class "map-tabmenu-tiles-tab") + ] + [ + ] + ) diff --git a/src/map-editor/src/View/ToolBox.elm b/src/map-editor/src/View/ToolBox.elm deleted file mode 100644 index 8a36fb8..0000000 --- a/src/map-editor/src/View/ToolBox.elm +++ /dev/null @@ -1,133 +0,0 @@ -module View.Controlled exposing (get_html) - --- Elm ------------------------------------------------------------------------- -import Html -import Html.Attributes -import Html.Events - --- Struct.Battlemap ------------------------------------------------------------------- -import Struct.CharacterTurn -import Struct.Event -import Struct.Navigator - -import Util.Html - -import View.Controlled.CharacterCard -import View.Controlled.ManualControls - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- -has_a_path : Struct.CharacterTurn.Type -> Bool -has_a_path char_turn = - case (Struct.CharacterTurn.try_getting_navigator char_turn) of - (Just nav) -> ((Struct.Navigator.get_path nav) /= []) - Nothing -> False - - -attack_button : Struct.CharacterTurn.Type -> (Html.Html Struct.Event.Type) -attack_button char_turn = - (Html.button - [ (Html.Events.onClick Struct.Event.AttackWithoutMovingRequest) ] - [ - (Html.text - ( - if (has_a_path char_turn) - then ("Go & Select Target") - else ("Select Target") - ) - ) - ] - ) - -abort_button : (Html.Html Struct.Event.Type) -abort_button = - (Html.button - [ (Html.Events.onClick Struct.Event.AbortTurnRequest) ] - [ (Html.text "Abort") ] - ) - -end_turn_button : String -> (Html.Html Struct.Event.Type) -end_turn_button suffix = - (Html.button - [ - (Html.Events.onClick Struct.Event.TurnEnded), - (Html.Attributes.class "battlemap-end-turn-button") - ] - [ (Html.text ("End Turn" ++ suffix)) ] - ) - -inventory_button : (Html.Html Struct.Event.Type) -inventory_button = - (Html.button - [ (Html.Events.onClick Struct.Event.WeaponSwitchRequest) ] - [ (Html.text "Switch Weapon") ] - ) - -get_available_actions : ( - Struct.CharacterTurn.Type -> - (List (Html.Html Struct.Event.Type)) - ) -get_available_actions char_turn = - case (Struct.CharacterTurn.get_state char_turn) of - Struct.CharacterTurn.SelectedCharacter -> - [ - (attack_button char_turn), - (inventory_button), - (end_turn_button " Doing Nothing"), - (abort_button) - ] - - Struct.CharacterTurn.MovedCharacter -> - [ - (end_turn_button " Without Attacking"), - (abort_button) - ] - - Struct.CharacterTurn.ChoseTarget -> - [ - (end_turn_button " By Attacking"), - (abort_button) - ] - - _ -> - [ - ] - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- -get_html : Struct.CharacterTurn.Type -> Int -> (Html.Html Struct.Event.Type) -get_html char_turn player_ix = - case - (Struct.CharacterTurn.try_getting_active_character char_turn) - of - (Just char) -> - (Html.div - [(Html.Attributes.class "battlemap-controlled")] - [ - (View.Controlled.CharacterCard.get_summary_html - char_turn - player_ix - char - ), - ( - if - ( - (Struct.CharacterTurn.get_state char_turn) - == - Struct.CharacterTurn.SelectedCharacter - ) - then - (View.Controlled.ManualControls.get_html) - else - (Util.Html.nothing) - ), - (Html.div - [(Html.Attributes.class "battlemap-controlled-actions")] - (get_available_actions char_turn) - ) - ] - ) - - Nothing -> (Util.Html.nothing) diff --git a/src/map-editor/src/View/Toolbox.elm b/src/map-editor/src/View/Toolbox.elm new file mode 100644 index 0000000..77c4033 --- /dev/null +++ b/src/map-editor/src/View/Toolbox.elm @@ -0,0 +1,27 @@ +module View.Toolbox exposing (get_html) + +-- Elm ------------------------------------------------------------------------- +import Html +import Html.Attributes +import Html.Events + +-- Struct.Battlemap ------------------------------------------------------------------- +import Struct.Event +import Struct.Toolbox + +import Util.Html + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +get_html : Struct.Toolbox.Type -> (Html.Html Struct.Event.Type) +get_html tb = + (Html.div + [(Html.Attributes.class "map-toolbox")] + [ + ] + ) |