summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 17:54:14 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 17:54:14 +0200 |
commit | fde827cba1ff3d889135c74ee1978098465fd200 (patch) | |
tree | d6022f800aa8226bf79a26a19189965c8cbfb2fe /src/battle/reply/btl_add_char.erl | |
parent | df59024199c387903e3d4a901171939a358489d3 (diff) |
"Battlemap" -> "Battle".
Diffstat (limited to 'src/battle/reply/btl_add_char.erl')
-rw-r--r-- | src/battle/reply/btl_add_char.erl | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/battle/reply/btl_add_char.erl b/src/battle/reply/btl_add_char.erl new file mode 100644 index 0000000..75b6fcd --- /dev/null +++ b/src/battle/reply/btl_add_char.erl @@ -0,0 +1,83 @@ +-module(btl_add_char). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export([generate/3]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec rank_to_string (btl_character:rank()) -> binary(). +rank_to_string (Rank) -> + case Rank of + optional -> <<"o">>; + target -> <<"t">>; + commander -> <<"c">> + end. + +-spec attributes_as_json + ( + sh_attributes:type() + ) -> + {list({binary(), non_neg_integer()})}. +attributes_as_json (Attributes) -> + { + [ + {<<"con">>, sh_attributes:get_constitution(Attributes)}, + {<<"dex">>, sh_attributes:get_dexterity(Attributes)}, + {<<"int">>, sh_attributes:get_intelligence(Attributes)}, + {<<"min">>, sh_attributes:get_mind(Attributes)}, + {<<"spe">>, sh_attributes:get_speed(Attributes)}, + {<<"str">>, sh_attributes:get_strength(Attributes)} + ] + }. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec generate + ( + non_neg_integer(), + btl_character:type(), + non_neg_integer() + ) + -> {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), + + { + [ + {<<"msg">>, <<"add_char">>}, + {<<"ix">>, IX}, + {<<"nam">>, btl_character:get_name(Character)}, + {<<"rnk">>, rank_to_string(btl_character:get_rank(Character))}, + {<<"ico">>, btl_character:get_icon(Character)}, + {<<"prt">>, btl_character:get_portrait(Character)}, + { + <<"hea">>, + btl_character:get_current_health(Character) + }, + {<<"lc">>, btl_location:encode(Location)}, + {<<"pla">>, CharacterPlayerIX}, + { + <<"ena">>, + ( + btl_character:get_is_active(Character) + and (CharacterPlayerIX == PlayerIX) + ) + }, + {<<"dea">>, btl_character:get_is_defeated(Character)}, + {<<"att">>, attributes_as_json(Attributes)}, + {<<"awp">>, ActiveWeapon}, + {<<"swp">>, SecondaryWeapon}, + {<<"ar">>, btl_character:get_armor_id(Character)} + ] + }. |