CardImagePanel.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using TMPro;
  5. using System.Linq;
  6. using UnityEngine.Events;
  7. public class CardImagePanel : OffAnimation
  8. {
  9. [SerializeField] TextMeshProUGUI _infoText;
  10. [SerializeField] TMP_InputField _cardIDsInput;
  11. [SerializeField] GameObject _lackCardImagesObject;
  12. [SerializeField] Animator _anim;
  13. bool _isOpen = false;
  14. public void OnClickOpenCardImagePanelButton()
  15. {
  16. if (_isOpen)
  17. {
  18. CloseCardImagePanel();
  19. }
  20. else
  21. {
  22. if (Opening.instance != null)
  23. {
  24. Opening.instance.PlayDecisionSE();
  25. }
  26. else if (GManager.instance != null)
  27. {
  28. GManager.instance.PlayDecisionSE();
  29. }
  30. ContinuousController.instance.StartCoroutine(Open());
  31. }
  32. }
  33. public IEnumerator Open()
  34. {
  35. _isOpen = true;
  36. gameObject.SetActive(true);
  37. _anim.SetInteger("Open", 1);
  38. _anim.SetInteger("Close", 0);
  39. _lackCardImagesObject.gameObject.SetActive(false);
  40. _infoText.text = "";
  41. _cardIDsInput.text = "";
  42. yield return new WaitForSeconds(0.25f);
  43. List<CEntity_Base> lackCardImageCardEntities = ContinuousController.instance.CardList
  44. .Filter(cEntity_Base => !StreamingAssetsUtility.IsCardExists(cEntity_Base)).ToList();
  45. if (lackCardImageCardEntities.Count >= 1)
  46. {
  47. _infoText.text = LocalizeUtility.GetLocalizedString(
  48. EngMessage: $"The following {lackCardImageCardEntities.Count} card images are not set.",
  49. JpnMessage: $"以下の {lackCardImageCardEntities.Count}枚の\nカード画像がセットされていません。"
  50. );
  51. _lackCardImagesObject.gameObject.SetActive(true);
  52. _cardIDsInput.text = string.Join(", ", lackCardImageCardEntities.Map(cEntity_Base => cEntity_Base.CardSpriteName));
  53. }
  54. else
  55. {
  56. _infoText.text = LocalizeUtility.GetLocalizedString(
  57. EngMessage: "All card images are set.",
  58. JpnMessage: "カード画像は全てセットされています。"
  59. );
  60. }
  61. }
  62. public void Close()
  63. {
  64. Close_(true);
  65. }
  66. public void CloseCardImagePanel()
  67. {
  68. _isOpen = false;
  69. bool playSE = false;
  70. if (gameObject.activeSelf)
  71. {
  72. playSE = true;
  73. }
  74. Close_(playSE);
  75. }
  76. public void Close_(bool playSE)
  77. {
  78. if (playSE)
  79. {
  80. if (Opening.instance != null)
  81. {
  82. Opening.instance.PlayCancelSE();
  83. }
  84. else if (GManager.instance != null)
  85. {
  86. GManager.instance.PlayCancelSE();
  87. }
  88. }
  89. _anim.SetInteger("Open", 0);
  90. _anim.SetInteger("Close", 1);
  91. }
  92. public void OnClickCopyButton()
  93. {
  94. GUIUtility.systemCopyBuffer = _cardIDsInput.text;
  95. List<UnityAction> Commands = new List<UnityAction>()
  96. {
  97. null
  98. };
  99. List<string> CommandTexts = new List<string>()
  100. {
  101. "OK"
  102. };
  103. Opening.instance.SetUpActiveYesNoObject(
  104. Commands,
  105. CommandTexts,
  106. LocalizeUtility.GetLocalizedString(
  107. EngMessage: "The list of card image names has been copied to the clipboard!",
  108. JpnMessage: "カード画像名一覧を\nクリップボードにコピーしました!"
  109. ),
  110. true);
  111. }
  112. }