Example #1
0
        private void AddConnection(OwnedPlanet op)
        {
            Raylib.PlaySound(AssetManager.GetSound("connectionCreate"));
            HomePlanet hp = GetHomePlanet();

            _connectedPlanets.Add(new Connection(hp.Pos, op.Position, op.Type));
        }
        private void ClearSelection()
        {
            OwnedPlanet currentSelection = Entities.OfType <OwnedPlanet>().FirstOrDefault(p => p.Selected == true);

            if (currentSelection != null)
            {
                currentSelection.Selected = false;
            }
        }
        private void CheckForSelection()
        {
            if (!Raylib.IsMouseButtonPressed(MouseButton.MOUSE_LEFT_BUTTON))
            {
                return;
            }

            Vector2 worldPos =
                MouseUtil.ScreenToWorldPosition(Raylib.GetMousePosition() / MoonVars.RenderScale, _camera);

            ClearSelection();

            foreach (OwnedPlanet p in Entities.OfType <OwnedPlanet>())
            {
                if (!p.Collides(worldPos))
                {
                    continue;
                }
                _currentSelection = p;
                p.Selected        = true;
                return;
            }
        }
Example #4
0
	// Update is called once per frame
	void Update () {
		travelTime += Time.deltaTime;
		startPos = Vector3.MoveTowards(origin.transform.position,
		                                         destination.transform.position,
		                                         (origin.transform.localScale.x/2) + (transform.localScale.z/2));
		endPos = Vector3.MoveTowards(destination.transform.position,
		                               origin.transform.position,
		                               (destination.transform.localScale.x/2) + (transform.localScale.z/2));
		Vector3 lookPos = destination.transform.position;
		lookPos = lookPos - transform.position;
		float angle = Mathf.Atan2(lookPos.x, lookPos.y) * Mathf.Rad2Deg;
		transform.rotation = Quaternion.AngleAxis(angle, Vector3.back);

		transform.position = Vector3.MoveTowards (startPos, endPos, speed * travelTime);

		if (transform.position == endPos) {
            
            Star destinationStar = destination.GetComponent<Star>();
            Planet destinationPlanet = destination.GetComponent<Planet>();

            XmlSerializer serializer = new XmlSerializer(typeof(DateTime));
            var xmlCurrentTime = "";
            using (StringWriter textWriter = new StringWriter())
            {
                serializer.Serialize(textWriter, DateTime.Now);
                xmlCurrentTime = textWriter.ToString();
            }
            NetworkManager.instance._controller.SendMissionComplete(id, xmlCurrentTime); // NETWORK STUFF

            if (destinationStar)
            {
                // It's a star - discover the gameobject this ship was sent to
                destinationStar.Discovered = true;
                //PlayerData.instance.discoveredStarSystems.Add(new DiscoveredStar(destination, System.DateTime.Now));
                //NetworkManager.instance._controller.SendDiscoveredStar(destination.gameObject.GetComponent<Star>().myNumber);
                NetworkManager.instance._controller.RetrieveKnownStars();
                //PlayerData.instance.discoveredStarSystems.Add(destination.GetComponent<Star>().myNumber);
                destinationStar.SetDiscoveryTime(System.DateTime.Now);
                origin.GetComponent<Star>().Unload();
                destinationStar.Unload();
            }
            if (destinationPlanet)
            {
                // It's a planet - perform an action on the planet depending on ship class
                // Carrier ship: colonize the ship
                destinationPlanet.personalOwnership = true;
                destinationPlanet.orbitPath.SetColors(Color.green,Color.green);
                destinationPlanet.ownershipState = true;
                var owned = new OwnedPlanet(destination);
                owned.lastcollectedtime = DateTime.Now;
                owned.planetpower = Mathf.RoundToInt((float)destinationPlanet.energyModifier * destinationPlanet.homeStar.baseEnergyLevel);
                owned.planetpopulation = 1000;
                PlayerData.instance.AddOwnedPlanet(owned); // TESTING - add a planet
            }
            PlayerData.instance.shipList.Remove(_info);
            Destroy(this.gameObject);            
        }

		DrawLines ();
	}
Example #5
0
 // update list of known planets for a player
 public void AddKnownPlanet(OwnedPlanet p)
 {
     ownedPlanets.Add(p);
 }
Example #6
0
 // update list of owned planets for a player
 public void AddOwnedPlanet(OwnedPlanet p)
 {
     p.playerOwned = 1;
     ownedPlanets.Add(p);
 }