summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-08-28 23:29:55 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-08-28 23:29:55 +0200
commit9b424b11dbea33a41b2129daf232557515de9db1 (patch)
tree97cbe449c02e4273c79448859ceac722a06524b1 /src/battle/reply
parent68d3f1d7fd3703a8aef68bd6e9f89a84eab5e539 (diff)
Still propagating the changes...
It'll require the attributes and statistics being recalculated every time a character is used, which isn't great. Can't exactly avoid it though: moving and changing weapon are both likely to alter them, and people rarely attack without doing one or the other.
Diffstat (limited to 'src/battle/reply')
-rw-r--r--src/battle/reply/btl_add_armor.erl8
-rw-r--r--src/battle/reply/btl_add_char.erl25
-rw-r--r--src/battle/reply/btl_add_tile.erl3
-rw-r--r--src/battle/reply/btl_add_weapon.erl30
4 files changed, 11 insertions, 55 deletions
diff --git a/src/battle/reply/btl_add_armor.erl b/src/battle/reply/btl_add_armor.erl
index 01c99ad..d78edc5 100644
--- a/src/battle/reply/btl_add_armor.erl
+++ b/src/battle/reply/btl_add_armor.erl
@@ -12,11 +12,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec encode_category (shr_armor:category()) -> binary().
-encode_category (kinetic) -> <<"k">>;
-encode_category (leather) -> <<"l">>;
-encode_category (chain) -> <<"c">>;
-encode_category (plate) -> <<"p">>.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -28,7 +23,6 @@ generate (Armor) ->
{<<"msg">>, <<"add_armor">>},
{<<"id">>, shr_armor:get_id(Armor)},
{<<"nam">>, shr_armor:get_name(Armor)},
- {<<"ct">>, encode_category(shr_armor:get_category(Armor))},
- {<<"cf">>, shr_armor:get_coefficient(Armor)}
+ {<<"omni">>, shr_omnimods:encode(shr_armor:get_omnimods(Armor))}
]
}.
diff --git a/src/battle/reply/btl_add_char.erl b/src/battle/reply/btl_add_char.erl
index f0b70e9..a6fb60c 100644
--- a/src/battle/reply/btl_add_char.erl
+++ b/src/battle/reply/btl_add_char.erl
@@ -20,23 +20,6 @@ rank_to_string (Rank) ->
commander -> <<"c">>
end.
--spec attributes_as_json
- (
- shr_attributes:type()
- ) ->
- {list({binary(), non_neg_integer()})}.
-attributes_as_json (Attributes) ->
- {
- [
- {<<"con">>, shr_attributes:get_constitution(Attributes)},
- {<<"dex">>, shr_attributes:get_dexterity(Attributes)},
- {<<"int">>, shr_attributes:get_intelligence(Attributes)},
- {<<"min">>, shr_attributes:get_mind(Attributes)},
- {<<"spe">>, shr_attributes:get_speed(Attributes)},
- {<<"str">>, shr_attributes:get_strength(Attributes)}
- ]
- }.
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -48,7 +31,6 @@ attributes_as_json (Attributes) ->
)
-> {list(any())}.
generate (IX, Character, PlayerIX) ->
- Attributes = btl_character:get_attributes(Character),
{ActiveWeapon, SecondaryWeapon} = btl_character:get_weapon_ids(Character),
CharacterPlayerIX = btl_character:get_player_index(Character),
Location = btl_character:get_location(Character),
@@ -75,9 +57,12 @@ generate (IX, Character, PlayerIX) ->
)
},
{<<"dea">>, btl_character:get_is_defeated(Character)},
- {<<"att">>, attributes_as_json(Attributes)},
{<<"awp">>, ActiveWeapon},
{<<"swp">>, SecondaryWeapon},
- {<<"ar">>, btl_character:get_armor_id(Character)}
+ {<<"ar">>, btl_character:get_armor_id(Character)},
+ {
+ <<"pomni">>,
+ shr_omnimods:encode(btl_character:get_permanent_omnimods(Character))
+ }
]
}.
diff --git a/src/battle/reply/btl_add_tile.erl b/src/battle/reply/btl_add_tile.erl
index c9cd18e..bf76547 100644
--- a/src/battle/reply/btl_add_tile.erl
+++ b/src/battle/reply/btl_add_tile.erl
@@ -23,6 +23,7 @@ generate (Tile) ->
{<<"msg">>, <<"add_tile">>},
{<<"id">>, shr_tile:get_class_id(Tile)},
{<<"nam">>, shr_tile:get_name(Tile)},
- {<<"ct">>, shr_tile:get_cost(Tile)}
+ {<<"ct">>, shr_tile:get_cost(Tile)},
+ {<<"omni">>, shr_omnimods:encode(shr_tile:get_omnimods(Tile))}
]
}.
diff --git a/src/battle/reply/btl_add_weapon.erl b/src/battle/reply/btl_add_weapon.erl
index 5484a76..e5f7522 100644
--- a/src/battle/reply/btl_add_weapon.erl
+++ b/src/battle/reply/btl_add_weapon.erl
@@ -12,22 +12,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec encode_range_type (shr_weapon:range_type()) -> binary().
-encode_range_type (melee) -> <<"m">>;
-encode_range_type (ranged) -> <<"r">>.
-
--spec encode_range_modifier (shr_weapon:range_modifier()) -> binary().
-encode_range_modifier (long) -> <<"l">>;
-encode_range_modifier (short) -> <<"s">>.
-
--spec encode_damage_type (shr_weapon:damage_type()) -> binary().
-encode_damage_type (slash) -> <<"s">>;
-encode_damage_type (pierce) -> <<"p">>;
-encode_damage_type (blunt) -> <<"b">>.
-
--spec encode_damage_modifier (shr_weapon:damage_modifier()) -> binary().
-encode_damage_modifier (heavy) -> <<"h">>;
-encode_damage_modifier (light) -> <<"l">>.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -39,16 +23,8 @@ generate (Weapon) ->
{<<"msg">>, <<"add_weapon">>},
{<<"id">>, shr_weapon:get_id(Weapon)},
{<<"nam">>, shr_weapon:get_name(Weapon)},
- {<<"rt">>, encode_range_type(shr_weapon:get_range_type(Weapon))},
- {
- <<"rm">>,
- encode_range_modifier(shr_weapon:get_range_modifier(Weapon))
- },
- {<<"dt">>, encode_damage_type(shr_weapon:get_damage_type(Weapon))},
- {
- <<"dm">>,
- encode_damage_modifier(shr_weapon:get_damage_modifier(Weapon))
- },
- {<<"cf">>, shr_weapon:get_coefficient(Weapon)}
+ {<<"rmi">>, shr_weapon:get_range_minimum(Weapon)},
+ {<<"rma">>, shr_weapon:get_range_maximum(Weapon)},
+ {<<"omni">>, shr_omnimods:encode(shr_armor:get_omnimods(Weapon))}
]
}.