anchor.diff:  
   battle_loop(
       #{agility:=AG}=A, #{agility:=DG}=D,
  -    #{is_latter:=true, rem_atk:=0, seq_no:=SeqNo}=B, L
  +    #{is_defence_done:=true, rem_atk:=0, seq_no:=SeqNo}=B, L
   ) ->
   
       erlang:display('start new round'),
       
  -    NewB = B#{ is_latter := false, rem_atk := 2, seq_no := SeqNo + 1},
  +    NewB = B#{ is_defence_done := false, rem_atk := 2, seq_no := SeqNo + 1},
   
       case AG > DG of
           true -> battle_loop(A, D, NewB, L);
  
positive.code: 
      {MovedA, MovedD, MovedB} = attacks:plain_attack({A, D, B}),
  
      LogAfterAttack = case Curr of
          {_, {damage, _}, _} -> [update_log(MovedA, MovedD, MovedB) | L];
          _                   -> L 
      end,
  
  %    {PostA, PostD, PostB} = effect:apply_effects({MovedA, MovedD, MovedB}),
  
  
negative.code: 
      erlang:display('swap in same round'),
  
      battle_loop(D, A, B#{is_defence_done:=true, rem_atk:=2}, L);
  
  % -------------- MAIN UNCONDITIONAL LOOP FOR BATTLE -------------------
  
  battle_loop(A, D, B, L) ->
  
  %    {PreA, PreD, PreB} = effect:apply_effects({A, D, B}),
  
  