summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-02-22 11:36:23 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-02-22 11:36:23 +0100 |
commit | ad9c08f02cc130540f8bfbab216b82169d0c0956 (patch) | |
tree | bfad38e45e3739efa49d5a19b18588d931a9d5a3 | |
parent | af538db3c42b305ba83609f43d3154e78b9a6d21 (diff) |
Stores weapons dataset in model.
-rw-r--r-- | src/battlemap/src/Data/Tiles.elm (renamed from src/battlemap/src/Data/Tile.elm) | 2 | ||||
-rw-r--r-- | src/battlemap/src/Data/Weapons.elm (renamed from src/battlemap/src/Data/Weapon.elm) | 12 | ||||
-rw-r--r-- | src/battlemap/src/ElmModule/Init.elm | 4 | ||||
-rw-r--r-- | src/battlemap/src/Shim/Model.elm | 28 | ||||
-rw-r--r-- | src/battlemap/src/Struct/Model.elm | 18 | ||||
-rw-r--r-- | src/battlemap/src/Struct/Weapon.elm | 3 | ||||
-rw-r--r-- | src/battlemap/src/Update/HandleServerReply/AddChar.elm | 29 | ||||
-rw-r--r-- | src/battlemap/src/Update/HandleServerReply/SetMap.elm | 6 |
8 files changed, 50 insertions, 52 deletions
diff --git a/src/battlemap/src/Data/Tile.elm b/src/battlemap/src/Data/Tiles.elm index 43606aa..eb2dd61 100644 --- a/src/battlemap/src/Data/Tile.elm +++ b/src/battlemap/src/Data/Tiles.elm @@ -1,4 +1,4 @@ -module Data.Tile exposing (..) +module Data.Tiles exposing (..) import Constants.Movement diff --git a/src/battlemap/src/Data/Weapon.elm b/src/battlemap/src/Data/Weapons.elm index 7d81bf8..35d3fc7 100644 --- a/src/battlemap/src/Data/Weapon.elm +++ b/src/battlemap/src/Data/Weapons.elm @@ -1,4 +1,4 @@ -module Data.Weapon exposing (generate_dict, shim_none) +module Data.Weapons exposing (generate_dict, none) -- Elm ------------------------------------------------------------------------- import Dict @@ -8,7 +8,7 @@ import Struct.Weapon -------------------------------------------------------------------------------- -- LOCAL ----------------------------------------------------------------------- -------------------------------------------------------------------------------- -dataset : (List (Int, Struct.Weapon.Type)) +dataset : (List (Struct.Weapon.Ref, Struct.Weapon.Type)) dataset = [ -- TODO: have those in separate text files, and put them here only at @@ -293,12 +293,12 @@ dataset = -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- -generate_dict : (Dict.Dict Int Struct.Weapon.Type) +generate_dict : (Dict.Dict Struct.Weapon.Ref Struct.Weapon.Type) generate_dict = (Dict.fromList dataset) --- Let's not handle the dict just yet. -shim_none : (Struct.Weapon.Type) -shim_none = +-- If it's not found. +none : (Struct.Weapon.Type) +none = (Struct.Weapon.new 0 "None" diff --git a/src/battlemap/src/ElmModule/Init.elm b/src/battlemap/src/ElmModule/Init.elm index f7885e4..136a828 100644 --- a/src/battlemap/src/ElmModule/Init.elm +++ b/src/battlemap/src/ElmModule/Init.elm @@ -3,8 +3,6 @@ module ElmModule.Init exposing (init) -- Battlemap ------------------------------------------------------------------- import Send.LoadBattlemap -import Shim.Model - import Struct.Event import Struct.Model @@ -18,7 +16,7 @@ import Struct.Model init : (Struct.Model.Type, (Cmd Struct.Event.Type)) init = let - model = (Shim.Model.generate) + model = (Struct.Model.new) in ( model, diff --git a/src/battlemap/src/Shim/Model.elm b/src/battlemap/src/Shim/Model.elm deleted file mode 100644 index 30bdc95..0000000 --- a/src/battlemap/src/Shim/Model.elm +++ /dev/null @@ -1,28 +0,0 @@ -module Shim.Model exposing (generate) - --- Elm ------------------------------------------------------------------------- -import Dict - --- Struct.Battlemap ------------------------------------------------------------------- -import Struct.Battlemap -import Struct.CharacterTurn -import Struct.UI - --------------------------------------------------------------------------------- --- LOCAL ----------------------------------------------------------------------- --------------------------------------------------------------------------------- - --------------------------------------------------------------------------------- --- EXPORTED -------------------------------------------------------------------- --------------------------------------------------------------------------------- ---generate : Struct.Model.Type -generate = - { - battlemap = (Struct.Battlemap.empty), - characters = (Dict.empty), - error = Nothing, - controlled_team = 0, - player_id = "0", - ui = (Struct.UI.default), - char_turn = (Struct.CharacterTurn.new) - } diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm index 9d4e128..fc13655 100644 --- a/src/battlemap/src/Struct/Model.elm +++ b/src/battlemap/src/Struct/Model.elm @@ -1,6 +1,7 @@ module Struct.Model exposing ( Type, + new, add_character, invalidate, reset, @@ -11,11 +12,14 @@ module Struct.Model exposing import Dict -- Battlemap ------------------------------------------------------------------- +import Data.Weapons + import Struct.Battlemap import Struct.Character import Struct.CharacterTurn import Struct.Error import Struct.UI +import Struct.Weapon -------------------------------------------------------------------------------- -- TYPES ----------------------------------------------------------------------- @@ -24,6 +28,7 @@ type alias Type = { battlemap: Struct.Battlemap.Type, characters: (Dict.Dict Struct.Character.Ref Struct.Character.Type), + weapons: (Dict.Dict Struct.Weapon.Ref Struct.Weapon.Type), error: (Maybe Struct.Error.Type), controlled_team: Int, player_id: String, @@ -38,6 +43,19 @@ type alias Type = -------------------------------------------------------------------------------- -- EXPORTED -------------------------------------------------------------------- -------------------------------------------------------------------------------- +new : Type +new = + { + battlemap = (Struct.Battlemap.empty), + characters = (Dict.empty), + weapons = (Data.Weapons.generate_dict), + error = Nothing, + controlled_team = 0, + player_id = "0", + ui = (Struct.UI.default), + char_turn = (Struct.CharacterTurn.new) + } + add_character : Type -> Struct.Character.Type -> Type add_character model char = {model | diff --git a/src/battlemap/src/Struct/Weapon.elm b/src/battlemap/src/Struct/Weapon.elm index 02afb22..5741a2a 100644 --- a/src/battlemap/src/Struct/Weapon.elm +++ b/src/battlemap/src/Struct/Weapon.elm @@ -1,6 +1,7 @@ module Struct.Weapon exposing ( Type, + Ref, RangeType(..), RangeModifier(..), DamageType(..), @@ -38,6 +39,8 @@ type alias Type = 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. diff --git a/src/battlemap/src/Update/HandleServerReply/AddChar.elm b/src/battlemap/src/Update/HandleServerReply/AddChar.elm index 4d6b3d8..071be3a 100644 --- a/src/battlemap/src/Update/HandleServerReply/AddChar.elm +++ b/src/battlemap/src/Update/HandleServerReply/AddChar.elm @@ -1,11 +1,13 @@ module Update.HandleServerReply.AddChar exposing (apply_to) -- Elm ------------------------------------------------------------------------- +import Dict + import Json.Decode import Json.Decode.Pipeline -- Battlemap ------------------------------------------------------------------- -import Data.Weapon +import Data.Weapons import Struct.Attributes import Struct.Character @@ -39,8 +41,7 @@ type alias CharData = enabled : Bool, att : CharAtt, wp_0 : Int, - wp_1 : Int, - act_wp : Int + wp_1 : Int } -------------------------------------------------------------------------------- @@ -74,7 +75,6 @@ char_decoder = |> (Json.Decode.Pipeline.required "att" attributes_decoder) |> (Json.Decode.Pipeline.required "wp_0" Json.Decode.int) |> (Json.Decode.Pipeline.required "wp_1" Json.Decode.int) - |> (Json.Decode.Pipeline.required "act_wp" Json.Decode.int) ) -------------------------------------------------------------------------------- @@ -109,13 +109,20 @@ apply_to model serialized_char = char_data.att.str ) ( - let - wp_0 = (Data.Weapon.shim_none) - wp_1 = (Data.Weapon.shim_none) - in - case char_data.act_wp of - 0 -> (Struct.WeaponSet.new wp_0 wp_1) - _ -> (Struct.WeaponSet.new wp_1 wp_0) + case + ( + (Dict.get char_data.wp_0 model.weapons), + (Dict.get char_data.wp_1 model.weapons) + ) + of + ((Just wp_0), (Just wp_1)) -> + (Struct.WeaponSet.new wp_0 wp_1) + + _ -> + (Struct.WeaponSet.new + (Data.Weapons.none) + (Data.Weapons.none) + ) ) ) ) diff --git a/src/battlemap/src/Update/HandleServerReply/SetMap.elm b/src/battlemap/src/Update/HandleServerReply/SetMap.elm index f902493..e7c993d 100644 --- a/src/battlemap/src/Update/HandleServerReply/SetMap.elm +++ b/src/battlemap/src/Update/HandleServerReply/SetMap.elm @@ -5,7 +5,7 @@ import Dict import Json.Decode -- Battlemap ------------------------------------------------------------------- -import Data.Tile +import Data.Tiles import Struct.Battlemap import Struct.Model @@ -29,8 +29,8 @@ deserialize_tile map_width index id = (Struct.Tile.new (index % map_width) (index // map_width) - (Data.Tile.get_icon id) - (Data.Tile.get_cost id) + (Data.Tiles.get_icon id) + (Data.Tiles.get_cost id) ) -------------------------------------------------------------------------------- |