public void Initialize(SectorCreatorMouse.PlaceableObject core, SectorCreatorMouse mouse) { shellcore = core.assetID == "shellcore_blueprint"; JSONField.transform.parent.gameObject.SetActive(shellcore); if (core.type == SectorCreatorMouse.ObjectTypes.Flag) { factionDropdown.transform.parent.gameObject.SetActive(false); } PlayerViewScript.SetCurrentWindow(this); this.mouse = mouse; currentCore = core; window.SetActive(true); if (currentCore.shellcoreJSON != null) { JSONField.text = currentCore.shellcoreJSON; } if (core.type != SectorCreatorMouse.ObjectTypes.Flag) { factionDropdown.value = currentCore.faction; } IDField.text = core.obj.name; }
void Initialize() { GetComponent <RectTransform>().anchoredPosition = Vector2.zero; AudioManager.PlayClipByID("clip_select"); PlayerViewScript.SetCurrentWindow(this); GetComponentInParent <Canvas>().sortingOrder = ++PlayerViewScript.currentLayer; playerName.text = "<color=yellow>" + player.cursave.name + "</color>"; base.Activate(); }
public virtual void Activate() { transform.parent.gameObject.SetActive(true); GetComponentInParent <Canvas>().sortingOrder = ++PlayerViewScript.currentLayer; // move window to top PlayerViewScript.SetCurrentWindow(this); if (exitOnPlayerRange && PlayerCore.Instance) { lastPos = PlayerCore.Instance.transform.position; } }
public virtual void ToggleActive() { bool active = transform.parent.gameObject.activeSelf; if (active) { CloseUI(); } else { transform.parent.gameObject.SetActive(true); GetComponentInParent <Canvas>().sortingOrder = ++PlayerViewScript.currentLayer; // move window to top PlayerViewScript.SetCurrentWindow(this); } }
// Update is called once per frame void Awake() { if (escapeMenu) { escapeCanvas = escapeMenu.GetComponentInChildren <Canvas>(); } currentWindow = new Stack <IWindow>(); instance = this; if (escapeMenu) { escapeMenu.SetActive(false); } paused = false; Time.timeScale = 1; }
void focus() { if (Time.timeScale == 0) { return; } if (player != null) { if (player.GetIsInteracting() || closest == null || closest.Equals(null) || (closest.GetTransform().position - player.transform.position).sqrMagnitude >= 100) { interactIndicator.localScale = new Vector3(1, 0, 1); interactIndicator.gameObject.SetActive(false); return; } else { // interact indicator image and animation interactIndicator.gameObject.SetActive(true); var y = interactIndicator.localScale.y; if (lastInteractable != closest) { lastInteractable = closest; interactIndicator.localScale = new Vector3(1, 0, 1); } if (y < 1) { interactIndicator.localScale = new Vector3(1, Mathf.Min(1, y + 0.1F), 1); } interactIndicator.anchoredPosition = Camera.main.WorldToScreenPoint(closest.GetTransform().position) + new Vector3(0, 50); if (InputManager.GetKeyUp(KeyName.Interact) && !PlayerViewScript.GetIsWindowActive()) { ActivateInteraction(closest); // key received; activate interaction } } } }
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // create a ray RaycastHit2D[] hits = Physics2D.GetRayIntersectionAll(ray, Mathf.Infinity); // get an array of all hits bool overTarget = false; foreach (var hit in hits) { var hitTransforn = hit.transform; var ent = hitTransforn.GetComponent <Entity>(); if ((hitTransforn.GetComponent <ITargetable>() != null && hitTransforn != PlayerCore.Instance.transform) || (hitTransforn.GetComponent <Draggable>() && (!ent || ent.faction == PlayerCore.Instance.faction))) { Cursor.SetCursor(overTargetableCursor, new Vector2(-0.16F, 0.16F), CursorMode.Auto); overTarget = true; break; } } if (!overTarget) { Cursor.SetCursor(defaultCursor, new Vector2(-0.16F, 0.16F), CursorMode.Auto); } // Clear targets if in cutscene/interacting if (PlayerCore.Instance.GetIsInteracting() || DialogueSystem.isInCutscene || PlayerViewScript.paused || PlayerViewScript.GetIsWindowActive()) { // Debug.Log(PlayerCore.Instance.GetIsInteracting() + " " + DialogueSystem.isInCutscene + " " + PlayerViewScript.paused + " " + PlayerViewScript.GetIsWindowActive()); if (!PlayerViewScript.paused) { reticleScript.ClearSecondaryTargets(); reticleScript.SetTarget(null); } image.enabled = false; clicking = false; return; } var targSys = PlayerCore.Instance.GetTargetingSystem(); // Tab cycles primary target if (Input.GetKeyDown(KeyCode.Tab) && targSys.GetSecondaryTargets().Count > 0) { if (targSys.GetTarget() && targSys.GetTarget().GetComponent <Entity>()) { reticleScript.AddSecondaryTarget(targSys.GetTarget().GetComponent <Entity>()); } var newTarget = targSys.GetSecondaryTargets()[0]; reticleScript.SetTarget(newTarget.transform); reticleScript.RemoveSecondaryTarget(newTarget); } // Right click clears targets /* * if(Input.GetMouseButtonDown(1)) * { * if(Input.GetKey(KeyCode.LeftShift)) * { * PlayerCore.Instance.GetTargetingSystem().SetTarget(null); * } * else * { * if(PlayerCore.Instance.GetTargetingSystem().GetSecondaryTargets().Count > 0) * reticleScript.ClearSecondaryTargets(); * else PlayerCore.Instance.GetTargetingSystem().SetTarget(null); * } * } */ if (Input.GetMouseButtonDown(0) && !eventSystem.IsPointerOverGameObject()) { dronesChecked = reticleScript.FindTarget(); reticleScript.ClearSecondaryTargets(); // Get reference point of selection box for drawing startPoint = Input.mousePosition; image.rectTransform.anchoredPosition = startPoint; clicking = true; } if (((Vector2)Input.mousePosition - startPoint).sqrMagnitude > 10) // Make sure the drag isn't interfering with clicks { if (Input.GetMouseButton(0) && clicking) { // Draw box image.enabled = true; sizeVec = (Vector2)Input.mousePosition - startPoint; sizeVec.x = Mathf.Abs(sizeVec.x); sizeVec.y = Mathf.Abs(sizeVec.y); image.rectTransform.sizeDelta = sizeVec; // Change the pivot of the size delta when the mouse goes under/before the start point pivotVec = new Vector2(); pivotVec.x = Input.mousePosition.x < startPoint.x ? 1 : 0; pivotVec.y = Input.mousePosition.y < startPoint.y ? 1 : 0; image.rectTransform.pivot = pivotVec; } else if (Input.GetMouseButtonUp(0) && clicking) { // End selection, push entities in box into secondary targets clicking = false; // Grab the rect of the selection box Vector2 boxStart = Camera.main.ScreenToWorldPoint(new Vector3(startPoint.x, startPoint.y, CameraScript.zLevel)); Vector2 boxExtents = Camera.main.ScreenToWorldPoint( new Vector3((1 - 2 * pivotVec.x) * sizeVec.x + startPoint.x, (1 - 2 * pivotVec.y) * sizeVec.y + startPoint.y, CameraScript.zLevel)); Rect finalBox = Rect.MinMaxRect( Mathf.Min(boxStart.x, boxExtents.x), Mathf.Min(boxStart.y, boxExtents.y), Mathf.Max(boxStart.x, boxExtents.x), Mathf.Max(boxStart.y, boxExtents.y) ); // Now scan for entities foreach (var ent in AIData.entities) { if (ent != PlayerCore.Instance && ent.transform != PlayerCore.Instance.GetTargetingSystem().GetTarget() && finalBox.Contains(ent.transform.position)) { reticleScript.AddSecondaryTarget(ent); } } image.enabled = false; } } /* * // Drones being commanded has a higher priority than mouse movement, so it should prevent the player themselves from moving. * // This controls mouse movement, first it checks if the click was meant for mouse movement * else if(!dronesChecked && Input.GetMouseButtonUp(0) * && !PlayerCore.Instance.GetIsDead() && !PlayerCore.Instance.GetTargetingSystem().GetTarget() * && (Input.GetKey(KeyCode.LeftShift) || simpleMouseMovement) && !DialogueSystem.isInCutscene) * { * var mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition + new Vector3(0,0,CameraScript.zLevel)); * var renderer = Instantiate(movementReticlePrefab, mouseWorldPos, Quaternion.identity).GetComponent<SpriteRenderer>(); * renderer.color = new Color32((byte)100, (byte)100, (byte)100, (byte)255); * * var node = new PathData.Node(); * node.children = new List<int>(); * node.position = mouseWorldPos; * node.ID = nodeID++; * * if(currentPathData == null || (!Input.GetKey(KeyCode.LeftShift) && simpleMouseMovement)) || { || BeginPathData(node, renderer); || } || else || { || ContinuePathData(node, renderer); || } ||} else if(Input.GetMouseButtonUp(0)) dronesChecked = false; */ }
public virtual void Activate() { transform.parent.gameObject.SetActive(true); GetComponentInParent <Canvas>().sortingOrder = ++PlayerViewScript.currentLayer; // move window to top PlayerViewScript.SetCurrentWindow(this); }
private void ClearTargetsIfInCutsceneOrInteracting() { if (PlayerCore.Instance.GetIsInteracting() || DialogueSystem.isInCutscene || PlayerViewScript.paused || PlayerViewScript.GetIsWindowActive()) { if (!PlayerViewScript.paused) { reticleScript.ClearSecondaryTargets(); reticleScript.SetTarget(null); } SetClicking(false); return; } }