| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.SceneManagement;
- using System.Linq;
- using Photon;
- using Photon.Pun;
- using System.IO;
- using System;
- public class GManager : MonoBehaviour
- {
- [Header("あなた")]
- public Player You;
- [Header("対戦相手")]
- public Player Opponent;
- [Header("CardSourceプレハブ")]
- public CardSource CardPrefab;
- [Header("場のポケモンカードプレハブ")]
- public FieldPermanentCard fieldCardPrefab;
- [Header("手札のカードプレハブ")]
- public HandCard handCardPrefab;
- [Header("読み込み中オブジェクト")]
- public LoadingObject LoadingObject;
- [Header("コマンド選択パネル")]
- public SelectCommandPanel selectCommandPanel;
- [Header("戻るボタン")]
- public SelectCommand BackButton;
- [Header("結果表示オブジェクト")]
- public ResultObject resultObject;
- [Header("メッセージテキスト")]
- public CommandText commandText;
- [Header("ターンプレイヤー表示")]
- public ShowTurnPlayerObject showTurnPlayerObject;
- [Header("フェイズ通知")]
- public ShowPhaseNotificationObject showPhaseNotificationObject;
- [Header("キャンバス")]
- public Canvas canvas;
- [Header("キャンバス2")]
- public Canvas canvas2;
- [Header("カード詳細")]
- public CardDetail cardDetail;
- [Header("パーマネント詳細")]
- public PermanentDetail pokemonDetail;
- [Header("カード選択パネル")]
- public SelectCardPanel selectCardPanel;
- [Header("カード確認パネル")]
- public CheckCardPanel checkCardPanel;
- [Header("次のフェイズに進むボタン")]
- public NextPhaseButton nextPhaseButton;
- [Header("設定パネル")]
- public OptionPanel optionPanel;
- [Header("ターゲット矢印プレハブ")]
- public TargetArrow targetArrowPrefab;
- [Header("ターゲット矢印親")]
- public Transform targetArrowParent;
- [Header("Camera")]
- public Camera camara;
- [Header("StartBattleSE")]
- public AudioClip StartBattleSE;
- [Header("自動処理チェック")]
- public AutoProcessing autoProcessing;
- [Header("プレイログ")]
- public PlayLog playLog;
- [Header("メモリー")]
- public MemoryObject memoryObject;
- [Header("背景")]
- public Image BackgroundImage;
- [Header("背景")]
- public SpriteRenderer BackgroundSpriteRenderer;
- [Header("攻撃処理")]
- public AttackProcess attackProcess;
- [Header("ジョグレス選択")]
- public SelectJogressEffect selectJogressEffect;
- [Header("バースト進化選択")]
- public SelectBurstDigivolutionEffect selectBurstDigivolutionEffect;
- [Header("自動処理チェック(割り込み処理)")]
- public AutoProcessing autoProcessing_CutIn;
- [Header("ユーザー選択")]
- public UserSelectionManager userSelectionManager;
- [Header("選択可能なものだけ表示")]
- public HideCannotSelectObject hideCannotSelectObject;
- [Header("サイドバー")]
- public SideBar sideBar;
- [Header("UseSkillSE")]
- public AudioClip UseSkillSE;
- [Header("サイド取得SE")]
- public AudioClip GetSideSE;
- [Header("DeleteHandSE")]
- public AudioClip DeleteHandSE;
- [Header("エネルギー追加SE")]
- public AudioClip AddEnergySE;
- [Header("ShowPlayCardSE")]
- public AudioClip ShowPlayCardSE;
- [Header("ポケモンプレイ時SE")]
- public AudioClip PlayPokemonSE;
- [Header("ShuffleSE")]
- public AudioClip ShuffleSE;
- [Header("DrawSE")]
- public AudioClip DrawSE;
- [Header("TargetArrowSE")]
- public AudioClip TargetArrowSE;
- [Header("MoveSE")]
- public AudioClip MoveSE;
- [Header("気絶SE")]
- public AudioClip KnockOutSE;
- [Header("ダメージSE")]
- public AudioClip DamageSE;
- [Header("コイントスSE")]
- public AudioClip CointTossSE;
- [Header("回復SE")]
- public AudioClip HealSE;
- [Header("毒SE")]
- public AudioClip PoisonSE;
- [Header("火傷SE")]
- public AudioClip BurnedSE;
- [Header("WinSE")]
- public AudioClip WinSE;
- [Header("LoseSE")]
- public AudioClip LoseSE;
- [Header("DecisionSE")]
- [SerializeField] AudioClip DecisionSE;
- [Header("CancelSE")]
- [SerializeField] AudioClip CancelSE;
- [Header("BGM")]
- public List<AudioClip> bgms;
- [Header("BGMObject")]
- public BGMObject BattleBGM;
- [Header("オートモード")]
- public bool isAuto;
- [Header("進化演出")]
- public EvolutionEffectObject EvolutionEffectObject;
- [Header("ジョグレス進化演出")]
- public JogressEffectObject jogressEffectObject;
- [Header("デジクロス演出")]
- public DigiXrosEffectObject digiXrosEffectObject;
- [Header("バースト進化演出")]
- public BurstEffectObject burstEffectObject;
- [Header("Background Particle effects")]
- [SerializeField] List<ParticleSystem> _backgroundParticles = new List<ParticleSystem>();
- [Header("Photon wait controller")]
- public PhotonWaitController photonWaitController;
- [Header("Gameobjects closed when ending game")]
- public List<GameObject> CloseWhenEndingGameObjects = new List<GameObject>();
- //Turn progression management state machine
- public TurnStateMachine turnStateMachine { get; set; }
- public static GManager instance = null;
- public bool IsAI { get; private set; } = false;
- public int CardIndex { get; set; } = 0;
- #region Events
- //Cards flipped
- public static Action OnReverseOpponentsCardsChanged;
- public static Action OnCardFlippedChanged;
- public static Action<bool> OnCardSuspendedChanged;
-
- #endregion
- private async void Awake()
- {
- //return;
- if (Opening.instance != null)
- {
- if (Opening.instance.OpeningBGM != null)
- {
- Opening.instance.OpeningBGM.StopPlayBGM();
- }
- }
- instance = this;
- StartCoroutine(AwakeCoroutine());
- }
- IEnumerator AwakeCoroutine()
- {
- #if UNITY_EDITOR
- #endif
- if (!PhotonNetwork.IsConnected)
- {
- IsAI = true;
- }
- if (ContinuousController.instance != null)
- {
- if (ContinuousController.instance.isAI)
- {
- IsAI = true;
- }
- }
- if (!IsAI)
- {
- isAuto = false;
- }
- turnStateMachine = gameObject.AddComponent<TurnStateMachine>();
- GetComponent<Effects>().Init();
- playLog.Init();
- hideCannotSelectObject.Init();
- ChangeBackground();
- yield return StartCoroutine(Init());
- StartCoroutine(turnStateMachine.Init());
- StartCoroutine(CheckDisconnect());
- if (Opening.instance != null)
- {
- Opening.instance.openingObject.SetActive(false);
- }
- Debug.Log("Battle Initialization");
- yield return new WaitWhile(() => ContinuousController.instance == null);
- ContinuousController.instance.CanSetRandom = true;
- }
- protected virtual void OnDestroy()
- {
- if (instance == this)
- {
- instance = null;
- }
- }
- public void PlayDecisionSE()
- {
- ContinuousController.instance.PlaySE(DecisionSE);
- }
- public void PlayCancelSE()
- {
- ContinuousController.instance.PlaySE(CancelSE);
- }
- public async void ChangeBackground()
- {
- Sprite backgroundSprite = await StreamingAssetsUtility.GetSprite("Background_battle");
- if (backgroundSprite != null)
- {
- BackgroundImage.sprite = backgroundSprite;
- BackgroundSpriteRenderer.sprite = backgroundSprite;
- BackgroundImage.gameObject.SetActive(true);
- BackgroundSpriteRenderer.transform.localPosition = new Vector3(-134, BackgroundSpriteRenderer.transform.localPosition.y, -77f);
- BackgroundSpriteRenderer.gameObject.SetActive(true);
- }
- else
- {
- BackgroundImage.gameObject.SetActive(false);
- BackgroundSpriteRenderer.gameObject.SetActive(false);
- }
- }
- IEnumerator CheckDisconnect()
- {
- if (IsAI)
- {
- yield break;
- }
- yield return new WaitWhile(() => turnStateMachine == null);
- yield return new WaitForSeconds(5f);
- while (true)
- {
- if (!PhotonNetwork.IsConnected)
- {
- break;
- }
- else
- {
- if (!PhotonNetwork.InRoom)
- {
- break;
- }
- else
- {
- if (PhotonNetwork.CurrentRoom != null)
- {
- if (PhotonNetwork.PlayerList.Length < 2)
- {
- break;
- }
- }
- }
- }
- yield return null;
- }
- if (!turnStateMachine.endGame)
- {
- turnStateMachine.EndGame(null, false);
- }
- }
- public IEnumerator Init()
- {
- yield return StartCoroutine(LoadingObject.StartLoading("Now Loading"));
- selectCommandPanel.Off();
- BackButton.CloseSelectCommandButton();
- resultObject.Init();
- commandText.Init();
- sideBar.Init();
- showTurnPlayerObject.Init();
- showPhaseNotificationObject.Init();
- OffTargetArrow();
- cardDetail.CloseCardDetail();
- pokemonDetail.CloseUnitDetail();
- selectCardPanel.CloseSelectCardPanel();
- yield return StartCoroutine(checkCardPanel.CloseSelectCardPanelCoroutine());
- optionPanel.Init();
- EvolutionEffectObject.Init();
- jogressEffectObject.Init();
- digiXrosEffectObject.Init();
- burstEffectObject.Init();
- }
- public void ReturnToTitle()
- {
- ContinuousController.instance.EndBattle();
- }
- public void OnClickSurrenderButton()
- {
- if (turnStateMachine != null)
- {
- if (turnStateMachine.endGame)
- {
- return;
- }
- turnStateMachine.OnClickSurrenderButton();
- }
- }
- public TargetArrow CreateTargetArrow()
- {
- TargetArrow targetArrow = Instantiate(targetArrowPrefab, targetArrowParent);
- return targetArrow;
- }
- public Coroutine OnTargetArrow(Vector3 InitialPosition, Vector3 targetPosition, FieldPermanentCard StartFieldUnitCard, FieldPermanentCard EndFieldUnitCard)
- {
- TargetArrow targetArrow = CreateTargetArrow();
- return targetArrow.OnTargetArrow(InitialPosition, targetPosition, StartFieldUnitCard, EndFieldUnitCard);
- }
- public void OffTargetArrow()
- {
- if (targetArrowParent.childCount > 0)
- {
- if (targetArrowParent.GetChild(targetArrowParent.childCount - 1).GetComponent<TargetArrow>() != null)
- {
- targetArrowParent.GetChild(targetArrowParent.childCount - 1).GetComponent<TargetArrow>().Destroyed = true;
- }
- Destroy(targetArrowParent.GetChild(targetArrowParent.childCount - 1).gameObject);
- }
- }
- void Update()
- {
- if (ContinuousController.instance != null)
- {
- foreach (ParticleSystem particleSystem in _backgroundParticles)
- {
- if (particleSystem != null)
- {
- particleSystem.gameObject.SetActive(ContinuousController.instance.showBackgroundParticle);
- }
- }
- }
- }
- }
|