summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-09-24 14:59:32 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-09-24 14:59:32 +0200
commitc8d7b3e116e4f8ff1a7b88a3fa85f7263c83e346 (patch)
tree13961865e546ee7f736ace0cb3469251f25c38f4
parent393a98b5ba0465d9e4dcb9c29c9fd3503f7d79b5 (diff)
Slowly hacking my way to something that compiles...
-rw-r--r--src/roster-editor/src/Constants/IO.elm.m42
-rw-r--r--src/roster-editor/src/ElmModule/Init.elm4
-rw-r--r--src/roster-editor/src/ElmModule/Update.elm62
-rw-r--r--src/roster-editor/src/Struct/Character.elm196
-rw-r--r--src/roster-editor/src/Struct/Event.elm1
-rw-r--r--src/roster-editor/src/Struct/Glyph.elm30
-rw-r--r--src/roster-editor/src/Struct/GlyphBoard.elm38
-rw-r--r--src/roster-editor/src/Struct/HelpRequest.elm4
-rw-r--r--src/roster-editor/src/Struct/Model.elm1
-rw-r--r--src/roster-editor/src/Struct/Omnimods.elm10
-rw-r--r--src/roster-editor/src/Update/HandleServerReply.elm4
-rw-r--r--src/roster-editor/src/View/ArmorSelection.elm25
-rw-r--r--src/roster-editor/src/View/Character.elm14
-rw-r--r--src/roster-editor/src/View/CharacterCard.elm67
-rw-r--r--src/roster-editor/src/View/CharacterSelection.elm25
-rw-r--r--src/roster-editor/src/View/GlyphManagement.elm25
-rw-r--r--src/roster-editor/src/View/MessageBoard.elm10
-rw-r--r--src/roster-editor/src/View/MessageBoard/Animator.elm57
-rw-r--r--src/roster-editor/src/View/MessageBoard/Animator/Attack.elm297
-rw-r--r--src/roster-editor/src/View/MessageBoard/Help/Guide.elm72
-rw-r--r--src/roster-editor/src/View/PortraitSelection.elm25
-rw-r--r--src/roster-editor/src/View/WeaponSelection.elm25
22 files changed, 242 insertions, 752 deletions
diff --git a/src/roster-editor/src/Constants/IO.elm.m4 b/src/roster-editor/src/Constants/IO.elm.m4
index c78c717..ae19a01 100644
--- a/src/roster-editor/src/Constants/IO.elm.m4
+++ b/src/roster-editor/src/Constants/IO.elm.m4
@@ -7,4 +7,4 @@ roster_handler_url : String
roster_handler_url = (base_url ++ "/handler/roster")
roster_loading_handler : String
-roster_loading_handler = (map_handler_url ++ "/rst_load")
+roster_loading_handler = (roster_handler_url ++ "/rst_load")
diff --git a/src/roster-editor/src/ElmModule/Init.elm b/src/roster-editor/src/ElmModule/Init.elm
index 4fccd82..51a9b1b 100644
--- a/src/roster-editor/src/ElmModule/Init.elm
+++ b/src/roster-editor/src/ElmModule/Init.elm
@@ -3,7 +3,7 @@ module ElmModule.Init exposing (init)
-- Elm -------------------------------------------------------------------------
-- Map -------------------------------------------------------------------
-import Comm.LoadBattle
+import Comm.LoadRoster
import Struct.Event
import Struct.Flags
@@ -21,7 +21,7 @@ init flags =
let model = (Struct.Model.new flags) in
(
model,
- (case (Comm.LoadBattle.try model) of
+ (case (Comm.LoadRoster.try model) of
(Just cmd) -> cmd
Nothing -> Cmd.none
)
diff --git a/src/roster-editor/src/ElmModule/Update.elm b/src/roster-editor/src/ElmModule/Update.elm
index f9d7d38..08aa207 100644
--- a/src/roster-editor/src/ElmModule/Update.elm
+++ b/src/roster-editor/src/ElmModule/Update.elm
@@ -2,30 +2,15 @@ module ElmModule.Update exposing (update)
-- Elm -------------------------------------------------------------------------
--- Battle ----------------------------------------------------------------------
+-- Roster Editor ---------------------------------------------------------------
import Struct.Event
import Struct.Model
-import Update.AbortTurn
-import Update.AttackWithoutMoving
-import Update.ChangeScale
-import Update.DisplayCharacterInfo
-import Update.EndTurn
import Update.GoToMainMenu
-import Update.HandleAnimationEnded
import Update.HandleServerReply
-import Update.LookForCharacter
-import Update.RequestDirection
import Update.SelectCharacter
-import Update.SelectCharacterOrTile
import Update.SelectTab
-import Update.SelectTile
-import Update.SendLoadBattleRequest
import Update.SetRequestedHelp
-import Update.SwitchTeam
-import Update.SwitchWeapon
-import Update.TestAnimation
-import Update.UndoAction
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
@@ -53,60 +38,15 @@ update event model =
Cmd.none
)
- Struct.Event.AttackWithoutMovingRequest ->
- (Update.AttackWithoutMoving.apply_to new_model)
-
- Struct.Event.AnimationEnded ->
- (Update.HandleAnimationEnded.apply_to model)
-
- (Struct.Event.DirectionRequested d) ->
- (Update.RequestDirection.apply_to new_model d)
-
- (Struct.Event.TileSelected loc) ->
- (Update.SelectTile.apply_to new_model loc)
-
- (Struct.Event.CharacterOrTileSelected loc) ->
- (Update.SelectCharacterOrTile.apply_to new_model loc)
-
(Struct.Event.CharacterSelected char_id) ->
(Update.SelectCharacter.apply_to new_model char_id)
- (Struct.Event.CharacterInfoRequested char_id) ->
- (Update.DisplayCharacterInfo.apply_to new_model char_id)
-
- (Struct.Event.LookingForCharacter char_id) ->
- (Update.LookForCharacter.apply_to new_model char_id)
-
- Struct.Event.TurnEnded ->
- (Update.EndTurn.apply_to new_model)
-
- (Struct.Event.ScaleChangeRequested mod) ->
- (Update.ChangeScale.apply_to new_model mod)
-
(Struct.Event.TabSelected tab) ->
(Update.SelectTab.apply_to new_model tab)
- Struct.Event.DebugTeamSwitchRequest ->
- (Update.SwitchTeam.apply_to new_model)
-
- Struct.Event.DebugTestAnimation ->
- (Update.TestAnimation.apply_to new_model)
-
- (Struct.Event.DebugLoadBattleRequest) ->
- (Update.SendLoadBattleRequest.apply_to new_model)
-
(Struct.Event.ServerReplied result) ->
(Update.HandleServerReply.apply_to model result)
- Struct.Event.WeaponSwitchRequest ->
- (Update.SwitchWeapon.apply_to new_model)
-
- Struct.Event.AbortTurnRequest ->
- (Update.AbortTurn.apply_to new_model)
-
- Struct.Event.UndoActionRequest ->
- (Update.UndoAction.apply_to new_model)
-
(Struct.Event.RequestedHelp help_request) ->
(Update.SetRequestedHelp.apply_to new_model help_request)
diff --git a/src/roster-editor/src/Struct/Character.elm b/src/roster-editor/src/Struct/Character.elm
index b837962..d20b22f 100644
--- a/src/roster-editor/src/Struct/Character.elm
+++ b/src/roster-editor/src/Struct/Character.elm
@@ -1,43 +1,31 @@
module Struct.Character exposing
(
Type,
- Rank(..),
get_index,
- get_player_ix,
get_name,
- get_rank,
- get_icon_id,
get_portrait_id,
get_armor,
- get_armor_variation,
- get_current_health,
get_current_omnimods,
- get_sane_current_health,
- set_current_health,
- get_location,
- set_location,
get_attributes,
get_statistics,
- is_enabled,
- is_defeated,
- is_alive,
- set_enabled,
- set_defeated,
get_weapons,
set_weapons,
- decoder,
- refresh_omnimods,
- fill_missing_equipment_and_omnimods
+-- get_glyph_board,
+-- get_glyphes,
+ decoder
)
-- Elm -------------------------------------------------------------------------
+import Array
+
import Json.Decode
import Json.Decode.Pipeline
--- Map -------------------------------------------------------------------
+-- Roster Editor ---------------------------------------------------------------
import Struct.Armor
import Struct.Attributes
-import Struct.Location
+import Struct.Glyph
+import Struct.GlyphBoard
import Struct.Omnimods
import Struct.Statistics
import Struct.Weapon
@@ -50,79 +38,52 @@ type alias PartiallyDecoded =
{
ix : Int,
nam : String,
- rnk : String,
- ico : String,
prt : String,
- lc : Struct.Location.Type,
- hea : Int,
- pla : Int,
- ena : Bool,
- dea : Bool,
awp : Int,
swp : Int,
ar : Int,
- omni : Struct.Omnimods.Type
+ gb : Int,
+ gls : (List Int),
+ current_omnimods : Struct.Omnimods.Type
}
-type Rank =
- Optional
- | Target
- | Commander
-
type alias Type =
{
ix : Int,
name : String,
- rank : Rank,
- icon : String,
portrait : String,
- location : Struct.Location.Type,
- health : Int,
- player_ix : Int,
- enabled : Bool,
- defeated : Bool,
attributes : Struct.Attributes.Type,
statistics : Struct.Statistics.Type,
weapons : Struct.WeaponSet.Type,
armor : Struct.Armor.Type,
- current_omnimods : Struct.Omnimods.Type,
- permanent_omnimods : Struct.Omnimods.Type
+ glyph_board : Struct.GlyphBoard.Type,
+ glyphes : (Array.Array Struct.Glyph.Type),
+ current_omnimods : Struct.Omnimods.Type
}
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-str_to_rank : String -> Rank
-str_to_rank str =
- case str of
- "t" -> Target
- "c" -> Commander
- _ -> Optional
-
finish_decoding : PartiallyDecoded -> (Type, Int, Int, Int)
finish_decoding add_char =
let
weapon_set = (Struct.WeaponSet.new Struct.Weapon.none Struct.Weapon.none)
armor = Struct.Armor.none
+ glyph_board = Struct.GlyphBoard.none
+ glyphes = (Array.empty)
default_attributes = (Struct.Attributes.default)
almost_char =
{
ix = add_char.ix,
name = add_char.nam,
- rank = (str_to_rank add_char.rnk),
- icon = add_char.ico,
portrait = add_char.prt,
- location = add_char.lc,
- health = add_char.hea,
attributes = default_attributes,
statistics = (Struct.Statistics.new_raw default_attributes),
- player_ix = add_char.pla,
- enabled = add_char.ena,
- defeated = add_char.dea,
weapons = weapon_set,
armor = armor,
- current_omnimods = (Struct.Omnimods.new [] [] [] []),
- permanent_omnimods = add_char.omni
+ glyph_board = glyph_board,
+ glyphes = glyphes,
+ current_omnimods = add_char.current_omnimods
}
in
(almost_char, add_char.awp, add_char.swp, add_char.ar)
@@ -136,57 +97,18 @@ get_index c = c.ix
get_name : Type -> String
get_name c = c.name
-get_rank : Type -> Rank
-get_rank c = c.rank
-
-get_player_ix : Type -> Int
-get_player_ix c = c.player_ix
-
-get_icon_id : Type -> String
-get_icon_id c = c.icon
-
get_portrait_id : Type -> String
get_portrait_id c = c.portrait
-get_current_health : Type -> Int
-get_current_health c = c.health
-
get_current_omnimods : Type -> Struct.Omnimods.Type
get_current_omnimods c = c.current_omnimods
-get_sane_current_health : Type -> Int
-get_sane_current_health c = (max 0 c.health)
-
-set_current_health : Int -> Type -> Type
-set_current_health health c = {c | health = health}
-
-get_location : Type -> Struct.Location.Type
-get_location t = t.location
-
-set_location : Struct.Location.Type -> Type -> Type
-set_location location char = {char | location = location}
-
get_attributes : Type -> Struct.Attributes.Type
get_attributes char = char.attributes
get_statistics : Type -> Struct.Statistics.Type
get_statistics char = char.statistics
-is_alive : Type -> Bool
-is_alive char = ((char.health > 0) && (not char.defeated))
-
-is_enabled : Type -> Bool
-is_enabled char = char.enabled
-
-is_defeated : Type -> Bool
-is_defeated char = char.defeated
-
-set_enabled : Bool -> Type -> Type
-set_enabled enabled char = {char | enabled = enabled}
-
-set_defeated : Bool -> Type -> Type
-set_defeated defeated char = {char | defeated = defeated}
-
get_weapons : Type -> Struct.WeaponSet.Type
get_weapons char = char.weapons
@@ -215,85 +137,15 @@ decoder =
PartiallyDecoded
|> (Json.Decode.Pipeline.required "ix" Json.Decode.int)
|> (Json.Decode.Pipeline.required "nam" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "rnk" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "ico" Json.Decode.string)
|> (Json.Decode.Pipeline.required "prt" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "lc" Struct.Location.decoder)
- |> (Json.Decode.Pipeline.required "hea" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "pla" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "ena" Json.Decode.bool)
- |> (Json.Decode.Pipeline.required "dea" Json.Decode.bool)
|> (Json.Decode.Pipeline.required "awp" Json.Decode.int)
|> (Json.Decode.Pipeline.required "swp" Json.Decode.int)
|> (Json.Decode.Pipeline.required "ar" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "pomni" Struct.Omnimods.decoder)
- )
- )
-
-refresh_omnimods : (
- (Struct.Location.Type -> Struct.Omnimods.Type) ->
- Type ->
- Type
- )
-refresh_omnimods tile_omnimods_fun char =
- let
- previous_max_health = (Struct.Statistics.get_max_health char.statistics)
- current_omnimods =
- (Struct.Omnimods.merge
- (Struct.Weapon.get_omnimods
- (Struct.WeaponSet.get_active_weapon char.weapons)
+ |> (Json.Decode.Pipeline.required "gb" Json.Decode.int)
+ |> (Json.Decode.Pipeline.required
+ "gls"
+ (Json.Decode.list Json.Decode.int)
)
- (Struct.Omnimods.merge
- (tile_omnimods_fun char.location)
- char.permanent_omnimods
- )
- )
- current_attributes =
- (Struct.Omnimods.apply_to_attributes
- current_omnimods
- (Struct.Attributes.default)
- )
- current_statistics =
- (Struct.Omnimods.apply_to_statistics
- current_omnimods
- (Struct.Statistics.new_raw current_attributes)
- )
- new_max_health = (Struct.Statistics.get_max_health current_statistics)
- in
- {char |
- attributes = current_attributes,
- statistics = current_statistics,
- current_omnimods = current_omnimods,
- health =
- (clamp
- 1
- new_max_health
- (round
- (
- ((toFloat char.health) / (toFloat previous_max_health))
- * (toFloat new_max_health)
- )
- )
- )
- }
-
-fill_missing_equipment_and_omnimods : (
- (Struct.Location.Type -> Struct.Omnimods.Type) ->
- Struct.Weapon.Type ->
- Struct.Weapon.Type ->
- Struct.Armor.Type ->
- Type ->
- Type
- )
-fill_missing_equipment_and_omnimods tile_omnimods_fun awp swp ar char =
- (set_current_health
- -- We just changed the omnimods, but already had the right health value
- char.health
- (refresh_omnimods
- (tile_omnimods_fun)
- {char |
- weapons = (Struct.WeaponSet.new awp swp),
- armor = ar
- }
+ |> (Json.Decode.Pipeline.hardcoded (Struct.Omnimods.none))
)
)
diff --git a/src/roster-editor/src/Struct/Event.elm b/src/roster-editor/src/Struct/Event.elm
index e95d029..b9e921c 100644
--- a/src/roster-editor/src/Struct/Event.elm
+++ b/src/roster-editor/src/Struct/Event.elm
@@ -20,7 +20,6 @@ type Type =
| RequestedHelp Struct.HelpRequest.Type
| ServerReplied (Result Http.Error (List Struct.ServerReply.Type))
| TabSelected Struct.UI.Tab
- | TileSelected Struct.Location.Ref
attempted : (Result.Result err val) -> Type
attempted act =
diff --git a/src/roster-editor/src/Struct/Glyph.elm b/src/roster-editor/src/Struct/Glyph.elm
new file mode 100644
index 0000000..c9ad608
--- /dev/null
+++ b/src/roster-editor/src/Struct/Glyph.elm
@@ -0,0 +1,30 @@
+module Struct.Glyph exposing
+ (
+ Type,
+ Ref
+ )
+
+-- Elm -------------------------------------------------------------------------
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Omnimods
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Type =
+ {
+ id : Int,
+ name : String,
+ omnimods : Struct.Omnimods.Type
+ }
+
+type alias Ref = Int
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
diff --git a/src/roster-editor/src/Struct/GlyphBoard.elm b/src/roster-editor/src/Struct/GlyphBoard.elm
new file mode 100644
index 0000000..43cf2da
--- /dev/null
+++ b/src/roster-editor/src/Struct/GlyphBoard.elm
@@ -0,0 +1,38 @@
+module Struct.GlyphBoard exposing
+ (
+ Type,
+ Ref,
+ none
+ )
+
+-- Elm -------------------------------------------------------------------------
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Omnimods
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Type =
+ {
+ id : Int,
+ name : String,
+ omnimods : Struct.Omnimods.Type
+ }
+
+type alias Ref = Int
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+none : Type
+none =
+ {
+ id = 0,
+ name = "None",
+ omnimods = (Struct.Omnimods.none)
+ }
diff --git a/src/roster-editor/src/Struct/HelpRequest.elm b/src/roster-editor/src/Struct/HelpRequest.elm
index a0693e2..be78065 100644
--- a/src/roster-editor/src/Struct/HelpRequest.elm
+++ b/src/roster-editor/src/Struct/HelpRequest.elm
@@ -2,12 +2,10 @@ module Struct.HelpRequest exposing (Type(..))
-- Elm -------------------------------------------------------------------------
--- Map -------------------------------------------------------------------
-import Struct.Character
+-- Roster Editor ---------------------------------------------------------------
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
type Type =
None
- | HelpOnRank Struct.Character.Rank
diff --git a/src/roster-editor/src/Struct/Model.elm b/src/roster-editor/src/Struct/Model.elm
index 43a1fe3..4f240ed 100644
--- a/src/roster-editor/src/Struct/Model.elm
+++ b/src/roster-editor/src/Struct/Model.elm
@@ -22,7 +22,6 @@ import Struct.Flags
-- Roster Editor ---------------------------------------------------------------
import Struct.Armor
import Struct.Character
-import Struct.CharacterTurn
import Struct.Error
import Struct.HelpRequest
import Struct.Omnimods
diff --git a/src/roster-editor/src/Struct/Omnimods.elm b/src/roster-editor/src/Struct/Omnimods.elm
index 5876454..db91ab1 100644
--- a/src/roster-editor/src/Struct/Omnimods.elm
+++ b/src/roster-editor/src/Struct/Omnimods.elm
@@ -3,6 +3,7 @@ module Struct.Omnimods exposing
Type,
new,
merge,
+ none,
apply_to_attributes,
apply_to_statistics,
get_attack_damage,
@@ -103,6 +104,15 @@ new attribute_mods statistic_mods attack_mods defense_mods =
defense = (Dict.fromList defense_mods)
}
+none : Type
+none =
+ {
+ attributes = (Dict.empty),
+ statistics = (Dict.empty),
+ attack = (Dict.empty),
+ defense = (Dict.empty)
+ }
+
merge : Type -> Type -> Type
merge omni_a omni_b =
{
diff --git a/src/roster-editor/src/Update/HandleServerReply.elm b/src/roster-editor/src/Update/HandleServerReply.elm
index 22261da..5b45bb5 100644
--- a/src/roster-editor/src/Update/HandleServerReply.elm
+++ b/src/roster-editor/src/Update/HandleServerReply.elm
@@ -3,14 +3,10 @@ module Update.HandleServerReply exposing (apply_to)
-- Elm -------------------------------------------------------------------------
import Array
-import Delay
-
import Dict
import Http
-import Time
-
-- Shared ----------------------------------------------------------------------
import Action.Ports
diff --git a/src/roster-editor/src/View/ArmorSelection.elm b/src/roster-editor/src/View/ArmorSelection.elm
new file mode 100644
index 0000000..66e005b
--- /dev/null
+++ b/src/roster-editor/src/View/ArmorSelection.elm
@@ -0,0 +1,25 @@
+module View.ArmorSelection exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
+get_html model =
+ (Html.div
+ [(Html.Attributes.class "roster-editor-armor-selection")]
+ [
+ (Html.text "Armor Selection")
+ ]
+ )
diff --git a/src/roster-editor/src/View/Character.elm b/src/roster-editor/src/View/Character.elm
index d33feb1..8aa6217 100644
--- a/src/roster-editor/src/View/Character.elm
+++ b/src/roster-editor/src/View/Character.elm
@@ -9,14 +9,13 @@ import Html
import Html.Attributes
import Html.Events
--- Map ------------------------------------------------------------------
+-- Roster Editor ---------------------------------------------------------------
import Constants.UI
import Util.Html
import Struct.Armor
import Struct.Character
-import Struct.CharacterTurn
import Struct.Event
import Struct.Model
import Struct.UI
@@ -75,16 +74,7 @@ get_focus_class model char =
then
(Html.Attributes.class "battle-character-selected")
else
- if
- (
- (Struct.CharacterTurn.try_getting_target model.char_turn)
- ==
- (Just (Struct.Character.get_index char))
- )
- then
- (Html.Attributes.class "battle-character-targeted")
- else
- (Html.Attributes.class "")
+ (Html.Attributes.class "")
get_icon_body_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)
get_icon_body_html char =
diff --git a/src/roster-editor/src/View/CharacterCard.elm b/src/roster-editor/src/View/CharacterCard.elm
index f3e8fb9..4592267 100644
--- a/src/roster-editor/src/View/CharacterCard.elm
+++ b/src/roster-editor/src/View/CharacterCard.elm
@@ -1,4 +1,4 @@
-module View.Controlled.CharacterCard exposing
+module View.CharacterCard exposing
(
get_minimal_html,
get_summary_html,
@@ -15,10 +15,8 @@ import Html.Events
-- Battle ----------------------------------------------------------------------
import Struct.Armor
import Struct.Character
-import Struct.CharacterTurn
import Struct.Event
import Struct.HelpRequest
-import Struct.Navigator
import Struct.Omnimods
import Struct.Statistics
import Struct.Weapon
@@ -115,38 +113,8 @@ get_statuses char =
]
)
-get_active_movement_bar : (
- (Maybe Struct.Navigator.Type) ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_active_movement_bar maybe_navigator char =
- let
- max =
- (Struct.Statistics.get_movement_points
- (Struct.Character.get_statistics char)
- )
- current =
- case maybe_navigator of
- (Just navigator) ->
- (Struct.Navigator.get_remaining_points navigator)
-
- Nothing ->
- max
- in
- (View.Gauge.get_html
- ("MP: " ++ (toString current) ++ "/" ++ (toString max))
- (100.0 * ((toFloat current)/(toFloat max)))
- [(Html.Attributes.class "roster-character-card-movement")]
- []
- []
- )
-
-get_inactive_movement_bar : (
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_inactive_movement_bar char =
+get_movement_bar : Struct.Character.Type -> (Html.Html Struct.Event.Type)
+get_movement_bar char =
let
max =
(Struct.Statistics.get_movement_points
@@ -169,31 +137,6 @@ get_inactive_movement_bar char =
[]
)
-get_movement_bar : (
- Struct.CharacterTurn.Type ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_movement_bar char_turn char =
- case (Struct.CharacterTurn.try_getting_active_character char_turn) of
- (Just active_char) ->
- if
- (
- (Struct.Character.get_index active_char)
- ==
- (Struct.Character.get_index char)
- )
- then
- (get_active_movement_bar
- (Struct.CharacterTurn.try_getting_navigator char_turn)
- active_char
- )
- else
- (get_inactive_movement_bar char)
-
- Nothing ->
- (get_inactive_movement_bar char)
-
get_weapon_field_header : (
Float ->
Struct.Weapon.Type ->
@@ -433,7 +376,7 @@ get_minimal_html char =
]
),
(get_health_bar char),
- (get_inactive_movement_bar char),
+ (get_movement_bar char),
(get_statuses char)
]
)
@@ -473,7 +416,7 @@ get_full_html char =
]
),
(get_health_bar char),
- (get_inactive_movement_bar char),
+ (get_movement_bar char),
(get_statuses char)
]
),
diff --git a/src/roster-editor/src/View/CharacterSelection.elm b/src/roster-editor/src/View/CharacterSelection.elm
new file mode 100644
index 0000000..063443b
--- /dev/null
+++ b/src/roster-editor/src/View/CharacterSelection.elm
@@ -0,0 +1,25 @@
+module View.CharacterSelection exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
+get_html model =
+ (Html.div
+ [(Html.Attributes.class "roster-editor-character-selection")]
+ [
+ (Html.text "Character Selection")
+ ]
+ )
diff --git a/src/roster-editor/src/View/GlyphManagement.elm b/src/roster-editor/src/View/GlyphManagement.elm
new file mode 100644
index 0000000..51dc151
--- /dev/null
+++ b/src/roster-editor/src/View/GlyphManagement.elm
@@ -0,0 +1,25 @@
+module View.GlyphManagement exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
+get_html model =
+ (Html.div
+ [(Html.Attributes.class "roster-editor-glyph-management")]
+ [
+ (Html.text "Glyph Management")
+ ]
+ )
diff --git a/src/roster-editor/src/View/MessageBoard.elm b/src/roster-editor/src/View/MessageBoard.elm
index 736f938..433e05b 100644
--- a/src/roster-editor/src/View/MessageBoard.elm
+++ b/src/roster-editor/src/View/MessageBoard.elm
@@ -3,11 +3,10 @@ module View.MessageBoard exposing (get_html)
-- Elm -------------------------------------------------------------------------
import Html
--- Struct.Map -------------------------------------------------------------------
+-- Roster Editor ---------------------------------------------------------------
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/roster-editor/src/View/MessageBoard/Animator.elm b/src/roster-editor/src/View/MessageBoard/Animator.elm
deleted file mode 100644
index 49bb83a..0000000
--- a/src/roster-editor/src/View/MessageBoard/Animator.elm
+++ /dev/null
@@ -1,57 +0,0 @@
-module View.MessageBoard.Animator exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-
--- Map -------------------------------------------------------------------
-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/roster-editor/src/View/MessageBoard/Animator/Attack.elm b/src/roster-editor/src/View/MessageBoard/Animator/Attack.elm
deleted file mode 100644
index 437a76d..0000000
--- a/src/roster-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
-
--- Map -------------------------------------------------------------------
-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 "battle-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 "battle-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
- "battle-animated-portrait-attack-critical"
- else
- "battle-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
- "battle-animated-portrait-dodges"
- else
- "battle-animated-portrait-undamaged"
- else if ((Struct.Character.get_current_health char) > 0)
- then
- if (attack.precision == Struct.Attack.Graze)
- then
- "battle-animated-portrait-grazed-damage"
- else
- "battle-animated-portrait-damaged"
- else
- if (attack.precision == Struct.Attack.Graze)
- then
- "battle-animated-portrait-grazed-death"
- else
- "battle-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 "battle-animated-portrait")
- ]
- else
- [
- (Html.Attributes.class "battle-animated-portrait-absent"),
- (Html.Attributes.class "battle-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 "battle-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 "battle-animated-portrait")
- ]
- else
- [
- (Html.Attributes.class "battle-animated-portrait-absent"),
- (Html.Attributes.class "battle-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 "battle-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 "battle-message-board"),
- (Html.Attributes.class "battle-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/roster-editor/src/View/MessageBoard/Help/Guide.elm b/src/roster-editor/src/View/MessageBoard/Help/Guide.elm
index 7268c12..0c1df7e 100644
--- a/src/roster-editor/src/View/MessageBoard/Help/Guide.elm
+++ b/src/roster-editor/src/View/MessageBoard/Help/Guide.elm
@@ -5,7 +5,6 @@ import Html
import Html.Attributes
-- Map -------------------------------------------------------------------
-import Struct.CharacterTurn
import Struct.Event
import Struct.Model
@@ -25,60 +24,6 @@ get_header_html 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 an Action"),
- (Html.text
- (
- """You can now choose an action for this character. Either attack
- a target in range by clicking twice on it, or switch weapons by using the menu
- on the left. Dashes indicate tiles this character will be unable to defend
- from. Crossed shields indicate the equivalent for the current selection."""
- )
- )
- ]
-
-get_chose_target_html_contents : (List (Html.Html Struct.Event.Type))
-get_chose_target_html_contents =
- [
- (get_header_html "End the Turn by an Attack"),
- (Html.text
- (
- """A target for the attack has been selected. If you are satisfied
-with your choices, you can end this character's turn and see the results unfold.
-Otherwise, click on the "Undo" button to change the action, or the "Abort"
-button to start this turn over."""
- )
- )
- ]
-
-get_switched_weapons_html_contents : (List (Html.Html Struct.Event.Type))
-get_switched_weapons_html_contents =
- [
- (get_header_html "End the Turn by Switching Weapons"),
- (Html.text
- (
- """The character will switch weapons. If you are satisfied
-with your choices, you can end this character's turn and see the results unfold.
-Otherwise, click on the "Undo" button to change the action, or the "Abort"
-button to start this turn over."""
- )
- )
- ]
get_default_html_contents : (List (Html.Html Struct.Event.Type))
get_default_html_contents =
@@ -101,19 +46,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)
-
- Struct.CharacterTurn.SwitchedWeapons ->
- (get_switched_weapons_html_contents)
-
- _ ->
- (get_default_html_contents)
+get_html_contents model = (get_default_html_contents)
diff --git a/src/roster-editor/src/View/PortraitSelection.elm b/src/roster-editor/src/View/PortraitSelection.elm
new file mode 100644
index 0000000..bb8b1ae
--- /dev/null
+++ b/src/roster-editor/src/View/PortraitSelection.elm
@@ -0,0 +1,25 @@
+module View.PortraitSelection exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
+get_html model =
+ (Html.div
+ [(Html.Attributes.class "roster-editor-portrait-selection")]
+ [
+ (Html.text "Portrait Selection")
+ ]
+ )
diff --git a/src/roster-editor/src/View/WeaponSelection.elm b/src/roster-editor/src/View/WeaponSelection.elm
new file mode 100644
index 0000000..51837bb
--- /dev/null
+++ b/src/roster-editor/src/View/WeaponSelection.elm
@@ -0,0 +1,25 @@
+module View.WeaponSelection exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
+get_html model =
+ (Html.div
+ [(Html.Attributes.class "roster-editor-weapon-selection")]
+ [
+ (Html.text "Weapon Selection")
+ ]
+ )