CreateNewDeckButton.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. public class CreateNewDeckButton : MonoBehaviour
  6. {
  7. public EditDeck editDeck;
  8. public SelectDeck selectDeck;
  9. public GameObject Outline;
  10. public YesNoObject CreateNewDeckWayObject;
  11. private void Start()
  12. {
  13. CreateNewDeckWayObject.Off();
  14. }
  15. #region Creating a new deck
  16. public void CreateNewDeck()
  17. {
  18. DeckData deckData = new DeckData(DeckData.GetDeckCode("NewDeck", new List<CEntity_Base>(), new List<CEntity_Base>(), null));
  19. ContinuousController.instance.DeckDatas.Insert(0, deckData);
  20. editDeck.SetUpCreateDeck(deckData, true);
  21. ContinuousController.instance.StartCoroutine(selectDeck.SetDeckList(true));
  22. CreateNewDeckWayObject.Off();
  23. }
  24. #endregion
  25. #region Processing when the Create from Deck Code button is pressed
  26. public void OnClickFromDeckCode()
  27. {
  28. CreateNewDeckWayObject.Off();
  29. string deckCode = "";
  30. //deckCode = ContinuousController.instance.ShuffleDeckCode.GetDeckCode(GUIUtility.systemCopyBuffer);
  31. deckCode = GUIUtility.systemCopyBuffer;
  32. Debug.Log($"DeckCode\n{deckCode}");
  33. List<CEntity_Base> AllDeckCards = DeckCodeUtility.GetAllDeckCardsFromDeckBuilderDeckCode(deckCode);
  34. if (AllDeckCards.Count == 0)
  35. {
  36. AllDeckCards = DeckCodeUtility.GetAllDeckCardsFromTTSDeckCode(deckCode);
  37. }
  38. if (AllDeckCards.Count == 0)
  39. {
  40. Opening.instance.SetUpActiveYesNoObject(
  41. new List<UnityAction>() { null },
  42. new List<string>() { "OK" },
  43. LocalizeUtility.GetLocalizedString(
  44. EngMessage: "Error!\nDeck code could not be loaded.",
  45. JpnMessage: "エラー!\nデッキコードの読み込みに失敗しました"
  46. ),
  47. true);
  48. return;
  49. }
  50. List<CEntity_Base> deckCards = new List<CEntity_Base>();
  51. List<CEntity_Base> digitamaDeckCards = new List<CEntity_Base>();
  52. foreach (CEntity_Base cEntity_Base in AllDeckCards)
  53. {
  54. if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
  55. {
  56. digitamaDeckCards.Add(cEntity_Base);
  57. }
  58. else
  59. {
  60. deckCards.Add(cEntity_Base);
  61. }
  62. }
  63. DeckData deckData = (new DeckData(DeckData.GetDeckCode("", deckCards, digitamaDeckCards, null))).ModifiedDeckData();
  64. if (deckData.DeckName == "新しいデッキ" || deckData.DeckName == "NewDeck")
  65. {
  66. deckData.DeckName = "NewDeck";
  67. }
  68. ContinuousController.instance.DeckDatas.Insert(0, deckData);
  69. editDeck.SetUpCreateDeck(deckData, true, isFromClipboard: true);
  70. ContinuousController.instance.StartCoroutine(selectDeck.SetDeckList(true));
  71. }
  72. #endregion
  73. public async void OnClick()
  74. {
  75. Opening.instance.PlayDecisionSE();
  76. await selectDeck.deckInfoPanel.SetUpDeckInfoPanel(null);
  77. List<UnityAction> Commands = new List<UnityAction>()
  78. {
  79. () =>
  80. {
  81. CreateNewDeck();
  82. },
  83. () =>
  84. {
  85. OnClickFromDeckCode();
  86. },
  87. };
  88. List<string> CommandTexts = new List<string>()
  89. {
  90. LocalizeUtility.GetLocalizedString(
  91. EngMessage:"Create one yourself",
  92. JpnMessage:"自分で作成する"
  93. ),
  94. LocalizeUtility.GetLocalizedString(
  95. EngMessage: "Import from clipboard",
  96. JpnMessage:"クリップボードからインポート"
  97. ) ,
  98. };
  99. CreateNewDeckWayObject.SetUpYesNoObject(
  100. Commands,
  101. CommandTexts,
  102. LocalizeUtility.GetLocalizedString(
  103. EngMessage: "Choose how to create your deck.",
  104. JpnMessage: "デッキの作成方法を選択してください"
  105. ),
  106. true);
  107. Outline.SetActive(true);
  108. for (int j = 0; j < this.transform.parent.childCount; j++)
  109. {
  110. if (this.transform.parent.GetChild(j) != this.transform)
  111. {
  112. if (this.transform.parent.GetChild(j).GetComponent<DeckInfoPrefab>() != null)
  113. {
  114. this.transform.parent.GetChild(j).GetComponent<DeckInfoPrefab>().Outline.SetActive(false);
  115. }
  116. }
  117. }
  118. }
  119. public void OnEnter()
  120. {
  121. if (Opening.instance != null)
  122. this.gameObject.transform.localScale = Opening.instance.DeckInfoPrefabExpandScale;
  123. }
  124. public void OnExit()
  125. {
  126. if (Opening.instance != null)
  127. this.gameObject.transform.localScale = Opening.instance.DeckInfoPrefabStartScale;
  128. }
  129. private void OnEnable()
  130. {
  131. OnExit();
  132. }
  133. }