public IEnumerator Move() { ShowMove(); ToggleWindow(false, false); QuadTile target = null; // Wait for click while (!target) { if (Input.GetButtonDown("Fire1")) { target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker")); } yield return(null); } mover.StopUpdatingPath = true; ConfirmationDialog dialog = Instantiate(dialogPrefab, transform.parent); // Wait for dialog input while (dialog.Result == DialogResult.None) { yield return(null); } if (dialog.Result == DialogResult.Yes) { Destroy(dialog.gameObject); CharacterData data = turnManager.CurrentCharacter.Data; MoveParams moveParams = moved ? data.rushParams : data.moveParams; yield return(StartCoroutine(mover.Move(turnManager.CurrentCharacter, target.Path(), moveParams, data.jumpParams))); turnManager.CurrentCharacter.LoseActionPoints(moveCost); moveCost++; if (moved) { MoveButton.interactable = false; } moved = true; } else { Destroy(dialog.gameObject); } mover.Clear(PathfindingClear.Both); ToggleWindow(true, false); }
private IEnumerator PickTarget() { ToggleHideUI(); while (!Input.GetButtonDown("Fire1")) { yield return(null); } QuadTile target = QuadTileMap.GetTarget(LayerMask.GetMask("Default")); UpdateTarget(target.PositionVector2Int); targetXInput.text = lastSelected.dialogEvent.target.x.ToString(); targetYInput.text = lastSelected.dialogEvent.target.y.ToString(); ToggleHideUI(); }
private void Update() { if (StopUpdatingPath) { return; } QuadTile target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker")); if (target) { DrawPath(target); } }
public IEnumerator Attack() { attacker.ShowPossible(turnManager.CurrentCharacter); ToggleWindow(false, false); QuadTile target = null; while (!target) { if (Input.GetButtonDown("Fire1")) { target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker")); } yield return(null); } ConfirmationDialog dialog = Instantiate(dialogPrefab, transform.parent); // Wait for dialog input while (dialog.Result == DialogResult.None) { yield return(null); } if (dialog.Result == DialogResult.Yes) { Destroy(dialog.gameObject); CharacterData data = turnManager.CurrentCharacter.Data; attacker.Attack(target); turnManager.CurrentCharacter.LoseActionPoints(attackCost); attackCost++; if (moved) { MoveButton.interactable = false; } moved = true; } else { Destroy(dialog.gameObject); } attacker.Clear(); ToggleWindow(true, false); }
private void OnSceneGui(SceneView sv) { DrawControls(); tileMap = FindObjectOfType <QuadTileMap>(); _selectionTile.gameObject.SetActive(editMode != LevelEditMode.None); Event e = Event.current; // Convert mouse position to world position by finding point where y = 0. Ray ray = HandleUtility.GUIPointToWorldRay(e.mousePosition); Vector3 pos = ray.origin - (ray.origin.y / ray.direction.y) * ray.direction; Vector3 snappedPosition = QuadTileMap.GetPositionClosestTo(pos); _selectionTile.transform.position = snappedPosition; _selectionTile.UpdateHeight(height); ModeChanged(); int controlId = GUIUtility.GetControlID(FocusType.Passive); if (e.GetTypeForControl(controlId) == EventType.ScrollWheel && e.control) { if (e.delta.y > 0) { DecreaseHeight(); } else if (e.delta.y < 0) { IncreaseHeight(); } e.Use(); } if (e.GetTypeForControl(controlId) == EventType.KeyDown && e.control) { switch (e.keyCode) { case NON_KEY: editMode = LevelEditMode.None; break; case ADD_KEY: editMode = LevelEditMode.Add; break; case REM_KEY: editMode = LevelEditMode.Delete; break; } e.Use(); Repaint(); } if (e.GetTypeForControl(controlId) == EventType.MouseDown) { if (e.button == 0) { switch (editMode) { case LevelEditMode.Add: tileMap.AddTile(snappedPosition, brush, height); break; case LevelEditMode.Delete: tileMap.DeleteTile(snappedPosition); break; case LevelEditMode.None: return; } } } lastSnappedPosition = snappedPosition; }
void Start() { Arrow = Instantiate(ArrowPrefab); Arrow.gameObject.SetActive(false); tileMap = FindObjectOfType <QuadTileMap>(); }
private void Start() { tileMap = FindObjectOfType <QuadTileMap>(); }