From e3610d2cb2d339052f549aaadfee49ccc167cc71 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Tue, 7 Apr 2020 03:12:57 +0200 Subject: ... --- src/roster-editor/src/Comm/LoadSkills.elm | 31 ++++++++++++ src/roster-editor/src/Constants/IO.elm.m4 | 3 ++ src/roster-editor/src/ElmModule/Init.elm | 5 ++ src/roster-editor/src/Struct/Character.elm | 7 +++ src/roster-editor/src/View/CharacterSelection.elm | 56 +++++++++++++++++----- .../BattleCharacters/Struct/Character.elm | 4 ++ 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 src/roster-editor/src/Comm/LoadSkills.elm (limited to 'src') diff --git a/src/roster-editor/src/Comm/LoadSkills.elm b/src/roster-editor/src/Comm/LoadSkills.elm new file mode 100644 index 0000000..db3ee7f --- /dev/null +++ b/src/roster-editor/src/Comm/LoadSkills.elm @@ -0,0 +1,31 @@ +module Comm.LoadSkills exposing (try) + +-- Elm ------------------------------------------------------------------------- + +-- Local Module ---------------------------------------------------------------- +import Comm.Send + +import Constants.IO + +import Struct.Event +import Struct.Model + +-------------------------------------------------------------------------------- +-- TYPES ------------------------------------------------------------------------ +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +try : Struct.Model.Type -> (Maybe (Cmd Struct.Event.Type)) +try model = + (Just + (Comm.Send.empty_request + model + Constants.IO.skills_data_url + ) + ) diff --git a/src/roster-editor/src/Constants/IO.elm.m4 b/src/roster-editor/src/Constants/IO.elm.m4 index c09c556..368dda6 100644 --- a/src/roster-editor/src/Constants/IO.elm.m4 +++ b/src/roster-editor/src/Constants/IO.elm.m4 @@ -27,5 +27,8 @@ glyph_boards_data_url = (base_url ++ "/asset/data/glyph_boards.json") glyphs_data_url : String glyphs_data_url = (base_url ++ "/asset/data/glyphs.json") +skills_data_url : String +skills_data_url = (base_url ++ "/asset/data/skills.json") + portraits_data_url : String portraits_data_url = (base_url ++ "/asset/data/portraits.json") diff --git a/src/roster-editor/src/ElmModule/Init.elm b/src/roster-editor/src/ElmModule/Init.elm index dbf228e..2e72f49 100644 --- a/src/roster-editor/src/ElmModule/Init.elm +++ b/src/roster-editor/src/ElmModule/Init.elm @@ -9,6 +9,7 @@ import Comm.LoadArmors import Comm.LoadWeapons import Comm.LoadPortraits import Comm.LoadGlyphs +import Comm.LoadSkills import Comm.LoadGlyphBoards import Struct.Event @@ -48,6 +49,10 @@ init flags = (Just cmd) -> cmd Nothing -> Cmd.none ), + (case (Comm.LoadSkills.try model) of + (Just cmd) -> cmd + Nothing -> Cmd.none + ), (case (Comm.LoadRoster.try model) of (Just cmd) -> cmd Nothing -> Cmd.none diff --git a/src/roster-editor/src/Struct/Character.elm b/src/roster-editor/src/Struct/Character.elm index 2633456..d2dc129 100644 --- a/src/roster-editor/src/Struct/Character.elm +++ b/src/roster-editor/src/Struct/Character.elm @@ -6,6 +6,7 @@ module Struct.Character exposing get_battle_index, set_battle_index, get_base_character, + get_unresolved_base_character, set_base_character, set_was_edited, get_was_edited, @@ -119,6 +120,12 @@ set_battle_index battle_ix c = {c | battle_ix = battle_ix} get_base_character : Type -> BattleCharacters.Struct.Character.Type get_base_character c = c.base +get_unresolved_base_character : ( + Unresolved -> + BattleCharacters.Struct.Character.Unresolved + ) +get_unresolved_base_character c = c.base + set_base_character : BattleCharacters.Struct.Character.Type -> Type -> Type set_base_character base c = {c | base = base } diff --git a/src/roster-editor/src/View/CharacterSelection.elm b/src/roster-editor/src/View/CharacterSelection.elm index 115b083..341f122 100644 --- a/src/roster-editor/src/View/CharacterSelection.elm +++ b/src/roster-editor/src/View/CharacterSelection.elm @@ -8,7 +8,11 @@ import List import Html import Html.Attributes +-- Battle Characters ----------------------------------------------------------- +import BattleCharacters.Struct.Character + -- Local Module ---------------------------------------------------------------- +import Struct.Character import Struct.Event import Struct.Model @@ -17,6 +21,30 @@ import View.CharacterCard -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- +handle_unresolved_characters : ( + Struct.Model.Type -> + (List (Html.Html Struct.Event.Type)) + ) +handle_unresolved_characters model = + if (List.isEmpty model.unresolved_characters) + then [] + else + ( + (Html.text + "Unresolved Characters:" + ) + :: + (List.map + (\char -> + (Html.text + (BattleCharacters.Struct.Character.get_unresolved_name + (Struct.Character.get_unresolved_base_character char) + ) + ) + ) + model.unresolved_characters + ) + ) -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- @@ -28,16 +56,22 @@ get_html model = (Html.Attributes.class "selection-window"), (Html.Attributes.class "character-selection") ] - [ - (Html.text "Character Selection"), - (Html.div - [ - (Html.Attributes.class "selection-window-listing") - ] - (List.map - (View.CharacterCard.get_minimal_html) - (Array.toList model.characters) + ( + [ + (Html.text + "Character Selection" + ), + (Html.div + [ + (Html.Attributes.class "selection-window-listing") + ] + (List.map + (View.CharacterCard.get_minimal_html) + (Array.toList model.characters) + ) ) - ) - ] + ] + ++ + (handle_unresolved_characters model) + ) ) diff --git a/src/shared/battle-characters/BattleCharacters/Struct/Character.elm b/src/shared/battle-characters/BattleCharacters/Struct/Character.elm index 0023b5b..0fe4eb3 100644 --- a/src/shared/battle-characters/BattleCharacters/Struct/Character.elm +++ b/src/shared/battle-characters/BattleCharacters/Struct/Character.elm @@ -3,6 +3,7 @@ module BattleCharacters.Struct.Character exposing Type, Unresolved, get_name, + get_unresolved_name, set_name, get_equipment, set_equipment, @@ -113,6 +114,9 @@ get_inactive_weapon char = get_name : Type -> String get_name c = c.name +get_unresolved_name : Unresolved -> String +get_unresolved_name c = c.name + set_name : String -> Type -> Type set_name name char = {char | name = name} -- cgit v1.2.3-70-g09d2