Esempio n. 1
0
        public void Initialize(Rect guiRect)
        {
            var uiScaleMultiplier = GameSettings.UI_SCALE;

            // the supplied rect will have the UI scalar already factored in
            //
            // to respect the player's UI scale wishes, work out what the unscaled rect
            // would be. Then we'll apply the scale again in OnGUI so all of our GUILayout elements
            // will respect the multiplier
            var correctedRect = new Rect(guiRect.x, guiRect.y, guiRect.width / uiScaleMultiplier,
                                         guiRect.height / uiScaleMultiplier);

            _areaRect = correctedRect;

            _guiPivot  = new Vector2(_areaRect.x, _areaRect.y);
            _guiScalar = new Vector2(GameSettings.UI_SCALE, GameSettings.UI_SCALE);

            //var applicants = HighLogic.CurrentGame.CrewRoster.Applicants.ToList();
            var rand = new System.Random();

            for (int i = 0; i < 10; i++)
            {
                KNames[0, i] = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Male, rand);
                KNames[1, i] = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Female, rand);

                KNames2Gender[i] = (rand.Next() % 2 == 0 ? ProtoCrewMember.Gender.Male : ProtoCrewMember.Gender.Female);
                KNames[2, i]     = (KNames2Gender[i] == ProtoCrewMember.Gender.Male ? KNames[0, i] : KNames[1, i]);
            }

            enabled = true;

            traits = new Traits();
        }
Esempio n. 2
0
        public void Initialize(Rect guiRect)
        {
            // the supplied rect will have the UI scalar already factored in
            var correctedRect = new Rect(guiRect.x, guiRect.y, guiRect.width, guiRect.height);

            _areaRect = correctedRect;

            _guiPivot = new Vector2(_areaRect.x, _areaRect.y);

            //var applicants = HighLogic.CurrentGame.CrewRoster.Applicants.ToList();
            var rand = new System.Random();

            for (int i = 0; i < MAX_HIRE_COUNT; i++)
            {
                KNames[0, i] = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Male, rand);
                KNames[1, i] = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Female, rand);

                KNames2Gender[i] = (rand.Next() % 2 == 0 ? ProtoCrewMember.Gender.Male : ProtoCrewMember.Gender.Female);
                KNames[2, i]     = (KNames2Gender[i] == ProtoCrewMember.Gender.Male ? KNames[0, i] : KNames[1, i]);
            }

            enabled = true;

            traits = new Traits();
        }
        private string GenerateKerbalName(CivPopKerbalGender gender)
        {
            string res;

            if (CivPopKerbalGender.MALE.Equals(gender))
            {
                res = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Male);
            }
            else
            {
                res = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Female);
            }
            return(res);
        }
