CollectableManager.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace JTSystems
  5. {
  6. public class CollectableManager : MonoBehaviour
  7. {
  8. public delegate void OnCollectableCollected(JetCharacter characterWhoCollected, CollectableEffect collectableEffect, float collectableEffectValue);
  9. public static OnCollectableCollected onCollectableCollected;
  10. private void Awake()
  11. {
  12. onCollectableCollected += OnCollectableCollectedCallback;
  13. }
  14. private void OnCollectableCollectedCallback(JetCharacter characterWhoCollected, CollectableEffect collectableEffect, float collectableEffectValue)
  15. {
  16. switch(characterWhoCollected.GetCharacterType())
  17. {
  18. case JetCharacter.CharacterType.Player:
  19. OnPlayerCollected(characterWhoCollected, collectableEffect, collectableEffectValue);
  20. break;
  21. case JetCharacter.CharacterType.Bot:
  22. OnBotCollected(characterWhoCollected, collectableEffect, collectableEffectValue);
  23. break;
  24. default:
  25. break;
  26. }
  27. }
  28. private void OnPlayerCollected(JetCharacter characterWhoCollected, CollectableEffect collectableEffect, float collectableEffectValue)
  29. {
  30. switch (collectableEffect)
  31. {
  32. case CollectableEffect.AddCoins:
  33. CollectCoins((int)collectableEffectValue);
  34. break;
  35. case CollectableEffect.IncreaseSize:
  36. IncreaseSize(characterWhoCollected, collectableEffectValue);
  37. break;
  38. case CollectableEffect.DecreaseSize:
  39. DecreaseSize(characterWhoCollected, collectableEffectValue);
  40. break;
  41. }
  42. }
  43. private void OnBotCollected(JetCharacter characterWhoCollected, CollectableEffect collectableEffect, float collectableEffectValue)
  44. {
  45. switch (collectableEffect)
  46. {
  47. case CollectableEffect.IncreaseSize:
  48. IncreaseSize(characterWhoCollected, collectableEffectValue);
  49. break;
  50. case CollectableEffect.DecreaseSize:
  51. DecreaseSize(characterWhoCollected, collectableEffectValue);
  52. break;
  53. }
  54. }
  55. private void CollectCoins(int coinsAmount)
  56. {
  57. UIManager.AddCoins(coinsAmount);
  58. }
  59. private void IncreaseSize(JetCharacter characterWhoCollected, float sizeIncreaseValue)
  60. {
  61. characterWhoCollected.IncreaseSize(sizeIncreaseValue);
  62. }
  63. private void DecreaseSize(JetCharacter characterWhoCollected, float sizeDecreaseValue)
  64. {
  65. characterWhoCollected.DecreaseSize(sizeDecreaseValue);
  66. }
  67. }
  68. }