public void Initialize(FightingEntity target, int damage, DamageType damageType) { // Format based on damage type if (damageType == DamageType.HEALING) { damage = Mathf.Abs(damage); _damageText.color = _healColour; } else if (damageType == DamageType.MANA_RECOVERY) { _damageText.color = _manaRecoveryColour; } // Set position FighterPositions uiPositions = target.GetComponent <FighterPositions>(); if (uiPositions != null) { _worldPosition = uiPositions.damagePopup.position; } else { Debug.LogWarning(target.name + " has no damagePopupLocation"); } _worldToScreen.SetWorldPoint(_worldPosition); SetText(damage); GameManager.Instance.time.GetController().StartCoroutine(Fade()); }
protected virtual void InstantiateHitEffect(FightingEntity target) { FighterPositions positions = target.GetComponent <FighterPositions>(); if (targetHitEffect != null && positions != null) { GameObject hitEffect = Instantiate(targetHitEffect, positions.damagePopup); hitEffect.transform.localScale = target.transform.localScale; } }
protected virtual void InstantiateParticleEffect(FightingEntity user, FightingEntity target) { FighterPositions userPositions = user.GetComponent <FighterPositions>(); FighterPositions targetPositions = target.GetComponent <FighterPositions>(); if (particleHitEffectPrefab != null && userPositions != null && targetPositions != null) { GameObject hitEffect = Instantiate(particleHitEffectPrefab, targetPositions.damagePopup); ParticleSystemsHelper psh = hitEffect.GetComponent <ParticleSystemsHelper>(); hitEffect.GetComponent <DestroyAfterSeconds>().duration = GetAnimWindup(); psh.SetDestroyDuration(GetAnimWindup()); psh.SetRenderOrder(target.sortingOrder + 1); psh.PositionEffect(userPositions.damagePopup, targetPositions.damagePopup); psh.Play(); } }