1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
-module(btl_add_weapon).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-export([generate/1]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec generate (shr_weapon:type()) -> {list(any())}.
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)}
]
}.
|