GameplayOption.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. using Photon.Pun;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class GameplayOption : OffAnimation
  5. {
  6. [SerializeField] Animator _anim;
  7. [SerializeField] Toggle _reverseOpponentsCardsToggle;
  8. [SerializeField] Toggle _showCutInAnimationToggle;
  9. [SerializeField] Toggle _turnSuspendedCardsToggle;
  10. [SerializeField] Toggle _checkBeforeEndingSelectionToggle;
  11. [SerializeField] Toggle _suspendedCardsDirectionIsLeftToggle;
  12. [SerializeField] Toggle _autoEffectOrderToggle;
  13. [SerializeField] Toggle _autoDeckBottomOrderToggle;
  14. [SerializeField] Toggle _autoDeckTopOrderToggle;
  15. [SerializeField] Toggle _autoMinDigivolutionCostToggle;
  16. [SerializeField] Toggle _autoMaxCardCountToggle;
  17. [SerializeField] Toggle _autoHatchToggle;
  18. [SerializeField] Toggle _banlistToggle;
  19. public void Close()
  20. {
  21. Close_(true);
  22. }
  23. public void Close_(bool playSE)
  24. {
  25. if (playSE)
  26. {
  27. if (Opening.instance != null)
  28. {
  29. Opening.instance.PlayCancelSE();
  30. }
  31. else if (GManager.instance != null)
  32. {
  33. GManager.instance.PlayCancelSE();
  34. }
  35. }
  36. _anim.SetInteger("Open", 0);
  37. _anim.SetInteger("Close", 1);
  38. }
  39. public void Init()
  40. {
  41. Off();
  42. }
  43. public void Open()
  44. {
  45. if (ContinuousController.instance != null)
  46. {
  47. OptionUtility.InitToggle(
  48. toggle: _reverseOpponentsCardsToggle,
  49. onToggleChanged: OnReverseOpponentsCardsToggleChanged,
  50. value: ContinuousController.instance.reverseOpponentsCards
  51. );
  52. OptionUtility.InitToggle(
  53. toggle: _showCutInAnimationToggle,
  54. onToggleChanged: OnShowCutInAnimationToggleChanged,
  55. value: ContinuousController.instance.showCutInAnimation
  56. );
  57. OptionUtility.InitToggle(
  58. toggle: _turnSuspendedCardsToggle,
  59. onToggleChanged: OnTurnSuspendedCardsToggleChanged,
  60. value: ContinuousController.instance.turnSuspendedCards
  61. );
  62. OptionUtility.InitToggle(
  63. toggle: _checkBeforeEndingSelectionToggle,
  64. onToggleChanged: OnCheckBeforeEndingSelectionToggleChanged,
  65. value: ContinuousController.instance.checkBeforeEndingSelection
  66. );
  67. OptionUtility.InitToggle(
  68. toggle: _suspendedCardsDirectionIsLeftToggle,
  69. onToggleChanged: OnSuspendedCardsDirectionIsLeftToggleChanged,
  70. value: ContinuousController.instance.suspendedCardsDirectionIsLeft
  71. );
  72. OptionUtility.InitToggle(
  73. toggle: _autoEffectOrderToggle,
  74. onToggleChanged: OnAutoEffectOrderToggleChanged,
  75. value: ContinuousController.instance.autoEffectOrder
  76. );
  77. OptionUtility.InitToggle(
  78. toggle: _autoDeckBottomOrderToggle,
  79. onToggleChanged: OnAutoDeckBottomOrderToggleChanged,
  80. value: ContinuousController.instance.autoDeckBottomOrder
  81. );
  82. OptionUtility.InitToggle(
  83. toggle: _autoDeckTopOrderToggle,
  84. onToggleChanged: OnAutoDeckTopOrderToggleChanged,
  85. value: ContinuousController.instance.autoDeckTopOrder
  86. );
  87. OptionUtility.InitToggle(
  88. toggle: _autoMinDigivolutionCostToggle,
  89. onToggleChanged: OnAutoMinDigivolutionCostToggleChanged,
  90. value: ContinuousController.instance.autoMinDigivolutionCost
  91. );
  92. OptionUtility.InitToggle(
  93. toggle: _autoMaxCardCountToggle,
  94. onToggleChanged: OnAutoMaxCardCountToggleChanged,
  95. value: ContinuousController.instance.autoMaxCardCount
  96. );
  97. OptionUtility.InitToggle(
  98. toggle: _autoHatchToggle,
  99. onToggleChanged: OnAutoHatchToggleChanged,
  100. value: ContinuousController.instance.autoHatch
  101. );
  102. OptionUtility.InitToggle(
  103. toggle: _banlistToggle,
  104. onToggleChanged: OnUseBanlistToggleChanged,
  105. value: ContinuousController.instance.useBanlist
  106. );
  107. if (ContinuousController.instance.BanList.Restrictions.Count == 0 || PhotonNetwork.InRoom)
  108. _banlistToggle.interactable = false;
  109. }
  110. gameObject.SetActive(true);
  111. _anim.SetInteger("Open", 1);
  112. _anim.SetInteger("Close", 0);
  113. }
  114. #region Show cut in animation
  115. public void OnShowCutInAnimationToggleChanged(bool value)
  116. {
  117. if (ContinuousController.instance == null) return;
  118. OptionUtility.OnToggleChanged(
  119. value: value,
  120. toggle: _showCutInAnimationToggle,
  121. onToggleChanged: OnShowCutInAnimationToggleChanged,
  122. settingRef: ref ContinuousController.instance.showCutInAnimation,
  123. saveAction: ContinuousController.instance.SaveShowCutInAnimation
  124. );
  125. }
  126. public void HandleShowCutInAnimationToggle()
  127. {
  128. OnShowCutInAnimationToggleChanged(!_showCutInAnimationToggle.isOn);
  129. }
  130. #endregion
  131. #region Reverse opponent's cards
  132. public void OnReverseOpponentsCardsToggleChanged(bool value)
  133. {
  134. if (ContinuousController.instance == null) return;
  135. OptionUtility.OnToggleChanged(
  136. value: value,
  137. toggle: _reverseOpponentsCardsToggle,
  138. onToggleChanged: OnReverseOpponentsCardsToggleChanged,
  139. settingRef: ref ContinuousController.instance.reverseOpponentsCards,
  140. saveAction: ContinuousController.instance.SaveReverseOpponentsCards
  141. );
  142. GManager.OnReverseOpponentsCardsChanged?.Invoke();
  143. }
  144. public void HandleReverseOpponentsCardsToggle()
  145. {
  146. OnReverseOpponentsCardsToggleChanged(!_reverseOpponentsCardsToggle.isOn);
  147. }
  148. #endregion
  149. #region Turn suspended cards
  150. public void OnTurnSuspendedCardsToggleChanged(bool value)
  151. {
  152. if (ContinuousController.instance == null) return;
  153. OptionUtility.OnToggleChanged(
  154. value: value,
  155. toggle: _turnSuspendedCardsToggle,
  156. onToggleChanged: OnTurnSuspendedCardsToggleChanged,
  157. settingRef: ref ContinuousController.instance.turnSuspendedCards,
  158. saveAction: ContinuousController.instance.SaveTurnSuspendedCards
  159. );
  160. }
  161. public void HandleTurnSuspendedCardsToggle()
  162. {
  163. OnTurnSuspendedCardsToggleChanged(!_turnSuspendedCardsToggle.isOn);
  164. }
  165. #endregion
  166. #region Check before ending selection
  167. public void OnCheckBeforeEndingSelectionToggleChanged(bool value)
  168. {
  169. if (ContinuousController.instance == null) return;
  170. OptionUtility.OnToggleChanged(
  171. value: value,
  172. toggle: _checkBeforeEndingSelectionToggle,
  173. onToggleChanged: OnCheckBeforeEndingSelectionToggleChanged,
  174. settingRef: ref ContinuousController.instance.checkBeforeEndingSelection,
  175. saveAction: ContinuousController.instance.SaveCheckBeforeEndingSelection
  176. );
  177. }
  178. public void HandleCheckBeforeEndingSelectionToggle()
  179. {
  180. OnCheckBeforeEndingSelectionToggleChanged(!_checkBeforeEndingSelectionToggle.isOn);
  181. }
  182. #endregion
  183. #region Suspended card is left
  184. public void OnSuspendedCardsDirectionIsLeftToggleChanged(bool value)
  185. {
  186. if (ContinuousController.instance == null) return;
  187. OptionUtility.OnToggleChanged(
  188. value: value,
  189. toggle: _suspendedCardsDirectionIsLeftToggle,
  190. onToggleChanged: OnSuspendedCardsDirectionIsLeftToggleChanged,
  191. settingRef: ref ContinuousController.instance.suspendedCardsDirectionIsLeft,
  192. saveAction: ContinuousController.instance.SaveSuspendedCardsDirectionIsLeft
  193. );
  194. }
  195. public void HandleSuspendedCardsDirectionIsLeftToggle()
  196. {
  197. OnSuspendedCardsDirectionIsLeftToggleChanged(!_suspendedCardsDirectionIsLeftToggle.isOn);
  198. }
  199. #endregion
  200. #region Auto effect order
  201. public void OnAutoEffectOrderToggleChanged(bool value)
  202. {
  203. if (ContinuousController.instance == null) return;
  204. OptionUtility.OnToggleChanged(
  205. value: value,
  206. toggle: _autoEffectOrderToggle,
  207. onToggleChanged: OnAutoEffectOrderToggleChanged,
  208. settingRef: ref ContinuousController.instance.autoEffectOrder,
  209. saveAction: ContinuousController.instance.SaveAutoEffectOrder
  210. );
  211. }
  212. public void HandleAutoEffectOrderToggle()
  213. {
  214. OnAutoEffectOrderToggleChanged(!_autoEffectOrderToggle.isOn);
  215. }
  216. #endregion
  217. #region Auto deck bottom order
  218. public void OnAutoDeckBottomOrderToggleChanged(bool value)
  219. {
  220. if (ContinuousController.instance == null) return;
  221. OptionUtility.OnToggleChanged(
  222. value: value,
  223. toggle: _autoDeckBottomOrderToggle,
  224. onToggleChanged: OnAutoDeckBottomOrderToggleChanged,
  225. settingRef: ref ContinuousController.instance.autoDeckBottomOrder,
  226. saveAction: ContinuousController.instance.SaveAutoDeckBottomOrder
  227. );
  228. }
  229. public void HandleAutoDeckBottomOrderToggle()
  230. {
  231. OnAutoDeckBottomOrderToggleChanged(!_autoDeckBottomOrderToggle.isOn);
  232. }
  233. #endregion
  234. #region Auto deck top order
  235. public void OnAutoDeckTopOrderToggleChanged(bool value)
  236. {
  237. if (ContinuousController.instance == null) return;
  238. OptionUtility.OnToggleChanged(
  239. value: value,
  240. toggle: _autoDeckTopOrderToggle,
  241. onToggleChanged: OnAutoDeckTopOrderToggleChanged,
  242. settingRef: ref ContinuousController.instance.autoDeckTopOrder,
  243. saveAction: ContinuousController.instance.SaveAutoDeckTopOrder
  244. );
  245. }
  246. public void HandleAutoDeckTopOrderToggle()
  247. {
  248. OnAutoDeckTopOrderToggleChanged(!_autoDeckTopOrderToggle.isOn);
  249. }
  250. #endregion
  251. #region Auto min digivolution cost
  252. public void OnAutoMinDigivolutionCostToggleChanged(bool value)
  253. {
  254. if (ContinuousController.instance == null) return;
  255. OptionUtility.OnToggleChanged(
  256. value: value,
  257. toggle: _autoMinDigivolutionCostToggle,
  258. onToggleChanged: OnAutoMinDigivolutionCostToggleChanged,
  259. settingRef: ref ContinuousController.instance.autoMinDigivolutionCost,
  260. saveAction: ContinuousController.instance.SaveAutoMinDigivolutionCost
  261. );
  262. }
  263. public void HandleAutoMinDigivolutionCostToggle()
  264. {
  265. OnAutoMinDigivolutionCostToggleChanged(!_autoMinDigivolutionCostToggle.isOn);
  266. }
  267. #endregion
  268. #region Auto max card count
  269. public void OnAutoMaxCardCountToggleChanged(bool value)
  270. {
  271. if (ContinuousController.instance == null) return;
  272. OptionUtility.OnToggleChanged(
  273. value: value,
  274. toggle: _autoMaxCardCountToggle,
  275. onToggleChanged: OnAutoMaxCardCountToggleChanged,
  276. settingRef: ref ContinuousController.instance.autoMaxCardCount,
  277. saveAction: ContinuousController.instance.SaveAutoMaxCardCount
  278. );
  279. }
  280. public void HandleAutoMaxCardCountToggle()
  281. {
  282. OnAutoMaxCardCountToggleChanged(!_autoMaxCardCountToggle.isOn);
  283. }
  284. #endregion
  285. #region Auto hatch
  286. public void OnAutoHatchToggleChanged(bool value)
  287. {
  288. if (ContinuousController.instance == null) return;
  289. OptionUtility.OnToggleChanged(
  290. value: value,
  291. toggle: _autoHatchToggle,
  292. onToggleChanged: OnAutoHatchToggleChanged,
  293. settingRef: ref ContinuousController.instance.autoHatch,
  294. saveAction: ContinuousController.instance.SaveAutoHatch
  295. );
  296. }
  297. public void HandleAutoHatchToggle()
  298. {
  299. OnAutoHatchToggleChanged(!_autoHatchToggle.isOn);
  300. }
  301. #endregion
  302. #region Use Banlist
  303. public void OnUseBanlistToggleChanged(bool value)
  304. {
  305. if (ContinuousController.instance == null) return;
  306. OptionUtility.OnToggleChanged(
  307. value: value,
  308. toggle: _banlistToggle,
  309. onToggleChanged: OnUseBanlistToggleChanged,
  310. settingRef: ref ContinuousController.instance.useBanlist,
  311. saveAction: ContinuousController.instance.SaveUseBanlist
  312. );
  313. }
  314. public void HandleUseBanlistToggle()
  315. {
  316. OnUseBanlistToggleChanged(!_banlistToggle.isOn);
  317. }
  318. #endregion
  319. }