public void Repair() { //No krashes to repair. if (_kerbalKrash.Krashes.Count == 0) { ScreenMessages.PostScreenMessage(part.partInfo.title + ": no damage to repair!", 4, ScreenMessageStyle.UPPER_CENTER); return; } //Only check trait and level requirements if trait is not "None". if (RequiredTrait != Trait.None.ToString()) { //Get trait information. ProtoCrewMember trait = FlightGlobals.ActiveVessel.GetVesselCrew()[0]; //Check if current Kerbal meets all trait requirements. if (trait == null || trait.experienceTrait.Title != RequiredTrait || trait.experienceLevel < RequiredLevel) { ScreenMessages.PostScreenMessage(part.partInfo.title + " can only be repaired by a level " + RequiredLevel + "(+) " + RequiredTrait + "!", 4, ScreenMessageStyle.UPPER_CENTER); return; } } //Repair the newest krash of this part. _kerbalKrash.Repair(); ScreenMessages.PostScreenMessage(part.partInfo.title + ": repaired to " + _kerbalKrash.Damage.ToString("P"), 4, ScreenMessageStyle.UPPER_CENTER); }
public void Repair() { //No krashes to repair. if (_kerbalKrash.Krashes.Count == 0) { ScreenMessages.PostScreenMessage("No damage to repair!", 4, ScreenMessageStyle.UPPER_CENTER); return; } //Repair the newest krash of this part. _kerbalKrash.Repair(); ScreenMessages.PostScreenMessage("Repaired " + part.partInfo.title + " to " + _kerbalKrash.Damage.ToString("P"), 4, ScreenMessageStyle.UPPER_CENTER); }
public void Repair() { //No krashes to repair. if (_kerbalKrash.Krashes.Count == 0) { ScreenMessages.PostScreenMessage(part.partInfo.title + ": no damage to repair!", 4, ScreenMessageStyle.UPPER_CENTER); return; } //Get trait information. ProtoCrewMember trait = FlightGlobals.ActiveVessel.GetVesselCrew()[0]; //Only check trait and level requirements if trait is not "None". if (RequiredTrait != Trait.None.ToString()) { //Check if current Kerbal meets all trait requirements. if (trait == null || trait.experienceTrait.Config.Name != RequiredTrait || trait.experienceLevel < RequiredLevel) { //Kerbal does not have the appropriate trait (level). ScreenMessages.PostScreenMessage(part.partInfo.title + " can only be repaired by a level " + RequiredLevel + "(+) " + RequiredTrait + "!", 4, ScreenMessageStyle.UPPER_CENTER); return; } } //Calculate the repair delay for the given Kerbal's experience level. double delay = _maximumRepairDelay - (trait.experienceLevel * _experienceLevelScaling) - (part.vessel.missionTime - _repaired_time); //Check if the repair delay has passed (and vessel is not sitting on the launchpad). if (delay > 0 && part.vessel.missionTime > 0) { ScreenMessages.PostScreenMessage(part.partInfo.title + " can be repaired in " + delay.ToString("N0") + " seconds.", 4, ScreenMessageStyle.UPPER_CENTER); return; } //Repair the newest krash of this part. _kerbalKrash.Repair(); //Set the last repair time. _repaired_time = part.vessel.missionTime; ScreenMessages.PostScreenMessage(part.partInfo.title + ": repaired to " + _kerbalKrash.Damage.ToString("P").PadLeft(7), 4, ScreenMessageStyle.UPPER_CENTER); }
public void Repair() { //No krashes to repair. if (_kerbalKrash.Krashes.Count == 0) { ScreenMessages.PostScreenMessage("No damage to repair!", 4, ScreenMessageStyle.UPPER_CENTER); return; } //Fully repair the part. _kerbalKrash.Repair(); //Remove the last krash. _kerbalKrash.Krashes.RemoveAt(_kerbalKrash.Krashes.Count - 1); //Apply all remaining krashes. foreach (KerbalKrashSystem.Krash krash in _kerbalKrash.Krashes) { _kerbalKrash.ApplyKrash(krash); } ScreenMessages.PostScreenMessage("Repaired to " + _kerbalKrash.Damage.ToString("P"), 4, ScreenMessageStyle.UPPER_CENTER); }