public IEnumerator Siege(ArmyController army, ProvinceController province) { army.besieging = true; var siegeProgress = 0; var day = TimeController.Instance.Date; while (siegeProgress != Constants.ProvinceSiegeDuration) { if (!army.besieging) { yield break; } while (!TimeController.Instance.Date.Equals(day.AddDays(1))) { yield return(null); } day = TimeController.Instance.Date; if (!army.fighting) { siegeProgress++; } } province.TransferProvince(army.nationId); army.besieging = false; yield return(null); }