/// <summary> /// At the end of animation, set the animator to default invisible state and decrease happiness metric /// </summary> void OnEndOfAnimation() { foreach (Renderer r in GetComponentsInChildren <Renderer>()) { r.enabled = false; } animator.SetBool("isShow", false); markSpawned = false; MetricsModifier modifier = new MetricsModifier(-2, 0, 0); modifier.Modify(); MetricManager.Instance.RenderMetrics(); }
/// <summary> /// Called when in WeatherEvent state, it displays a weather card to the player and makes a call to /// decrease player health after player clicks continue; /// </summary> private void DisplayWeatherCard() { String weatherEvent = ""; switch (WeatherController.Instance.currentEvent) { case WeatherController.ClimateEvent.AcidRain: weatherEvent = "acid rain"; break; case WeatherController.ClimateEvent.Hurricane: weatherEvent = "hurricane"; break; case WeatherController.ClimateEvent.Smog: weatherEvent = "smog"; break; case WeatherController.ClimateEvent.WildFire: weatherEvent = "wildfire"; break; } string statement = "Your town has been struck by " + weatherEvent + "! Try raise your environment health to avoid more disasters"; string[] statements = { statement }; Action displayWeatherInfo = () => { WeatherController.Instance.StopAnim(); Debug.Log("Clicked continue on weather event"); SetState(GameState.WaitingForEvents); //TODO: balance numbers on event MetricsModifier modifier = new MetricsModifier(-4, -3, 0); modifier.Modify(); metricManager.RenderMetrics(); WeatherController.Instance.probability = 0; Debug.Log("new prob " + WeatherController.Instance.probability); }; // minor card should be displayed upon the callback to the mail message dialogueManager.StartExplanatoryDialogue(new SimpleDialogue(statements, weatherEvent), displayWeatherInfo); }
/// <summary> /// Transition to default state (invisible) when mark has been clicked /// also queues the minor cards to be displayed /// </summary> void OnMouseDown() { if (markSpawned && cardManager.CurrentGameState == CardManager.GameState.WaitingForEvents) { animator.SetBool("isShow", false); clickCount++; markSpawned = false; cardManager.QueueMinorCard(); foreach (Renderer r in GetComponentsInChildren <Renderer>()) { r.enabled = false; } // give player money for accepting request MetricsModifier modifier = new MetricsModifier(0, 3, 0); modifier.Modify(); MetricManager.Instance.RenderMetrics(); } else { return; } }