// Update is called once per frame void Update() { if (Time.timeScale == 0) { return; } if (openUI && Input.GetKeyDown(KeyCode.Escape)) { ToggleUI(); } //animation for starting fire if (playingFireStart) { if (frameIndex < 12) { if (timeSinceLastFrame > animationSpeed) { animRenderer.sprite = animSprites[frameIndex]; timeSinceLastFrame = 0; frameIndex++; } else { timeSinceLastFrame = timeSinceLastFrame + Time.deltaTime; } } else { fire = fireColliderID.gameObject.GetComponent <Fire>(); fire.fireState = 0; } } Fishing fish = GetComponent <Fishing> (); //animation for casting rod if (playingCastRod) { if (frameIndex < 35) { if (timeSinceLastFrame > animationSpeed) { animRenderer.sprite = fishingSprites[frameIndex]; timeSinceLastFrame = 0; frameSkip = frameSkip == 1 ? 2 : 1; frameIndex += frameSkip; } else { timeSinceLastFrame = timeSinceLastFrame + Time.deltaTime; } } else { playingCastRod = false; frameIndex = 35; timeSinceLastFrame = 0; } } else if (fish.isFishing && !fish.minigame && !catchingFish) { if (timeSinceLastFrame > fishIdleSpeed) { animRenderer.sprite = fishingSprites[frameIndex]; fishIdleDirection = frameIndex >= 40 || frameIndex <= 34 ? !fishIdleDirection : fishIdleDirection; frameIndex = fishIdleDirection ? frameIndex - 1 : frameIndex + 1; timeSinceLastFrame = 0; } else { timeSinceLastFrame = timeSinceLastFrame + Time.deltaTime; } } if (catchingFish) { if (frameIndex > 0) { if (timeSinceLastFrame > animationSpeed) { animRenderer.sprite = fishingSprites[frameIndex]; timeSinceLastFrame = 0; frameSkip = frameSkip == 1 ? 2 : 1; frameIndex -= frameSkip; } else { timeSinceLastFrame = timeSinceLastFrame + Time.deltaTime; } } else { fish.hasCaught = true; catchingFish = false; performingAction = false; } } if (fish.minigame && !catchingFish) { if (timeSinceLastFrame > reelingAnimationSpeed) { timeSinceLastFrame = 0; frameIndex = frameIndex >= 30 ? frameIndex - 1 : frameIndex = frameIndex <= 29 ? frameIndex + 1 : frameIndex; reelingSprite = !reelingSprite; animRenderer.sprite = fishingSprites[frameIndex]; } else { timeSinceLastFrame = timeSinceLastFrame + Time.deltaTime; } timeToCatch -= Time.deltaTime; if (timeToCatch < 0.0f) { frameIndex = 39; fishIdleDirection = true; fish.minigame = false; timeToCatch = 2.0f; } else if (Input.GetKeyDown(KeyCode.E)) { timeSinceLastFrame = 0; frameIndex = 35; catchingFish = true; } } OnCollisionUpdate(); //If player is pressing the interaction key if (Input.GetKeyDown(KeyCode.E)) { //Fishing minigame interaction if (canFish) { if (fish.isFishing && !fish.minigame) { playingCastRod = false; performingAction = false; fish.stop(); } else if (!fish.isFishing) { //setting up animation values to play timeToCatch = 2.0f; if (openUI) { ToggleUI(); } fish.fish(); if (fish.isFishing) { performingAction = true; playingCastRod = true; timeSinceLastFrame = 0; frameIndex = 0; } } } //Cooking minigame interaction if (atFire && !atUIFlag) { atUIFlag = true; fire = fireColliderID.gameObject.GetComponent <Fire>(); switch (fire.fireState) { //if player hasnt begun to start the fire case -1: if (!playingFireStart) { frameIndex = 1; timeSinceLastFrame = 0; playingFireStart = true; //getting the position that the player should be at Vector3 pos = fire.transform.position; pos.y += 0.30f; pos.x -= 1f; transform.position = pos; } break; //if player is starting the fire case 0: //choosing the right animation frame if (frameIndex == 13) { animRenderer.sprite = animSprites[frameIndex]; frameIndex--; } else { animRenderer.sprite = animSprites[frameIndex]; frameIndex++; } buttonPressed = Time.deltaTime; if (buttonPressed < 0.4) { buttonSmash++; } else { buttonSmash--; } //if they have pressed the button fast enough, enough times if (buttonSmash == 10) { fire.startFire(); playingFireStart = false; animRenderer.sprite = animSprites[0]; buttonSmash = 0; } break; //if the fire is started default: ToggleUI(); //ToggleCookingUI(); break; } } if (atFarm && !atUIFlag) { atUIFlag = true; if (openUI) { if (!farmUIOpen) { ToggleFarmUI(); } } ToggleUI(); //ToggleFarmUI(); } if (atWaterPurifier && !atUIFlag) { atUIFlag = true; //Debug.Log("Player entered Farm zone and pressed e"); if (openUI) { if (!waterUIOpen) { ToggleWaterUI(); } } ToggleUI(); //ToggleWaterUI(); } if (atBarrel && !atUIFlag) { atUIFlag = true; //Debug.Log("Player entered Farm zone and pressed e"); if (openUI) { if (!barrelUIOpen) { ToggleBarrelUI(); } } ToggleUI(); } atUIFlag = false; if (switchSwimMode) { isSwimming = !isSwimming; Vector3 pos = transform.position; if (isSwimming) { Camera.main.GetComponent <BoxCollider2D>().enabled = true; underwater.GetComponent <BoxCollider2D> ().enabled = true; animRenderer.sortingLayerName = "Background"; animRenderer.sortingOrder = -2; animRenderer.flipX = false; animRenderer.sprite = Resources.Load <Sprite>("Head"); torso.GetComponent <SpriteRenderer>().enabled = true; torso.GetComponent <SpriteRenderer>().sortingLayerName = "Background"; torso.GetComponent <SpriteRenderer>().sortingOrder = -3; legs.GetComponent <SpriteRenderer>().enabled = true; legs.GetComponent <SpriteRenderer>().sortingLayerName = "Background"; legs.GetComponent <SpriteRenderer>().sortingOrder = -4; transform.GetComponent <PolygonCollider2D>().offset = new Vector2(0, 0.8f); transform.position = new Vector3(-23.15025f, -2.443089f, pos.z); } else { Camera.main.GetComponent <BoxCollider2D>().enabled = false; underwater.GetComponent <BoxCollider2D> ().enabled = false; animRenderer.sprite = standingSprite; animRenderer.sortingLayerName = "Default"; animRenderer.sortingOrder = 0; transform.rotation = new Quaternion(); torso.GetComponent <SpriteRenderer>().enabled = false; legs.GetComponent <SpriteRenderer>().enabled = false; transform.GetComponent <PolygonCollider2D>().offset = new Vector2(0, -0.3f); transform.position = new Vector3(-19.81603f, -0.6278321f, pos.z); } } } if (Input.GetKeyDown(KeyCode.Q)) { if (openUI) { if (!waterUIOpen && atWaterPurifier) { ToggleWaterUI(); } if (!fireUIOpen && atFire) { ToggleCookingUI(); } if (!farmUIOpen && atFarm) { ToggleFarmUI(); } if (!barrelUIOpen && atBarrel) { ToggleBarrelUI(); } } ToggleUI(); } }