summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2017-12-01 13:23:53 +0100
committernsensfel <SpamShield0@noot-noot.org>2017-12-01 13:23:53 +0100
commit583dfe90bd9ff99c9de67eeb8438f3b4e826c8a4 (patch)
treef3813f0d63446f992a6bcc15b8369203120a172b /src/query/character_turn.erl
parent90cdec82cf0c29d00c0c90fd0746ae4fa00d92f3 (diff)
Sends updated target state upon attack.
Diffstat (limited to 'src/query/character_turn.erl')
-rw-r--r--src/query/character_turn.erl39
1 files changed, 32 insertions, 7 deletions
diff --git a/src/query/character_turn.erl b/src/query/character_turn.erl
index 6bb3c0e..bee8bf3 100644
--- a/src/query/character_turn.erl
+++ b/src/query/character_turn.erl
@@ -49,7 +49,7 @@ parse_input (Req) ->
database_shim:assert_session_is_valid(PlayerID, SessionToken),
Target =
case maps:get(<<"targets_id">>, JSONReqMap) of
- [] -> "";
+ [] -> <<"">>;
[T] -> T
end,
#input
@@ -186,6 +186,13 @@ handle_target (QueryState) ->
]
),
true = (Dist =< AttackRange),
+ NewTargetCharInst =
+ character_instance:mod_health
+ (
+ QueryState#query_state.target_char_inst,
+ character:get_max_health(QueryState#query_state.main_char),
+ -1
+ ),
%% TODO: test for (and handle) riposte.
QueryState#query_state
{
@@ -194,14 +201,32 @@ handle_target (QueryState) ->
(
QueryState#query_state.battlemap_inst,
QueryState#query_state.input#input.target_id,
- character_instance:mod_health
+ NewTargetCharInst
+ ),
+ target_char_inst = NewTargetCharInst
+ }.
+
+generate_reply (QueryState) ->
+ case QueryState#query_state.target_char_inst of
+ nothing -> [<<"okay">>];
+
+ CharInst ->
+ add_char:generate
+ (
+ QueryState#query_state.target_char,
+ CharInst,
(
- QueryState#query_state.target_char_inst,
- character:get_max_health(QueryState#query_state.main_char),
- -1
+ battlemap_instance:can_play_char_instance
+ (
+ QueryState#query_state.battlemap_inst,
+ QueryState#query_state.input#input.player_id,
+ QueryState#query_state.input#input.target_id
+ )
+ and
+ (not character_instance:is_dead(CharInst))
)
)
- }.
+ end.
handle (Req) ->
%%%% Parse
@@ -220,7 +245,7 @@ handle (Req) ->
NQueryState#query_state.battlemap_inst
),
%%%% Reply
- jiffy:encode([[<<"okay">>]]).
+ jiffy:encode([generate_reply(NQueryState)]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%