// COMMANDS ///////////////////////////////////////////// private IEnumerator ground(ARGUMENTS args) { // Build ground for (int i = 0; i < args.length; i++) { yield return(new WaitForEndOfFrame()); if (IsCursorOnLevel()) { break; } DestroyTileOnCursor(); Instantiate(pfGround, _cursor.position, Quaternion.identity, _tilesParent); if (IsMovementOutOfBounds(args.direction)) { break; } _cursor.Translate(args.direction); SoundManager.PlaySound("tile"); } }
///////////////////////////////////////////////////////// public void Execute(string command, char direction, int length) { // Check null or negative length if (length < 1) { Logger.instance.LogError("Invalid value."); return; } // Get direction vector. Vector3 dir = Vector3.zero; switch (direction) { case 'l': dir = Vector3.left; break; case 'r': dir = Vector3.right; break; case 'u': dir = Vector3.up; break; case 'd': dir = Vector3.down; break; case '\n': dir = Vector3.zero; break; default: Logger.instance.LogError("Invalid direction: " + direction + "."); return; } // Execute command ARGUMENTS args = new ARGUMENTS(dir, length); StartCoroutine(command, args); }
private IEnumerator build(ARGUMENTS args) { yield return(new WaitForEndOfFrame()); GameManager.instance.FreezeFrame(.1f); GameManager.instance.ScreenShake(.1f, 1f, 50); FindObjectOfType <Bot>().Run(); SoundManager.PlaySound("build"); }
private IEnumerator reset(ARGUMENTS args) { yield return(new WaitForEndOfFrame()); GameManager.instance.FreezeFrame(.1f); GameManager.instance.ScreenShake(.1f, 1f, 50); FindObjectOfType <Version>().Restart(); SoundManager.PlaySound("reset"); }
private IEnumerator laser(ARGUMENTS args) { // Build laser yield return(new WaitForEndOfFrame()); if (!IsCursorOnLevel()) { DestroyTileOnCursor(); Instantiate(pfLaser, _cursor.position, Quaternion.identity, _tilesParent); } SoundManager.PlaySound("tile"); }
private IEnumerator clear(ARGUMENTS args) { // Clear tiles while (_tilesParent.childCount > 1) { yield return(new WaitForEndOfFrame()); Destroy(_tilesParent.GetChild(0).gameObject); } GameManager.instance.FreezeFrame(.1f); GameManager.instance.ScreenShake(.1f, 1f, 50); SoundManager.PlaySound("clear"); }
private IEnumerator move(ARGUMENTS args) { // Move cursor for (int i = 0; i < args.length; i++) { yield return(new WaitForEndOfFrame()); if (IsMovementOutOfBounds(args.direction)) { break; } _cursor.Translate(args.direction); } SoundManager.PlaySound("button"); }
private IEnumerator delete(ARGUMENTS args) { // Delete tiles for (int i = 0; i < args.length; i++) { yield return(new WaitForEndOfFrame()); DestroyTileOnCursor(); if (IsMovementOutOfBounds(args.direction)) { break; } _cursor.Translate(args.direction); } SoundManager.PlaySound("bug"); }
private IEnumerator quit(ARGUMENTS args) { yield return(new WaitForEndOfFrame()); Application.Quit(); }