| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using Photon.Pun;
- using Photon.Realtime;
- using UnityEngine.SceneManagement;
- using System;
- using System.Linq;
- using Hashtable = ExitGames.Client.Photon.Hashtable;
- using UnityEngine.Events;
- using UnityEngine.EventSystems;
- public class SelectBattleMode : MonoBehaviour
- {
- [Header("バトルモード選択")]
- public YesNoObject selectBattleModeWindow;
- [Header("ルームマッチ選択")]
- [SerializeField] YesNoObject selectRoomMatchWindow;
- [Header("ルームID入力")]
- [SerializeField] EnterRoom enterRoom;
- [Header("ルームマッチマネージャ")]
- [SerializeField] RoomManager roomManager;
- [Header("LoadingObject")]
- public LoadingObject loadingObject;
- public void OffSelectBattleMode()
- {
- Off();
- }
- public void Off()
- {
- this.gameObject.SetActive(false);
- }
- bool connecting = false;
- public void SetUpSelectBattleMode()
- {
- if (connecting)
- {
- return;
- }
- ContinuousController.instance.StartCoroutine(SetUpSelectBattleModeCoroutine());
- }
- public IEnumerator SetUpSelectBattleModeCoroutine()
- {
- selectBattleModeWindow.CloseOnButtonClicked = false;
- selectRoomMatchWindow.CloseOnButtonClicked = false;
- selectBattleModeWindow.Off();
- selectRoomMatchWindow.Off();
- enterRoom.Off();
- Opening.instance.battle.selectBattleDeck.Off();
- yield return ContinuousController.instance.StartCoroutine(loadingObject.StartLoading("Connecting"));
- connecting = true;
- yield return ContinuousController.instance.StartCoroutine(PhotonUtility.ConnectToLobbyCoroutine());
- // ContinuousController.instance.BattleDeckData = null;
- yield return ContinuousController.instance.StartCoroutine(PhotonUtility.DeleteBattleDeckData());
- connecting = false;
- yield return ContinuousController.instance.StartCoroutine(loadingObject.EndLoading());
- this.gameObject.SetActive(true);
- StartSelectBattleMode();
- }
- public void StartSelectBattleMode()
- {
- List<UnityAction> Commands = new List<UnityAction>()
- {
- () =>
- {
- //ランダムマッチ
- StartSelectBattleDeck(false);
- },
- () =>
- {
- //ルームマッチ
- StartSelectRoomMatch();
- },
- () =>
- {
- //AI戦
- StartSelectBattleDeck(true);
- },
- };
- List<string> CommandTexts = new List<string>()
- {
- LocalizeUtility.GetLocalizedString(
- EngMessage:"Random Match",
- JpnMessage:"ランダムマッチ"
- ),
- LocalizeUtility.GetLocalizedString(
- EngMessage:"Room Match",
- JpnMessage:"ルームマッチ"
- ),
- LocalizeUtility.GetLocalizedString(
- EngMessage:"Bot Match",
- JpnMessage:"Bot戦"
- ),
- };
- selectBattleModeWindow.SetUpYesNoObject(
- Commands,
- CommandTexts,
- LocalizeUtility.GetLocalizedString(
- EngMessage: "Please select the mode to play.",
- JpnMessage: "対戦モードを選択してください"
- ),
- true);
- }
- void StartSelectBattleDeck(bool isAI)
- {
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- enterRoom.Close_(false);
- selectRoomMatchWindow.Close_(false);
- ContinuousController.instance.isAI = isAI;
- ContinuousController.instance.isRandomMatch = true;
- Opening.instance.battle.selectBattleDeck.Off();
- if (!ContinuousController.instance.isAI)
- {
- Opening.instance.battle.selectBattleDeck.SetUpSelectBattleDeck(Opening.instance.battle.selectBattleDeck.OnClickSelectButton_RandomMatch, 0);
- }
- else
- {
- Opening.instance.battle.selectBattleDeck.SetUpSelectBattleDeck(() =>
- {
- Opening.instance.battle.selectBattleDeck.OnClickSelectButton_BotMatch();
- ContinuousController.instance.StartCoroutine(StartBattleCoroutine());
- }
- , 0);
- }
- IEnumerator StartBattleCoroutine()
- {
- selectRoomMatchWindow.Close_(false);
- enterRoom.Close_(false);
- ContinuousController.instance.StartCoroutine(Opening.instance.OpeningBGM.FadeOut(0.1f));
- yield return ContinuousController.instance.StartCoroutine(Opening.instance.LoadingObject.StartLoading("Now Loading"));
- foreach (Camera camera in Opening.instance.openingCameras)
- {
- camera.gameObject.SetActive(false);
- }
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- yield return new WaitForSeconds(0.1f);
- SceneManager.LoadSceneAsync("BattleScene", LoadSceneMode.Additive);
- }
- }
- public void StartSelectRoomMatch()
- {
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- Opening.instance.battle.selectBattleDeck.Off();
- ContinuousController.instance.isAI = false;
- List<UnityAction> Commands = new List<UnityAction>()
- {
- () =>
- {
- //部屋を作る
- StartCreateRoom();
- },
- () =>
- {
- //部屋に入る
- StartEnterRoomID();
- },
- };
- List<string> CommandTexts = new List<string>()
- {
- LocalizeUtility.GetLocalizedString(
- EngMessage:"Create Room",
- JpnMessage:"ルーム作成"
- ),
- LocalizeUtility.GetLocalizedString(
- EngMessage:"Join Room",
- JpnMessage:"ルームに入る"
- ),
- };
- selectRoomMatchWindow.SetUpYesNoObject(
- Commands,
- CommandTexts,
- LocalizeUtility.GetLocalizedString(
- EngMessage: "Please choose between creating a room or joining an existing one.",
- JpnMessage: "ルームを作成するかルームに入るか\n選択してください"
- ),
- true);
- }
- void StartCreateRoom()
- {
- roomManager.SetUpRoom();
- }
- void StartEnterRoomID()
- {
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- enterRoom.SetUpEnterRoom();
- }
- public void OnClickCloseEnterRoomWindow()
- {
- enterRoom.Close_(false);
- ContinuousController.instance.PlaySE(Opening.instance.CancelSE);
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- }
- public void OnClickCloseSelectRoomMatchWindow()
- {
- enterRoom.Close_(false);
- selectRoomMatchWindow.Close_(false);
- ContinuousController.instance.PlaySE(Opening.instance.CancelSE);
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- }
- public void OnClickSelectBattleModeWindow()
- {
- enterRoom.Close_(true);
- selectRoomMatchWindow.Close_(false);
- selectBattleModeWindow.Close_(false);
- ContinuousController.instance.PlaySE(Opening.instance.CancelSE);
- Opening.instance.OffYesNoObjects();
- Opening.instance.deck.trialDraw.Close();
- Opening.instance.deck.deckListPanel.Close();
- ContinuousController.instance.StartCoroutine(OnClickSelectBattleModeWindowIEnumerator());
- }
- IEnumerator OnClickSelectBattleModeWindowIEnumerator()
- {
- yield return new WaitForSeconds(0.3f);
- Opening.instance.battle.OffBattle();
- Opening.instance.home.SetUpHomeMode_Disconnect();
- this.gameObject.SetActive(false);
- }
- }
|