예제 #1
0
        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);
        }
예제 #2
0
        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);
        }