Esempio n. 4
0
        protected override bool Generate()
        {
            List <Resource> resList = new List <Resource>();

            resList.Add(new Resource("Steel", 2, 80208299));
            resList.Add(new Resource("Wood", 5, 2702029));
            resList.Add(new Resource("Diamond", 20, -975259340));
            resList.Add(new Resource("Liquid Fuel", 0.8, 374119730));
            resList.Add(new Resource("Oxydizer", 0.005, -1823983486));
            resList.Add(new Resource("Mono Propellant", 0.6, 2001413032));
            resList.Add(new Resource("Xenon Gas", 1.2, 1447111193));
            resource       = resList.ElementAt(UnityEngine.Random.Range(0, resList.Count));
            resourceAmount = UnityEngine.Random.Range(5, 50) * 100;

            List <string> ships = new List <string>
            {
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\DR1-LL3-R_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\freighter large ( long range)_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\freighter medium ( long range)_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\freighter Medium_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\freighter small_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\Kirk MKI_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\Kortana the asrtroid huntress_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\luna slave transport_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\S-7 Scientific Vessel_refuel.craft",
                "GameData\\KerbalKommander\\Assets\\ships\\refuelContract\\Slave-7_refuel.craft",
            };

            vesselName = CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Male);
            synopsis   = vesselName + " ran out of fuel, he need " + resourceAmount + " of " + resource + " in exchange of a reward.\nYou just need to carry the resources to his ship and dock whith it.";
            vesselName = vesselName + "'s ship";
            CelestialBody body  = FlightGlobals.Bodies[UnityEngine.Random.Range(1, FlightGlobals.Bodies.Count)];
            Orbit         orbit = new Orbit(UnityEngine.Random.Range(0, 360), UnityEngine.Random.Range(0, 0.3f), UnityEngine.Random.Range(Convert.ToSingle(body.Radius + body.atmosphereDepth), Convert.ToSingle(body.sphereOfInfluence)), UnityEngine.Random.Range(0, 360), 0000000000000000, 0, HighLogic.CurrentGame.UniversalTime, body);

            vessel = Tools.VesselSpawner.SpawnVessel(vesselName, ships.ElementAt(UnityEngine.Random.Range(0, ships.Count)), HighLogic.CurrentGame.flagURL, VesselType.Ship, Planetarium.fetch.Home, orbit, new List <ProtoCrewMember>());


            name   = "Refuel " + vessel.vesselName;
            reward = Convert.ToSingle(Math.Round(resourceAmount * resource.unitCost * 300));

            targetBody = Planetarium.fetch.Home;
            this.AddParameter(new refuelingParameter(resource, vessel, resourceAmount, reward));
            base.SetExpiry(25, 100);
            base.SetScience(0f, targetBody);
            base.SetDeadlineYears(10f, targetBody);
            base.SetReputation(0f, 0f, targetBody);
            base.SetFunds(0f, reward, 0f, targetBody);
            return(true);
        }
