summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-02-19 15:06:38 +0100
committernsensfel <SpamShield0@noot-noot.org>2018-02-19 15:06:38 +0100
commitb5dc8453a1bb8d1440f2d5530141179b0d905678 (patch)
treef716c8f81b44ec867565ec61882a41fbd6e441ba /src
parent01f457fb41fefe97d84476de97fe424db0f2117b (diff)
Found a way for temp. weapon switching.
Diffstat (limited to 'src')
-rw-r--r--src/battlemap/src/Send/CharacterTurn.elm10
-rw-r--r--src/battlemap/src/Struct/CharacterTurn.elm18
-rw-r--r--src/battlemap/src/Update/EndTurn.elm16
-rw-r--r--src/battlemap/src/Update/SelectCharacter.elm13
-rw-r--r--src/battlemap/src/View/Footer.elm36
5 files changed, 47 insertions, 46 deletions
diff --git a/src/battlemap/src/Send/CharacterTurn.elm b/src/battlemap/src/Send/CharacterTurn.elm
index 79e90a3..06b7665 100644
--- a/src/battlemap/src/Send/CharacterTurn.elm
+++ b/src/battlemap/src/Send/CharacterTurn.elm
@@ -9,6 +9,7 @@ import Constants.IO
import Send.Send
import Struct.Battlemap
+import Struct.Character
import Struct.CharacterTurn
import Struct.Direction
import Struct.Event
@@ -25,9 +26,9 @@ import Struct.UI
try_encoding : Struct.Model.Type -> (Maybe Json.Encode.Value)
try_encoding model =
case
- (Struct.CharacterTurn.try_getting_controlled_character model.char_turn)
+ (Struct.CharacterTurn.try_getting_active_character model.char_turn)
of
- (Just char_ref) ->
+ (Just char) ->
(Just
(Json.Encode.object
[
@@ -35,7 +36,10 @@ try_encoding model =
("player_id", (Json.Encode.string model.player_id)),
("battlemap_id", (Json.Encode.string "0")),
("instance_id", (Json.Encode.string "0")),
- ("char_id", (Json.Encode.string char_ref)),
+ (
+ "char_id",
+ (Json.Encode.string (Struct.Character.get_ref char))
+ ),
(
"path",
(Json.Encode.list
diff --git a/src/battlemap/src/Struct/CharacterTurn.elm b/src/battlemap/src/Struct/CharacterTurn.elm
index 48703fe..ea651c5 100644
--- a/src/battlemap/src/Struct/CharacterTurn.elm
+++ b/src/battlemap/src/Struct/CharacterTurn.elm
@@ -10,9 +10,9 @@ module Struct.CharacterTurn exposing
lock_path,
new,
remove_target,
- set_controlled_character,
+ set_active_character,
set_navigator,
- try_getting_controlled_character,
+ try_getting_active_character,
try_getting_navigator
)
@@ -38,7 +38,7 @@ type State =
type alias Type =
{
state : State,
- controlled_character : (Maybe Struct.Character.Ref),
+ active_character : (Maybe Struct.Character.Type),
path : (List Struct.Direction.Type),
targets : (List Struct.Character.Ref),
navigator : (Maybe Struct.Navigator.Type)
@@ -55,29 +55,29 @@ new : Type
new =
{
state = Default,
- controlled_character = Nothing,
+ active_character = Nothing,
path = [],
targets = [],
navigator = Nothing
}
-try_getting_controlled_character : Type -> (Maybe Struct.Character.Ref)
-try_getting_controlled_character ct = ct.controlled_character
+try_getting_active_character : Type -> (Maybe Struct.Character.Type)
+try_getting_active_character ct = ct.active_character
can_select_targets : Type -> Bool
can_select_targets ct =
((ct.state == MovedCharacter) || ((ct.state == ChoseTarget)))
-set_controlled_character : (
+set_active_character : (
Type ->
Struct.Character.Type ->
Type
)
-set_controlled_character ct char =
+set_active_character ct char =
{ct |
state = SelectedCharacter,
- controlled_character = (Just (Struct.Character.get_ref char)),
+ active_character = (Just char),
path = [],
targets = [],
navigator = Nothing
diff --git a/src/battlemap/src/Update/EndTurn.elm b/src/battlemap/src/Update/EndTurn.elm
index f3e275c..1a909d9 100644
--- a/src/battlemap/src/Update/EndTurn.elm
+++ b/src/battlemap/src/Update/EndTurn.elm
@@ -19,18 +19,18 @@ import Struct.Navigator
--------------------------------------------------------------------------------
make_it_so : (
Struct.Model.Type ->
- Struct.Character.Ref ->
+ Struct.Character.Type ->
Struct.Navigator.Type ->
(Struct.Model.Type, (Cmd Struct.Event.Type))
)
-make_it_so model char_id nav =
+make_it_so model char nav =
case (Send.CharacterTurn.try model) of
(Just cmd) ->
(
(Struct.Model.reset
model
(Dict.update
- char_id
+ (Struct.Character.get_ref char)
(\maybe_char ->
case maybe_char of
(Just char) ->
@@ -62,7 +62,7 @@ apply_to model =
case
(
(Struct.CharacterTurn.get_state model.char_turn),
- (Struct.CharacterTurn.try_getting_controlled_character
+ (Struct.CharacterTurn.try_getting_active_character
model.char_turn
),
(Struct.CharacterTurn.try_getting_navigator model.char_turn)
@@ -70,17 +70,17 @@ apply_to model =
of
(
Struct.CharacterTurn.MovedCharacter,
- (Just char_id),
+ (Just char),
(Just nav)
) ->
- (make_it_so model char_id nav)
+ (make_it_so model char nav)
(
Struct.CharacterTurn.ChoseTarget,
- (Just char_id),
+ (Just char),
(Just nav)
) ->
- (make_it_so model char_id nav)
+ (make_it_so model char nav)
(_, _, _) ->
(
diff --git a/src/battlemap/src/Update/SelectCharacter.elm b/src/battlemap/src/Update/SelectCharacter.elm
index a1062c0..0dbe923 100644
--- a/src/battlemap/src/Update/SelectCharacter.elm
+++ b/src/battlemap/src/Update/SelectCharacter.elm
@@ -7,7 +7,6 @@ import Dict
import Struct.Battlemap
import Struct.Character
import Struct.CharacterTurn
-import Struct.Direction
import Struct.Error
import Struct.Event
import Struct.Location
@@ -16,19 +15,16 @@ import Struct.Navigator
import Struct.Statistics
import Struct.UI
-import Update.RequestDirection
-
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
attack_character : (
Struct.Model.Type ->
Struct.Character.Ref ->
- Struct.Character.Ref ->
Struct.Character.Type ->
Struct.Model.Type
)
-attack_character model main_char_id target_char_id target_char =
+attack_character model target_char_id target_char =
{model |
char_turn =
(Struct.CharacterTurn.add_target model.char_turn target_char_id),
@@ -48,7 +44,7 @@ ctrl_or_focus_character model target_char_id target_char =
{model |
char_turn =
(Struct.CharacterTurn.set_navigator
- (Struct.CharacterTurn.set_controlled_character
+ (Struct.CharacterTurn.set_active_character
model.char_turn
target_char
)
@@ -117,17 +113,16 @@ double_clicked_character model target_char_id =
case (Dict.get target_char_id model.characters) of
(Just target_char) ->
case
- (Struct.CharacterTurn.try_getting_controlled_character
+ (Struct.CharacterTurn.try_getting_active_character
model.char_turn
)
of
- (Just main_char_id) ->
+ (Just _) ->
if (can_target_character model target_char)
then
(
(attack_character
model
- main_char_id
target_char_id
target_char
),
diff --git a/src/battlemap/src/View/Footer.elm b/src/battlemap/src/View/Footer.elm
index 8fa5bd9..47443ed 100644
--- a/src/battlemap/src/View/Footer.elm
+++ b/src/battlemap/src/View/Footer.elm
@@ -39,12 +39,11 @@ inventory_button =
get_navigator_info : (
Struct.Model.Type ->
- Struct.Character.Type->
String
)
get_navigator_info model char =
case
- (Struct.CharacterTurn.try_getting_navigator model.char_turn)
+ (Struct.CharacterTurn.try_getting_active_character model.char_turn)
of
(Just nav) ->
(
@@ -60,21 +59,18 @@ get_navigator_info model char =
)
_ ->
- "[Error: Unknown character selected.]"
+ "[Error: Character selected yet navigator undefined.]"
get_curr_char_info_htmls : (
Struct.Model.Type ->
- Struct.Character.Ref ->
+ Struct.Character.Type ->
(List (Html.Html Struct.Event.Type))
)
-get_curr_char_info_htmls model char_ref =
+get_curr_char_info_htmls model char =
case
- (
- (Struct.CharacterTurn.get_state model.char_turn),
- (Dict.get char_ref model.characters)
- )
+ (Struct.CharacterTurn.get_state model.char_turn)
of
- (Struct.CharacterTurn.SelectedCharacter, (Just char)) ->
+ Struct.CharacterTurn.SelectedCharacter ->
[
(Html.text
(
@@ -88,7 +84,7 @@ get_curr_char_info_htmls model char_ref =
(inventory_button)
]
- (Struct.CharacterTurn.MovedCharacter, (Just char)) ->
+ Struct.CharacterTurn.MovedCharacter ->
[
(Html.text
(
@@ -100,7 +96,7 @@ get_curr_char_info_htmls model char_ref =
(end_turn_button)
]
- (Struct.CharacterTurn.ChoseTarget, (Just char)) ->
+ Struct.CharacterTurn.ChoseTarget ->
[
(Html.text
(
@@ -112,8 +108,14 @@ get_curr_char_info_htmls model char_ref =
(end_turn_button)
]
- (_, _) ->
- [(Html.text "Error: Unknown character selected.")]
+ _ ->
+ [
+ (Html.text
+ "Error: CharacterTurn structure in an inconsistent state:"
+ ++ " Has an active character yet the 'state' is not any of those"
+ ++ " expected in such cases."
+ )
+ ]
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
@@ -121,12 +123,12 @@ get_curr_char_info_htmls model char_ref =
get_html : Struct.Model.Type -> (Html.Html Struct.Event.Type)
get_html model =
case
- (Struct.CharacterTurn.try_getting_controlled_character model.char_turn)
+ (Struct.CharacterTurn.try_getting_active_character model.char_turn)
of
- (Just char_id) ->
+ (Just char) ->
(Html.div
[(Html.Attributes.class "battlemap-footer")]
- (get_curr_char_info_htmls model char_id)
+ (get_curr_char_info_htmls model char)
)
Nothing -> (Util.Html.nothing)