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; } }
// 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 (); }
// update list of known planets for a player public void AddKnownPlanet(OwnedPlanet p) { ownedPlanets.Add(p); }
// update list of owned planets for a player public void AddOwnedPlanet(OwnedPlanet p) { p.playerOwned = 1; ownedPlanets.Add(p); }