private void RecalcUnitSensorRange() { var allUnitSensors = _elementsData.SelectMany(ed => ed.Sensors); var undamagedSensors = allUnitSensors.Where(s => s.IsOperational); var shortRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Short); var mediumRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Medium); var longRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Long); float shortRangeDistance = shortRangeSensors.Any() ? shortRangeSensors.First().RangeDistance : Constants.ZeroF; //shortRangeSensors.CalcSensorRangeDistance(); float mediumRangeDistance = mediumRangeSensors.Any() ? mediumRangeSensors.First().RangeDistance : Constants.ZeroF; //mediumRangeSensors.CalcSensorRangeDistance(); float longRangeDistance = longRangeSensors.Any() ? longRangeSensors.First().RangeDistance : Constants.ZeroF; //longRangeSensors.CalcSensorRangeDistance(); UnitSensorRange = new RangeDistance(shortRangeDistance, mediumRangeDistance, longRangeDistance); }
private void RecalcUnitWeaponsRange() { var allUnitWeapons = _elementsData.SelectMany(ed => ed.Weapons); var undamagedUnitWeapons = allUnitWeapons.Where(w => !w.IsDamaged); var shortRangeWeapons = undamagedUnitWeapons.Where(w => w.RangeCategory == RangeCategory.Short); var mediumRangeWeapons = undamagedUnitWeapons.Where(w => w.RangeCategory == RangeCategory.Medium); var longRangeWeapons = undamagedUnitWeapons.Where(w => w.RangeCategory == RangeCategory.Long); float shortRangeDistance = shortRangeWeapons.Any() ? shortRangeWeapons.First().RangeDistance : Constants.ZeroF; float mediumRangeDistance = mediumRangeWeapons.Any() ? mediumRangeWeapons.First().RangeDistance : Constants.ZeroF; float longRangeDistance = longRangeWeapons.Any() ? longRangeWeapons.First().RangeDistance : Constants.ZeroF; UnitWeaponsRange = new RangeDistance(shortRangeDistance, mediumRangeDistance, longRangeDistance); }
private void RecalcWeaponsRange() { var undamagedWeapons = Weapons.Where(w => !w.IsDamaged); var shortRangeWeapons = undamagedWeapons.Where(w => w.RangeCategory == RangeCategory.Short); var mediumRangeWeapons = undamagedWeapons.Where(w => w.RangeCategory == RangeCategory.Medium); var longRangeWeapons = undamagedWeapons.Where(w => w.RangeCategory == RangeCategory.Long); //D.Log(ShowDebugLog, "{0} found {1} short, {2} medium and {3} long range undamaged weapons when recalculating WeaponsRange.", //DebugName, shortRangeWeapons.Count(), mediumRangeWeapons.Count(), longRangeWeapons.Count()); float shortRangeDistance = shortRangeWeapons.Any() ? shortRangeWeapons.First().RangeDistance : Constants.ZeroF; float mediumRangeDistance = mediumRangeWeapons.Any() ? mediumRangeWeapons.First().RangeDistance : Constants.ZeroF; float longRangeDistance = longRangeWeapons.Any() ? longRangeWeapons.First().RangeDistance : Constants.ZeroF; WeaponsRange = new RangeDistance(shortRangeDistance, mediumRangeDistance, longRangeDistance); //D.Log(ShowDebugLog, "{0} recalculated WeaponsRange: {1}.", DebugName, WeaponsRange); }
private void RecalcShieldRange() { var undamagedGenerators = ShieldGenerators.Where(gen => !gen.IsDamaged); var shortRangeGenerators = undamagedGenerators.Where(gen => gen.RangeCategory == RangeCategory.Short); var mediumRangeGenerators = undamagedGenerators.Where(gen => gen.RangeCategory == RangeCategory.Medium); var longRangeGenerators = undamagedGenerators.Where(gen => gen.RangeCategory == RangeCategory.Long); float shortRangeDistance = shortRangeGenerators.Any() ? shortRangeGenerators.First().RangeDistance : Constants.ZeroF; float mediumRangeDistance = mediumRangeGenerators.Any() ? mediumRangeGenerators.First().RangeDistance : Constants.ZeroF; float longRangeDistance = longRangeGenerators.Any() ? longRangeGenerators.First().RangeDistance : Constants.ZeroF; ShieldRange = new RangeDistance(shortRangeDistance, mediumRangeDistance, longRangeDistance); //D.Log(ShowDebugLog, "{0} recalculated ShieldRange: {1}.", DebugName, ShieldRange); }
private void RecalcSensorRange() { var undamagedSensors = Sensors.Where(s => s.IsOperational); var shortRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Short); var mediumRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Medium); var longRangeSensors = undamagedSensors.Where(s => s.RangeCategory == RangeCategory.Long); float shortRangeDistance = shortRangeSensors.Any() ? shortRangeSensors.First().RangeDistance : Constants.ZeroF; float mediumRangeDistance = mediumRangeSensors.Any() ? mediumRangeSensors.First().RangeDistance : Constants.ZeroF; float longRangeDistance = longRangeSensors.Any() ? longRangeSensors.First().RangeDistance : Constants.ZeroF; SensorRange = new RangeDistance(shortRangeDistance, mediumRangeDistance, longRangeDistance); //D.Log(ShowDebugLog, "{0} recalculated SensorRange: {1}.", DebugName, SensorRange); }