void Update() { environment = GameObject.Find("Environment").GetComponent <Environment> ().pushThisButton; if (totalTime > 0.0f) { percentElapsed = Math.Min(1.0f, percentElapsed + Time.deltaTime / totalTime); } Vector3 pos = transform.position; bool left = Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.A); bool right = (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.D)) && !left; UpdateLists(); if (state == State.Idle && (left || right)) { List <Enemy> list = left ? leftSide : rightSide; if (list.Count > 0) { Enemy enemy = list [0]; list.RemoveAt(0); state = State.Attack; desiredPos = new Vector3(enemy.transform.position.x, pos.y, pos.z); startPos = pos; setAnimLength(0.2f); spriteRenderer.flipX = left; AttackOn(); enemy.Hit(10); } else { score.ComboFail(); this.health -= 1; } } if (state == State.Attack) { transform.position = EaseIn(startPos, desiredPos, percentElapsed); if (percentElapsed == 1.0f) { if (Math.Abs(transform.position.x) > maxDistanceFromCentre) { state = State.WallJump; if (player == 0) { if (environment == 1) { spriteRenderer.sprite = wallslide; } else if (environment == 2) { spriteRenderer.sprite = wallslide; } else if (environment == 3) { spriteRenderer.sprite = wallslidemono; } else if (environment == 4) { spriteRenderer.sprite = wallslidetrue; } } else { if (environment == 1) { spriteRenderer.sprite = gwallslide; } else if (environment == 2) { spriteRenderer.sprite = gwallslide; } else if (environment == 3) { spriteRenderer.sprite = gwallslidemono; } else if (environment == 4) { spriteRenderer.sprite = gwallslidetrue; } } desiredPos = new Vector3(0, -0.6f, 0); startPos = pos; setAnimLength(0.4f); spriteRenderer.flipX = !spriteRenderer.flipX; } else { OnAttackEnd(); } } } else if (state == State.WallJump) { transform.position = EaseIn(startPos, desiredPos, percentElapsed); if (percentElapsed == 1.0f) { OnAttackEnd(); } } if (health < 0 && isAlive) { Die(); } UpdateGuideBoxes(); }