public static Clue CreateClue(StarSystemGenerator.StarSystemInfo ssi, int numberOfJumps, float distance)
    {
        Clue newClue = new Clue();

//		switch (value) {
//		case 0:
//			newClue.systemNumberOfPlanets = ssi.numberOfPlanets;
//			break;
//		case 1:
//			newClue.systemHasAsteroidBelt = ssi.asteroidBelt;
//			break;
//		case 2:
//			newClue.systemStarType = ssi.starType;
//			break;
//		case 3:
//			newClue.systemNumberOfPlanets = ssi.numberOfPlanets;
//			newClue.systemHasAsteroidBelt = ssi.asteroidBelt;
//			break;
//		case 4:
//			newClue.systemNumberOfPlanets = ssi.numberOfPlanets;
//			newClue.systemStarType = ssi.starType;
//			break;
//		case 5:
//			newClue.systemHasAsteroidBelt = ssi.asteroidBelt;
//			newClue.systemStarType = ssi.starType;
//			break;
//		case 6:
//			newClue.systemNumberOfPlanets = ssi.numberOfPlanets;
//			newClue.systemHasAsteroidBelt = ssi.asteroidBelt;
//			newClue.systemStarType = ssi.starType;
//			break;
//		default:
//
//			break;
//
//		}


        newClue.systemNumberOfPlanets = ssi.numberOfPlanets;
        newClue.systemHasAsteroidBelt = ssi.asteroidBelt;
        newClue.systemStarType        = ssi.starType;
        newClue.distance     = distance;
        newClue.jumpDistance = numberOfJumps;

        return(newClue);
    }
Exemplo n.º 2
0
    public Clue CreateClue(int seed, int numberOfJumps, float distance)
    {
        clueKnown = new bool[5];

        Clue newClue = new Clue();

        StarSystemGenerator.StarSystemInfo ssi = StarSystemGenerator.GetStarSystemInfo(seed);

        newClue.systemNumberOfPlanets    = ssi.numberOfPlanets;
        newClue.systemNumberOfPlanetsMin = ssi.numberOfPlanets - Random.Range(1, 4);
        if (newClue.systemNumberOfPlanetsMin < 0)
        {
            newClue.systemNumberOfPlanetsMin = 0;
        }
        newClue.systemNumberOfPlanetsMax = ssi.numberOfPlanets + Random.Range(1, 4);

        newClue.systemHasAsteroidBelt = ssi.asteroidBelt;

        newClue.systemStarType      = ssi.starType;
        newClue.systemStarTypeFake1 = GetRandomStarType(new StarType[] { ssi.starType });
        newClue.systemStarTypeFake2 = GetRandomStarType(new StarType[] { ssi.starType, newClue.systemStarTypeFake1 });

        newClue.distance    = distance;
        newClue.distanceMin = distance - Random.Range(50, 250);
        if (newClue.distanceMin < 0)
        {
            newClue.distanceMin = 0;
        }

        newClue.distanceMax = distance + Random.Range(50, 250);

        newClue.jumpDistance    = numberOfJumps;
        newClue.jumpDistanceMin = numberOfJumps - Random.Range(8, 20);
        if (newClue.jumpDistanceMin < 0)
        {
            newClue.jumpDistanceMin = 0;
        }

        newClue.jumpDistanceMax = numberOfJumps + Random.Range(8, 20);

        return(newClue);
    }
Exemplo n.º 3
0
    public void MoveBetweenSystems(int _targetSystem, bool _active)
    {
        StarSystemGenerator.StarSystemInfo ssi = mainGeneration.GenerateSystem(mainGeneration.starSystem[_targetSystem], _active);

        ship.transform.position = GetPosition(GetDegrees(GetHeading(mainGeneration.systemPoint [_targetSystem].position, mainGeneration.systemPoint [mainGeneration.currentSystem].position).normalized), (ssi.systemSize + 20));

        //SystemViewMode ();
        if (targetSystem == mainGeneration.currentSystem)
        {
            targetSystem = _targetSystem;
        }
        mainGeneration.currentSystem = _targetSystem;
        //mainGeneration.currentSystemObject.transform.position = mainGeneration.systemPoint [mainGeneration.currentSystem].position;
        UpdateCurrentSystemRing(mainGeneration.systemPoint [mainGeneration.currentSystem].position);

        ClearNumberOfSystemJumps();
        CalculateNumberOfSystemJumpsBetweenSystems(mainGeneration.currentSystem, mainGeneration.currentSystem, 0);
        UpdateClue();
        UpdateClueDisplay();

        //transform.GetChild (1).gameObject.SetActive (_active);
    }
