Cup.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using GameWorld;
  3. using UnityEngine;
  4. public class Cup : BaseBehaviour
  5. {
  6. private void OnEnable()
  7. {
  8. this.InitSprite();
  9. EventManager.RegisterEvent<EnemyHurtAtkEventArgs>("EnemyHurtAtk", new EventManager.FBEventHandler<EnemyHurtAtkEventArgs>(this.Hurt), EventManager.ListenerQueue.Game);
  10. }
  11. private void OnDisable()
  12. {
  13. EventManager.UnregisterEvent<EnemyHurtAtkEventArgs>("EnemyHurtAtk", new EventManager.FBEventHandler<EnemyHurtAtkEventArgs>(this.Hurt), EventManager.ListenerQueue.Game);
  14. }
  15. private void InitSprite()
  16. {
  17. SpriteRenderer component = base.GetComponent<SpriteRenderer>();
  18. Cup.CupType cupType = this.type;
  19. if (cupType != Cup.CupType.Copper)
  20. {
  21. if (cupType != Cup.CupType.Silver)
  22. {
  23. if (cupType == Cup.CupType.Gold)
  24. {
  25. component.sprite = this.goldCup;
  26. }
  27. }
  28. else
  29. {
  30. component.sprite = this.silverCup;
  31. }
  32. }
  33. else
  34. {
  35. component.sprite = this.copperCup;
  36. }
  37. }
  38. private bool Hurt(string eventDefine, object sender, EnemyHurtAtkEventArgs msg)
  39. {
  40. if (msg.hurted != base.gameObject)
  41. {
  42. return false;
  43. }
  44. EnemyHurtAtkEventArgs.HurtTypeEnum hurtType = msg.hurtType;
  45. if (hurtType == EnemyHurtAtkEventArgs.HurtTypeEnum.Normal)
  46. {
  47. R.Audio.PlayEffect(401, new Vector3?(base.transform.position));
  48. this.CupBreak();
  49. }
  50. return true;
  51. }
  52. private void CupBreak()
  53. {
  54. UnityEngine.Object.Destroy(base.gameObject);
  55. }
  56. [SerializeField]
  57. private Sprite copperCup;
  58. [SerializeField]
  59. private Sprite silverCup;
  60. [SerializeField]
  61. private Sprite goldCup;
  62. public Cup.CupType type;
  63. public enum CupType
  64. {
  65. Copper,
  66. Silver,
  67. Gold
  68. }
  69. }