Esempio n. 5
0
        public static string KerbalName(ProtoCrewMember.Gender gender)
        {
            string defaultKerbalName = "";

            do
            {
                defaultKerbalName = CrewGenerator.GetRandomName(gender, random);
            }while (nameCache.ContainsKey(defaultKerbalName));

            string kerbalName = "";

            do
            {
                kerbalName = DraftTwitchViewers.KerbalName(defaultKerbalName);
            }while (nameCache.ContainsKey(kerbalName));

            nameCache.Add(kerbalName, 0);
            return(kerbalName);
        }
        void DrawGUISlaves(int windowID)
        {
            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            GUILayout.Label("Hello! When trafficking slaves, make sure the police don't find out!", HighLogic.Skin.label);
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("Male  " + "      Price: " + slavePrice.ToString(), HighLogic.Skin.label);
            if (GUILayout.Button("Buy Slave", HighLogic.Skin.button))
            {
                if (Funding.Instance.Funds < 1000)
                {
                    ScreenMessages.PostScreenMessage("Not enough eunds", 5.0f, ScreenMessageStyle.UPPER_CENTER);
                }
                else
                {
                    Funding.Instance.AddFunds(-slavePrice, TransactionReasons.CrewRecruited);
                    ProtoCrewMember slave = HighLogic.CurrentGame.CrewRoster.GetNewKerbal(ProtoCrewMember.KerbalType.Tourist);
                    slave.ChangeName(CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Male) + " (slave)");
                    slave.gender    = ProtoCrewMember.Gender.Male;
                    slave.courage   = 1;
                    slave.stupidity = 1;
                    slave.isBadass  = true;
                    foreach (Part CrewPart in vessel.Parts)
                    {
                        if (CrewPart.protoModuleCrew.Count < CrewPart.CrewCapacity)
                        {
                            CrewPart.AddCrewmemberAt(slave, CrewPart.protoModuleCrew.Count);
                            CrewPart.SpawnIVA();
                            if (CameraManager.Instance.currentCameraMode == CameraManager.CameraMode.Flight)
                            {
                                CameraManager.Instance.SetCameraMap();
                                CameraManager.Instance.SetCameraFlight();
                            }

                            break;
                        }
                    }

                    ScreenMessages.PostScreenMessage("New Slave Added (male)", 5.0f, ScreenMessageStyle.UPPER_CENTER);
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("Female" + "      Price: " + slavePrice.ToString(), HighLogic.Skin.label);
            if (GUILayout.Button("Buy Slave", HighLogic.Skin.button))
            {
                if (Funding.Instance.Funds < 900)
                {
                    ScreenMessages.PostScreenMessage("Not enough funds", 5.0f, ScreenMessageStyle.UPPER_CENTER);
                }
                else
                {
                    Funding.Instance.AddFunds(-slavePrice, TransactionReasons.CrewRecruited);
                    ProtoCrewMember slave = HighLogic.CurrentGame.CrewRoster.GetNewKerbal(ProtoCrewMember.KerbalType.Tourist);
                    slave.type = ProtoCrewMember.KerbalType.Tourist;
                    slave.ChangeName(CrewGenerator.GetRandomName(ProtoCrewMember.Gender.Female) + " (slave)");
                    slave.gender    = ProtoCrewMember.Gender.Female;
                    slave.courage   = 1;
                    slave.stupidity = 1;
                    slave.isBadass  = true;
                    foreach (Part CrewPart in vessel.Parts)
                    {
                        if (CrewPart.protoModuleCrew.Count < CrewPart.CrewCapacity)
                        {
                            CrewPart.AddCrewmemberAt(slave, CrewPart.protoModuleCrew.Count);
                            CrewPart.SpawnIVA();
                            if (CameraManager.Instance.currentCameraMode != CameraManager.CameraMode.Flight)
                            {
                                CameraManager.Instance.SetCameraFlight();
                            }
                            CameraManager.Instance.SetCameraMap();
                            CameraManager.Instance.SetCameraFlight();

                            break;
                        }
                    }
                    ScreenMessages.PostScreenMessage("New Slave Added (female)", 5.0f, ScreenMessageStyle.UPPER_CENTER);
                }
            }
            GUILayout.EndHorizontal();
            GUILayout.Label("Sell Slaves:", HighLogic.Skin.label);

            scrollPos = GUILayout.BeginScrollView(scrollPos, HighLogic.Skin.scrollView);
            foreach (Part vPart in vessel.Parts)
            {
                foreach (ProtoCrewMember slaves in vPart.protoModuleCrew)
                {
                    if (slaves.type == ProtoCrewMember.KerbalType.Tourist)
                    {
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Name: " + slaves.name, HighLogic.Skin.label);
                        GUILayout.Label("Gender: " + slaves.gender.ToString());
                        GUILayout.Label("Price: " + slavePrice.ToString());
                        if (GUILayout.Button("Sell", HighLogic.Skin.button))
                        {
                            ScreenMessages.PostScreenMessage("Slave selled", 5.0f, ScreenMessageStyle.UPPER_CENTER);
                            Funding.Instance.AddFunds(slavePrice, TransactionReasons.CrewRecruited);
                            vPart.protoModuleCrew.Remove(slaves);
                            vPart.DespawnIVA();
                            if (CameraManager.Instance.currentCameraMode != CameraManager.CameraMode.Flight)
                            {
                                CameraManager.Instance.SetCameraFlight();
                            }
                            CameraManager.Instance.SetCameraMap();
                            CameraManager.Instance.SetCameraFlight();
                            vPart.SpawnIVA();
                            if (CameraManager.Instance.currentCameraMode != CameraManager.CameraMode.Flight)
                            {
                                CameraManager.Instance.SetCameraFlight();
                            }
                            CameraManager.Instance.SetCameraMap();
                            CameraManager.Instance.SetCameraFlight();
                            break;
                        }
                        GUILayout.EndHorizontal();
                    }
                }
            }

            GUILayout.EndScrollView();
            if (GUILayout.Button("Close", HighLogic.Skin.button))
            {
                slaveWindow         = false;
                MainMenu.menuWindow = true;
                foreach (Part parts in vessel.Parts)
                {
                    parts.SpawnIVA();
                    if (CameraManager.Instance.currentCameraMode != CameraManager.CameraMode.Flight)
                    {
                        CameraManager.Instance.SetCameraFlight();
                    }
                    CameraManager.Instance.SetCameraMap();
                    CameraManager.Instance.SetCameraFlight();
                }
            }
            GUILayout.EndVertical();
        }