private void OnContractCompleted(Contract contract) { Vessel vessel = FlightGlobals.ActiveVessel; if (vessel == null) { return; } HallOfFame halloffame = HallOfFame.Instance(); // halloffame.BeginArwardOfRibbons(); try { foreach (ProtoCrewMember kerbal in vessel.GetVesselCrew()) { halloffame.RecordContract(kerbal); CheckAchievementsForCrew(kerbal, false); CheckAchievementsForContracts(kerbal, contract); } } finally { halloffame.EndArwardOfRibbons(); } }
private void OnScienceReceived(float science, ScienceSubject subject, ProtoVessel vessel, bool flag) { Log.Detail("EventObserver::OnScienceReceived: " + science + ", flag=" + flag); if (vessel == null) { return; } HallOfFame halloffame = HallOfFame.Instance(); // halloffame.BeginArwardOfRibbons(); try { foreach (ProtoCrewMember kerbal in vessel.GetVesselCrew()) { if (!kerbal.IsTourist()) { halloffame.RecordScience(kerbal, science); CheckAchievementsForCrew(kerbal, false); } } } finally { // commit ribbons halloffame.EndArwardOfRibbons(); } }
private void CheckAchievementsForProgress(ProgressNode node) { Vessel vessel = FlightGlobals.ActiveVessel; HallOfFame halloffame = HallOfFame.Instance(); if (vessel != null) { foreach (Ribbon ribbon in RibbonPool.Instance()) { Achievement achievement = ribbon.GetAchievement(); if (achievement.Check(node)) { halloffame.BeginArwardOfRibbons(); try { foreach (ProtoCrewMember member in vessel.GetVesselCrew()) { // record crew member only if (member.IsCrew()) { recorder.Record(ribbon, member); } } } finally { halloffame.EndArwardOfRibbons(); } } } } }
public void Record(Ribbon ribbon, Vessel vessel) { if (vessel == null) { Log.Warning("no vessel for recorded ribbon " + ribbon.GetName()); return; } if (Log.IsLogable(Log.LEVEL.DETAIL)) { Log.Detail("recording ribbon " + ribbon.GetName() + " for vessel " + vessel.GetName()); } List <ProtoCrewMember> crew = vessel.GetVesselCrew(); if (crew != null) { hallOfFame.BeginArwardOfRibbons(); foreach (ProtoCrewMember member in crew) { if (!member.IsTourist()) { Record(ribbon, member); } } hallOfFame.EndArwardOfRibbons(); } }
public void AwardRibbonToKerbals(object ribbon, ProtoCrewMember[] kerbals) { HallOfFame halloffame = HallOfFame.Instance(); halloffame.BeginArwardOfRibbons(); foreach (ProtoCrewMember kerbal in kerbals) { halloffame.Record(kerbal, (Ribbon)ribbon); } halloffame.EndArwardOfRibbons(); }
public void Record(Ribbon ribbon, Vessel vessel) { List <ProtoCrewMember> crew = vessel.GetVesselCrew(); CelestialBody body = vessel.mainBody; if (body != null) { hallOfFame.BeginArwardOfRibbons(); foreach (ProtoCrewMember member in crew) { // record crew member only if (member.IsCrew()) { Record(ribbon, member); } } hallOfFame.EndArwardOfRibbons(); } }