/// <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); } }