protected IEnumerator MoveY(Action resolve, CSCManager chara, float dist, bool followUp = false, bool backwards = false, float speed = 1f) { Debug.Log("here MoveY"); // Change chara sprite/animation // If dist > 0, chara faces up // Else faces down if ((backwards ? dist * -1 : dist) > 0) { chara.TurnUp(); } else { chara.TurnDown(); } chara.CharacterAnimator.Play("Walking"); float elapsedDist = 0f; Vector3 pos = chara.GetCharaTransform().position; while (elapsedDist < Mathf.Abs(dist)) { elapsedDist += Time.deltaTime * chara.AlterSpeed * speed; //Debug.Log("elapsedDist: " + elapsedDist); //Debug.Log("pos: " + pos); //Debug.Log("pos: " + pos); chara.GetCharaTransform().position = pos + new Vector3(0, Mathf.Sign(dist) * elapsedDist, 0); yield return(null); } if (!followUp) { // Stop character when finished chara.CharacterAnimator.Play("Idle"); } resolve(); }
protected IPromise WaitWhileCharaSpeaks(CSCManager chara) { chara.Speak(); return(promiseTimer.WaitUntil(t => !(SomeoneIsTalking = chara.Talking()))); }
protected IPromise PromMoveX(CSCManager chara, float dist, bool followUp = false, bool backwards = false, float speed = 1f) { return(new Promise((resolve, reject) => StartCoroutine(MoveX(resolve, chara, dist, followUp, backwards, speed)))); }