| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/battlemap_instance.erl | 10 | ||||
| -rw-r--r-- | src/character_instance.erl | 5 | ||||
| -rw-r--r-- | src/database_shim.erl | 15 | ||||
| -rw-r--r-- | www/handler/battlemap/character_turn.yaws | 10 | 
4 files changed, 33 insertions, 7 deletions
| diff --git a/src/battlemap_instance.erl b/src/battlemap_instance.erl index 37811b3..3f4b6cd 100644 --- a/src/battlemap_instance.erl +++ b/src/battlemap_instance.erl @@ -26,7 +26,15 @@ can_play_char_instance     CharInstID  ) ->     ( -      (array:get(BattlemapInstance#battlemap_instance.curr_player) =:= PlayerID) +      ( +            array:get +            ( +               BattlemapInstance#battlemap_instance.curr_player, +               BattlemapInstance#battlemap_instance.players +            ) +            =:= +            PlayerID +      )        and        lists:member(CharInstID, BattlemapInstance#battlemap_instance.rem_chars)     ). diff --git a/src/character_instance.erl b/src/character_instance.erl index d8d7455..a38be5d 100644 --- a/src/character_instance.erl +++ b/src/character_instance.erl @@ -3,7 +3,8 @@  (     [        set_location/3, -      get_location/1 +      get_location/1, +      get_owner/1     ]  ). @@ -18,3 +19,5 @@ set_location (CharInst, X, Y) ->  get_location (CharInst) ->     {CharInst#character_instance.x, CharInst#character_instance.y}. + +get_owner (CharInst) -> CharInst#character_instance.team. diff --git a/src/database_shim.erl b/src/database_shim.erl index 0a46c00..8d97298 100644 --- a/src/database_shim.erl +++ b/src/database_shim.erl @@ -53,8 +53,19 @@ generate_map_instance (CharInts) ->     {        id = <<"0">>,        chars = dict:from_list(CharInts), -      curr_player = <<"0">>, -      rem_chars = [], +      curr_player = 0, +      players = array:from_list([<<"0">>, <<"1">>]), +      rem_chars = +         lists:filtermap +         ( +            fun ({K, V}) -> +               case character_instance:get_owner(V) of +                  0 -> {true, K}; +                  _ -> false +               end +            end, +            CharInts +         ),        last_turn = []     }. diff --git a/www/handler/battlemap/character_turn.yaws b/www/handler/battlemap/character_turn.yaws index e0a60a8..83a3570 100644 --- a/www/handler/battlemap/character_turn.yaws +++ b/www/handler/battlemap/character_turn.yaws @@ -51,8 +51,8 @@ handle (Req) ->        battlemap_instance:can_play_char_instance        (           BattlemapInstance, -         Input#input.char_id, -         Input#input.player_id +         Input#input.player_id, +         Input#input.char_id        ),     {X, Y} =        battlemap:cross @@ -66,7 +66,11 @@ handle (Req) ->     NewBattlemapInstance =        battlemap_instance:set_char_instance        ( -         BattlemapInstance, +         battlemap_instance:post_play_char_instance +         ( +            BattlemapInstance, +            Input#input.char_id +         ),           Input#input.char_id,           character_instance:set_location(CharInst, X, Y)        ), | 


