public void Initialize(ProtoCrewMember.Gender?gender = null, string name = null) { if (name != null) { this.name = name; _pcm = pcm; } if (gender != null) { this.gender = gender.Value; } else { this.gender = RandomGender(); } if (_pcm != null) { SetCrew(_pcm); } else { this.name = name ?? KerbalName(this.gender); experienceTrait = RandomExperienceTrait(); kerbalType = ProtoCrewMember.KerbalType.Crew; } }
public SpawnPassengers(List<string> passengerNames, int minPassengers, ProtoCrewMember.Gender? gender, ProtoCrewMember.KerbalType kerbalType, string experienceTrait) { this.passengerNames = passengerNames; this.count = passengerNames.Count != 0 ? passengerNames.Count : minPassengers; this.gender = gender; this.kerbalType = kerbalType; this.experienceTrait = experienceTrait; }
public override bool Load(ConfigNode configNode) { // Load base class bool valid = base.Load(configNode); valid &= ConfigNodeUtil.ParseValue<int>(configNode, "count", x => count = x, this, 1, x => Validation.GE(x, 1)); valid &= ConfigNodeUtil.ParseValue<List<string>>(configNode, "passengerName", x => passengerName = x, this, new List<string>()); valid &= ConfigNodeUtil.ParseValue<ProtoCrewMember.Gender?>(configNode, "gender", x => gender = x, this, (ProtoCrewMember.Gender?)null); valid &= ConfigNodeUtil.ParseValue<ProtoCrewMember.KerbalType>(configNode, "kerbalType", x => kerbalType = x, this, ProtoCrewMember.KerbalType.Tourist); valid &= ConfigNodeUtil.ParseValue<string>(configNode, "experienceTrait", x => experienceTrait = x, this, ""); return valid; }
private static ProtoCrewMember SpawnKerbal(ProtoCrewMember.Gender?chosenGender) { for (int attempt = 0; attempt < 100; attempt++) { var kerb = HighLogic.CurrentGame.CrewRoster.GetNewKerbal(ProtoCrewMember.KerbalType.Crew); if ((!chosenGender.HasValue) || (chosenGender.Value == kerb.gender)) { return(kerb); } HighLogic.CurrentGame.CrewRoster.Remove(kerb); } Debug.LogError("Failed spawning a kerbal with the wanted gender"); return(HighLogic.CurrentGame.CrewRoster.GetNewKerbal(ProtoCrewMember.KerbalType.Crew)); }
protected override void OnLoadFromConfig(ConfigNode node) { level = ConfigNodeUtil.ParseValue <int>(node, "level", 0); gender = ConfigNodeUtil.ParseValue <ProtoCrewMember.Gender?>(node, "gender", null); trait = ConfigNodeUtil.ParseValue <string>(node, "trait", (string)null); }
public CrewData(CrewData cd) { name = cd.name; gender = cd.gender; addToRoster = cd.addToRoster; }
public KerbalData(KerbalData k) { name = k.name; crewMember = k.crewMember; body = k.body; orbit = k.orbit; latitude = k.latitude; longitude = k.longitude; altitude = k.altitude; landed = k.landed; owned = k.owned; addToRoster = k.addToRoster; gender = k.gender; kerbalType = k.kerbalType; pqsCity = k.pqsCity; pqsOffset = k.pqsOffset; heading = k.heading; }
private void kHire() { if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER) { double myFunds = Funding.Instance.Funds; Funding.Instance.AddFunds(-costMath(), TransactionReasons.CrewRecruited); Debug.Log("KSI :: Total Funds removed " + costMath()); } for (int i = 0; i < KBulki; i++) { ProtoCrewMember.Gender?chosenGender = null; var selectedGender = KGendArray[KGender].text; if (selectedGender.Equals("Male")) { chosenGender = ProtoCrewMember.Gender.Male; } else if (selectedGender.Equals("Female")) { chosenGender = ProtoCrewMember.Gender.Female; } ProtoCrewMember newKerb = SpawnKerbal(chosenGender); string career = _recruitableKolonists[KCareer]; // Sets the kerbal's career based on the KCareer switch. KerbalRoster.SetExperienceTrait(newKerb, career); // Debug.Log("KSI :: KIA MIA Stat is: " + KDead); // Debug.Log("KSI :: " + newKerb.experienceTrait.TypeName + " " + newKerb.name + " has been created in: " + loopcount.ToString() + " loops."); newKerb.rosterStatus = ProtoCrewMember.RosterStatus.Available; newKerb.experience = 0; if (KolonyACOptions.CustomKerbonautsEnabled) { newKerb.experienceLevel = 0; newKerb.courage = KCourage / 100; newKerb.stupidity = KStupidity / 100; if (KFearless) { newKerb.isBadass = true; } } // Debug.Log("PSH :: Status set to Available, courage and stupidity set, fearless trait set."); if (KLevel > 0) { var logName = RecruitLevel + KLevel; var homeworldName = FlightGlobals.Bodies.Where(cb => cb.isHomeWorld).FirstOrDefault().name; newKerb.flightLog.AddEntry(logName, homeworldName); newKerb.ArchiveFlightLog(); newKerb.experience = GetExperienceNeededFor(KLevel); newKerb.experienceLevel = KLevel; } if (ACLevel == 5 || kerExp == false) { newKerb.experience = 9999; newKerb.experienceLevel = 5; Debug.Log("KSI :: Level set to 5 - Non-Career Mode default."); } } // Refreshes the AC so that new kerbal shows on the available roster. Debug.Log("PSH :: Hiring Function Completed."); GameEvents.onGUIAstronautComplexDespawn.Fire(); GameEvents.onGUIAstronautComplexSpawn.Fire(); }
protected override void OnLoadFromConfig(ConfigNode node) { level = ConfigNodeUtil.ParseValue<int>(node, "level", 0); gender = ConfigNodeUtil.ParseValue<ProtoCrewMember.Gender?>(node, "gender", null); trait = ConfigNodeUtil.ParseValue<string>(node, "trait", (string)null); }
protected override void OnLoad(ConfigNode node) { base.OnLoad(node); count = Convert.ToInt32(node.GetValue("count")); passengerNames = ConfigNodeUtil.ParseValue<List<string>>(node, "potentialPassenger", new List<string>()); gender = ConfigNodeUtil.ParseValue<ProtoCrewMember.Gender?>(node, "gender", (ProtoCrewMember.Gender?)null); kerbalType = ConfigNodeUtil.ParseValue<ProtoCrewMember.KerbalType>(node, "kerbalType", ProtoCrewMember.KerbalType.Tourist); experienceTrait = ConfigNodeUtil.ParseValue<string>(node, "experienceTrait", ""); foreach (ConfigNode child in node.GetNodes("PASSENGER_DATA")) { ProtoCrewMember crew = ConfigNodeUtil.ParseValue<ProtoCrewMember>(child, "passenger"); bool loaded = ConfigNodeUtil.ParseValue<bool>(child, "loaded"); if (crew != null) { passengers[crew] = loaded; if (!string.IsNullOrEmpty(experienceTrait)) { KerbalRoster.SetExperienceTrait(crew, experienceTrait); } } } }