void FixedUpdate()
    {
        if (!activeBattle && !startingBattle)
        {
            if (battleCounter >= 1000000)
            {
                startingBattle = true;
                battleCounter  = 0;
            }
        }
        if (startingBattle)
        {
            startTimer++;
            cameraRef.BattleCameraMovement();
            if (startTimer >= 30)
            {
                cameraRef.BattleCameraSet();
                startingBattle = false;
                activeBattle   = true;
                LoadBattle(2);
            }
        }
        if (activeBattle)
        {
            if (NeedInput())
            {
            }

            if (!activeFighter)
            {
                for (int i = 0; i < players.Count; i++)
                {
                    players[i].Tick();
                    if (players[i].getActive())
                    {
                        activePlayer  = i;
                        activeFighter = true;
                        string temp1 = abilityList[players[activePlayer].getAbility(0)].getname();
                        string temp2 = abilityList[players[activePlayer].getAbility(1)].getname();
                        string temp3 = abilityList[players[activePlayer].getAbility(2)].getname();
                        string temp4 = abilityList[players[activePlayer].getAbility(3)].getname();
                        Debug.Log(temp1 + ", " + temp2 + ", " + temp3 + ", " + temp4);
                        break;
                    }
                    else
                    {
                        activePlayer = -1;
                    }
                }
                if (!activeFighter)
                {
                    foreach (Enemy enemy in enemies)
                    {
                        enemy.Tick();
                        if (enemy.getActive())
                        {
                            currentAction = new Action(abilityList[enemy.PickAbility()], enemy, players[Random.Range(0, players.Count)]);
                        }
                    }
                }
            }


            if (currentAction != null)
            {
                ExecuteAction();
            }

            CheckKO();
            if (AllEnemyKO())
            {
                activeBattle = false;
                int expGained = 0;
                for (int i = 0; i < enemies.Count; i++)
                {
                    expGained += enemies[i].getEXP();
                }
                expGained *= Oplayer.getClosestCity().getLevel();
                int bonus = (int)((float)exp * 0.10f);
                exp += expGained + bonus;
                Oplayer.addExpToCity(expGained);
                Oplayer.addGold(expGained * Oplayer.getClosestCity().getLevel());
                cameraRef.ResetCamera();
                enemies.Clear();
                enemyPrefabs.Clear();
            }
        }
    }