void Start() { Debug.Log("Game Start"); placeObjects(); bottomHeight = 2 - (scale.y / 2); state = dropState.WAITING; currentVerbIndex = 0; verbSpawnPosition = Vector3.zero; verbSpawnPosition.y = (scale.y / 2) - 1; verbSpawnPosition.z -= 1; }
IEnumerator showMessage(int group) { string message = currentVerb.GetComponent <Verb>().message; Destroy(Instantiate(goodEffect, currentVerb.transform.position, goodEffect.transform.rotation), 4f); Destroy(currentVerb, 4f); goodMessage.showMessage(message); yield return(new WaitForSeconds(messageTime)); state = dropState.WAITING; }
//Todo: Drop and switch the verbs void Update() { if (state == dropState.WAITING) { if (currentVerbIndex >= verbs.Length) { state = dropState.GAMEOVER; } else { Debug.Log("Dropping new verb!"); StartCoroutine("drop"); } } }
IEnumerator drop() { Debug.Log("Verb drop start"); state = dropState.DROPPING; //TODO: Spawn verb currentVerb = Instantiate(verbs[currentVerbIndex++].gameObject); Transform verbTransform = currentVerb.transform; verbTransform.position = verbSpawnPosition; while (verbTransform.position.y > bottomHeight) { verbTransform.Translate(0, -Time.deltaTime * dropSpeed, 0); yield return(null); } StartCoroutine("moveToSide"); }
IEnumerator moveToSide() { state = dropState.MOVINGTOSIDE; Transform verbTransform = currentVerb.transform; Vector3 selectedSide = new Vector3(); // Lazy side float movementRemaining = 2f; float rnd = currentVerb.GetComponent <Verb>().side; int selectedGroup; if (rnd == 1) { //Left selectedGroup = 1; selectedSide.x -= 2; } else if (rnd == 2) { //Right selectedSide.x += 2; selectedGroup = 2; } else { //Bottom selectedGroup = 3; selectedSide.y -= 0.1f; } while (movementRemaining > 0) { verbTransform.Translate(selectedSide * Time.deltaTime * dropSpeed); movementRemaining -= Time.deltaTime * dropSpeed; yield return(null); } state = dropState.MESSAGE; StartCoroutine("showMessage", selectedGroup); }