module View.SubMenu.Timeline exposing (get_html) -- Elm ------------------------------------------------------------------------- import Array import Html import Html.Attributes --import Html.Events import Html.Lazy -- Map ------------------------------------------------------------------- import Struct.Character import Struct.Event import Struct.TurnResult import Struct.Model import View.SubMenu.Timeline.Attack import View.SubMenu.Timeline.Movement import View.SubMenu.Timeline.WeaponSwitch import View.SubMenu.Timeline.PlayerVictory import View.SubMenu.Timeline.PlayerDefeat import View.SubMenu.Timeline.PlayerTurnStart -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- get_turn_result_html : ( (Array.Array Struct.Character.Type) -> Int -> Struct.TurnResult.Type -> (Html.Html Struct.Event.Type) ) get_turn_result_html characters player_ix turn_result = case turn_result of (Struct.TurnResult.Moved movement) -> (View.SubMenu.Timeline.Movement.get_html characters player_ix movement ) (Struct.TurnResult.Attacked attack) -> (View.SubMenu.Timeline.Attack.get_html characters player_ix attack ) (Struct.TurnResult.SwitchedWeapon weapon_switch) -> (View.SubMenu.Timeline.WeaponSwitch.get_html characters player_ix weapon_switch ) (Struct.TurnResult.PlayerWon pvict) -> (View.SubMenu.Timeline.PlayerVictory.get_html pvict) (Struct.TurnResult.PlayerLost pdefeat) -> (View.SubMenu.Timeline.PlayerDefeat.get_html pdefeat) (Struct.TurnResult.PlayerTurnStarted pturns) -> (View.SubMenu.Timeline.PlayerTurnStart.get_html pturns) true_get_html : ( (Array.Array Struct.Character.Type) -> Int -> (Array.Array Struct.TurnResult.Type) -> (Html.Html Struct.Event.Type) ) true_get_html characters player_ix turn_results = (Html.div [ (Html.Attributes.class "battle-tabmenu-content"), (Html.Attributes.class "battle-tabmenu-timeline-tab") ] (Array.toList (Array.map (get_turn_result_html characters player_ix) turn_results ) ) ) -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type) get_html model = (Html.Lazy.lazy3 (true_get_html) model.characters model.player_ix model.timeline )