public void DisplayPopup(string text) { if (text == "") { return; } PopupTextController.CreatePopupText(text, transform); }
/// <summary> /// Applies the effects. /// </summary> /// <param name="targets">Targets.</param> /// <param name="effects">Effects.</param> private IEnumerator ApplyEffects(List <Unit> targets, List <Effect> effects) { if (effects.Count <= 0) { yield break; } int index = 0; do { Effect effect = effects [index]; bool showedEffectPopupText = false; foreach (var target in targets) { if (target != null) { effect.ApplyEffect(target); if (effect.GetDisplayString() != "") { showedEffectPopupText = true; PopupTextController.CreatePopupText(effect.GetDisplayString(), target.transform.position, effect.GetColor()); } // If unit is killed after application of effect, handle death target.UpdateHealthbar(); if (target.IsDead()) { HandleDeath(target); } } } // If pop up text was shown, wait x seconds so it doesn't stack with other potential ones if (showedEffectPopupText) { yield return(new WaitForSeconds(0.75f)); } index++; } while (index < effects.Count); yield return(null); }
/// <summary> /// Shows the XP floaty text. /// </summary> /// <param name="awardedExperience">Awarded experience.</param> /// <param name="attacker">Attacker.</param> private void ShowXPFloatyText(int awardedExperience, Unit attacker) { PopupTextController.Initialize(attacker.GetCanvas()); PopupTextController.CreatePopupText(string.Format("+ {0} XP", awardedExperience), attacker.transform.position, Color.yellow); }
private IEnumerator Init() { _tileMap = controller.TileMap; controller.ShowCursorAndTileSelector(false); controller.SelectionIndicator.ClearIndicators(); controller.MissionObjectivesPanel.SetActive(false); // Setup turn order TurnOrderController turnOrderController = controller.TurnOrderController; Unit unit = controller.TurnOrderController.GetNextUp(); StartCoroutine(controller.CameraController.MoveToPosition(unit.transform.position)); controller.HighlightCharacter(unit); // Determine if music needs to be transitioned higher/lower MusicController musicController = controller.MusicController; if (IsEnemyNearby(turnOrderController.GetAllUnits())) { musicController.TransitionMusic(false); } else { musicController.TransitionMusic(true); } // Incremental Effects List <Effect> effects = unit.GetEffects(); if (effects != null && effects.Count > 0) { // Lower music so you can hear ability SFX yield return(StartCoroutine(controller.MusicController.LowerCombatMusic())); int index = 0; do { Effect effect = effects [index]; // Only run this logic with over time effects if (effect.GetEffectType() == EffectType.OVER_TIME) { bool showedEffectPopupText = false; effect.ApplyIncrementalEffect(unit); List <GameObject> vfxGameObjects = ApplyVFXToTargets(effect.GetVFXPath(), new List <Unit>() { unit }); if (effect.GetDisplayString() != "") { showedEffectPopupText = true; PopupTextController.CreatePopupText(effect.GetIncrementalDisplayString(), unit.transform.position, effect.GetColor()); } // If unit is killed after application of effect, handle death unit.UpdateHealthbar(); // If pop up text was shown, wait x seconds so it doesn't stack with other potential ones if (showedEffectPopupText) { yield return(new WaitForSeconds(2.0f)); } if (unit.IsDead()) { HandleDeath(unit); } DestroyVFX(vfxGameObjects); } index++; } while (index < effects.Count && unit != null); // Bring music back up to normal volume yield return(StartCoroutine(controller.MusicController.RaiseCombatMusic())); } // Decrement Effect Turns if (unit != null) { unit.DecrementEffectTurns(); } yield return(null); // If unit is not available at this point, switch state to next unit in the turn order if (unit == null) { controller.ChangeState <TurnOverState> (); } else { if (unit.IsPlayerControlled) { controller.ChangeState <PlayerTurnState> (); } else { controller.ChangeState <CPUTurnState> (); } } }