summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-02-22 11:36:23 +0100
committernsensfel <SpamShield0@noot-noot.org>2018-02-22 11:36:23 +0100
commitad9c08f02cc130540f8bfbab216b82169d0c0956 (patch)
treebfad38e45e3739efa49d5a19b18588d931a9d5a3
parentaf538db3c42b305ba83609f43d3154e78b9a6d21 (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.elm4
-rw-r--r--src/battlemap/src/Shim/Model.elm28
-rw-r--r--src/battlemap/src/Struct/Model.elm18
-rw-r--r--src/battlemap/src/Struct/Weapon.elm3
-rw-r--r--src/battlemap/src/Update/HandleServerReply/AddChar.elm29
-rw-r--r--src/battlemap/src/Update/HandleServerReply/SetMap.elm6
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)
)
--------------------------------------------------------------------------------