summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/src/Update/HandleServerReply.elm | 36 | ||||
-rw-r--r-- | src/battle/src/Update/Puppeteer/Focus.elm | 6 | ||||
-rw-r--r-- | src/battle/src/Update/Puppeteer/Move.elm | 75 | ||||
-rw-r--r-- | src/battle/src/Update/Puppeteer/RefreshCharacter.elm | 50 | ||||
-rw-r--r-- | src/battle/src/Update/Puppeteer/SwapWeapons.elm | 52 |
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) |