summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-06-01 13:35:52 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-06-01 13:35:52 +0200
commitcc3b79dfa0db412acc43f404920a5f0f50fc609f (patch)
tree7e7a0a07001114fa8f210230bc8def72790f4ce1 /src/battlemap
parentfe6e1fbbd4ace2149a9a0a569574138892188b13 (diff)
Shows armor on CharacterCard.
Diffstat (limited to 'src/battlemap')
-rw-r--r--src/battlemap/src/Comm/AddChar.elm10
-rw-r--r--src/battlemap/src/Data/Armors.elm28
-rw-r--r--src/battlemap/src/Struct/Armor.elm30
-rw-r--r--src/battlemap/src/Struct/Character.elm10
-rw-r--r--src/battlemap/src/Struct/Model.elm4
-rw-r--r--src/battlemap/src/View/Character.elm4
-rw-r--r--src/battlemap/src/View/Controlled/CharacterCard.elm45
-rw-r--r--src/battlemap/www/style.css16
8 files changed, 109 insertions, 38 deletions
diff --git a/src/battlemap/src/Comm/AddChar.elm b/src/battlemap/src/Comm/AddChar.elm
index 1270b0d..5a0303f 100644
--- a/src/battlemap/src/Comm/AddChar.elm
+++ b/src/battlemap/src/Comm/AddChar.elm
@@ -6,8 +6,10 @@ import Dict
import Json.Decode
-- Battlemap -------------------------------------------------------------------
+import Data.Armors
import Data.Weapons
+import Struct.Armor
import Struct.Character
import Struct.Model
import Struct.ServerReply
@@ -26,6 +28,12 @@ weapon_getter model ref =
(Just w) -> w
Nothing -> Data.Weapons.none
+armor_getter : Struct.Model.Type -> Struct.Armor.Ref -> Struct.Armor.Type
+armor_getter model ref =
+ case (Dict.get ref model.armors) of
+ (Just w) -> w
+ Nothing -> Data.Armors.none
+
internal_decoder : Struct.Character.Type -> Struct.ServerReply.Type
internal_decoder char = (Struct.ServerReply.AddCharacter char)
@@ -36,5 +44,5 @@ decode : (Struct.Model.Type -> (Json.Decode.Decoder Struct.ServerReply.Type))
decode model =
(Json.Decode.map
(internal_decoder)
- (Struct.Character.decoder (weapon_getter model))
+ (Struct.Character.decoder (weapon_getter model) (armor_getter model))
)
diff --git a/src/battlemap/src/Data/Armors.elm b/src/battlemap/src/Data/Armors.elm
index ca95fa8..1033945 100644
--- a/src/battlemap/src/Data/Armors.elm
+++ b/src/battlemap/src/Data/Armors.elm
@@ -26,36 +26,36 @@ dataset =
1,
(Struct.Armor.new
1
- "Morrigan's Pity"
- Struct.Armor.Kinetic
- 5.0
+ "Last Meal's Pelts"
+ Struct.Armor.Leather
+ 0.5
)
),
(
2,
(Struct.Armor.new
- 1
- "Last Night's Hunt"
- Struct.Armor.Leather
- 5.0
+ 2
+ "Bits from a Wall"
+ Struct.Armor.Plate
+ 0.5
)
),
(
3,
(Struct.Armor.new
- 1
- "Garden Fence"
+ 3
+ "Some Garden Fence"
Struct.Armor.Chain
- 5.0
+ 0.5
)
),
(
4,
(Struct.Armor.new
- 1
- "Bits of Wall"
- Struct.Armor.Plate
- 5.0
+ 4
+ "Morrigan's Pity"
+ Struct.Armor.Kinetic
+ 0.5
)
)
]
diff --git a/src/battlemap/src/Struct/Armor.elm b/src/battlemap/src/Struct/Armor.elm
index 1ec4671..141204c 100644
--- a/src/battlemap/src/Struct/Armor.elm
+++ b/src/battlemap/src/Struct/Armor.elm
@@ -69,22 +69,20 @@ get_resistance_to dmg_type ar =
(
ar.coef
*
- (toFloat
- (
- case (dmg_type, ar.category) of
- (Struct.Weapon.Slash, Kinetic) -> 0
- (Struct.Weapon.Slash, Leather) -> 5
- (Struct.Weapon.Slash, Chain) -> 10
- (Struct.Weapon.Slash, Plate) -> 10
- (Struct.Weapon.Blunt, Kinetic) -> 10
- (Struct.Weapon.Blunt, Leather) -> 5
- (Struct.Weapon.Blunt, Chain) -> 5
- (Struct.Weapon.Blunt, Plate) -> 5
- (Struct.Weapon.Pierce, Kinetic) -> 5
- (Struct.Weapon.Pierce, Leather) -> 5
- (Struct.Weapon.Pierce, Chain) -> 5
- (Struct.Weapon.Pierce, Plate) -> 10
- )
+ (
+ case (dmg_type, ar.category) of
+ (Struct.Weapon.Slash, Kinetic) -> 0.0
+ (Struct.Weapon.Slash, Leather) -> 5.0
+ (Struct.Weapon.Slash, Chain) -> 10.0
+ (Struct.Weapon.Slash, Plate) -> 10.0
+ (Struct.Weapon.Blunt, Kinetic) -> 10.0
+ (Struct.Weapon.Blunt, Leather) -> 5.0
+ (Struct.Weapon.Blunt, Chain) -> 5.0
+ (Struct.Weapon.Blunt, Plate) -> 5.0
+ (Struct.Weapon.Pierce, Kinetic) -> 5.0
+ (Struct.Weapon.Pierce, Leather) -> 5.0
+ (Struct.Weapon.Pierce, Chain) -> 5.0
+ (Struct.Weapon.Pierce, Plate) -> 10.0
)
)
)
diff --git a/src/battlemap/src/Struct/Character.elm b/src/battlemap/src/Struct/Character.elm
index 7406af7..3973eff 100644
--- a/src/battlemap/src/Struct/Character.elm
+++ b/src/battlemap/src/Struct/Character.elm
@@ -78,10 +78,11 @@ type alias Ref = String
--------------------------------------------------------------------------------
finish_decoding : (
(Struct.Weapon.Ref -> Struct.Weapon.Type) ->
+ (Struct.Armor.Ref -> Struct.Armor.Type) ->
PartiallyDecoded ->
Type
)
-finish_decoding get_weapon add_char =
+finish_decoding get_weapon get_armor add_char =
let
active_weapon = (get_weapon add_char.awp)
secondary_weapon = (get_weapon add_char.swp)
@@ -99,7 +100,7 @@ finish_decoding get_weapon add_char =
player_id = add_char.pla,
enabled = add_char.ena,
weapons = weapon_set,
- armor = (Data.Armors.none)
+ armor = (get_armor (add_char.ix % 4))
}
--------------------------------------------------------------------------------
@@ -170,11 +171,12 @@ set_weapons weapons char =
decoder : (
(Struct.Weapon.Ref -> Struct.Weapon.Type) ->
+ (Struct.Armor.Ref -> Struct.Armor.Type) ->
(Json.Decode.Decoder Type)
)
-decoder get_weapon =
+decoder get_weapon get_armor =
(Json.Decode.map
- (finish_decoding get_weapon)
+ (finish_decoding get_weapon get_armor)
(Json.Decode.Pipeline.decode
PartiallyDecoded
|> (Json.Decode.Pipeline.required "ix" Json.Decode.int)
diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm
index 545fd0f..d75958e 100644
--- a/src/battlemap/src/Struct/Model.elm
+++ b/src/battlemap/src/Struct/Model.elm
@@ -13,8 +13,10 @@ import Dict
import Array
-- Battlemap -------------------------------------------------------------------
+import Data.Armors
import Data.Weapons
+import Struct.Armor
import Struct.Battlemap
import Struct.Character
import Struct.CharacterTurn
@@ -31,6 +33,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),
+ armors: (Dict.Dict Struct.Armor.Ref Struct.Armor.Type),
error: (Maybe Struct.Error.Type),
player_id: String,
ui: Struct.UI.Type,
@@ -51,6 +54,7 @@ new =
battlemap = (Struct.Battlemap.empty),
characters = (Dict.empty),
weapons = (Data.Weapons.generate_dict),
+ armors = (Data.Armors.generate_dict),
error = Nothing,
player_id = "0",
ui = (Struct.UI.default),
diff --git a/src/battlemap/src/View/Character.elm b/src/battlemap/src/View/Character.elm
index c34d4d2..0edb5e0 100644
--- a/src/battlemap/src/View/Character.elm
+++ b/src/battlemap/src/View/Character.elm
@@ -165,9 +165,7 @@ get_portrait_armor_html char =
(
"asset-armor-"
++
- (toString
- (Struct.Armor.get_id (Struct.Character.get_armor char))
- )
+ (Struct.Armor.get_image_id (Struct.Character.get_armor char))
)
),
(Html.Attributes.class
diff --git a/src/battlemap/src/View/Controlled/CharacterCard.elm b/src/battlemap/src/View/Controlled/CharacterCard.elm
index 9f00aa3..913aaa0 100644
--- a/src/battlemap/src/View/Controlled/CharacterCard.elm
+++ b/src/battlemap/src/View/Controlled/CharacterCard.elm
@@ -5,6 +5,7 @@ import Html
import Html.Attributes
-- Battlemap -------------------------------------------------------------------
+import Struct.Armor
import Struct.Character
import Struct.CharacterTurn
import Struct.Event
@@ -182,6 +183,49 @@ get_weapon_details model stats weapon =
]
)
+get_armor_details : (
+ Struct.Armor.Type ->
+ (Html.Html Struct.Event.Type)
+ )
+get_armor_details armor =
+ (Html.div
+ [
+ (Html.Attributes.class "battlemap-character-card-armor")
+ ]
+ [
+ (Html.div
+ [
+ (Html.Attributes.class "battlemap-character-card-armor-name")
+ ]
+ [
+ (Html.text (Struct.Armor.get_name armor))
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Attributes.class "battlemap-character-card-armor-stats")
+ ]
+ [
+ (stat_name "Slash"),
+ (stat_val
+ (Struct.Armor.get_resistance_to Struct.Weapon.Slash armor)
+ False
+ ),
+ (stat_name "Pierc."),
+ (stat_val
+ (Struct.Armor.get_resistance_to Struct.Weapon.Pierce armor)
+ False
+ ),
+ (stat_name "Blund."),
+ (stat_val
+ (Struct.Armor.get_resistance_to Struct.Weapon.Blunt armor)
+ False
+ )
+ ]
+ )
+ ]
+ )
+
stat_name : String -> (Html.Html Struct.Event.Type)
stat_name name =
(Html.div
@@ -281,6 +325,7 @@ get_html model char weapon =
(Struct.Character.get_statistics char)
weapon
),
+ (get_armor_details (Struct.Character.get_armor char)),
(get_relevant_stats model char weapon)
]
)
diff --git a/src/battlemap/www/style.css b/src/battlemap/www/style.css
index ede1559..a736fb6 100644
--- a/src/battlemap/www/style.css
+++ b/src/battlemap/www/style.css
@@ -276,6 +276,22 @@
padding: 0.3em;
}
+.battlemap-character-card-armor
+{
+ display: grid;
+ border-radius: 5px;
+ background-color: #6C5D53;
+
+ padding: 0.3em;
+ margin-top: 0.3em;
+}
+
+.battlemap-character-card-armor-stats
+{
+ display: grid;
+ grid-template-columns: [col] 25% [col] 25% [col] 25% [col] 25%;
+}
+
.battlemap-character-card-stats
{
display: grid;