Exemplo n.º 4
0
    public void UpdateClueDisplay()
    {
        clueText [5].text = (clueKnown[0])? clue.systemNumberOfPlanets.ToString() : clue.systemNumberOfPlanetsMin.ToString() + "-" + clue.systemNumberOfPlanetsMax.ToString();
        clueText [6].text = (clueKnown[1])? clue.systemHasAsteroidBelt.ToString() : "???";

        string[] starTypeString = new string[] {
            clue.systemStarTypeFake1.ToString(),
                 clue.systemStarType.ToString(),
                 clue.systemStarTypeFake2.ToString()
        };
        RandomiseOrder(starTypeString);

        clueText [7].text = (clueKnown[2])? clue.systemStarType.ToString() : starTypeString[0] + "-" + starTypeString[1] + "-" + starTypeString[2];
        clueText [8].text = (clueKnown[3])? ((int)clue.distance).ToString() : ((int)clue.distanceMin).ToString() + "-" + ((int)clue.distanceMax).ToString();
        clueText [9].text = (clueKnown[4])? clue.jumpDistance.ToString() : clue.jumpDistanceMin.ToString() + "-" + clue.jumpDistanceMax.ToString();


        StarSystemGenerator.StarSystemInfo ssi = StarSystemGenerator.GetStarSystemInfo(mainGeneration.starSystem [targetSystem].seed);

        clueText [10].text = ssi.numberOfPlanets.ToString();
        clueText [11].text = ssi.asteroidBelt.ToString();
        clueText [12].text = ssi.starType.ToString();
        clueText [13].text = ((int)GetSystemDistance(mainGeneration.currentSystem, targetSystem)).ToString();
        clueText [14].text = mainGeneration.systemPoint [targetSystem].numberOfJumpsAway.ToString();


        if (clueKnown [0])
        {
            clueText [15].text = (clue.systemNumberOfPlanets == ssi.numberOfPlanets ? "=" : "<color=#ff0000ff>X</color>");
        }
        else
        {
            if (ssi.numberOfPlanets >= clue.systemNumberOfPlanetsMin && ssi.numberOfPlanets <= clue.systemNumberOfPlanetsMax)
            {
                clueText [15].text = "~";
            }
            else
            {
                clueText [15].text = "<color=#ff0000ff>X</color>";
            }
        }

        if (clueKnown [1])
        {
            clueText [16].text = (clue.systemHasAsteroidBelt == ssi.asteroidBelt ? "=" : "<color=#ff0000ff>X</color>");
        }
        else
        {
            clueText [16].text = "~";
        }

        if (clueKnown [2])
        {
            clueText [17].text = (clue.systemStarType == ssi.starType ? "=" : "<color=#ff0000ff>X</color>");
        }
        else
        {
            if (ssi.starType == clue.systemStarType || ssi.starType == clue.systemStarTypeFake1 || ssi.starType == clue.systemStarTypeFake2)
            {
                clueText [17].text = "~";
            }
            else
            {
                clueText [17].text = "<color=#ff0000ff>X</color>";
            }
        }

        if (clueKnown [3])
        {
            clueText [18].text = ((int)clue.distance == (int)GetSystemDistance(mainGeneration.currentSystem, targetSystem) ? "=" : "<color=#ff0000ff>X</color>");
        }
        else
        {
            if ((int)GetSystemDistance(mainGeneration.currentSystem, targetSystem) >= clue.distanceMin && (int)GetSystemDistance(mainGeneration.currentSystem, targetSystem) <= clue.distanceMax)
            {
                clueText [18].text = "~";
            }
            else
            {
                clueText [18].text = "<color=#ff0000ff>X</color>";
            }
        }

        if (clueKnown [4])
        {
            clueText [19].text = (clue.jumpDistance == mainGeneration.systemPoint [targetSystem].numberOfJumpsAway ? "=" : "<color=#ff0000ff>X</color>");
        }
        else
        {
            if (mainGeneration.systemPoint [targetSystem].numberOfJumpsAway >= clue.jumpDistanceMin && mainGeneration.systemPoint [targetSystem].numberOfJumpsAway <= clue.jumpDistanceMax)
            {
                clueText [19].text = "~";
            }
            else
            {
                clueText [19].text = "<color=#ff0000ff>X</color>";
            }
        }
    }
