| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/battle/struct/btl_pending_battle.erl | 137 | ||||
| -rw-r--r-- | src/bounty/bnt_join_battle.erl | 12 | 
2 files changed, 139 insertions, 10 deletions
diff --git a/src/battle/struct/btl_pending_battle.erl b/src/battle/struct/btl_pending_battle.erl index ab0e67d..c82d4ae 100644 --- a/src/battle/struct/btl_pending_battle.erl +++ b/src/battle/struct/btl_pending_battle.erl @@ -42,6 +42,16 @@        set_battle_id/2,        set_player_ids/2,        set_player_summary_ixs/2, +      push_player_id/2, +      push_player_summary_ix/2, + +      ataxia_set_battle/2, +      ataxia_set_free_slots/2, +      ataxia_set_battle_id/2, +      ataxia_set_player_ids/2, +      ataxia_set_player_summary_ixs/2, +      ataxia_push_player_id/2, +      ataxia_push_player_summary_ix/2,        get_battle_field/0,        get_free_slots_field/0, @@ -95,20 +105,147 @@ get_player_summary_ixs (PBattle) -> PBattle#pending_battle.player_summary_ixs.  -spec set_battle (btl_battle:type(), type()) -> type().  set_battle (Battle, PBattle) -> PBattle#pending_battle{ battle = Battle }. +-spec ataxia_set_battle (btl_battle:type(), type()) -> {type(), ataxic:basic()}. +ataxia_set_battle (Battle, PBattle) -> +   { +      PBattle#pending_battle{ battle = Battle }, +      ataxic:update_field +      ( +         get_battle_field(), +         ataxic:constant(Battle) +      ) +   }. +  -spec set_battle_id (btl_battle:id(), type()) -> type().  set_battle_id (BattleID, PBattle) ->     PBattle#pending_battle{ battle_id = BattleID }. +-spec ataxia_set_battle_id +   ( +      btl_battle:id(), +      type() +   ) +   -> {type(), ataxic:basic()}. +ataxia_set_battle_id (BattleID, PBattle) -> +   { +      PBattle#pending_battle{ battle_id = BattleID }, +      ataxic:update_field +      ( +         get_battle_id_field(), +         ataxic:constant(BattleID) +      ) +   }. +  -spec set_free_slots (non_neg_integer(), type()) -> type().  set_free_slots (Val, PBattle) -> PBattle#pending_battle{ free_slots = Val }. +-spec ataxia_set_free_slots +   ( +      non_neg_integer(), +      type() +   ) +   -> {type(), ataxic:basic()}. +ataxia_set_free_slots (Val, PBattle) -> +   { +      PBattle#pending_battle{ free_slots = Val }, +      ataxic:update_field +      ( +         get_free_slots_field(), +         ataxic:constant(Val) +      ) +   }. +  -spec set_player_summary_ixs (list(non_neg_integer()), type()) -> type().  set_player_summary_ixs (Val, PBattle) ->     PBattle#pending_battle{ player_summary_ixs = Val }. +-spec ataxia_set_player_summary_ixs +   ( +      list(non_neg_integer()), +      type() +   ) +   -> {type(), ataxic:basic()}. +ataxia_set_player_summary_ixs (Val, PBattle) -> +   { +      PBattle#pending_battle{ player_summary_ixs = Val }, +      ataxic:update_field +      ( +         get_player_summary_ixs_field(), +         ataxic:constant(Val) +      ) +   }. + +-spec push_player_summary_ix (non_neg_integer(), type()) -> type(). +push_player_summary_ix (Val, PBattle) -> +   PBattle#pending_battle +   { +      player_summary_ixs = [Val|PBattle#pending_battle.player_summary_ixs] +   }. + +-spec ataxia_push_player_summary_ix +   ( +      non_neg_integer(), +      type() +   ) +   -> {type(), ataxic:constant()}. +ataxia_push_player_summary_ix (Val, PBattle) -> +   { +      PBattle#pending_battle +      { +         player_summary_ixs = [Val|PBattle#pending_battle.player_summary_ixs] +      }, +      ataxic:update_field +      ( +         get_player_summary_ixs_field(), +         ataxic:list_cons(ataxic:constant(Val)) +      ) +   }. +  -spec set_player_ids (list(shr_player:id()), type()) -> type().  set_player_ids (Val, PBattle) -> PBattle#pending_battle{ player_ids = Val }. +-spec ataxia_set_player_ids +   ( +      list(shr_player:id()), +      type() +   ) +   -> {type(), ataxia:basic()}. +ataxia_set_player_ids (Val, PBattle) -> +   { +      PBattle#pending_battle{ player_ids = Val }, +      ataxic:update_field +      ( +         get_player_ids_field(), +         ataxic:constant(Val) +      ) +   }. + +-spec push_player_id (shr_player:id(), type()) -> type(). +push_player_id (Val, PBattle) -> +   PBattle#pending_battle +   { +      player_ids = [Val|PBattle#pending_battle.player_ids] +   }. + +-spec ataxia_push_player_id +   ( +      shr_player:id(), +      type() +   ) +   -> {type(), ataxia:basic()}. +ataxia_push_player_id (Val, PBattle) -> +   { +      PBattle#pending_battle +      { +         player_ids = [Val|PBattle#pending_battle.player_ids] +      }, +      ataxic:update_field +      ( +         get_player_ids_field(), +         ataxic:list_cons(ataxic:constant(Val)) +      ) +   }. +  -spec get_battle_id_field () -> non_neg_integer().  get_battle_id_field () -> #pending_battle.battle_id. diff --git a/src/bounty/bnt_join_battle.erl b/src/bounty/bnt_join_battle.erl index 78c4ea4..fa5d36e 100644 --- a/src/bounty/bnt_join_battle.erl +++ b/src/bounty/bnt_join_battle.erl @@ -429,17 +429,9 @@ add_to_pending_battle     S1PendingBattle =        btl_pending_battle:set_free_slots(RemainingSlots, S0PendingBattle),     S2PendingBattle = -      btl_pending_battle:set_player_ids -      ( -         [PlayerID|btl_pending_battle:get_player_ids(S1PendingBattle)], -         S1PendingBattle -      ), +      btl_pending_battle:push_player_id(PlayerID, S1PendingBattle),     S3PendingBattle = -      btl_pending_battle:set_player_summary_ixs -      ( -         [PlayerIX|btl_pending_battle:get_player_summary_ixs(S1PendingBattle)], -         S2PendingBattle -      ), +      btl_pending_battle:push_player_summary_ix(PlayerIX, S2PendingBattle),     Update =        ataxic:sequence  | 


