summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/struct/turn_result.erl')
-rw-r--r--src/struct/turn_result.erl142
1 files changed, 0 insertions, 142 deletions
diff --git a/src/struct/turn_result.erl b/src/struct/turn_result.erl
deleted file mode 100644
index 5f796ca..0000000
--- a/src/struct/turn_result.erl
+++ /dev/null
@@ -1,142 +0,0 @@
--module(turn_result).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%
--record
-(
- switched_weapon,
- {
- character_instance_ix :: character_instance:id()
- }
-).
-
--record
-(
- moved,
- {
- character_instance_ix :: character_instance:id(),
- path :: list(direction:enum()),
- new_location :: location:type()
- }
-).
-
--record
-(
- attacked,
- {
- attacker_ix :: character_instance:id(),
- defender_ix :: character_instance:id(),
- sequence :: list(attack:struct())
- }
-).
-
--opaque struct() :: (#switched_weapon{} | #moved{} | #attacked{}).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export_type([struct/0]).
-
--export
-(
- [
- new_character_switched_weapons/1,
- new_character_moved/3,
- new_character_attacked/3
- ]
-).
-
--export
-(
- [
- encode/1
- ]
-).
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec new_character_switched_weapons (character_instance:id()) -> struct().
-new_character_switched_weapons (CharacterInstanceIX) ->
- #switched_weapon { character_instance_ix = CharacterInstanceIX }.
-
--spec new_character_moved
- (
- character_instance:id(),
- list(direction:enum()),
- location:type()
- )
- -> struct().
-new_character_moved (CharacterInstanceIX, Path, NewLocation) ->
- #moved
- {
- character_instance_ix = CharacterInstanceIX,
- path = Path,
- new_location = NewLocation
- }.
-
--spec new_character_attacked
- (
- character_instance:id(),
- character_instance:id(),
- list(attack:struct())
- )
- -> struct().
-new_character_attacked (AttackerIX, DefenderIX, AttackSequence) ->
- #attacked
- {
- attacker_ix = AttackerIX,
- defender_ix = DefenderIX,
- sequence = AttackSequence
- }.
-
--spec encode (struct()) -> {list(any())}.
-encode (TurnResult) when is_record(TurnResult, switched_weapon) ->
- CharacterInstanceIX = TurnResult#switched_weapon.character_instance_ix,
-
- {
- [
- {<<"t">>, <<"swp">>},
- {<<"ix">>, CharacterInstanceIX}
- ]
- };
-encode (TurnResult) when is_record(TurnResult, moved) ->
- CharacterInstanceIX = TurnResult#moved.character_instance_ix,
- Path = TurnResult#moved.path,
- NewLocation = TurnResult#moved.new_location,
-
- EncodedPath = lists:map(fun direction:encode/1, Path),
- EncodedNewLocation = location:encode(NewLocation),
-
- {
- [
- {<<"t">>, <<"mv">>},
- {<<"ix">>, CharacterInstanceIX},
- {<<"p">>, EncodedPath},
- {<<"nlc">>, EncodedNewLocation}
- ]
- };
-encode (TurnResult) when is_record(TurnResult, attacked) ->
- AttackerIX = TurnResult#attacked.attacker_ix,
- DefenderIX = TurnResult#attacked.defender_ix,
- Sequence = TurnResult#attacked.sequence,
-
- EncodedSequence = lists:map(fun attack:encode/1, Sequence),
-
- {
- [
- {<<"t">>, <<"atk">>},
- {<<"aix">>, AttackerIX},
- {<<"dix">>, DefenderIX},
- {<<"seq">>, EncodedSequence}
- ]
- };
-encode (Other) ->
- io:format("~n invalid encode param\"~p\"~n", [Other]),
- true = Other.