Exemplo n.º 5
0
    void UpdateGame()
    {
        if (finalEventBox.activeSelf)
        {
            return;
        }
        if (shipDestroyedBox.activeSelf)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (eventSystem.eventObject.activeSelf)
            {
                return;
            }
            else if (researchOutpostUI.activeSelf)
            {
                return;
            }
            else if (shopUI.activeSelf)
            {
                return;
            }
            else if (autoPilotToggle.isOn)
            {
                CancelAutoPilotConfimation();
                autoPilotToggle.isOn = false;
            }
            else if (blockingCanvas.sortingOrder == 3)
            {
                OpenQuitConfimationBoxMenu(false);
                OpenQuitConfimationBoxDesktop(false);
            }
            else if (gameMenuUI.activeSelf)
            {
                OpenGameMenu(false);
            }
            else if (blockingCanvas.sortingOrder == 1 && blockingCanvas.gameObject.activeSelf)
            {
                CancelDriveJumpConfimation();
                CancelSystemJumpConfimation();
            }
            else
            {
                OpenGameMenu(true);
            }
        }

        if (blockingCanvas.gameObject.activeSelf)
        {
            return;
        }

        if (autoPilotToggle.isOn)
        {
            UpdateAutoPilot();
        }
        if (systemJumping)
        {
            UpdateSystemJump();
            return;
        }
        if (driveJumping)
        {
            UpdateJumpDrive();
            return;
        }

        if (mainEventProgress == 10)
        {
            FinalEvent();
            SetBlockingCanvas(true, 1);
        }

        for (int i = 0; i < 2; i++)
        {
            cameras[i].UpdateCamera(mainMenu.cameraFollowShip.isOn);
        }

        if (ship.gameObject.activeSelf)
        {
            if (ship.UpdateShip(mainMenu.holdToMove.isOn) == false)
            {
                ShipDestroyed();
                SetBlockingCanvas(true, 1);
            }

            Collider[] overlaps;
            overlaps = Physics.OverlapSphere(ship.transform.position, 5);

            if (overlaps.Length > 0)
            {
                interactionUI.SetActive(true);
                interactionText.text = overlaps [0].tag;
            }
            else
            {
                interactionUI.SetActive(false);
            }

            if (Input.GetKeyDown(KeyCode.E))
            {
                InteractionCheck();
            }
        }

        if (ship.money < 0)
        {
            ship.money = 0;
        }
        if (ship.research < 0)
        {
            ship.research = 0;
        }
        if (ship.jumpCharges < 0)
        {
            ship.jumpCharges = 0;
        }

        shipText [0].text = ship.strength.ToString() + "/" + ship.maxStrength.ToString();
        shipText [1].text = ship.money.ToString();
        shipText [2].text = ship.research.ToString();
        shipText [3].text = ship.jumpCharges.ToString() + "/" + ship.maxJumpCharges.ToString();



        if (Vector3.Distance(transform.position, ship.transform.position) > StarSystemGenerator.GetStarSystemEdgeDistance(mainGeneration.starSystem[mainGeneration.currentSystem].seed))
        {
            shipOnOuterEdge = true;
        }
        else
        {
            shipOnOuterEdge = false;
        }

        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            if (hit.transform.tag == "SystemPoint")
            {
                mainGeneration.currentHoverSystem = hit.transform.gameObject.GetComponent <SystemPoint> ().GetStarSystem();

                SystemInfoUI.SetActive(true);

//				if (Input.mousePosition.y > (Screen.height / 10) *9) {
//
//
//				}

                SystemInfoUI.transform.position = Input.mousePosition;

                StarSystemGenerator.StarSystemInfo ssi = StarSystemGenerator.GetStarSystemInfo(mainGeneration.starSystem [mainGeneration.currentHoverSystem].seed);

                text [0].text = "Number of Planets: " + ssi.numberOfPlanets.ToString();
                text [1].text = "Has Asteroid Belt: " + ssi.asteroidBelt.ToString();
                text [2].text = "Star Class: " + ssi.starType.ToString();
                text [3].text = "Distance: " + (int)GetSystemDistance(mainGeneration.currentSystem, mainGeneration.currentHoverSystem);
                text [4].text = "System Jumps Away: " + mainGeneration.systemPoint [mainGeneration.currentHoverSystem].numberOfJumpsAway;


                if (Input.GetMouseButtonDown(0))
                {
                    //if (jumping) {
                    if (driveModeSlider.value == 0)
                    {
                        if (CheckSystemDistance(mainGeneration.currentSystem, mainGeneration.currentHoverSystem, ship.maxJumpDistance))
                        {
                            driveJumpConfimationBox.SetActive(true);
                            driveJumpConfimationBox.transform.position = Input.mousePosition;
                            audioControl.PlaySoundEffect(2);
                            SetBlockingCanvas(true, 1);
                        }
                    }
                    else
                    {
                        if (CheckSystemConnection(mainGeneration.currentSystem, mainGeneration.currentHoverSystem))
                        {
                            if (shipOnOuterEdge)
                            {
                                systemJumpConfimationBox.SetActive(true);
                                systemJumpConfimationBox.transform.position = Input.mousePosition;
                                audioControl.PlaySoundEffect(2);
                                SetBlockingCanvas(true, 1);
                            }
                        }
                    }
                }
                else if (Input.GetMouseButtonDown(1))
                {
                    SetupNewTargetSystem(mainGeneration.currentHoverSystem);
                    UpdateClueDisplay();
                }
            }
        }
        else
        {
            SystemInfoUI.SetActive(false);
        }
    }