| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2019-04-29 17:43:18 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2019-04-29 17:43:18 +0200 | 
| commit | c28f8c07374493de31e5581dcd53ad99a2ff917a (patch) | |
| tree | 5c8a2d384fa47ee3c16982c8d4d2775df5da2c0c /src/bounty | |
| parent | c21e6a963fc36005b1afd5e983049a17aff92aca (diff) | |
Dialyzer error, compiles, some issues w/ client.
Dialyzer says:
bnt_join_battle.erl:103: The created fun has no local return
bnt_join_battle.erl:122: The call shr_inventory:ataxia_add_equipment(shr_equipment:unresolved(),shr_inventory:type()) does not have an opaque term of type shr_equipment:type() as 1st argument
bnt_join_battle.erl:310: Function repair_join_battle/6 will never be called
shr_inventory:ataxia_add_equipment(shr_equipment:unresolved(),shr_inventory:type())
is defined, though...
Still some hiccups with what is sent to the client.
Diffstat (limited to 'src/bounty')
| -rw-r--r-- | src/bounty/bnt_generate_player.erl | 2 | ||||
| -rw-r--r-- | src/bounty/bnt_join_battle.erl | 215 | 
2 files changed, 61 insertions, 156 deletions
| diff --git a/src/bounty/bnt_generate_player.erl b/src/bounty/bnt_generate_player.erl index 9d496c3..17091d5 100644 --- a/src/bounty/bnt_generate_player.erl +++ b/src/bounty/bnt_generate_player.erl @@ -81,7 +81,7 @@ finalize_login (UsernameLC, EmailLC, PlayerID) ->  -spec generate_inventory (shr_player:id()) -> shr_inventory:id().  generate_inventory (PlayerID) -> -   Inventory = shr_inventory:new(PlayerID), +   Inventory = shr_inventory:default(),     {ok, InventoryID} =        ataxia_client:add diff --git a/src/bounty/bnt_join_battle.erl b/src/bounty/bnt_join_battle.erl index 2d4d4e5..7a2bb7c 100644 --- a/src/bounty/bnt_join_battle.erl +++ b/src/bounty/bnt_join_battle.erl @@ -86,16 +86,17 @@ create_character (PlayerIX, RosterChar, Map, ForbiddenLocations) ->     btl_character:to_unresolved(Result). --spec handle_characters +-spec add_characters     (        non_neg_integer(), -      shr_map:type(), -      ordsets:ordset(shr_location:type()),        list(shr_character:unresolved()),        btl_battle:type()     )     -> { btl_battle:type(), ataxic:basic() }. -handle_characters (PlayerIX, Map, UsedLocations, RosterCharacters, Battle) -> +add_characters (PlayerIX, RosterCharacters, Battle) -> +   Map = btl_battle:get_map(Battle), +   ForbiddenLocations = get_forbidden_locations(Battle), +     {_FinalUsedLocations, FinalBattle, FinalBattleAtaxicUpdates} =        lists:foldl        ( @@ -114,122 +115,43 @@ handle_characters (PlayerIX, Map, UsedLocations, RosterCharacters, Battle) ->                    CurrentUsedLocations                 ), -            {_NewCharacterIX, NewBattle, NewBattleAtaxiaUpdate} = +            {_NewCharacterIX, S0Battle, BattleAtaxiaUpdate0} =                 btl_battle:ataxia_add_character(NewCharacterRef, CurrentBattle), +            {UpdatedInventory, InventoryAtaxiaUpdate} = +               shr_inventory:ataxia_add_equipment +               ( +                  shr_character:get_equipment(RosterCharacter), +                  btl_battle:get_related_inventory(S0Battle) +               ), + +            {S1Battle, BattleAtaxiaUpdate1} = +               btl_battle:ataxia_set_related_inventory +               ( +                  UpdatedInventory, +                  InventoryAtaxiaUpdate, +                  S0Battle +               ), +              {                 [                    btl_character:get_location(NewCharacterRef)                    |CurrentUsedLocations                 ], -               NewBattle, -               [NewBattleAtaxiaUpdate|CurrentBattleAtaxicUpdates] +               S1Battle, +               [ +                  BattleAtaxiaUpdate0, +                  BattleAtaxiaUpdate1 +                  |CurrentBattleAtaxicUpdates +               ]              }           end, -         {UsedLocations, Battle, []}, +         {ForbiddenLocations, Battle, []},           RosterCharacters        ),     {FinalBattle, ataxic:optimize(ataxic:sequence(FinalBattleAtaxicUpdates))}. --spec add_player -   ( -      shr_player:id(), -      non_neg_integer(), -      shr_battle_summary:category(), -      btl_battle:type() -   ) -   -> {btl_battle:type(), non_neg_integer(), ataxic:basic()}. -add_player (PlayerID, PlayerSummaryIX, PlayerSummaryCategory, Battle) -> - -   {PlayerIX, Update}. - --spec add_characters -   ( -      list(shr_character:unresolved()), -      non_neg_integer(), -      btl_battle:type() -   ) -   -> {btl_battle:type(), ataxic:basic()}. -add_characters (RosterCharacters, PlayerIX, Battle) -> -   CurrentCharacters = btl_battle:get_characters(Battle), -   NextCharacterIX = orddict:size(CurrentCharacters), -   Map = btl_battle:get_map(Battle), - -   ForbiddenLocations = get_forbidden_locations(Battle), - -   {NewCharacters, CharactersUpdates} = -      handle_characters -      ( -         RosterCharacters, -         PlayerIX, -         Map, -         ForbiddenLocations, -         NextCharacterIX, -         CurrentCharacters, -         [] -      ), - -   {UsedPortraitIDs, UsedWeaponIDs, UsedArmorIDs} = -      get_equipment_ids(RosterCharacters), - -   OldPortraitIDs = btl_battle:get_used_portrait_ids(Battle), -   PortraitIDsUpdate = -      ataxic:update_field -      ( -         btl_battle:get_used_portrait_ids_field(), -         update_ordset(UsedPortraitIDs, OldPortraitIDs) -      ), - -   OldWeaponIDs = btl_battle:get_used_weapon_ids(Battle), -   WeaponIDsUpdate = -      ataxic:update_field -      ( -         btl_battle:get_used_weapon_ids_field(), -         update_ordset(UsedWeaponIDs, OldWeaponIDs) -      ), - -   OldArmorIDs = btl_battle:get_used_armor_ids(Battle), -   ArmorIDsUpdate = -      ataxic:update_field -      ( -         btl_battle:get_used_armor_ids_field(), -         update_ordset(UsedArmorIDs, OldArmorIDs) -      ), - -   S0Battle = btl_battle:set_characters(NewCharacters, Battle), -   S1Battle = -      btl_battle:set_used_armor_ids -      ( -         ordsets:union(UsedArmorIDs, OldArmorIDs), -         btl_battle:set_used_weapon_ids -         ( -            ordsets:union(UsedWeaponIDs, OldWeaponIDs), -            btl_battle:set_used_portrait_ids -            ( -               ordsets:union(UsedPortraitIDs, OldPortraitIDs), -               S0Battle -            ) -         ) -      ), - -   Update = -      ataxic:sequence -      ( -         [ -            ataxic:update_field -            ( -               btl_battle:get_characters_field(), -               ataxic:sequence(CharactersUpdates) -            ), -            PortraitIDsUpdate, -            WeaponIDsUpdate, -            ArmorIDsUpdate -         ] -      ), - -   {S1Battle, Update}. -  -spec get_roster_characters     (        shr_player:id(), @@ -285,63 +207,47 @@ add_to_pending_battle     NewCharacters = get_roster_characters(PlayerID, SelectedRosterCharacterIXs), -   NewPlayer = -      btl_player:new +   NewPlayer = btl_player:new(0, PlayerID, PlayerSumIX, PlayerSumCategory), + +   {PlayerIX, S0Battle, BattleAtaxiaUpdate0} = +      btl_battle:ataxia_add_player(NewPlayer, Battle), + +   {S1Battle, BattleAtaxiaUpdate1} = +      add_characters(PlayerIX, NewCharacters, S0Battle), + +   {S0PendingBattle, PendingBattleUpdate0} = +      btl_pending_battle:ataxia_set_battle        ( -         0, -         PlayerID, -         PlayerSumIX, -         PlayerSumCategory +         S1Battle, +         ataxic:sequence([BattleAtaxiaUpdate0, BattleAtaxiaUpdate1]), +         PendingBattle        ), -   {PlayerIX, S0Battle, BattleAtaxiaUpdate} = -      btl_battle:add_player(NewPlayer, Battle), +   {S1PendingBattle, PendingBattleUpdate1} = +      btl_pending_battle:ataxia_set_free_slots(RemainingSlots, S0PendingBattle), -   {S1Battle, BattleUpdate1} = -      add_characters(NewCharacters, PlayerIX, S0Battle), +   {S2PendingBattle, PendingBattleUpdate2} = +      btl_pending_battle:ataxia_push_player_id(PlayerID, S1PendingBattle), -   S0PendingBattle = btl_pending_battle:set_battle(S1Battle, PendingBattle), -   S1PendingBattle = -      btl_pending_battle:set_free_slots(RemainingSlots, S0PendingBattle), -   S2PendingBattle = -      btl_pending_battle:push_player_id(PlayerID, S1PendingBattle), -   S3PendingBattle = -      btl_pending_battle:push_player_summary_ix(PlayerIX, S2PendingBattle), +   {S3PendingBattle, PendingBattleUpdate3} = +      btl_pending_battle:ataxia_push_player_summary_ix +      ( +         PlayerIX, +         S2PendingBattle +      ), -   Update = +   { +      S3PendingBattle,        ataxic:sequence        (           [ -            ataxic:update_field -            ( -               btl_pending_battle:get_battle_field(), -               ataxic:sequence -               ( -                  [ -                     BattleUpdate0, -                     BattleUpdate1 -                  ] -               ) -            ), -            ataxic:update_field -            ( -               btl_pending_battle:get_free_slots_field(), -               ataxic:constant(RemainingSlots) -            ), -            ataxic:update_field -            ( -               btl_pending_battle:get_player_ids_field(), -               ataxic:list_cons(ataxic:constant(PlayerID)) -            ), -            ataxic:update_field -            ( -               btl_pending_battle:get_player_summary_ixs_field(), -               ataxic:list_cons(ataxic:constant(PlayerSumIX)) -            ) +            PendingBattleUpdate0, +            PendingBattleUpdate1, +            PendingBattleUpdate2, +            PendingBattleUpdate3           ] -      ), - -   {S3PendingBattle, Update}. +      ) +   }.  %%%% STAGE -1: CREATING THE PENDING BATTLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec generate_pending_battle @@ -652,7 +558,7 @@ repair_battle_final_link_of_player (BattleID, Player) ->                          ataxic:update_field                          (                             shr_battle_summary:get_is_players_turn_field(), -                           ataxic:constant(btl_player:get_index(Player) == 0) +                           ataxic:constant(false)                          )                       ]                    ), @@ -673,7 +579,6 @@ repair_battle_final_link_of_player (BattleID, Player) ->     ok. -  -spec repair_battle_final_links     (        btl_pending_battle:id(), | 


