private void Initialize() { if (Spawner != null) { Spawner.UnitCount = Spawner.UnitCountInitial; Spawner.UpdateLabel(); } if (GameManager.Instance.PlayersWithUnassignedPlanets.Count > 0 && UseAsStartPosition) { int player = GameManager.Instance.PlayersWithUnassignedPlanets.Dequeue(); PlayerController playerController = GameManager.Instance.PlayerController[player + 1]; SetOwner(player, playerController); Type = PlanetType.Main; playerController.Trans.position = Trans.position; Vector3 pos = Trans.position; pos.z += 0.1f; MothershipOrbit newMothershipOrbit = Instantiate(mothershipOrbitPrefab, Trans.position, Trans.rotation, Trans).GetComponent <MothershipOrbit>(); newMothershipOrbit.transform.position = pos; newMothershipOrbit.Owner.PlayerController = Owner.PlayerController; newMothershipOrbit.Owner.PlayerNumber = Owner.PlayerNumber; newMothershipOrbit.DelayedStart(); newMothershipOrbit.Planet = this; } else { int player = -1; PlayerController playerController = GameManager.Instance.PlayerController[player + 1]; SetOwner(player, playerController); } explosionPrefab = Resources.Load <GameObject>("Explosion"); }
protected override void OnMouseBtnDown() { base.OnMouseBtnDown(); RaycastHit2D hit = TheCamera.Raycast2DScreen(Input.mousePosition); if (hit && SelectedBas == null) { Planet bas = hit.transform.gameObject.GetComponent <Planet>(); MothershipOrbit mothershipOrbit = hit.transform.GetComponent <MothershipOrbit>(); if (bas != null && bas.Owner.PlayerNumber == 0) { SelectedBas = bas; bas.MakeArrow(); } else if (mothershipOrbit != null && mothershipOrbit.Mothership.Owner.PlayerNumber == 0) { SelectedMothershipOrbit = mothershipOrbit; mothershipOrbit.MakeArrow(); } } }
protected override void OnMouseBtnUp() { base.OnMouseBtnUp(); if (SelectedBas != null) { DestroyObject(SelectedBas.LineRendererArrow); foreach (var b in GameManager.Instance.Planets) { b.GlowRemove(); } RaycastHit2D hit = TheCamera.Raycast2DScreen(Input.mousePosition); if (hit) { Planet bas = hit.transform.gameObject.GetComponent <Planet>(); if (bas != null && bas != SelectedBas) { SelectedBas.Spawner.ReleaseUnits(bas.gameObject); } } SelectedBas = null; } if (SelectedMothershipOrbit != null) { DestroyObject(SelectedMothershipOrbit.LineRendererArrow); RaycastHit2D hit = TheCamera.Raycast2DScreen(Input.mousePosition); if (hit) { Planet bas = hit.transform.GetComponent <Planet>(); if (bas != null && bas != SelectedMothershipOrbit.Planet) // && bas.owner.playerNumber == 0) { SelectedMothershipOrbit.AssignToBase(bas); } } SelectedMothershipOrbit = null; } }