/// <summary> /// Retrieves the police report with the current month, revolution strength, player strength and group information. /// </summary> /// <returns>The police report with the current month, revolution strength, player strength and group information.</returns> public PoliceReport GetPoliceReport() { PoliceReport policeReport = new PoliceReport { Month = governmentService.GetMonth(), Groups = groupService.GetGroups().AsReadOnly(), PlayerStrength = governmentService.GetPlayerStrength(), MonthlyRevolutionStrength = governmentService.GetMonthlyRevolutionStrength() }; return(policeReport); }
/// <summary> /// Checks for the required conditions and changes que appropriate group status /// to the revolution and assassination modes. /// </summary> public void Plot() { // Do not trigger assassinations or revolutions after failed revolution if (governmentService.GetMonth() < governmentService.GetPlotBonus()) { return; } // Do not trigger assassinations or revolutions in the first 2 months of government if (governmentService.GetMonth() > 2) { groupService.ResetStatusAndAllies(); Group[] groups = groupService.GetGroups(); int monthlyMinimalPopularityAndStrength = governmentService.GetMonthlyMinimalPopularityAndStrength(); int monthlyRevolutionStrength = governmentService.GetMonthlyRevolutionStrength(); // Perform internal plot logic ExecutePlot(groups, monthlyMinimalPopularityAndStrength, monthlyRevolutionStrength); } }