private static Byte GetSensorAccuracyChance(SensorAccuracy sensorAccuracy) { switch (sensorAccuracy) { case SensorAccuracy.SensorOff: return(0); case SensorAccuracy.LowAccuracySensor: return(2); case SensorAccuracy.MediumAccuracySensor: return(3); case SensorAccuracy.HighAccuracySensor: return(5); } return(100); }
private static Boolean IsAndroidCompromised(AutoPilot autoPilot, SensorAccuracy location, SensorAccuracy crowd, SensorAccuracy mood, SensorAccuracy relationship) { // 0% - 100% chance of compromised! // AutoPilot Level-1: 0% + sensors = 8% // AutoPilot Level-2: 3% + sensors = 15% // AutoPilot Level-3: 5% + sensors = [5% - 25%] // Sensor Off: 0% // Sensor Low: 2% // Sensor Medium: 3% // Sensor High: 5% Int32 random = _randomGenerator.Next(0, 101); Int32 chance = GetAutoPilotChance(autoPilot) + GetSensorAccuracyChance(location) + GetSensorAccuracyChance(crowd) + GetSensorAccuracyChance(mood) + GetSensorAccuracyChance(relationship); return(random < chance); }