private void OnSettleDebtDoneButtonPressed() { ButtonAudio.Play(); Unit[] playerSelectedUnits = PlayerLeader.GetSelectedUnits().ToArray(); foreach (Unit unit in playerSelectedUnits) { Vector2 offset = PlayerLeader.GetBodyGlobalPosition() - SelectedLeader.GetBodyGlobalPosition(); unit.Position += SelectedLeader.GetBodyPosition() + offset - PlayerLeader.GetBodyPosition(); } Unit[] enemyUnits = SelectedLeader.GetUnits().ToArray(); PlayerLeader.RemoveSelectedUnits(); List <Unit> totalSelectedUnits = new List <Unit>(playerSelectedUnits); int credit = 0; foreach (Unit playerUnit in playerSelectedUnits) { credit += playerUnit.Power; } SelectedLeader.Credit(credit); totalSelectedUnits.AddRange(enemyUnits); SelectedLeader.AddUnits(totalSelectedUnits); CurrentState = State.Selection; PlayerLeader.StopBorrowMode(); IsFactionWillingToFight = SelectedLeader.GetDebt() <= 0; }