summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-09-10 18:04:34 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-09-10 18:04:34 +0200
commit4089e04b953ce2799d839d841278446d7f0b4c32 (patch)
treee1877866c559544a97a4557cc99c025184f122c1 /src/character
parent04e4ce4137fe3ffb0ccc6dc8635db3e202517945 (diff)
character -> roster-editor
Diffstat (limited to 'src/character')
-rw-r--r--src/character/Makefile36
-rw-r--r--src/character/elm-package.json19
-rw-r--r--src/character/src/Comm/AddArmor.elm24
-rw-r--r--src/character/src/Comm/AddChar.elm28
-rw-r--r--src/character/src/Comm/AddWeapon.elm24
-rw-r--r--src/character/src/Comm/LoadRoster.elm41
-rw-r--r--src/character/src/Comm/Send.elm76
-rw-r--r--src/character/src/Constants/IO.elm.m410
-rw-r--r--src/character/src/ElmModule/Init.elm28
-rw-r--r--src/character/src/ElmModule/Subscriptions.elm17
-rw-r--r--src/character/src/ElmModule/Update.elm106
-rw-r--r--src/character/src/ElmModule/View.elm57
-rw-r--r--src/character/src/Main.elm23
-rw-r--r--src/character/src/Struct/Armor.elm177
-rw-r--r--src/character/src/Struct/Attributes.elm134
-rw-r--r--src/character/src/Struct/Character.elm238
-rw-r--r--src/character/src/Struct/Error.elm45
-rw-r--r--src/character/src/Struct/Event.elm44
-rw-r--r--src/character/src/Struct/HelpRequest.elm13
-rw-r--r--src/character/src/Struct/Model.elm140
-rw-r--r--src/character/src/Struct/ServerReply.elm33
-rw-r--r--src/character/src/Struct/Statistics.elm176
-rw-r--r--src/character/src/Struct/UI.elm135
-rw-r--r--src/character/src/Struct/Weapon.elm248
-rw-r--r--src/character/src/Struct/WeaponSet.elm39
-rw-r--r--src/character/src/Update/DisplayCharacterInfo.elm53
-rw-r--r--src/character/src/Update/HandleServerReply.elm230
-rw-r--r--src/character/src/Update/SelectCharacter.elm298
-rw-r--r--src/character/src/Update/SelectTab.elm32
-rw-r--r--src/character/src/Update/SendLoadRosterRequest.elm29
-rw-r--r--src/character/src/Update/SetRequestedHelp.elm22
-rw-r--r--src/character/src/View/Character.elm230
-rw-r--r--src/character/src/View/Controlled.elm133
-rw-r--r--src/character/src/View/Controlled/CharacterCard.elm611
-rw-r--r--src/character/src/View/Controlled/ManualControls.elm60
-rw-r--r--src/character/src/View/Controlled/Targets.elm69
-rw-r--r--src/character/src/View/Gauge.elm76
-rw-r--r--src/character/src/View/MainMenu.elm38
-rw-r--r--src/character/src/View/MessageBoard.elm30
-rw-r--r--src/character/src/View/MessageBoard/Animator.elm57
-rw-r--r--src/character/src/View/MessageBoard/Animator/Attack.elm297
-rw-r--r--src/character/src/View/MessageBoard/Error.elm33
-rw-r--r--src/character/src/View/MessageBoard/Help.elm37
-rw-r--r--src/character/src/View/MessageBoard/Help/Guide.elm100
-rw-r--r--src/character/src/View/MessageBoard/Help/Rank.elm97
-rw-r--r--src/character/src/View/SubMenu.elm85
-rw-r--r--src/character/src/View/SubMenu/Characters.elm69
-rw-r--r--src/character/src/View/SubMenu/Settings.elm59
-rw-r--r--src/character/src/View/SubMenu/Status.elm55
-rw-r--r--src/character/src/View/SubMenu/Status/CharacterInfo.elm34
-rw-r--r--src/character/src/View/SubMenu/Status/TileInfo.elm137
-rw-r--r--src/character/src/View/SubMenu/Timeline.elm95
-rw-r--r--src/character/src/View/SubMenu/Timeline/Attack.elm164
-rw-r--r--src/character/src/View/SubMenu/Timeline/Movement.elm62
-rw-r--r--src/character/src/View/SubMenu/Timeline/PlayerDefeat.elm38
-rw-r--r--src/character/src/View/SubMenu/Timeline/PlayerTurnStart.elm38
-rw-r--r--src/character/src/View/SubMenu/Timeline/PlayerVictory.elm38
-rw-r--r--src/character/src/View/SubMenu/Timeline/WeaponSwitch.elm58
-rw-r--r--src/character/www/index.html32
59 files changed, 0 insertions, 5407 deletions
diff --git a/src/character/Makefile b/src/character/Makefile
deleted file mode 100644
index 3b58a08..0000000
--- a/src/character/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-################################################################################
-## CONFIG ######################################################################
-################################################################################
-SRC_DIR ?= src
-WWW_DIR ?= www
-WWW_SCRIPT_DIR ?= $(WWW_DIR)/script
-
-ELM_CC ?= elm-make --warn
-
-MAIN_MODULE ?= $(SRC_DIR)/Main.elm
-
-################################################################################
-## MAKEFILE MAGIC ##############################################################
-################################################################################
-SUB_MODULES = $(shell find $(SRC_DIR) -type f | grep "elm$$")
-
-################################################################################
-## SANITY CHECKS ###############################################################
-################################################################################
-
-################################################################################
-## TARGET RULES ################################################################
-################################################################################
-build: $(WWW_SCRIPT_DIR)/main.js
-
-clean:
- rm -f $(WWW_SCRIPT_DIR)/main.js
-
-reset:
- rm -rf elm-stuff
-
-################################################################################
-## INTERNAL RULES ##############################################################
-################################################################################
-$(WWW_SCRIPT_DIR)/main.js: $(MAIN_MODULE) $(SUB_MODULES)
- $(ELM_CC) $(MAIN_MODULE) --output $@
diff --git a/src/character/elm-package.json b/src/character/elm-package.json
deleted file mode 100644
index d62239e..0000000
--- a/src/character/elm-package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "version": "1.0.0",
- "summary": "helpful summary of your project, less than 80 characters",
- "repository": "https://github.com/nsensfel/tacticians-client.git",
- "license": "Apache 2.0",
- "source-directories": [
- "src",
- "../shared/elm"
- ],
- "exposed-modules": [],
- "dependencies": {
- "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0",
- "elm-lang/core": "5.1.1 <= v < 6.0.0",
- "elm-lang/dom": "1.1.1 <= v < 2.0.0",
- "elm-lang/html": "2.0.0 <= v < 3.0.0",
- "elm-lang/http": "1.0.0 <= v < 2.0.0"
- },
- "elm-version": "0.18.0 <= v < 0.19.0"
-}
diff --git a/src/character/src/Comm/AddArmor.elm b/src/character/src/Comm/AddArmor.elm
deleted file mode 100644
index 480b823..0000000
--- a/src/character/src/Comm/AddArmor.elm
+++ /dev/null
@@ -1,24 +0,0 @@
-module Comm.AddArmor exposing (decode)
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.ServerReply
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-internal_decoder : Struct.Armor.Type -> Struct.ServerReply.Type
-internal_decoder ar = (Struct.ServerReply.AddArmor ar)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-decode : (Json.Decode.Decoder Struct.ServerReply.Type)
-decode = (Json.Decode.map (internal_decoder) (Struct.Armor.decoder))
diff --git a/src/character/src/Comm/AddChar.elm b/src/character/src/Comm/AddChar.elm
deleted file mode 100644
index 32227a8..0000000
--- a/src/character/src/Comm/AddChar.elm
+++ /dev/null
@@ -1,28 +0,0 @@
-module Comm.AddChar exposing (decode)
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-
--- Map -------------------------------------------------------------------
-import Struct.Character
-import Struct.ServerReply
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-internal_decoder : (
- (Struct.Character.Type, Int, Int, Int) ->
- Struct.ServerReply.Type
- )
-internal_decoder char_and_refs = (Struct.ServerReply.AddCharacter char_and_refs)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-decode : (Json.Decode.Decoder Struct.ServerReply.Type)
-decode = (Json.Decode.map (internal_decoder) (Struct.Character.decoder))
diff --git a/src/character/src/Comm/AddWeapon.elm b/src/character/src/Comm/AddWeapon.elm
deleted file mode 100644
index 7061dea..0000000
--- a/src/character/src/Comm/AddWeapon.elm
+++ /dev/null
@@ -1,24 +0,0 @@
-module Comm.AddWeapon exposing (decode)
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-
--- Map -------------------------------------------------------------------
-import Struct.Weapon
-import Struct.ServerReply
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-internal_decoder : Struct.Weapon.Type -> Struct.ServerReply.Type
-internal_decoder wp = (Struct.ServerReply.AddWeapon wp)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-decode : (Json.Decode.Decoder Struct.ServerReply.Type)
-decode = (Json.Decode.map (internal_decoder) (Struct.Weapon.decoder))
diff --git a/src/character/src/Comm/LoadRoster.elm b/src/character/src/Comm/LoadRoster.elm
deleted file mode 100644
index 4058b6d..0000000
--- a/src/character/src/Comm/LoadRoster.elm
+++ /dev/null
@@ -1,41 +0,0 @@
-module Comm.LoadRoster exposing (try)
-
--- Elm -------------------------------------------------------------------------
-import Json.Encode
-
--- Map -------------------------------------------------------------------
-import Comm.Send
-
-import Constants.IO
-
-import Struct.Event
-import Struct.Model
-
---------------------------------------------------------------------------------
--- TYPES ------------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value)
-try_encoding model =
- (Just
- (Json.Encode.object
- [
- ("stk", (Json.Encode.string model.session_token)),
- ("pid", (Json.Encode.string model.player_id))
- ]
- )
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-try : Struct.Model.Type -> (Maybe (Cmd Struct.Event.Type))
-try model =
- (Comm.Send.try_sending
- model
- Constants.IO.roster_loading_handler
- try_encoding
- )
diff --git a/src/character/src/Comm/Send.elm b/src/character/src/Comm/Send.elm
deleted file mode 100644
index 98e3ba4..0000000
--- a/src/character/src/Comm/Send.elm
+++ /dev/null
@@ -1,76 +0,0 @@
-module Comm.Send exposing (try_sending)
-
--- Elm -------------------------------------------------------------------------
-import Http
-
-import Json.Decode
-import Json.Encode
-
--- Map -------------------------------------------------------------------
-import Comm.AddArmor
-import Comm.AddChar
-import Comm.AddTile
-import Comm.AddWeapon
-import Comm.SetMap
-import Comm.SetTimeline
-import Comm.TurnResults
-
-import Struct.Event
-import Struct.ServerReply
-import Struct.Model
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-internal_decoder : String -> (Json.Decode.Decoder Struct.ServerReply.Type)
-internal_decoder reply_type =
- case reply_type of
- "add_tile" -> (Comm.AddTile.decode)
- "add_armor" -> (Comm.AddArmor.decode)
- "add_char" -> (Comm.AddChar.decode)
- "add_weapon" -> (Comm.AddWeapon.decode)
- "set_map" -> (Comm.SetMap.decode)
- "turn_results" -> (Comm.TurnResults.decode)
- "set_timeline" -> (Comm.SetTimeline.decode)
- other ->
- (Json.Decode.fail
- (
- "Unknown server command \""
- ++ other
- ++ "\""
- )
- )
-
-decode : (Json.Decode.Decoder Struct.ServerReply.Type)
-decode =
- (Json.Decode.field "msg" Json.Decode.string)
- |> (Json.Decode.andThen (internal_decoder))
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-try_sending : (
- Struct.Model.Type ->
- String ->
- (Struct.Model.Type -> (Maybe Json.Encode.Value)) ->
- (Maybe (Cmd Struct.Event.Type))
- )
-try_sending model recipient try_encoding_fun =
- case (try_encoding_fun model) of
- (Just serial) ->
- (Just
- (Http.send
- Struct.Event.ServerReplied
- (Http.post
- recipient
- (Http.jsonBody serial)
- (Json.Decode.list (decode))
- )
- )
- )
-
- Nothing -> Nothing
diff --git a/src/character/src/Constants/IO.elm.m4 b/src/character/src/Constants/IO.elm.m4
deleted file mode 100644
index c0f4a9f..0000000
--- a/src/character/src/Constants/IO.elm.m4
+++ /dev/null
@@ -1,10 +0,0 @@
-module Constants.IO exposing (..)
-
-base_url : String
-base_url = "__CONF_SERVER_URL"
-
-roster_handler_url : String
-roster_handler_url = (base_url ++ "/handler/roster/")
-
-roster_loading_handler : String
-roster_loading_handler = (roster_handler_url ++ "/chr_load")
diff --git a/src/character/src/ElmModule/Init.elm b/src/character/src/ElmModule/Init.elm
deleted file mode 100644
index 4fccd82..0000000
--- a/src/character/src/ElmModule/Init.elm
+++ /dev/null
@@ -1,28 +0,0 @@
-module ElmModule.Init exposing (init)
-
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Comm.LoadBattle
-
-import Struct.Event
-import Struct.Flags
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
-init flags =
- let model = (Struct.Model.new flags) in
- (
- model,
- (case (Comm.LoadBattle.try model) of
- (Just cmd) -> cmd
- Nothing -> Cmd.none
- )
- )
diff --git a/src/character/src/ElmModule/Subscriptions.elm b/src/character/src/ElmModule/Subscriptions.elm
deleted file mode 100644
index fe276f4..0000000
--- a/src/character/src/ElmModule/Subscriptions.elm
+++ /dev/null
@@ -1,17 +0,0 @@
-module ElmModule.Subscriptions exposing (..)
-
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Model
-import Struct.Event
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-subscriptions : Struct.Model.Type -> (Sub Struct.Event.Type)
-subscriptions model = Sub.none
diff --git a/src/character/src/ElmModule/Update.elm b/src/character/src/ElmModule/Update.elm
deleted file mode 100644
index eafac01..0000000
--- a/src/character/src/ElmModule/Update.elm
+++ /dev/null
@@ -1,106 +0,0 @@
-module ElmModule.Update exposing (update)
-
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.Model
-
-import Update.AbortTurn
-import Update.AttackWithoutMoving
-import Update.ChangeScale
-import Update.DisplayCharacterInfo
-import Update.EndTurn
-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
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-update : (
- Struct.Event.Type ->
- Struct.Model.Type ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-update event model =
- let
- new_model = (Struct.Model.clear_error model)
- in
- case event of
- Struct.Event.None -> (model, Cmd.none)
-
- (Struct.Event.Failed err) ->
- (
- (Struct.Model.invalidate err new_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.RequestedHelp help_request) ->
- (Update.SetRequestedHelp.apply_to new_model help_request)
diff --git a/src/character/src/ElmModule/View.elm b/src/character/src/ElmModule/View.elm
deleted file mode 100644
index 069b0bf..0000000
--- a/src/character/src/ElmModule/View.elm
+++ /dev/null
@@ -1,57 +0,0 @@
-module ElmModule.View exposing (view)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Lazy
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Constants.UI
-
-import Struct.Event
-import Struct.Model
-
-import View.Map
-import View.Controlled
-import View.MessageBoard
-import View.MainMenu
-import View.SubMenu
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-view : Struct.Model.Type -> (Html.Html Struct.Event.Type)
-view model =
- (Html.div
- [
- (Html.Attributes.class "fullscreen-module")
- ]
- [
- (View.MainMenu.get_html),
- (Html.Lazy.lazy2
- (View.Controlled.get_html)
- model.char_turn
- model.player_ix
- ),
- (Html.div
- [
- (Html.Attributes.class "battle-container-centerer")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-container"),
- (Html.Attributes.id Constants.UI.viewer_html_id)
- ]
- [(View.Map.get_html model)]
- )
- ]
- ),
- (View.SubMenu.get_html model),
- (View.MessageBoard.get_html model)
- ]
- )
diff --git a/src/character/src/Main.elm b/src/character/src/Main.elm
deleted file mode 100644
index 8140041..0000000
--- a/src/character/src/Main.elm
+++ /dev/null
@@ -1,23 +0,0 @@
--- Elm ------------------------------------------------------------------------
-import Html
-
--- Map -------------------------------------------------------------------
-import Struct.Model
-import Struct.Event
-import Struct.Flags
-
-import ElmModule.Init
-import ElmModule.Subscriptions
-import ElmModule.View
-import ElmModule.Update
-
-main : (Program Struct.Flags.Type Struct.Model.Type Struct.Event.Type)
-main =
- (Html.programWithFlags
- {
- init = ElmModule.Init.init,
- view = ElmModule.View.view,
- update = ElmModule.Update.update,
- subscriptions = ElmModule.Subscriptions.subscriptions
- }
- )
diff --git a/src/character/src/Struct/Armor.elm b/src/character/src/Struct/Armor.elm
deleted file mode 100644
index 04a0428..0000000
--- a/src/character/src/Struct/Armor.elm
+++ /dev/null
@@ -1,177 +0,0 @@
-module Struct.Armor exposing
- (
- Type,
- Ref,
- Category(..),
- new,
- get_id,
- get_name,
- get_category,
- get_resistance_to,
- get_image_id,
- decoder,
- none,
- apply_to_attributes
- )
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-import Json.Decode.Pipeline
-
--- Map -------------------------------------------------------------------
-import Struct.Attributes
-import Struct.Weapon
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias PartiallyDecoded =
- {
- id : Int,
- nam : String,
- ct : String,
- cf : Float
- }
-
-type alias Type =
- {
- id : Int,
- name : String,
- category : Category,
- coef : Float
- }
-
-type alias Ref = Int
-
-type Category =
- Kinetic
- | Leather
- | Chain
- | Plate
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-finish_decoding : PartiallyDecoded -> Type
-finish_decoding add_armor =
- {
- id = add_armor.id,
- name = add_armor.nam,
- category =
- (
- case add_armor.ct of
- "k" -> Kinetic
- "c" -> Chain
- "p" -> Plate
- _ -> Leather
- ),
- coef = add_armor.cf
- }
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-new : Int -> String -> Category -> Float -> Type
-new id name category coef =
- {
- id = id,
- name = name,
- category = category,
- coef = coef
- }
-
-get_id : Type -> Ref
-get_id ar = ar.id
-
-get_name : Type -> String
-get_name ar = ar.name
-
-get_category : Type -> String
-get_category ar = ar.name
-
-get_image_id : Type -> String
-get_image_id ar = (toString ar.id)
-
-get_resistance_to : Struct.Weapon.DamageType -> Type -> Int
-get_resistance_to dmg_type ar =
- (ceiling
- (
- ar.coef
- *
- (
- case (dmg_type, ar.category) of
- (Struct.Weapon.Slash, Kinetic) -> 0.0
- (Struct.Weapon.Slash, Leather) -> 20.0
- (Struct.Weapon.Slash, Chain) -> 30.0
- (Struct.Weapon.Slash, Plate) -> 30.0
- (Struct.Weapon.Blunt, Kinetic) -> 30.0
- (Struct.Weapon.Blunt, Leather) -> 20.0
- (Struct.Weapon.Blunt, Chain) -> 20.0
- (Struct.Weapon.Blunt, Plate) -> 20.0
- (Struct.Weapon.Pierce, Kinetic) -> 20.0
- (Struct.Weapon.Pierce, Leather) -> 20.0
- (Struct.Weapon.Pierce, Chain) -> 20.0
- (Struct.Weapon.Pierce, Plate) -> 30.0
- )
- )
- )
-
-apply_to_attributes : Type -> Struct.Attributes.Type -> Struct.Attributes.Type
-apply_to_attributes ar atts =
- let
- impact = (-1 * (ceiling (20.0 * ar.coef)))
- half_impact = (-1 * (ceiling (10.0 * ar.coef)))
- in
- case ar.category of
- Kinetic -> (Struct.Attributes.mod_mind impact atts)
- Leather ->
- (Struct.Attributes.mod_constitution
- half_impact
- (Struct.Attributes.mod_dexterity
- half_impact
- atts
- )
- )
-
- Chain ->
- (Struct.Attributes.mod_constitution
- half_impact
- (Struct.Attributes.mod_dexterity
- half_impact
- (Struct.Attributes.mod_speed impact atts)
- )
- )
-
- Plate ->
- (Struct.Attributes.mod_constitution
- half_impact
- (Struct.Attributes.mod_dexterity
- half_impact
- (Struct.Attributes.mod_speed
- impact
- (Struct.Attributes.mod_strength impact atts)
- )
- )
- )
-
-decoder : (Json.Decode.Decoder Type)
-decoder =
- (Json.Decode.map
- (finish_decoding)
- (Json.Decode.Pipeline.decode
- PartiallyDecoded
- |> (Json.Decode.Pipeline.required "id" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "nam" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "ct" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "cf" Json.Decode.float)
- )
- )
-
-none : Type
-none =
- (new
- 0
- "None"
- Leather
- 0.0
- )
diff --git a/src/character/src/Struct/Attributes.elm b/src/character/src/Struct/Attributes.elm
deleted file mode 100644
index 50b4ad4..0000000
--- a/src/character/src/Struct/Attributes.elm
+++ /dev/null
@@ -1,134 +0,0 @@
-module Struct.Attributes exposing
- (
- Type,
- get_constitution,
- get_dexterity,
- get_intelligence,
- get_mind,
- get_speed,
- get_strength,
- mod_constitution,
- mod_dexterity,
- mod_intelligence,
- mod_mind,
- mod_speed,
- mod_strength,
- new,
- decoder
- )
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-import Json.Decode.Pipeline
-
--- Map -------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias Type =
- {
- constitution : Int,
- dexterity : Int,
- intelligence : Int,
- mind : Int,
- speed : Int,
- strength : Int
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_within_range : Int -> Int -> Int -> Int
-get_within_range vmin vmax v = (min vmax (max vmin v))
-
-get_within_att_range : Int -> Int
-get_within_att_range v = (get_within_range 0 100 v)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_constitution : Type -> Int
-get_constitution t = t.constitution
-
-get_dexterity : Type -> Int
-get_dexterity t = t.dexterity
-
-get_intelligence : Type -> Int
-get_intelligence t = t.intelligence
-
-get_mind : Type -> Int
-get_mind t = t.mind
-
-get_speed : Type -> Int
-get_speed t = t.speed
-
-get_strength : Type -> Int
-get_strength t = t.strength
-
-mod_constitution : Int -> Type -> Type
-mod_constitution i t =
- {t |
- constitution = (get_within_att_range (i + t.constitution))
- }
-
-mod_dexterity : Int -> Type -> Type
-mod_dexterity i t =
- {t |
- dexterity = (get_within_att_range (i + t.dexterity))
- }
-
-mod_intelligence : Int -> Type -> Type
-mod_intelligence i t =
- {t |
- intelligence = (get_within_att_range (i + t.intelligence))
- }
-
-mod_mind : Int -> Type -> Type
-mod_mind i t =
- {t |
- mind = (get_within_att_range (i + t.mind))
- }
-
-mod_speed : Int -> Type -> Type
-mod_speed i t =
- {t |
- speed = (get_within_att_range (i + t.speed))
- }
-
-mod_strength : Int -> Type -> Type
-mod_strength i t =
- {t |
- strength = (get_within_att_range (i + t.strength))
- }
-
-new : (
- Int -> -- constitution
- Int -> -- dexterity
- Int -> -- intelligence
- Int -> -- mind
- Int -> -- speed
- Int -> -- strength
- Type
- )
-new con dex int min spe str =
- {
- constitution = con,
- dexterity = dex,
- intelligence = int,
- mind = min,
- speed = spe,
- strength = str
- }
-
-decoder : (Json.Decode.Decoder Type)
-decoder =
- (Json.Decode.Pipeline.decode
- Type
- |> (Json.Decode.Pipeline.required "con" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "dex" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "int" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "min" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "spe" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "str" Json.Decode.int)
- )
diff --git a/src/character/src/Struct/Character.elm b/src/character/src/Struct/Character.elm
deleted file mode 100644
index f854b44..0000000
--- a/src/character/src/Struct/Character.elm
+++ /dev/null
@@ -1,238 +0,0 @@
-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_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,
- fill_missing_equipment
- )
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-import Json.Decode.Pipeline
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.Attributes
-import Struct.Location
-import Struct.Statistics
-import Struct.Weapon
-import Struct.WeaponSet
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-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,
- att : Struct.Attributes.Type,
- awp : Int,
- swp : Int,
- ar : Int
- }
-
-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
- }
-
---------------------------------------------------------------------------------
--- 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
- 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 = add_char.att,
- statistics = (Struct.Statistics.new add_char.att weapon_set armor),
- player_ix = add_char.pla,
- enabled = add_char.ena,
- defeated = add_char.dea,
- weapons = weapon_set,
- armor = armor
- }
- in
- (almost_char, add_char.awp, add_char.swp, add_char.ar)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_index : Type -> Int
-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_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
-
-get_armor : Type -> Struct.Armor.Type
-get_armor char = char.armor
-
-get_armor_variation : Type -> String
-get_armor_variation char =
- case char.portrait of
- -- Currently hardcoded to match crows from characters.css
- "11" -> "1"
- "4" -> "1"
- _ -> "0"
-
-set_weapons : Struct.WeaponSet.Type -> Type -> Type
-set_weapons weapons char =
- {char |
- weapons = weapons,
- statistics = (Struct.Statistics.new char.attributes weapons char.armor)
- }
-
-decoder : (Json.Decode.Decoder (Type, Int, Int, Int))
-decoder =
- (Json.Decode.map
- (finish_decoding)
- (Json.Decode.Pipeline.decode
- 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 "att" (Struct.Attributes.decoder))
- |> (Json.Decode.Pipeline.required "awp" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "swp" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "ar" Json.Decode.int)
- )
- )
-
-fill_missing_equipment : (
- Struct.Weapon.Type ->
- Struct.Weapon.Type ->
- Struct.Armor.Type ->
- Type ->
- Type
- )
-fill_missing_equipment awp swp ar char =
- let
- weapon_set = (Struct.WeaponSet.new awp swp)
- in
- {char |
- statistics = (Struct.Statistics.new char.attributes weapon_set ar),
- weapons = weapon_set,
- armor = ar
- }
diff --git a/src/character/src/Struct/Error.elm b/src/character/src/Struct/Error.elm
deleted file mode 100644
index 5f40c09..0000000
--- a/src/character/src/Struct/Error.elm
+++ /dev/null
@@ -1,45 +0,0 @@
-module Struct.Error exposing (Type, Mode(..), new, to_string)
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Mode =
- IllegalAction
- | Programming
- | Unimplemented
- | Networking
- | Failure
-
-type alias Type =
- {
- mode: Mode,
- message: String
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-new : Mode -> String -> Type
-new mode str =
- {
- mode = mode,
- message = str
- }
-
-to_string : Type -> String
-to_string e =
- (
- (case e.mode of
- Failure -> "The action failed: "
- IllegalAction -> "Request discarded: "
- Programming -> "Error in the program (please report): "
- Unimplemented -> "Update discarded due to unimplemented feature: "
- Networking -> "Error while conversing with the server: "
- )
- ++ e.message
- )
-
diff --git a/src/character/src/Struct/Event.elm b/src/character/src/Struct/Event.elm
deleted file mode 100644
index dedb606..0000000
--- a/src/character/src/Struct/Event.elm
+++ /dev/null
@@ -1,44 +0,0 @@
-module Struct.Event exposing (Type(..), attempted)
-
--- Elm -------------------------------------------------------------------------
-import Http
-
--- Map -------------------------------------------------------------------
-import Struct.Direction
-import Struct.Error
-import Struct.Location
-import Struct.ServerReply
-import Struct.HelpRequest
-import Struct.UI
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Type =
- AbortTurnRequest
- | AnimationEnded
- | AttackWithoutMovingRequest
- | CharacterInfoRequested Int
- | CharacterSelected Int
- | DebugLoadBattleRequest
- | DebugTeamSwitchRequest
- | DebugTestAnimation
- | DirectionRequested Struct.Direction.Type
- | Failed Struct.Error.Type
- | LookingForCharacter Int
- | None
- | ScaleChangeRequested Float
- | ServerReplied (Result Http.Error (List Struct.ServerReply.Type))
- | TabSelected Struct.UI.Tab
- | TileSelected Struct.Location.Ref
- | CharacterOrTileSelected Struct.Location.Ref
- | TurnEnded
- | RequestedHelp Struct.HelpRequest.Type
- | WeaponSwitchRequest
-
-attempted : (Result.Result err val) -> Type
-attempted act =
- case act of
- (Result.Ok _) -> None
- (Result.Err msg) ->
- (Failed (Struct.Error.new Struct.Error.Failure (toString msg)))
diff --git a/src/character/src/Struct/HelpRequest.elm b/src/character/src/Struct/HelpRequest.elm
deleted file mode 100644
index a0693e2..0000000
--- a/src/character/src/Struct/HelpRequest.elm
+++ /dev/null
@@ -1,13 +0,0 @@
-module Struct.HelpRequest exposing (Type(..))
-
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Character
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Type =
- None
- | HelpOnRank Struct.Character.Rank
diff --git a/src/character/src/Struct/Model.elm b/src/character/src/Struct/Model.elm
deleted file mode 100644
index d1f2fc7..0000000
--- a/src/character/src/Struct/Model.elm
+++ /dev/null
@@ -1,140 +0,0 @@
-module Struct.Model exposing
- (
- Type,
- new,
- add_character,
- update_character,
- update_character_fun,
- add_weapon,
- add_armor,
- invalidate,
- reset,
- clear_error
- )
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Dict
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.Map
-import Struct.Character
-import Struct.CharacterTurn
-import Struct.Error
-import Struct.Flags
-import Struct.HelpRequest
-import Struct.Tile
-import Struct.TurnResult
-import Struct.TurnResultAnimator
-import Struct.UI
-import Struct.Weapon
-
-import Util.Array
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias Type =
- {
- help_request: Struct.HelpRequest.Type,
- characters: (Array.Array Struct.Character.Type),
- weapons: (Dict.Dict Struct.Weapon.Ref Struct.Weapon.Type),
- armors: (Dict.Dict Struct.Armor.Ref Struct.Armor.Type),
- error: (Maybe Struct.Error.Type),
- player_id: String,
- session_token: String,
- ui: Struct.UI.Type
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-new : Struct.Flags.Type -> Type
-new flags =
- {
- help_request = Struct.HelpRequest.None,
- characters = (Array.empty),
- weapons = (Dict.empty),
- armors = (Dict.empty),
- error = Nothing,
- player_id =
- (
- if (flags.user_id == "")
- then "0"
- else flags.user_id
- ),
- session_token = flags.token,
- ui = (Struct.UI.default)
- }
-
-add_character : Struct.Character.Type -> Type -> Type
-add_character char model =
- {model |
- characters =
- (Array.push
- char
- model.characters
- )
- }
-
-add_weapon : Struct.Weapon.Type -> Type -> Type
-add_weapon wp model =
- {model |
- weapons =
- (Dict.insert
- (Struct.Weapon.get_id wp)
- wp
- model.weapons
- )
- }
-
-add_armor : Struct.Armor.Type -> Type -> Type
-add_armor ar model =
- {model |
- armors =
- (Dict.insert
- (Struct.Armor.get_id ar)
- ar
- model.armors
- )
- }
-
-reset : Type -> Type
-reset model =
- {model |
- help_request = Struct.HelpRequest.None,
- error = Nothing,
- ui = (Struct.UI.set_previous_action Nothing model.ui)
- }
-
-update_character : Int -> Struct.Character.Type -> Type -> Type
-update_character ix new_val model =
- {model |
- characters = (Array.set ix new_val model.characters)
- }
-
-update_character_fun : (
- Int ->
- ((Maybe Struct.Character.Type) -> (Maybe Struct.Character.Type)) ->
- Type ->
- Type
- )
-update_character_fun ix fun model =
- {model |
- characters = (Util.Array.update ix (fun) model.characters)
- }
-
-invalidate : Struct.Error.Type -> Type -> Type
-invalidate err model =
- {model |
- error = (Just err)
- }
-
-clear_error : Type -> Type
-clear_error model = {model | error = Nothing}
diff --git a/src/character/src/Struct/ServerReply.elm b/src/character/src/Struct/ServerReply.elm
deleted file mode 100644
index 87325a5..0000000
--- a/src/character/src/Struct/ServerReply.elm
+++ /dev/null
@@ -1,33 +0,0 @@
-module Struct.ServerReply exposing (Type(..))
-
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.Map
-import Struct.Character
-import Struct.Tile
-import Struct.TurnResult
-import Struct.Weapon
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-type Type =
- Okay
- | AddArmor Struct.Armor.Type
- | AddWeapon Struct.Weapon.Type
- | AddCharacter (Struct.Character.Type, Int, Int, Int)
- | AddTile Struct.Tile.Type
- | SetMap Struct.Map.Type
- | TurnResults (List Struct.TurnResult.Type)
- | SetTimeline (List Struct.TurnResult.Type)
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
diff --git a/src/character/src/Struct/Statistics.elm b/src/character/src/Struct/Statistics.elm
deleted file mode 100644
index aa3de39..0000000
--- a/src/character/src/Struct/Statistics.elm
+++ /dev/null
@@ -1,176 +0,0 @@
-module Struct.Statistics exposing
- (
- Type,
- get_movement_points,
- get_max_health,
- get_dodges,
- get_parries,
- get_damage_min,
- get_damage_max,
- get_accuracy,
- get_double_hits,
- get_critical_hits,
- new
- )
-
--- Elm -------------------------------------------------------------------------
-import List
-
--- Map -------------------------------------------------------------------
-import Struct.Attributes
-import Struct.Armor
-import Struct.Weapon
-import Struct.WeaponSet
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias Type =
- {
- movement_points : Int,
- max_health : Int,
- dodges : Int,
- parries : Int,
- damage_min : Int,
- damage_max : Int,
- accuracy : Int,
- double_hits : Int,
- critical_hits : Int
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-average : (List Int) -> Float
-average l = ((toFloat (List.sum l)) / (toFloat (List.length l)))
-
-float_to_int : Float -> Int
-float_to_int f =
- (ceiling f)
-
-gentle_squared_growth : Int -> Int
-gentle_squared_growth v = (float_to_int (((toFloat v)^1.8)/20.0))
-
-gentle_squared_growth_f : Float -> Int
-gentle_squared_growth_f v = (float_to_int ((v^1.8)/20.0))
-
-sudden_squared_growth : Int -> Int
-sudden_squared_growth v = (float_to_int (((toFloat v)^2.5)/1000.0))
-
-sudden_squared_growth_f : Float -> Int
-sudden_squared_growth_f v = (float_to_int ((v^2.5)/1000.0))
-
-sudden_exp_growth : Int -> Int
-sudden_exp_growth v = (float_to_int (4.0^((toFloat v)/25.0)))
-
-sudden_exp_growth_f : Float -> Int
-sudden_exp_growth_f f = (float_to_int (4.0^(f/25.0)))
-
-already_high_slow_growth : Int -> Int
-already_high_slow_growth v =
- (float_to_int
- (30.0 * (logBase 2.718281828459 (((toFloat v) + 5.0)/4.0)))
- )
-
-damage_base_mod : Float -> Float
-damage_base_mod str = (((str^1.8)/2000.0) - 0.75)
-
-apply_damage_base_mod : Float -> Float -> Int
-apply_damage_base_mod bmod dmg =
- (max 0 (float_to_int (dmg + (bmod * dmg))))
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_movement_points : Type -> Int
-get_movement_points t = t.movement_points
-
-get_max_health : Type -> Int
-get_max_health t = t.max_health
-
-get_dodges : Type -> Int
-get_dodges t = t.dodges
-
-get_parries : Type -> Int
-get_parries t = t.parries
-
-get_damage_min : Type -> Int
-get_damage_min t = t.damage_min
-
-get_damage_max : Type -> Int
-get_damage_max t = t.damage_max
-
-get_accuracy : Type -> Int
-get_accuracy t = t.accuracy
-
-get_double_hits : Type -> Int
-get_double_hits t = t.double_hits
-
-get_critical_hits : Type -> Int
-get_critical_hits t = t.critical_hits
-
-new : (
- Struct.Attributes.Type ->
- Struct.WeaponSet.Type ->
- Struct.Armor.Type ->
- Type
- )
-new att wp_set ar =
- let
- active_weapon = (Struct.WeaponSet.get_active_weapon wp_set)
- actual_att =
- (Struct.Armor.apply_to_attributes
- ar
- (Struct.Weapon.apply_to_attributes active_weapon att)
- )
- constitution = (Struct.Attributes.get_constitution actual_att)
- dexterity = (Struct.Attributes.get_dexterity actual_att)
- intelligence = (Struct.Attributes.get_intelligence actual_att)
- mind = (Struct.Attributes.get_mind actual_att)
- speed = (Struct.Attributes.get_speed actual_att)
- strength = (Struct.Attributes.get_strength actual_att)
- dmg_bmod = (damage_base_mod (toFloat strength))
- in
- {
- movement_points =
- (gentle_squared_growth_f
- (average [mind, constitution, constitution, speed, speed, speed])
- ),
- max_health =
- (gentle_squared_growth_f
- (average [constitution, constitution, constitution, mind])
- ),
- dodges =
- (clamp
- 0
- 100
- (sudden_exp_growth_f
- (average
- [dexterity, mind, speed]
- )
- )
- ),
- parries =
- (clamp
- 0
- 75
- (sudden_exp_growth_f
- (average [dexterity, intelligence, speed, strength])
- )
- ),
- damage_min =
- (apply_damage_base_mod
- dmg_bmod
- (toFloat (Struct.Weapon.get_min_damage active_weapon))
- ),
- damage_max =
- (apply_damage_base_mod
- dmg_bmod
- (toFloat (Struct.Weapon.get_max_damage active_weapon))
- ),
- accuracy = (sudden_squared_growth dexterity),
- double_hits =
- (clamp 0 100 (sudden_squared_growth_f (average [mind, speed]))),
- critical_hits =
- (clamp 0 100 (sudden_squared_growth intelligence))
- }
diff --git a/src/character/src/Struct/UI.elm b/src/character/src/Struct/UI.elm
deleted file mode 100644
index 4837434..0000000
--- a/src/character/src/Struct/UI.elm
+++ /dev/null
@@ -1,135 +0,0 @@
-module Struct.UI exposing
- (
- Type,
- Tab(..),
- Action(..),
- default,
- -- Zoom
- get_zoom_level,
- reset_zoom_level,
- mod_zoom_level,
- -- Tab
- try_getting_displayed_tab,
- set_displayed_tab,
- reset_displayed_tab,
- to_string,
- get_all_tabs,
- -- Navigator
- try_getting_displayed_nav,
- set_displayed_nav,
- reset_displayed_nav,
- -- Manual Controls
- has_manual_controls_enabled,
- -- Previous Action
- get_previous_action,
- set_previous_action
- )
-
--- Map -------------------------------------------------------------------
-import Struct.Location
-import Struct.Navigator
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Tab =
- StatusTab
- | CharactersTab
- | SettingsTab
- | TimelineTab
-
-type Action =
- UsedManualControls
- | SelectedLocation Struct.Location.Ref
- | SelectedCharacter Int
- | AttackedCharacter Int
-
-type alias Type =
- {
- zoom_level : Float,
- show_manual_controls : Bool,
- displayed_tab : (Maybe Tab),
- previous_action : (Maybe Action),
- displayed_nav : (Maybe Struct.Navigator.Type)
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-default : Type
-default =
- {
- zoom_level = 1.0,
- show_manual_controls = True,
- displayed_tab = Nothing,
- previous_action = Nothing,
- displayed_nav = Nothing
- }
-
--- Zoom ------------------------------------------------------------------------
-get_zoom_level : Type -> Float
-get_zoom_level ui = ui.zoom_level
-
-reset_zoom_level : Type -> Type
-reset_zoom_level ui = {ui | zoom_level = 1.0}
-
-mod_zoom_level : Float -> Type -> Type
-mod_zoom_level mod ui = {ui | zoom_level = (mod * ui.zoom_level)}
-
--- Tab -------------------------------------------------------------------------
-try_getting_displayed_tab : Type -> (Maybe Tab)
-try_getting_displayed_tab ui = ui.displayed_tab
-
-set_displayed_tab : Tab -> Type -> Type
-set_displayed_tab tab ui = {ui | displayed_tab = (Just tab)}
-
-reset_displayed_tab : Type -> Type
-reset_displayed_tab ui = {ui | displayed_tab = Nothing}
-
-to_string : Tab -> String
-to_string tab =
- case tab of
- StatusTab -> "Status"
- CharactersTab -> "Characters"
- SettingsTab -> "Settings"
- TimelineTab -> "Timeline"
-
-get_all_tabs : (List Tab)
-get_all_tabs =
- [StatusTab, CharactersTab, SettingsTab, TimelineTab]
-
--- Navigator -------------------------------------------------------------------
-try_getting_displayed_nav : Type -> (Maybe Struct.Navigator.Type)
-try_getting_displayed_nav ui = ui.displayed_nav
-
-set_displayed_nav : Struct.Navigator.Type -> Type -> Type
-set_displayed_nav nav ui = {ui | displayed_nav = (Just nav)}
-
-reset_displayed_nav : Type -> Type
-reset_displayed_nav ui = {ui | displayed_nav = Nothing}
-
--- ManualControls --------------------------------------------------------------
-has_manual_controls_enabled : Type -> Bool
-has_manual_controls_enabled ui = ui.show_manual_controls
-
-toggle_manual_controls : Type -> Type
-toggle_manual_controls ui =
- if (ui.show_manual_controls)
- then
- {ui | show_manual_controls = False}
- else
- {ui | show_manual_controls = True}
-
-set_enable_manual_controls : Bool -> Type -> Type
-set_enable_manual_controls val ui = {ui | show_manual_controls = val}
-
--- Previous Action -------------------------------------------------------------
-set_previous_action : (Maybe Action) -> Type -> Type
-set_previous_action act ui = {ui | previous_action = act}
-
-get_previous_action : Type -> (Maybe Action)
-get_previous_action ui = ui.previous_action
diff --git a/src/character/src/Struct/Weapon.elm b/src/character/src/Struct/Weapon.elm
deleted file mode 100644
index d572ed6..0000000
--- a/src/character/src/Struct/Weapon.elm
+++ /dev/null
@@ -1,248 +0,0 @@
-module Struct.Weapon exposing
- (
- Type,
- Ref,
- RangeType(..),
- RangeModifier(..),
- DamageType(..),
- DamageModifier(..),
- new,
- get_id,
- get_name,
- get_range_type,
- get_range_modifier,
- get_damage_type,
- get_damage_modifier,
- get_attack_range,
- get_defense_range,
- get_max_damage,
- get_min_damage,
- decoder,
- none,
- apply_to_attributes
- )
-
--- Elm -------------------------------------------------------------------------
-import Json.Decode
-import Json.Decode.Pipeline
-
--- Map -------------------------------------------------------------------
-import Struct.Attributes
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias PartiallyDecoded =
- {
- id : Int,
- nam : String,
- rt : String,
- rm : String,
- dt : String,
- dm : String,
- cf : Float
- }
-
-type alias Type =
- {
- id : Int,
- name : String,
- coef : Float,
- range_type : RangeType,
- range_mod : RangeModifier,
- dmg_type : DamageType,
- dmg_mod : DamageModifier,
- def_range : Int,
- atk_range : Int,
- dmg_min : Int,
- dmg_max : Int
- }
-
-type alias Ref = Int
-
-type RangeType = Ranged | Melee
-type RangeModifier = Long | Short
--- Having multiple types at the same time, like Warframe does, would be nice.
-type DamageType = Slash | Blunt | Pierce
-type DamageModifier = Heavy | Light
-
-type alias WeaponType =
- {
- range : RangeType,
- range_mod : RangeModifier,
- dmg_type : DamageType
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_ranges : RangeType -> RangeModifier -> (Int, Int)
-get_ranges rt rm =
- case (rt, rm) of
- (Ranged, Long) -> (2, 6)
- (Ranged, Short) -> (1, 4)
- (Melee, Long) -> (0, 2)
- (Melee, Short) -> (0, 1)
-
-get_damages : Float -> RangeType -> DamageModifier -> (Int, Int)
-get_damages coef rt dm =
- case (rt, dm) of
- (Ranged, Heavy) -> ((ceiling (15.0 * coef)), (ceiling (30.0 * coef)))
- (Ranged, Light) -> ((ceiling (10.0 * coef)), (ceiling (25.0 * coef)))
- (Melee, Heavy) -> ((ceiling (20.0 * coef)), (ceiling (35.0 * coef)))
- (Melee, Light) -> ((ceiling (15.0 * coef)), (ceiling (30.0 * coef)))
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-new : (
- Int ->
- String ->
- Float ->
- RangeType ->
- RangeModifier ->
- DamageType ->
- DamageModifier ->
- Type
- )
-new
- id name coef
- range_type range_mod
- dmg_type dmg_mod
- =
- let
- (def_range, atk_range) = (get_ranges range_type range_mod)
- (dmg_min, dmg_max) = (get_damages coef range_type dmg_mod)
- in
- {
- id = id,
- name = name,
- coef = coef,
- range_type = range_type,
- range_mod = range_mod,
- dmg_type = dmg_type,
- dmg_mod = dmg_mod,
- def_range = def_range,
- atk_range = atk_range,
- dmg_min = dmg_min,
- dmg_max = dmg_max
- }
-
-get_id : Type -> Int
-get_id wp = wp.id
-
-get_name : Type -> String
-get_name wp = wp.name
-
-get_range_type : Type -> RangeType
-get_range_type wp = wp.range_type
-
-get_range_modifier : Type -> RangeModifier
-get_range_modifier wp = wp.range_mod
-
-get_damage_type : Type -> DamageType
-get_damage_type wp = wp.dmg_type
-
-get_damage_modifier : Type -> DamageModifier
-get_damage_modifier wp = wp.dmg_mod
-
-get_attack_range : Type -> Int
-get_attack_range wp = wp.atk_range
-
-get_defense_range : Type -> Int
-get_defense_range wp = wp.def_range
-
-get_max_damage : Type -> Int
-get_max_damage wp = wp.dmg_max
-
-get_min_damage : Type -> Int
-get_min_damage wp = wp.dmg_min
-
-apply_to_attributes : Type -> Struct.Attributes.Type -> Struct.Attributes.Type
-apply_to_attributes wp atts =
- let
- impact = (20.0 * wp.coef)
- full_impact = (-1 * (ceiling impact))
- quarter_impact = (-1 * (ceiling (impact / 4.0)))
- in
- case (wp.range_mod, wp.dmg_mod) of
- (Long, Heavy) ->
- (Struct.Attributes.mod_dexterity
- full_impact
- (Struct.Attributes.mod_speed full_impact atts)
- )
-
- (Long, Light) ->
- (Struct.Attributes.mod_dexterity
- full_impact
- (Struct.Attributes.mod_speed quarter_impact atts)
- )
-
- (Short, Heavy) ->
- (Struct.Attributes.mod_dexterity
- quarter_impact
- (Struct.Attributes.mod_speed full_impact atts)
- )
-
- (Short, Light) ->
- (Struct.Attributes.mod_dexterity
- quarter_impact
- (Struct.Attributes.mod_speed quarter_impact atts)
- )
-
-finish_decoding : PartiallyDecoded -> Type
-finish_decoding add_weapon =
- (new
- add_weapon.id
- add_weapon.nam
- add_weapon.cf
- (
- case add_weapon.rt of
- "m" -> Melee
- _ -> Ranged
- )
- (
- case add_weapon.rm of
- "l" -> Long
- _ -> Short
- )
- (
- case add_weapon.dt of
- "s" -> Slash
- "p" -> Pierce
- _ -> Blunt
- )
- (
- case add_weapon.dm of
- "l" -> Light
- _ -> Heavy
- )
- )
-
-decoder : (Json.Decode.Decoder Type)
-decoder =
- (Json.Decode.map
- (finish_decoding)
- (Json.Decode.Pipeline.decode
- PartiallyDecoded
- |> (Json.Decode.Pipeline.required "id" Json.Decode.int)
- |> (Json.Decode.Pipeline.required "nam" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "rt" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "rm" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "dt" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "dm" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "cf" Json.Decode.float)
- )
- )
-
-none : Type
-none =
- (new
- 0
- "None"
- 0.0
- Melee
- Short
- Blunt
- Light
- )
diff --git a/src/character/src/Struct/WeaponSet.elm b/src/character/src/Struct/WeaponSet.elm
deleted file mode 100644
index de96daf..0000000
--- a/src/character/src/Struct/WeaponSet.elm
+++ /dev/null
@@ -1,39 +0,0 @@
-module Struct.WeaponSet exposing
- (
- Type,
- new,
- get_active_weapon,
- get_secondary_weapon,
- switch_weapons
- )
-
--- Map -------------------------------------------------------------------
-import Struct.Weapon
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type alias Type =
- {
- active : Struct.Weapon.Type,
- secondary : Struct.Weapon.Type
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-new : Struct.Weapon.Type -> Struct.Weapon.Type -> Type
-new wp0 wp1 = { active = wp0, secondary = wp1 }
-
-get_active_weapon : Type -> Struct.Weapon.Type
-get_active_weapon set = set.active
-
-get_secondary_weapon : Type -> Struct.Weapon.Type
-get_secondary_weapon set = set.secondary
-
-switch_weapons : Type -> Type
-switch_weapons set = {set | active = set.secondary, secondary = set.active}
diff --git a/src/character/src/Update/DisplayCharacterInfo.elm b/src/character/src/Update/DisplayCharacterInfo.elm
deleted file mode 100644
index e482e2f..0000000
--- a/src/character/src/Update/DisplayCharacterInfo.elm
+++ /dev/null
@@ -1,53 +0,0 @@
-module Update.DisplayCharacterInfo exposing (apply_to)
--- Elm -------------------------------------------------------------------------
-import Array
-import Task
-
--- Map -------------------------------------------------------------------
-import Action.Scroll
-
-import Struct.Character
-import Struct.Event
-import Struct.Model
-import Struct.UI
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-scroll_to_char : Struct.Model.Type -> Int -> (Cmd Struct.Event.Type)
-scroll_to_char model char_ix =
- case (Array.get char_ix model.characters) of
- (Just char) ->
- (Task.attempt
- (Struct.Event.attempted)
- (Action.Scroll.to
- (Struct.Character.get_location char)
- model.ui
- )
- )
-
- Nothing ->
- Cmd.none
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- Int ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model target_ref =
- (
- {model |
- ui =
- (Struct.UI.set_displayed_tab
- Struct.UI.StatusTab
- (Struct.UI.set_previous_action
- (Just (Struct.UI.SelectedCharacter target_ref))
- model.ui
- )
- )
- },
- (scroll_to_char model target_ref)
- )
diff --git a/src/character/src/Update/HandleServerReply.elm b/src/character/src/Update/HandleServerReply.elm
deleted file mode 100644
index ff6cc67..0000000
--- a/src/character/src/Update/HandleServerReply.elm
+++ /dev/null
@@ -1,230 +0,0 @@
-module Update.HandleServerReply exposing (apply_to)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Delay
-
-import Dict
-
-import Http
-
-import Time
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.Map
-import Struct.Character
-import Struct.Error
-import Struct.Event
-import Struct.Model
-import Struct.ServerReply
-import Struct.Tile
-import Struct.TurnResult
-import Struct.TurnResultAnimator
-import Struct.UI
-import Struct.Weapon
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-weapon_getter : Struct.Model.Type -> Struct.Weapon.Ref -> Struct.Weapon.Type
-weapon_getter model ref =
- case (Dict.get ref model.weapons) of
- (Just w) -> w
- Nothing -> Struct.Weapon.none
-
-armor_getter : Struct.Model.Type -> Struct.Armor.Ref -> Struct.Armor.Type
-armor_getter model ref =
- case (Dict.get ref model.armors) of
- (Just w) -> w
- Nothing -> Struct.Armor.none
-
------------
-
-add_armor : (
- Struct.Armor.Type ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-add_armor ar current_state =
- case current_state of
- (_, (Just _)) -> current_state
- (model, _) -> ((Struct.Model.add_armor ar model), Nothing)
-
-add_tile : (
- Struct.Tile.Type ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-add_tile tl current_state =
- case current_state of
- (_, (Just _)) -> current_state
- (model, _) -> ((Struct.Model.add_tile tl model), Nothing)
-
-add_weapon : (
- Struct.Weapon.Type ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-add_weapon wp current_state =
- case current_state of
- (_, (Just _)) -> current_state
- (model, _) -> ((Struct.Model.add_weapon wp model), Nothing)
-
-add_character : (
- (Struct.Character.Type, Int, Int, Int) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-add_character char_and_refs current_state =
- case current_state of
- (_, (Just _)) -> current_state
- (model, _) ->
- let
- (char, awp_ref, swp_ref, ar_ref) = char_and_refs
- awp = (weapon_getter model awp_ref)
- swp = (weapon_getter model swp_ref)
- ar = (armor_getter model ar_ref)
- in
- (
- (Struct.Model.add_character
- (Struct.Character.fill_missing_equipment awp swp ar char)
- model
- ),
- Nothing
- )
-
-set_map : (
- Struct.Map.Type ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-set_map map current_state =
- case current_state of
- (_, (Just _)) -> current_state
- (model, _) ->
- (
- {model |
- map =
- (Struct.Map.solve_tiles model.tiles map)
- },
- Nothing
- )
-
-add_to_timeline : (
- (List Struct.TurnResult.Type) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-add_to_timeline turn_results current_state =
- case current_state of
- (_, (Just _)) -> current_state
-
- (model, _) ->
- (
- {model |
- animator =
- (Struct.TurnResultAnimator.maybe_new
- (List.reverse turn_results)
- False
- ),
- timeline =
- (Array.append
- (Array.fromList turn_results)
- model.timeline
- ),
- ui =
- (Struct.UI.set_displayed_tab
- Struct.UI.TimelineTab
- model.ui
- )
- },
- Nothing
- )
-
-set_timeline : (
- (List Struct.TurnResult.Type) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-set_timeline turn_results current_state =
- case current_state of
- (_, (Just _)) -> current_state
-
- (model, _) ->
- (
- {model | timeline = (Array.fromList turn_results)},
- Nothing
- )
-
-apply_command : (
- Struct.ServerReply.Type ->
- (Struct.Model.Type, (Maybe Struct.Error.Type)) ->
- (Struct.Model.Type, (Maybe Struct.Error.Type))
- )
-apply_command command current_state =
- case command of
- (Struct.ServerReply.AddWeapon wp) ->
- (add_weapon wp current_state)
-
- (Struct.ServerReply.AddArmor ar) ->
- (add_armor ar current_state)
-
- (Struct.ServerReply.AddTile tl) ->
- (add_tile tl current_state)
-
- (Struct.ServerReply.AddCharacter char) ->
- (add_character char current_state)
-
- (Struct.ServerReply.SetMap map) ->
- (set_map map current_state)
-
- (Struct.ServerReply.TurnResults results) ->
- (add_to_timeline results current_state)
-
- (Struct.ServerReply.SetTimeline timeline) ->
- (set_timeline timeline current_state)
-
- Struct.ServerReply.Okay -> current_state
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- (Result Http.Error (List Struct.ServerReply.Type)) ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model query_result =
- case query_result of
- (Result.Err error) ->
- (
- (Struct.Model.invalidate
- (Struct.Error.new Struct.Error.Networking (toString error))
- model
- ),
- Cmd.none
- )
-
- (Result.Ok commands) ->
- let
- new_model =
- (
- case (List.foldl (apply_command) (model, Nothing) commands) of
- (updated_model, Nothing) -> updated_model
- (_, (Just error)) -> (Struct.Model.invalidate error model)
- )
- in
- (
- new_model,
- if (new_model.animator == Nothing)
- then
- Cmd.none
- else
- (Delay.after 1 Time.millisecond Struct.Event.AnimationEnded)
- )
diff --git a/src/character/src/Update/SelectCharacter.elm b/src/character/src/Update/SelectCharacter.elm
deleted file mode 100644
index 1137435..0000000
--- a/src/character/src/Update/SelectCharacter.elm
+++ /dev/null
@@ -1,298 +0,0 @@
-module Update.SelectCharacter exposing (apply_to)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Task
-
--- Map -------------------------------------------------------------------
-import Action.Scroll
-
-import Struct.Map
-import Struct.Character
-import Struct.CharacterTurn
-import Struct.Error
-import Struct.Event
-import Struct.Location
-import Struct.Model
-import Struct.Navigator
-import Struct.Statistics
-import Struct.UI
-import Struct.Weapon
-import Struct.WeaponSet
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_character_navigator : (
- Struct.Model.Type ->
- Struct.Character.Type ->
- Struct.Navigator.Type
- )
-get_character_navigator model char =
- let
- weapon =
- (Struct.WeaponSet.get_active_weapon
- (Struct.Character.get_weapons char)
- )
- in
- (Struct.Navigator.new
- (Struct.Character.get_location char)
- (Struct.Statistics.get_movement_points
- (Struct.Character.get_statistics char)
- )
- (Struct.Weapon.get_attack_range weapon)
- (Struct.Weapon.get_defense_range weapon)
- (Struct.Map.get_movement_cost_function
- model.map
- (Struct.Character.get_location char)
- (Array.toList model.characters)
- )
- )
-
-attack_character : (
- Struct.Model.Type ->
- Int ->
- Struct.Character.Type ->
- Struct.Model.Type
- )
-attack_character model target_char_id target_char =
- {model |
- char_turn =
- (Struct.CharacterTurn.set_target
- (Just target_char_id)
- model.char_turn
- ),
- ui =
- (Struct.UI.reset_displayed_nav
- (Struct.UI.reset_displayed_tab
- (Struct.UI.set_previous_action Nothing model.ui)
- )
- )
- }
-
-ctrl_or_focus_character : (
- Struct.Model.Type ->
- Int ->
- Struct.Character.Type ->
- Struct.Model.Type
- )
-ctrl_or_focus_character model target_char_id target_char =
- if (Struct.Character.is_enabled target_char)
- then
- let
- nav =
- (case (Struct.UI.try_getting_displayed_nav model.ui) of
- (Just dnav) -> dnav
- Nothing ->
- (get_character_navigator model target_char)
- )
- in
- {model |
- char_turn =
- (Struct.CharacterTurn.set_navigator
- nav
- (Struct.CharacterTurn.set_active_character
- target_char
- model.char_turn
- )
- ),
- ui =
- (Struct.UI.reset_displayed_nav
- (Struct.UI.reset_displayed_tab
- (Struct.UI.set_previous_action Nothing model.ui)
- )
- )
- }
- else
- {model |
- ui =
- (Struct.UI.set_previous_action
- (Just (Struct.UI.SelectedCharacter target_char_id))
- (Struct.UI.set_displayed_nav
- (get_character_navigator model target_char)
- model.ui
- )
- )
- }
-
-can_target_character : (
- Struct.Model.Type ->
- Struct.Character.Type ->
- Bool
- )
-can_target_character model target =
- (
- (Struct.CharacterTurn.can_select_target model.char_turn)
- && (Struct.Character.is_alive target)
- &&
- (
- case
- (Struct.CharacterTurn.try_getting_navigator
- model.char_turn
- )
- of
- (Just nav) ->
- case
- (Struct.Navigator.try_getting_path_to
- (Struct.Location.get_ref
- (Struct.Character.get_location target)
- )
- nav
- )
- of
- (Just _) -> True
- _ -> False
-
- _ ->
- False
- )
- )
-
-second_click_on : (
- Struct.Model.Type ->
- Int ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-second_click_on model target_char_id =
- case (Array.get target_char_id model.characters) of
- (Just target_char) ->
- case
- (
- (Struct.CharacterTurn.try_getting_active_character
- model.char_turn
- ),
- (Struct.CharacterTurn.try_getting_target model.char_turn)
- )
- of
- ((Just _), (Just char_turn_target_id)) ->
- if (char_turn_target_id == target_char_id)
- then
- (
- model,
- Cmd.none
- )
- else
- (
- (ctrl_or_focus_character model target_char_id target_char),
- (Task.attempt
- (Struct.Event.attempted)
- (Action.Scroll.to
- (Struct.Character.get_location target_char)
- model.ui
- )
- )
- )
-
- ((Just _), Nothing) ->
- if (can_target_character model target_char)
- then
- (
- (attack_character
- model
- target_char_id
- target_char
- ),
- Cmd.none
- )
- else
- (
- (ctrl_or_focus_character model target_char_id target_char),
- (Task.attempt
- (Struct.Event.attempted)
- (Action.Scroll.to
- (Struct.Character.get_location target_char)
- model.ui
- )
- )
- )
-
- (_, _) ->
- (
- (ctrl_or_focus_character model target_char_id target_char),
- (Task.attempt
- (Struct.Event.attempted)
- (Action.Scroll.to
- (Struct.Character.get_location target_char)
- model.ui
- )
- )
- )
-
- Nothing ->
- (
- (Struct.Model.invalidate
- (Struct.Error.new
- Struct.Error.Programming
- "SelectCharacter: Unknown char selected."
- )
- model
- ),
- Cmd.none
- )
-
-first_click_on : (
- Struct.Model.Type ->
- Int ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-first_click_on model target_char_id =
- if
- (
- (Struct.CharacterTurn.try_getting_target model.char_turn)
- ==
- (Just target_char_id)
- )
- then
- (model, Cmd.none)
- else
- case (Array.get target_char_id model.characters) of
- (Just target_char) ->
- (
- {model |
- ui =
- (Struct.UI.set_previous_action
- (Just (Struct.UI.SelectedCharacter target_char_id))
- (Struct.UI.set_displayed_tab
- Struct.UI.StatusTab
- (Struct.UI.set_displayed_nav
- (get_character_navigator model target_char)
- model.ui
- )
- )
- )
- },
- Cmd.none
- )
-
- Nothing ->
- (
- (Struct.Model.invalidate
- (Struct.Error.new
- Struct.Error.Programming
- "SelectCharacter: Unknown char selected."
- )
- model
- ),
- Cmd.none
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- Int ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model target_char_id =
- if
- (
- (Struct.UI.get_previous_action model.ui)
- ==
- (Just (Struct.UI.SelectedCharacter target_char_id))
- )
- then
- (second_click_on model target_char_id)
- else
- (first_click_on model target_char_id)
diff --git a/src/character/src/Update/SelectTab.elm b/src/character/src/Update/SelectTab.elm
deleted file mode 100644
index d15a463..0000000
--- a/src/character/src/Update/SelectTab.elm
+++ /dev/null
@@ -1,32 +0,0 @@
-module Update.SelectTab exposing (apply_to)
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Model
-import Struct.Event
-import Struct.UI
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- Struct.UI.Tab ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model tab =
- if ((Struct.UI.try_getting_displayed_tab model.ui) == (Just tab))
- then
- (
- {model | ui = (Struct.UI.reset_displayed_tab model.ui)},
- Cmd.none
- )
- else
- (
- {model | ui = (Struct.UI.set_displayed_tab tab model.ui)},
- Cmd.none
- )
diff --git a/src/character/src/Update/SendLoadRosterRequest.elm b/src/character/src/Update/SendLoadRosterRequest.elm
deleted file mode 100644
index b7b5f11..0000000
--- a/src/character/src/Update/SendLoadRosterRequest.elm
+++ /dev/null
@@ -1,29 +0,0 @@
-module Update.SendLoadRosterRequest exposing (apply_to)
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Comm.LoadRoster
-
-import Struct.Event
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model =
- (
- (Struct.Model.reset model),
- (case (Comm.LoadRoster.try model) of
- (Just cmd) -> cmd
- Nothing -> Cmd.none
- )
- )
-
diff --git a/src/character/src/Update/SetRequestedHelp.elm b/src/character/src/Update/SetRequestedHelp.elm
deleted file mode 100644
index dfc58db..0000000
--- a/src/character/src/Update/SetRequestedHelp.elm
+++ /dev/null
@@ -1,22 +0,0 @@
-module Update.SetRequestedHelp exposing (apply_to)
--- Elm -------------------------------------------------------------------------
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.HelpRequest
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-apply_to : (
- Struct.Model.Type ->
- Struct.HelpRequest.Type ->
- (Struct.Model.Type, (Cmd Struct.Event.Type))
- )
-apply_to model help_request =
- ({model | help_request = help_request}, Cmd.none)
diff --git a/src/character/src/View/Character.elm b/src/character/src/View/Character.elm
deleted file mode 100644
index d33feb1..0000000
--- a/src/character/src/View/Character.elm
+++ /dev/null
@@ -1,230 +0,0 @@
-module View.Character exposing
- (
- get_portrait_html,
- get_icon_html
- )
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Map ------------------------------------------------------------------
-import Constants.UI
-
-import Util.Html
-
-import Struct.Armor
-import Struct.Character
-import Struct.CharacterTurn
-import Struct.Event
-import Struct.Model
-import Struct.UI
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-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 "battle-character-icon-enabled")
- else
- (Html.Attributes.class "battle-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 "battle-character-ally")
- else
- (Html.Attributes.class "battle-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 "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 "")
-
-get_icon_body_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)
-get_icon_body_html char =
- (Html.div
- [
- (Html.Attributes.class "battle-character-icon-body"),
- (Html.Attributes.class
- (
- "asset-character-team-body-"
- ++ (toString (Struct.Character.get_player_ix char))
- )
- )
- ]
- [
- ]
- )
-
-get_icon_head_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)
-get_icon_head_html char =
- (Html.div
- [
- (Html.Attributes.class "battle-character-icon-head"),
- (Html.Attributes.class
- ("asset-character-icon-" ++ (Struct.Character.get_icon_id char))
- )
- ]
- [
- ]
- )
-
-get_icon_actual_html : (
- Struct.Model.Type ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_icon_actual_html model char =
- (Html.div
- [
- (Html.Attributes.class "battle-tiled"),
- (Html.Attributes.class "battle-character-icon"),
- (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_icon_body_html char),
- (get_icon_head_html char)
- ]
- )
-
-get_portrait_body_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)
-get_portrait_body_html char =
- (Html.div
- [
- (Html.Attributes.class "battle-character-portrait-body"),
- (Html.Attributes.class
- (
- "asset-character-portrait-"
- ++ (Struct.Character.get_portrait_id char)
- )
- )
- ]
- [
- ]
- )
-
-get_portrait_armor_html : Struct.Character.Type -> (Html.Html Struct.Event.Type)
-get_portrait_armor_html char =
- (Html.div
- [
- (Html.Attributes.class "battle-character-portrait-armor"),
- (Html.Attributes.class
- (
- "asset-armor-"
- ++
- (Struct.Armor.get_image_id (Struct.Character.get_armor char))
- )
- ),
- (Html.Attributes.class
- (
- "asset-armor-variation-"
- ++ (Struct.Character.get_armor_variation char)
- )
- )
- ]
- [
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_portrait_html : (
- Int ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_portrait_html viewer_ix char =
- (Html.div
- [
- (Html.Attributes.class
- (
- if ((Struct.Character.get_player_ix char) == viewer_ix)
- then
- "battle-character-ally"
- else
- "battle-character-enemy"
- )
- ),
- (Html.Attributes.class "battle-character-portrait"),
- (Html.Attributes.class
- (
- "battle-character-portrait-team-"
- ++
- (toString (Struct.Character.get_player_ix char))
- )
- ),
- (Html.Events.onClick
- (Struct.Event.LookingForCharacter (Struct.Character.get_index char))
- )
- ]
- [
- (get_portrait_body_html char),
- (get_portrait_armor_html char)
- ]
- )
-
-get_icon_html : (
- Struct.Model.Type ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_icon_html model char =
- if (Struct.Character.is_alive char)
- then
- (get_icon_actual_html model char)
- else
- (Util.Html.nothing)
diff --git a/src/character/src/View/Controlled.elm b/src/character/src/View/Controlled.elm
deleted file mode 100644
index e0e20bf..0000000
--- a/src/character/src/View/Controlled.elm
+++ /dev/null
@@ -1,133 +0,0 @@
-module View.Controlled exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Struct.Map -------------------------------------------------------------------
-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 "battle-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 "battle-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 "battle-controlled-actions")]
- (get_available_actions char_turn)
- )
- ]
- )
-
- Nothing -> (Util.Html.nothing)
diff --git a/src/character/src/View/Controlled/CharacterCard.elm b/src/character/src/View/Controlled/CharacterCard.elm
deleted file mode 100644
index 0e29502..0000000
--- a/src/character/src/View/Controlled/CharacterCard.elm
+++ /dev/null
@@ -1,611 +0,0 @@
-module View.Controlled.CharacterCard exposing
- (
- get_minimal_html,
- get_summary_html,
- get_full_html
- )
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Armor
-import Struct.Attributes
-import Struct.Character
-import Struct.CharacterTurn
-import Struct.Event
-import Struct.HelpRequest
-import Struct.Navigator
-import Struct.Statistics
-import Struct.Weapon
-import Struct.WeaponSet
-
-import Util.Html
-
-import View.Character
-import View.Gauge
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_name : (
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_name char =
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-name"),
- (Html.Attributes.class "battle-info-card-text-field"),
- (Html.Attributes.class "battle-character-card-name")
- ]
- [
- (Html.text (Struct.Character.get_name char))
- ]
- )
-
-get_health_bar : (
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_health_bar char =
- let
- current = (Struct.Character.get_sane_current_health char)
- max =
- (Struct.Statistics.get_max_health
- (Struct.Character.get_statistics char)
- )
- in
- (View.Gauge.get_html
- ("HP: " ++ (toString current) ++ "/" ++ (toString max))
- (100.0 * ((toFloat current)/(toFloat max)))
- [(Html.Attributes.class "battle-character-card-health")]
- []
- []
- )
-
-get_rank_status : (
- Struct.Character.Rank ->
- (Html.Html Struct.Event.Type)
- )
-get_rank_status rank =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-status"),
- (Html.Attributes.class "clickable"),
- (Html.Events.onClick
- (Struct.Event.RequestedHelp (Struct.HelpRequest.HelpOnRank rank))
- ),
- (Html.Attributes.class
- (
- case rank of
- Struct.Character.Commander ->
- "battle-character-card-commander-status"
-
- Struct.Character.Target ->
- "battle-character-card-target-status"
-
- Struct.Character.Optional -> ""
- )
- )
- ]
- [
- ]
- )
-
-get_statuses : (
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_statuses char =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-statuses")
- ]
- [
- (
- case (Struct.Character.get_rank char) of
- Struct.Character.Optional -> (Util.Html.nothing)
- other -> (get_rank_status other)
- )
- ]
- )
-
-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 "battle-character-card-movement")]
- []
- []
- )
-
-get_inactive_movement_bar : (
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_inactive_movement_bar char =
- let
- max =
- (Struct.Statistics.get_movement_points
- (Struct.Character.get_statistics char)
- )
- in
- (View.Gauge.get_html
- (
- "MP: "
- ++
- (toString
- (Struct.Statistics.get_movement_points
- (Struct.Character.get_statistics char)
- )
- )
- )
- 100.0
- [(Html.Attributes.class "battle-character-card-movement")]
- []
- []
- )
-
-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_details : (
- Struct.Statistics.Type ->
- Struct.Weapon.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_weapon_details stats weapon =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon-name")
- ]
- [
- (Html.text (Struct.Weapon.get_name weapon))
- ]
- ),
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon-name")
- ]
- [
- (Html.text
- (
- "["
- ++ (toString (Struct.Statistics.get_damage_min stats))
- ++ ", "
- ++ (toString (Struct.Statistics.get_damage_max stats))
- ++ "] "
- ++
- (case (Struct.Weapon.get_damage_type weapon) of
- Struct.Weapon.Slash -> "slashing "
- Struct.Weapon.Pierce -> "piercing "
- Struct.Weapon.Blunt -> "bludgeoning "
- )
- ++
- (case (Struct.Weapon.get_range_type weapon) of
- Struct.Weapon.Ranged -> "ranged"
- Struct.Weapon.Melee -> "melee"
- )
- )
- )
- ]
- )
- ]
- )
-
-get_weapon_summary : (
- Struct.Weapon.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_weapon_summary weapon =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon-summary")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon-name")
- ]
- [
- (Html.text (Struct.Weapon.get_name weapon))
- ]
- ),
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-weapon-name")
- ]
- [
- (Html.text
- (
- (case (Struct.Weapon.get_damage_type weapon) of
- Struct.Weapon.Slash -> "Slashing "
- Struct.Weapon.Pierce -> "Piercing "
- Struct.Weapon.Blunt -> "Bludgeoning "
- )
- ++
- (case (Struct.Weapon.get_range_type weapon) of
- Struct.Weapon.Ranged -> "ranged"
- Struct.Weapon.Melee -> "melee"
- )
- )
- )
- ]
- )
- ]
- )
-
-get_armor_details : (
- Struct.Armor.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_armor_details armor =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-armor")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-armor-name")
- ]
- [
- (Html.text (Struct.Armor.get_name armor))
- ]
- ),
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-armor-stats")
- ]
- [
- (stat_name "Slash"),
- (stat_val
- (Struct.Armor.get_resistance_to Struct.Weapon.Slash armor)
- False
- ),
- (stat_name "Pierc."),
- (stat_val
- (Struct.Armor.get_resistance_to Struct.Weapon.Pierce armor)
- False
- ),
- (stat_name "Blund."),
- (stat_val
- (Struct.Armor.get_resistance_to Struct.Weapon.Blunt armor)
- False
- )
- ]
- )
- ]
- )
-
-stat_name : String -> (Html.Html Struct.Event.Type)
-stat_name name =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-stat-name")
- ]
- [
- (Html.text name)
- ]
- )
-
-stat_val : Int -> Bool -> (Html.Html Struct.Event.Type)
-stat_val val perc =
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-stat-val")
- ]
- [
- (Html.text
- (
- (toString val)
- ++
- (
- if perc
- then
- "%"
- else
- ""
- )
- )
- )
- ]
- )
-
-att_dual_val : Int -> Int -> (Html.Html Struct.Event.Type)
-att_dual_val base active =
- let
- diff = (active - base)
- in
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-att-dual-val")
- ]
- [
- (Html.text
- (
- (toString base)
- ++ " ("
- ++
- (
- if (diff > 0)
- then
- ("+" ++ (toString diff))
- else
- if (diff == 0)
- then
- "~"
- else
- (toString diff)
- )
- ++ ")"
- )
- )
- ]
- )
-
-get_relevant_stats : (
- Struct.Character.Type ->
- Struct.Weapon.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_relevant_stats char weapon =
- let
- stats = (Struct.Character.get_statistics char)
- in
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-stats")
- ]
- [
- (stat_name "Dodge"),
- (stat_val (Struct.Statistics.get_dodges stats) True),
- (stat_name "Parry"),
- (stat_val
- (case (Struct.Weapon.get_range_type weapon) of
- Struct.Weapon.Ranged -> 0
- Struct.Weapon.Melee -> (Struct.Statistics.get_parries stats)
- )
- True
- ),
- (stat_name "Accu."),
- (stat_val (Struct.Statistics.get_accuracy stats) False),
- (stat_name "2xHit"),
- (stat_val (Struct.Statistics.get_double_hits stats) True),
- (stat_name "Crit."),
- (stat_val (Struct.Statistics.get_critical_hits stats) True)
- ]
- )
-
-get_attributes : (
- Struct.Character.Type ->
- Struct.Weapon.Type ->
- Struct.Armor.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_attributes char weapon armor =
- let
- base_atts = (Struct.Character.get_attributes char)
- active_atts =
- (Struct.Armor.apply_to_attributes
- armor
- (Struct.Weapon.apply_to_attributes weapon base_atts)
- )
- in
- (Html.div
- [
- (Html.Attributes.class "battle-character-card-stats")
- ]
- [
- (stat_name "Con"),
- (att_dual_val
- (Struct.Attributes.get_constitution base_atts)
- (Struct.Attributes.get_constitution active_atts)
- ),
- (stat_name "Dex"),
- (att_dual_val
- (Struct.Attributes.get_dexterity base_atts)
- (Struct.Attributes.get_dexterity active_atts)
- ),
- (stat_name "Int"),
- (att_dual_val
- (Struct.Attributes.get_intelligence base_atts)
- (Struct.Attributes.get_intelligence active_atts)
- ),
- (stat_name "Min"),
- (att_dual_val
- (Struct.Attributes.get_mind base_atts)
- (Struct.Attributes.get_mind active_atts)
- ),
- (stat_name "Spe"),
- (att_dual_val
- (Struct.Attributes.get_speed base_atts)
- (Struct.Attributes.get_speed active_atts)
- ),
- (stat_name "Str"),
- (att_dual_val
- (Struct.Attributes.get_strength base_atts)
- (Struct.Attributes.get_strength active_atts)
- )
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_minimal_html : (
- Int ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_minimal_html player_ix char =
- (Html.div
- [
- (Html.Attributes.class "battle-info-card"),
- (Html.Attributes.class "battle-info-card-minimal"),
- (Html.Attributes.class "battle-character-card"),
- (Html.Attributes.class "battle-character-card-minimal")
- ]
- [
- (get_name char),
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-top"),
- (Html.Attributes.class "battle-character-card-top")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-picture")
- ]
- [
- (View.Character.get_portrait_html player_ix char)
- ]
- ),
- (get_health_bar char),
- (get_inactive_movement_bar char),
- (get_statuses char)
- ]
- )
- ]
- )
-
-get_summary_html : (
- Struct.CharacterTurn.Type ->
- Int ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_summary_html char_turn player_ix char =
- let
- weapon_set = (Struct.Character.get_weapons char)
- main_weapon = (Struct.WeaponSet.get_active_weapon weapon_set)
- char_statistics = (Struct.Character.get_statistics char)
- secondary_weapon = (Struct.WeaponSet.get_secondary_weapon weapon_set)
- in
- (Html.div
- [
- (Html.Attributes.class "battle-character-card")
- ]
- [
- (get_name char),
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-top"),
- (Html.Attributes.class "battle-character-card-top")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-picture")
- ]
- [
- (View.Character.get_portrait_html player_ix char)
- ]
- ),
- (get_health_bar char),
- (get_movement_bar char_turn char),
- (get_statuses char)
- ]
- ),
- (get_weapon_details char_statistics main_weapon),
- (get_armor_details (Struct.Character.get_armor char)),
- (get_relevant_stats char main_weapon),
- (get_weapon_summary secondary_weapon)
- ]
- )
-
-get_full_html : (
- Int ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_full_html player_ix char =
- let
- weapon_set = (Struct.Character.get_weapons char)
- main_weapon = (Struct.WeaponSet.get_active_weapon weapon_set)
- char_statistics = (Struct.Character.get_statistics char)
- secondary_weapon = (Struct.WeaponSet.get_secondary_weapon weapon_set)
- armor = (Struct.Character.get_armor char)
- in
- (Html.div
- [
- (Html.Attributes.class "battle-info-card"),
- (Html.Attributes.class "battle-character-card")
- ]
- [
- (get_name char),
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-top"),
- (Html.Attributes.class "battle-character-card-top")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-picture")
- ]
- [
- (View.Character.get_portrait_html player_ix char)
- ]
- ),
- (get_health_bar char),
- (get_inactive_movement_bar char),
- (get_statuses char)
- ]
- ),
- (get_weapon_details char_statistics main_weapon),
- (get_armor_details armor),
- (get_relevant_stats char main_weapon),
- (get_weapon_summary secondary_weapon),
- (get_attributes char main_weapon armor)
- ]
- )
diff --git a/src/character/src/View/Controlled/ManualControls.elm b/src/character/src/View/Controlled/ManualControls.elm
deleted file mode 100644
index 1dceafb..0000000
--- a/src/character/src/View/Controlled/ManualControls.elm
+++ /dev/null
@@ -1,60 +0,0 @@
-module View.Controlled.ManualControls exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Direction
-import Struct.Event
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-direction_button : (
- Struct.Direction.Type ->
- String ->
- (Html.Html Struct.Event.Type)
- )
-direction_button dir label =
- (Html.div
- [
- (Html.Attributes.class ("battle-manual-controls-" ++ label)),
- (Html.Attributes.class "clickable"),
- (Html.Events.onClick
- (Struct.Event.DirectionRequested dir)
- )
- ]
- []
- )
-
-go_button : (Html.Html Struct.Event.Type)
-go_button =
- (Html.button
- [
- (Html.Attributes.class "battle-manual-controls-go"),
- (Html.Events.onClick Struct.Event.AttackWithoutMovingRequest)
- ]
- [
- (Html.text "Go")
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (Html.Html Struct.Event.Type)
-get_html =
- (Html.div
- [
- (Html.Attributes.class "battle-manual-controls")
- ]
- [
- (direction_button Struct.Direction.Left "left"),
- (direction_button Struct.Direction.Down "down"),
- (direction_button Struct.Direction.Up "up"),
- (direction_button Struct.Direction.Right "right"),
- (go_button)
- ]
- )
diff --git a/src/character/src/View/Controlled/Targets.elm b/src/character/src/View/Controlled/Targets.elm
deleted file mode 100644
index eee5a54..0000000
--- a/src/character/src/View/Controlled/Targets.elm
+++ /dev/null
@@ -1,69 +0,0 @@
-module View.SideBar.Targets exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Dict
-
-import Html
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Struct.Character
-import Struct.Event
-import Struct.Model
-import Struct.Statistics
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-get_target_info_html : (
- Struct.Model.Type ->
- Struct.Character.Ref ->
- (Html.Html Struct.Event.Type)
- )
-get_target_info_html model char_ref =
- case (Dict.get char_ref model.characters) of
- Nothing -> (Html.text "Error: Unknown character selected.")
- (Just char) ->
- (Html.text
- (
- "Attacking "
- ++ char.name
- ++ " (player "
- ++ (toString (Struct.Character.get_player_ix char))
- ++ "): "
- ++
- (toString
- (Struct.Statistics.get_movement_points
- (Struct.Character.get_statistics char)
- )
- )
- ++ " movement points; "
- ++ "???"
- ++ " attack range. Health: "
- ++ (toString (Struct.Character.get_sane_current_health char))
- ++ "/"
- ++
- (toString
- (Struct.Statistics.get_max_health
- (Struct.Character.get_statistics char)
- )
- )
- )
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.Model.Type ->
- Struct.Character.Ref ->
- (Html.Html Struct.Event.Type)
- )
-get_html model target_ref =
- (Html.div
- [
- (Html.Attributes.class "battle-side-bar-targets")
- ]
- [(get_target_info_html model target_ref)]
- )
diff --git a/src/character/src/View/Gauge.elm b/src/character/src/View/Gauge.elm
deleted file mode 100644
index cf89f3a..0000000
--- a/src/character/src/View/Gauge.elm
+++ /dev/null
@@ -1,76 +0,0 @@
-module View.Gauge exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_text_div: (
- String ->
- List (Html.Attribute Struct.Event.Type) ->
- (Html.Html Struct.Event.Type)
- )
-get_text_div text extra_txt_attr =
- (Html.div
- (
- [(Html.Attributes.class "battle-gauge-text")]
- ++ extra_txt_attr
- )
- [
- (Html.text text)
- ]
- )
-
-get_bar_div: (
- Float ->
- List (Html.Attribute Struct.Event.Type) ->
- (Html.Html Struct.Event.Type)
- )
-get_bar_div percent extra_bar_attr =
- (Html.div
- (
- [
- (Html.Attributes.style
- [
- ("width", ((toString percent) ++ "%"))
- ]
- ),
- (Html.Attributes.class
- "battle-gauge-bar"
- )
- ]
- ++
- extra_bar_attr
- )
- [
- ]
- )
-
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- String ->
- Float ->
- List (Html.Attribute Struct.Event.Type) ->
- List (Html.Attribute Struct.Event.Type) ->
- List (Html.Attribute Struct.Event.Type) ->
- (Html.Html Struct.Event.Type)
- )
-get_html text percent extra_div_attr extra_bar_attr extra_txt_attr =
- (Html.div
- (
- [(Html.Attributes.class "battle-gauge")]
- ++ extra_div_attr
- )
- [
- (get_text_div text extra_txt_attr),
- (get_bar_div percent extra_bar_attr)
- ]
- )
diff --git a/src/character/src/View/MainMenu.elm b/src/character/src/View/MainMenu.elm
deleted file mode 100644
index 9f3099b..0000000
--- a/src/character/src/View/MainMenu.elm
+++ /dev/null
@@ -1,38 +0,0 @@
-module View.MainMenu exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.UI
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_menu_button_html : (
- Struct.UI.Tab ->
- (Html.Html Struct.Event.Type)
- )
-get_menu_button_html tab =
- (Html.button
- [ (Html.Events.onClick (Struct.Event.TabSelected tab)) ]
- [ (Html.text (Struct.UI.to_string tab)) ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (Html.Html Struct.Event.Type)
-get_html =
- (Html.div
- [
- (Html.Attributes.class "battle-main-menu")
- ]
- (List.map
- (get_menu_button_html)
- (Struct.UI.get_all_tabs)
- )
- )
diff --git a/src/character/src/View/MessageBoard.elm b/src/character/src/View/MessageBoard.elm
deleted file mode 100644
index 736f938..0000000
--- a/src/character/src/View/MessageBoard.elm
+++ /dev/null
@@ -1,30 +0,0 @@
-module View.MessageBoard exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-
--- Struct.Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.Model
-
-import View.MessageBoard.Animator
-import View.MessageBoard.Error
-import View.MessageBoard.Help
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-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)
diff --git a/src/character/src/View/MessageBoard/Animator.elm b/src/character/src/View/MessageBoard/Animator.elm
deleted file mode 100644
index 49bb83a..0000000
--- a/src/character/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/character/src/View/MessageBoard/Animator/Attack.elm b/src/character/src/View/MessageBoard/Animator/Attack.elm
deleted file mode 100644
index 437a76d..0000000
--- a/src/character/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/character/src/View/MessageBoard/Error.elm b/src/character/src/View/MessageBoard/Error.elm
deleted file mode 100644
index 797d89f..0000000
--- a/src/character/src/View/MessageBoard/Error.elm
+++ /dev/null
@@ -1,33 +0,0 @@
-module View.MessageBoard.Error exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Struct.Error
-import Struct.Event
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.Model.Type ->
- Struct.Error.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_html model error =
- (Html.div
- [
- (Html.Attributes.class "battle-message-board"),
- (Html.Attributes.class "battle-error")
- ]
- [
- (Html.text (Struct.Error.to_string error))
- ]
- )
diff --git a/src/character/src/View/MessageBoard/Help.elm b/src/character/src/View/MessageBoard/Help.elm
deleted file mode 100644
index 6c20bbc..0000000
--- a/src/character/src/View/MessageBoard/Help.elm
+++ /dev/null
@@ -1,37 +0,0 @@
-module View.MessageBoard.Help exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.HelpRequest
-import Struct.Model
-
-import View.MessageBoard.Help.Guide
-import View.MessageBoard.Help.Rank
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
-get_html model =
- (Html.div
- [
- (Html.Attributes.class "battle-message-board"),
- (Html.Attributes.class "battle-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/character/src/View/MessageBoard/Help/Guide.elm b/src/character/src/View/MessageBoard/Help/Guide.elm
deleted file mode 100644
index 0a41e91..0000000
--- a/src/character/src/View/MessageBoard/Help/Guide.elm
+++ /dev/null
@@ -1,100 +0,0 @@
-module View.MessageBoard.Help.Guide exposing (get_html_contents)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-
--- Map -------------------------------------------------------------------
-import Struct.CharacterTurn
-import Struct.Event
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_header_html : (String -> (Html.Html Struct.Event.Type))
-get_header_html title =
- (Html.h1
- []
- [
- (Html.div
- [(Html.Attributes.class "battle-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 =
- [
- (get_header_html "Selecting a Character"),
- (Html.text
- (
- "Click once on a character to focus them. This will show you"
- ++ " their stats, equipment, and other infos. If they are in"
- ++ " your team and active (the pulsating characters),"
- ++ " clicking on them again will let you take control."
- )
- )
- ]
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-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)
diff --git a/src/character/src/View/MessageBoard/Help/Rank.elm b/src/character/src/View/MessageBoard/Help/Rank.elm
deleted file mode 100644
index 4a01e75..0000000
--- a/src/character/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
-
--- Map -------------------------------------------------------------------
-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 "battle-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
- "battle-message-board-help-figure"
- ),
- (Html.Attributes.class
- ("battle-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/character/src/View/SubMenu.elm b/src/character/src/View/SubMenu.elm
deleted file mode 100644
index e661b9c..0000000
--- a/src/character/src/View/SubMenu.elm
+++ /dev/null
@@ -1,85 +0,0 @@
-module View.SubMenu exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Html
-import Html.Attributes
-import Html.Lazy
-
--- Map -------------------------------------------------------------------
-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.Settings
-import View.SubMenu.Status
-import View.SubMenu.Timeline
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_inner_html : (
- Struct.Model.Type ->
- Struct.UI.Tab ->
- (Html.Html Struct.Event.Type)
- )
-get_inner_html model tab =
- case tab of
- 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.SettingsTab ->
- (View.SubMenu.Settings.get_html model)
-
- Struct.UI.TimelineTab ->
- (View.SubMenu.Timeline.get_html model)
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
-get_html model =
- case (Struct.UI.try_getting_displayed_tab model.ui) of
- (Just tab) ->
- (Html.div
- [(Html.Attributes.class "battle-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 "battle-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)
diff --git a/src/character/src/View/SubMenu/Characters.elm b/src/character/src/View/SubMenu/Characters.elm
deleted file mode 100644
index 396dbee..0000000
--- a/src/character/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
-
--- Map -------------------------------------------------------------------
-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 "battle-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 "battle-characters-element-active")
- else
- (Html.Attributes.class "battle-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 "battle-tabmenu-content"),
- (Html.Attributes.class "battle-tabmenu-characters-tab")
- ]
- (List.map
- (get_character_element_html player_ix)
- (Array.toList characters)
- )
- )
diff --git a/src/character/src/View/SubMenu/Settings.elm b/src/character/src/View/SubMenu/Settings.elm
deleted file mode 100644
index e0ad4d7..0000000
--- a/src/character/src/View/SubMenu/Settings.elm
+++ /dev/null
@@ -1,59 +0,0 @@
-module View.SubMenu.Settings exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.Model
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-scale_button : Float -> String -> (Html.Html Struct.Event.Type)
-scale_button mod label =
- (Html.button
- [
- (Html.Events.onClick
- (Struct.Event.ScaleChangeRequested mod)
- )
- ]
- [ (Html.text label) ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
-get_html model =
- (Html.div
- [
- (Html.Attributes.class "battle-tabmenu-content"),
- (Html.Attributes.class "battle-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.DebugLoadBattleRequest)
- ]
- [ (Html.text "[DEBUG] Load map") ]
- ),
- (Html.button
- [
- (Html.Events.onClick Struct.Event.DebugTestAnimation)
- ]
- [ (Html.text "[DEBUG] Test animations") ]
- )
- ]
- )
diff --git a/src/character/src/View/SubMenu/Status.elm b/src/character/src/View/SubMenu/Status.elm
deleted file mode 100644
index 485704e..0000000
--- a/src/character/src/View/SubMenu/Status.elm
+++ /dev/null
@@ -1,55 +0,0 @@
-module View.SubMenu.Status exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Html
-import Html.Attributes
-import Html.Lazy
-
--- Struct.Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.Location
-import Struct.Model
-import Struct.UI
-
-import View.SubMenu.Status.CharacterInfo
-import View.SubMenu.Status.TileInfo
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
-get_html model =
- (Html.div
- [
- (Html.Attributes.class "battle-footer-tabmenu-content"),
- (Html.Attributes.class "battle-footer-tabmenu-content-status")
- ]
- [
- (case (Struct.UI.get_previous_action model.ui) of
- (Just (Struct.UI.SelectedLocation loc)) ->
- (View.SubMenu.Status.TileInfo.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/character/src/View/SubMenu/Status/CharacterInfo.elm b/src/character/src/View/SubMenu/Status/CharacterInfo.elm
deleted file mode 100644
index 814ce5f..0000000
--- a/src/character/src/View/SubMenu/Status/CharacterInfo.elm
+++ /dev/null
@@ -1,34 +0,0 @@
-module View.SubMenu.Status.CharacterInfo exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
-
--- Struct.Map -------------------------------------------------------------------
-import Struct.Character
-import Struct.Event
-
-import View.Controlled.CharacterCard
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Int ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_html player_ix char =
- (Html.div
- [
- (Html.Attributes.class "battle-tabmenu-character-info")
- ]
- [
- (Html.text ("Focusing:")),
- (View.Controlled.CharacterCard.get_full_html player_ix char)
- ]
- )
diff --git a/src/character/src/View/SubMenu/Status/TileInfo.elm b/src/character/src/View/SubMenu/Status/TileInfo.elm
deleted file mode 100644
index 920b5ce..0000000
--- a/src/character/src/View/SubMenu/Status/TileInfo.elm
+++ /dev/null
@@ -1,137 +0,0 @@
-module View.SubMenu.Status.TileInfo exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Dict
-
-import Html
-import Html.Attributes
-
--- Struct.Map -------------------------------------------------------------------
-import Constants.Movement
-
-import Struct.Map
-import Struct.Event
-import Struct.Location
-import Struct.Model
-import Struct.Tile
-
-import Util.Html
-
-import View.Map.Tile
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_icon : (Struct.Tile.Instance -> (Html.Html Struct.Event.Type))
-get_icon tile =
- (Html.div
- [
- (Html.Attributes.class "battle-tile-card-icon"),
- (Html.Attributes.class "battle-info-card-picture"),
- (Html.Attributes.class
- (
- "battle-tile-variant-"
- ++ (toString (Struct.Tile.get_local_variant_ix tile))
- )
- )
- ]
- (View.Map.Tile.get_content_html tile)
- )
-
-get_name : (
- Struct.Model.Type ->
- Struct.Tile.Instance ->
- (Html.Html Struct.Event.Type)
- )
-get_name model tile =
- case (Dict.get (Struct.Tile.get_type_id tile) model.tiles) of
- Nothing -> (Util.Html.nothing)
- (Just tile_type) ->
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-name"),
- (Html.Attributes.class "battle-info-card-text-field"),
- (Html.Attributes.class "battle-tile-card-name")
- ]
- [
- (Html.text (Struct.Tile.get_name tile_type))
- ]
- )
-
-get_cost : (Struct.Tile.Instance -> (Html.Html Struct.Event.Type))
-get_cost tile =
- let
- cost = (Struct.Tile.get_instance_cost tile)
- text =
- if (cost > Constants.Movement.max_points)
- then
- "Obstructed"
- else
- ("Cost: " ++ (toString cost))
- in
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-text-field"),
- (Html.Attributes.class "battle-tile-card-cost")
- ]
- [
- (Html.text text)
- ]
- )
-
-get_location : (Struct.Tile.Instance -> (Html.Html Struct.Event.Type))
-get_location tile =
- let
- tile_location = (Struct.Tile.get_location tile)
- in
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-text-field"),
- (Html.Attributes.class "battle-tile-card-location")
- ]
- [
- (Html.text
- (
- "{x: "
- ++ (toString tile_location.x)
- ++ "; y: "
- ++ (toString tile_location.y)
- ++ "}"
- )
- )
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.Model.Type ->
- Struct.Location.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_html model loc =
- case (Struct.Map.try_getting_tile_at loc model.map) of
- (Just tile) ->
- (Html.div
- [
- (Html.Attributes.class "battle-info-card"),
- (Html.Attributes.class "battle-tile-card")
- ]
- [
- (get_name model tile),
- (Html.div
- [
- (Html.Attributes.class "battle-info-card-top"),
- (Html.Attributes.class "battle-tile-card-top")
- ]
- [
- (get_icon tile),
- (get_location tile),
- (get_cost tile)
- ]
- )
- ]
- )
-
- Nothing -> (Html.text "Error: Unknown tile location selected.")
diff --git a/src/character/src/View/SubMenu/Timeline.elm b/src/character/src/View/SubMenu/Timeline.elm
deleted file mode 100644
index 7fb1813..0000000
--- a/src/character/src/View/SubMenu/Timeline.elm
+++ /dev/null
@@ -1,95 +0,0 @@
-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
- )
diff --git a/src/character/src/View/SubMenu/Timeline/Attack.elm b/src/character/src/View/SubMenu/Timeline/Attack.elm
deleted file mode 100644
index 682540d..0000000
--- a/src/character/src/View/SubMenu/Timeline/Attack.elm
+++ /dev/null
@@ -1,164 +0,0 @@
-module View.SubMenu.Timeline.Attack exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Attack
-import Struct.Event
-import Struct.TurnResult
-import Struct.Character
-
-import View.Character
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_title_html : (
- Struct.Character.Type ->
- Struct.Character.Type ->
- (Html.Html Struct.Event.Type)
- )
-get_title_html attacker defender =
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-attack-title")
- ]
- [
- (Html.text
- (
- (Struct.Character.get_name attacker)
- ++ " attacked "
- ++ (Struct.Character.get_name defender)
- ++ "!"
- )
- )
- ]
- )
-
-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_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.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))
- )
- )
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- (Array.Array Struct.Character.Type) ->
- Int ->
- Struct.TurnResult.Attack ->
- (Html.Html Struct.Event.Type)
- )
-get_html characters player_ix attack =
- case
- (
- (Array.get attack.attacker_index characters),
- (Array.get attack.defender_index characters)
- )
- of
- ((Just atkchar), (Just defchar)) ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-attack")
- ]
- (
- [
- (View.Character.get_portrait_html player_ix atkchar),
- (View.Character.get_portrait_html player_ix defchar),
- (get_title_html atkchar defchar)
- ]
- ++
- (List.map
- (get_attack_html atkchar defchar)
- attack.sequence
- )
- )
- )
-
- _ ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-attack")
- ]
- [
- (Html.text "Error: Attack with unknown characters")
- ]
- )
diff --git a/src/character/src/View/SubMenu/Timeline/Movement.elm b/src/character/src/View/SubMenu/Timeline/Movement.elm
deleted file mode 100644
index 0746f1f..0000000
--- a/src/character/src/View/SubMenu/Timeline/Movement.elm
+++ /dev/null
@@ -1,62 +0,0 @@
-module View.SubMenu.Timeline.Movement exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.TurnResult
-import Struct.Character
-
-import View.Character
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- (Array.Array Struct.Character.Type) ->
- Int ->
- Struct.TurnResult.Movement ->
- (Html.Html Struct.Event.Type)
- )
-get_html characters player_ix movement =
- case (Array.get movement.character_index characters) of
- (Just char) ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-movement")
- ]
- [
- (View.Character.get_portrait_html player_ix char),
- (Html.text
- (
- (Struct.Character.get_name char)
- ++ " moved to ("
- ++ (toString movement.destination.x)
- ++ ", "
- ++ (toString movement.destination.y)
- ++ ")."
- )
- )
- ]
- )
-
- _ ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-movement")
- ]
- [
- (Html.text "Error: Moving with unknown character")
- ]
- )
diff --git a/src/character/src/View/SubMenu/Timeline/PlayerDefeat.elm b/src/character/src/View/SubMenu/Timeline/PlayerDefeat.elm
deleted file mode 100644
index db5e023..0000000
--- a/src/character/src/View/SubMenu/Timeline/PlayerDefeat.elm
+++ /dev/null
@@ -1,38 +0,0 @@
-module View.SubMenu.Timeline.PlayerDefeat exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.TurnResult
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.TurnResult.PlayerDefeat ->
- (Html.Html Struct.Event.Type)
- )
-get_html pdefeat =
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-player-defeat")
- ]
- [
- (Html.text
- (
- "Player "
- ++ (toString pdefeat.player_index)
- ++ " has been eliminated."
- )
- )
- ]
- )
diff --git a/src/character/src/View/SubMenu/Timeline/PlayerTurnStart.elm b/src/character/src/View/SubMenu/Timeline/PlayerTurnStart.elm
deleted file mode 100644
index a6486fa..0000000
--- a/src/character/src/View/SubMenu/Timeline/PlayerTurnStart.elm
+++ /dev/null
@@ -1,38 +0,0 @@
-module View.SubMenu.Timeline.PlayerTurnStart exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.TurnResult
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.TurnResult.PlayerTurnStart ->
- (Html.Html Struct.Event.Type)
- )
-get_html pturns =
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-turn-start")
- ]
- [
- (Html.text
- (
- "Player "
- ++ (toString pturns.player_index)
- ++ "'s turn has started."
- )
- )
- ]
- )
diff --git a/src/character/src/View/SubMenu/Timeline/PlayerVictory.elm b/src/character/src/View/SubMenu/Timeline/PlayerVictory.elm
deleted file mode 100644
index 4d47f62..0000000
--- a/src/character/src/View/SubMenu/Timeline/PlayerVictory.elm
+++ /dev/null
@@ -1,38 +0,0 @@
-module View.SubMenu.Timeline.PlayerVictory exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.TurnResult
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- Struct.TurnResult.PlayerVictory ->
- (Html.Html Struct.Event.Type)
- )
-get_html pvict =
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-player-victory")
- ]
- [
- (Html.text
- (
- "Player "
- ++ (toString pvict.player_index)
- ++ " has won the map."
- )
- )
- ]
- )
diff --git a/src/character/src/View/SubMenu/Timeline/WeaponSwitch.elm b/src/character/src/View/SubMenu/Timeline/WeaponSwitch.elm
deleted file mode 100644
index 499e0c3..0000000
--- a/src/character/src/View/SubMenu/Timeline/WeaponSwitch.elm
+++ /dev/null
@@ -1,58 +0,0 @@
-module View.SubMenu.Timeline.WeaponSwitch exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Array
-
-import Html
-import Html.Attributes
---import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.Event
-import Struct.TurnResult
-import Struct.Character
-
-import View.Character
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- (Array.Array Struct.Character.Type) ->
- Int ->
- Struct.TurnResult.WeaponSwitch ->
- (Html.Html Struct.Event.Type)
- )
-get_html characters player_ix weapon_switch =
- case (Array.get weapon_switch.character_index characters) of
- (Just char) ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-weapon-switch")
- ]
- [
- (View.Character.get_portrait_html player_ix char),
- (Html.text
- (
- (Struct.Character.get_name char)
- ++ " switched weapons."
- )
- )
- ]
- )
-
- _ ->
- (Html.div
- [
- (Html.Attributes.class "battle-timeline-element"),
- (Html.Attributes.class "battle-timeline-weapon-switch")
- ]
- [
- (Html.text "Error: Unknown character switched weapons")
- ]
- )
diff --git a/src/character/www/index.html b/src/character/www/index.html
deleted file mode 100644
index 65f0d02..0000000
--- a/src/character/www/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <link rel="stylesheet" type="text/css" href="../css/global.css">
- <link rel="stylesheet" type="text/css" href="../css/character.css">
- <link rel="stylesheet" type="text/css" href="../asset/characters.css">
- <link rel="stylesheet" type="text/css" href="../asset/armors.css">
- <link rel="icon" type="image/x-icon" href="/favicon.ico">
- </head>
- <body>
- <script src="script/main.js"></script>
- <script src="../global/script/session.js"></script>
- <script src="../global/script/urlparams.js"></script>
- <script src="../global/script/navigation.js"></script>
- <script>
- tacticians_online.session.load();
-
- tacticians_online.app =
- Elm.Main.fullscreen
- (
- {
- user_id: tacticians_online.session.get_user_id(),
- token: tacticians_online.session.get_token(),
- url_params: tacticians_online.urlparams.get_parameters()
- }
- );
-
- tacticians_online.session.attach_to(tacticians_online.app);
- tacticians_online.navigation.attach_to(tacticians_online.app);
- </script>
- </body>
-</html>