code: def _simulated_EOT(self, state):
          
          # determine if this is a manadrain or just end of turn
          is_manadrain = True  # default mana drain until valid swap found
          for swap_pair in state.board.potential_swaps():
              result_board, destroyed_groups = \
                  state.board.execute_once(swap=swap_pair,
                                           random_fill=self.random_fill)
              if destroyed_groups:
                  is_manadrain = False
                  break  # stop when the first valid swap found
          # attach appropriate EOT or ManaDrain
          if is_manadrain:
              end = self._simulated_mana_drain(state)
          else:
              end = EOT(False)
              state.graft_child(end)
          return end
docs: Simulate a normal or mana drain EOT and return it.