private void RecruitPrisoners()
        {
            RecruitmentResults results = TroopActionService.RecruitPrisoners(_viewModel, _viewModel.PartyScreenLogic);

            if (results.RecruitedTotal == 0)
            {
                return;
            }

            _viewModel.CurrentCharacter = _viewModel.MainPartyTroops[0];
            RefreshPartyVmInformation();
            RefreshView();
            Global.Helpers.Message($"Recruited {results.RecruitedTotal} prisoners over {results.RecruitedTypes} types. " + "Press 'Done' to confirm changes");
        }
        private void UpgradeTroops()
        {
            UpgradeResults results = TroopActionService.UpgradeTroops(_viewModel, _viewModel.PartyScreenLogic);

            if (results.UpgradedTotal == 0)
            {
                return;
            }

            _viewModel.CurrentCharacter = _viewModel.MainPartyTroops[0];
            RefreshPartyVmInformation();
            RefreshView();

            StringBuilder message = new StringBuilder();

            message.Append($"Upgraded {results.UpgradedTotal} troops over {results.UpgradedTypes} types. ");
            if (results.MultiPathSkipped > 0)
            {
                message.Append($"{results.MultiPathSkipped} troop types with multi-path upgrades were skipped. ");
            }

            message.Append("Press 'Done' to confirm changes");
            Global.Helpers.Message(message.ToString());
        }