private void LateUpdate() { if (!GameManager.gameStarted) { return; } state.hapinessPoint -= Time.deltaTime / GameParams.Main.hapinessDecreaseSpeedUpgrade[GameState.CurrentState.upgrades.hapinessDecreaseSpeedUpgrade]; state.hapinessPoint = Mathf.Clamp(state.hapinessPoint, 0, (GameParams.Main.happinessPointsNeededPerLevel[3] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) + 1); if (!focused) { timer -= Time.deltaTime; if (timer <= 0) { timer = UnityEngine.Random.Range(1, 5); SetLookAtTarget(new Vector2(UnityEngine.Random.Range(-1, 1), UnityEngine.Random.Range(-1, 1))); } } LookAtPoint(); GetNewHapinessState(); lastFrameHapiness = hapiness; }
public void GetNewHapinessState(bool forceUpdate = false) { if (forceUpdate == false) { switch (hapiness) { case Hapiness.asleep: if (state.hapinessPoint >= GameParams.Main.happinessPointsNeededPerLevel[1] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.bored; } break; case Hapiness.bored: if (state.hapinessPoint >= GameParams.Main.happinessPointsNeededPerLevel[2] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.happy; } else if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[0] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.asleep; } break; case Hapiness.happy: if (state.hapinessPoint >= GameParams.Main.happinessPointsNeededPerLevel[3] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.maximumJoy; } else if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[1] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.bored; } break; case Hapiness.maximumJoy: if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[2] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.happy; } break; default: break; } if (hapiness != lastFrameHapiness) { UpdateBehaviour(); } } else { if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[0] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.asleep; } else if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[1] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.bored; } else if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[2] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.happy; } else if (state.hapinessPoint <= GameParams.Main.happinessPointsNeededPerLevel[3] * GameParams.Main.hapinessLevelUpgrade[GameState.CurrentState.upgrades.hapinessLevelUpgrade]) { hapiness = Hapiness.maximumJoy; } UpdateBehaviour(); } //set the multiplier switch (hapiness) { case Hapiness.asleep: multiplier = GameParams.Main.baseMultiplierPerHapniessLevel[0] * GameParams.Main.multiplicatorUpgrade[GameState.CurrentState.upgrades.multiplicatorUpgrade]; break; case Hapiness.bored: multiplier = GameParams.Main.baseMultiplierPerHapniessLevel[1] * GameParams.Main.multiplicatorUpgrade[GameState.CurrentState.upgrades.multiplicatorUpgrade]; break; case Hapiness.happy: multiplier = GameParams.Main.baseMultiplierPerHapniessLevel[2] * GameParams.Main.multiplicatorUpgrade[GameState.CurrentState.upgrades.multiplicatorUpgrade]; break; case Hapiness.maximumJoy: multiplier = GameParams.Main.baseMultiplierPerHapniessLevel[3] * GameParams.Main.multiplicatorUpgrade[GameState.CurrentState.upgrades.multiplicatorUpgrade]; break; default: break; } }