summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle/src/Update/HandleServerReply.elm36
-rw-r--r--src/battle/src/Update/Puppeteer/Focus.elm6
-rw-r--r--src/battle/src/Update/Puppeteer/Move.elm75
-rw-r--r--src/battle/src/Update/Puppeteer/RefreshCharacter.elm50
-rw-r--r--src/battle/src/Update/Puppeteer/SwapWeapons.elm52
5 files changed, 194 insertions, 25 deletions
diff --git a/src/battle/src/Update/HandleServerReply.elm b/src/battle/src/Update/HandleServerReply.elm
index f497fe0..1779db0 100644
--- a/src/battle/src/Update/HandleServerReply.elm
+++ b/src/battle/src/Update/HandleServerReply.elm
@@ -79,12 +79,12 @@ add_characters_dataset_item : (
(Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type)))
)
-add_weapon item current_state =
+add_characters_dataset_item item current_state =
let (model, cmds) = current_state in
(
{model |
characters_dataset =
- (BattleCharacters.Struct.Weapon.DataSetItem.add_to
+ (BattleCharacters.Struct.DataSetItem.add_to
item
model.characters_dataset
)
@@ -92,17 +92,20 @@ add_weapon item current_state =
cmds
)
-add_tile : (
+add_map_dataset_item : (
BattleMap.Struct.Tile.Type ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type))) ->
(Struct.Model.Type, (List (Cmd Struct.Event.Type)))
)
-add_tile tl current_state =
+add_map_dataset_item item current_state =
let (model, cmds) = current_state in
(
{model |
map_dataset =
- (BattleMap.Struct.DataSet.add_tile tl model.map_dataset)
+ (BattleMap.Struct.DataSetItem.add_to
+ item
+ model.map_dataset
+ )
},
cmds
)
@@ -231,30 +234,15 @@ apply_command command current_state =
case command of
Struct.ServerReply.Disconnected -> (disconnected current_state)
- (Struct.ServerReply.AddWeapon wp) ->
- (add_weapon wp current_state)
-
- (Struct.ServerReply.AddArmor ar) ->
- (add_armor ar current_state)
-
- (Struct.ServerReply.AddPortrait pt) ->
- (add_portrait pt current_state)
+ (Struct.ServerReply.AddCharactersDataSetItem item) ->
+ (add_characters_dataset_item item current_state)
- (Struct.ServerReply.AddSkill sk) ->
- (add_skill sk current_state)
-
- (Struct.ServerReply.AddGlyphBoard pt) ->
- (add_glyph_board pt current_state)
-
- (Struct.ServerReply.AddGlyph pt) ->
- (add_glyph pt current_state)
+ (Struct.ServerReply.AddMapDataSetItem item) ->
+ (add_map_dataset_item item current_state)
(Struct.ServerReply.AddPlayer pl) ->
(add_player pl current_state)
- (Struct.ServerReply.AddTile tl) ->
- (add_tile tl current_state)
-
(Struct.ServerReply.AddCharacter char) ->
(add_character char current_state)
diff --git a/src/battle/src/Update/Puppeteer/Focus.elm b/src/battle/src/Update/Puppeteer/Focus.elm
index f956b1f..04c57c2 100644
--- a/src/battle/src/Update/Puppeteer/Focus.elm
+++ b/src/battle/src/Update/Puppeteer/Focus.elm
@@ -1,8 +1,12 @@
module Update.Puppeteer.Focus exposing (forward, backward)
-- Local Module ----------------------------------------------------------------
-import Struct.Model
+import Action.Scroll
+
+import Struct.Battle
+import Struct.Character
import Struct.Event
+import Struct.Model
import Struct.UI
--------------------------------------------------------------------------------
diff --git a/src/battle/src/Update/Puppeteer/Move.elm b/src/battle/src/Update/Puppeteer/Move.elm
new file mode 100644
index 0000000..8626c56
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/Move.elm
@@ -0,0 +1,75 @@
+module Update.Puppeteer.Move exposing (forward, backward)
+
+-- Battle Map ------------------------------------------------------------------
+import BattleMap.Struct.Direction
+import BattleMap.Struct.Location
+
+-- Local Module ----------------------------------------------------------------
+import Action.Scroll
+
+import Struct.Battle
+import Struct.Character
+import Struct.Event
+import Struct.Model
+import Struct.UI
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+apply_direction_to_character : (
+ Int ->
+ Battle.Struct.Direction ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+apply_direction_to_character actor_ix direction model =
+ let character = (Struct.Battle.get_character actor_ix model.battle) in
+ (
+ {model |
+ battle =
+ (Struct.Battle.set_character
+ actor_ix
+ (Struct.Character.dirty_set_location
+ (BattleMap.Struct.Location.neighbor
+ direction
+ (Struct.Character.get_location character)
+ )
+ character
+ )
+ model.battle
+ )
+ },
+ []
+ )
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ BattleMap.Struct.Direction ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward actor_ix direction model =
+ (
+ (apply_direction_to_character actor_ix direction model),
+ []
+ )
+
+
+backward : (
+ Int ->
+ BattleMap.Struct.Direction ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward actor_ix direction model =
+ (
+ (apply_direction_to_character
+ actor_ix
+ (BattleMap.Struct.Direction.opposite_of direction)
+ model
+ ),
+ []
+ )
diff --git a/src/battle/src/Update/Puppeteer/RefreshCharacter.elm b/src/battle/src/Update/Puppeteer/RefreshCharacter.elm
new file mode 100644
index 0000000..4956c3f
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/RefreshCharacter.elm
@@ -0,0 +1,50 @@
+module Update.Puppeteer.RefreshCharacter exposing (forward, backward)
+
+-- Local Module ----------------------------------------------------------------
+import Action.Scroll
+
+import Struct.Battle
+import Struct.Character
+import Struct.Event
+import Struct.Model
+import Struct.UI
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward actor_ix model =
+ let character = (Struct.Battle.get_character actor_ix model.battle) in
+ (
+ {model |
+ battle =
+ (Struct.Battle.set_character
+ actor_ix
+ (Struct.Character.set_location
+ -- TODO:
+ -- Handle both Struct.Character.dirty_set_location and
+ -- BattleCharacters.Struct.Character.dirty_switch_weapons.
+ (Struct.Character.get_location character)
+ character
+ )
+ model.battle
+ )
+ },
+ []
+ )
+
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward actor_ix model = (model, [])
diff --git a/src/battle/src/Update/Puppeteer/SwapWeapons.elm b/src/battle/src/Update/Puppeteer/SwapWeapons.elm
new file mode 100644
index 0000000..27b81b5
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/SwapWeapons.elm
@@ -0,0 +1,52 @@
+module Update.Puppeteer.SwapWeapons exposing (forward, backward)
+
+-- Battle Characters -----------------------------------------------------------
+import BattleCharacters.Struct.Character
+
+-- Local Module ----------------------------------------------------------------
+import Action.Scroll
+
+import Struct.Battle
+import Struct.Character
+import Struct.Event
+import Struct.Model
+import Struct.UI
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward actor_ix model =
+ let character = (Struct.Battle.get_character actor_ix model.battle) in
+ (
+ {model |
+ battle =
+ (Struct.Battle.set_character
+ actor_ix
+ (Struct.Character.set_base_character
+ (BattleCharacters.Struct.Character.dirty_switch_weapons
+ (Struct.Character.get_base_character character)
+ )
+ character
+ )
+ model.battle
+ )
+ },
+ []
+ )
+
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward actor_ix model = (forward actor_ix model)