public override bool MeetRequirements() { // stop checking when requirements are met if (!meet_requirements) { ProgressTracking progress = ProgressTracking.Instance; if (progress == null) { return(false); } int known = 0; foreach (var body_progress in progress.celestialBodyNodes) { known += body_progress.flyBy != null && body_progress.flyBy.IsComplete ? 1 : 0; } bool end_game = known > FlightGlobals.Bodies.Count / 2; meet_requirements = Features.Radiation && // radiation is enabled end_game && // entered SOI of half the bodies Radiation.Info(FlightGlobals.Bodies[0]).model.has_pause && // there is an actual heliopause !DB.landmarks.heliopause_crossing; // heliopause never crossed before } return(meet_requirements); }
public override bool MeetRequirements() { // stop checking when requirements are met if (!meet_requirements) { ProgressTracking progress = ProgressTracking.Instance; meet_requirements = Features.Radiation && // radiation is enabled progress != null && progress.reachSpace.IsComplete && // first suborbit flight completed !DB.landmarks.belt_crossing; // belt never crossed before } return(meet_requirements); }
public override bool MeetRequirements() { // stop checking when requirements are met if (!meet_requirements) { ProgressTracking progress = ProgressTracking.Instance; meet_requirements = Profile.rules.Count > 0 && // some rule is specified progress != null && progress.celestialBodyHome.orbit.IsComplete && // first orbit completed !DB.landmarks.manned_orbit; // contract never completed } return(meet_requirements); }