Guest User

Untitled

a guest
Feb 21st, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine.UI;
  4. using UnityEngine;
  5.  
  6. public class DamageVisualizer_C : MonoBehaviour
  7. {
  8. public GameObject damagePrefab;
  9. public GameObject criticalPrefab;
  10. public GameObject canvas;
  11. public bool playerHealth = true;
  12. public Color enemyColor;
  13.  
  14. private float floatSpeed = 3.0f;
  15. private float fadeSpeed = 1.5f;
  16. private Vector3 damageScale;
  17.  
  18. private Vector3 playerPos = new Vector3(-210, 0, 0);
  19. private Vector3 enemyPos = new Vector3(210, 0, 0);
  20. private Vector3 driftOffset = new Vector3(0, 200, 0);
  21. private GameObject effectClone;
  22.  
  23. // Use this for initialization
  24. void Start ()
  25. {
  26. }
  27.  
  28. public void SpawnDamage(int damage, bool criticalHit = false)
  29. {
  30. Vector3 spawnPos;
  31. Color textColor = Color.white;
  32.  
  33. damageScale = new Vector3(1, 1, 1);
  34.  
  35. if (playerHealth)
  36. {
  37. spawnPos = playerPos;
  38.  
  39. if (criticalHit)
  40. {
  41. effectClone = (GameObject)Instantiate(criticalPrefab, Vector3.zero, transform.rotation);
  42. textColor = enemyColor;
  43. damageScale = new Vector3(1.35f, 1.35f, 1);
  44. }
  45. else
  46. effectClone = (GameObject)Instantiate(damagePrefab, Vector3.zero, transform.rotation);
  47. }
  48. else
  49. {
  50. spawnPos = enemyPos;
  51.  
  52. if (criticalHit)
  53. {
  54. effectClone = (GameObject)Instantiate(criticalPrefab, Vector3.zero, transform.rotation);
  55. textColor = GameController.controller.getPlayerColorPreference();
  56. damageScale = new Vector3(1.35f, 1.35f, 1);
  57. }
  58. else
  59. effectClone = (GameObject)Instantiate(damagePrefab, Vector3.zero, transform.rotation);
  60.  
  61. }
  62.  
  63. effectClone.transform.SetParent(canvas.transform);
  64. effectClone.transform.GetChild(1).GetComponent<Text>().color = textColor;
  65. effectClone.transform.localPosition = spawnPos;
  66. effectClone.transform.localScale = damageScale;
  67. StartCoroutine(animateText(damage));
  68. }
  69.  
  70. IEnumerator animateText(int damage)
  71. {
  72. if (playerHealth)
  73. driftOffset = effectClone.transform.position + new Vector3(50, 75, 0);
  74. else
  75. driftOffset = effectClone.transform.position + new Vector3(-50, 75, 0);
  76. effectClone.GetComponent<LerpScript>().LerpToPos(effectClone.transform.position, driftOffset, floatSpeed);
  77.  
  78. for (int i = 0; i < 2; ++i)
  79. {
  80. GameObject current = effectClone.transform.GetChild(i).gameObject;
  81. current.GetComponent<Text>().text = damage.ToString();
  82. Color curColor = current.GetComponent<Text>().color;
  83. current.GetComponent<LerpScript>().LerpToColor(Color.clear, curColor, 2.0f);
  84. }
  85.  
  86. yield return new WaitForSeconds(1.15f);
  87.  
  88. effectClone.GetComponent<LerpScript>().LerpToPos(driftOffset, driftOffset - new Vector3(0, 35, 0), floatSpeed);
  89. yield return new WaitForSeconds(0.15f);
  90. effectClone.GetComponent<LerpScript>().LerpToPos(effectClone.transform.position, driftOffset + new Vector3(0,200,0), floatSpeed);
  91.  
  92. for (int i = 0; i < 2; ++i)
  93. {
  94. GameObject current = effectClone.transform.GetChild(i).gameObject;
  95. Color curColor = current.GetComponent<Text>().color;
  96. current.GetComponent<LerpScript>().LerpToColor(curColor, Color.clear, fadeSpeed);
  97. }
  98. }
  99. }
Add Comment
Please, Sign In to add comment