chicken_dy/Assets/Scripts/Game/GameLogic.cs

93 lines
2.9 KiB
C#
Raw Normal View History

2022-01-26 07:46:33 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameLogic : MonoBehaviour
{
2022-02-09 08:35:01 +00:00
[SerializeField] Transform mCtnStage;
private Film mFilm;
private int[] mSoundOrder;
2022-02-09 11:36:47 +00:00
private string mEndingStr;
2022-02-09 08:35:01 +00:00
private int mCurIndex;
private void Start()
{
2022-02-10 07:31:53 +00:00
AudioManager.Instance.SetMusicOn(SettingData.Instance.IsMusicOn);
AudioManager.Instance.SetSoundOn(SettingData.Instance.IsSoundOn);
2022-02-09 08:35:01 +00:00
PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>();
tUIGame.Init();
mFilm = Instantiate(ResourceManager.Instance.LoadRes<Film>(Const.Path.GetFilm(PlayerData.Instance.CurrentLevelID)));
mFilm.transform.SetParent(mCtnStage);
mFilm.transform.localPosition = Vector3.zero;
mFilm.transform.localScale = Vector3.one;
tUIGame.DelPlay = PlayFilm;
}
private void PlayFilm(int[] pSoundOrder)
2022-01-26 07:46:33 +00:00
{
2022-02-09 08:35:01 +00:00
mSoundOrder = pSoundOrder;
2022-02-09 11:36:47 +00:00
mEndingStr = "";
2022-02-09 08:35:01 +00:00
for (int i = 0; i < mSoundOrder.Length; i++)
{
2022-02-09 11:36:47 +00:00
mEndingStr += (mSoundOrder[i] + 1).ToString();
2022-02-09 08:35:01 +00:00
if (i < mSoundOrder.Length - 1)
{
2022-02-09 11:36:47 +00:00
mEndingStr += "_";
2022-02-09 08:35:01 +00:00
}
}
2022-02-09 11:36:47 +00:00
mFilm.PlayScene(mEndingStr);
2022-02-09 08:35:01 +00:00
mCurIndex = 0;
AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex])));
2022-02-09 11:36:47 +00:00
TimerManager.Instance.Schedule(PlaySound, 1.5f, mSoundOrder.Length);
2022-01-26 07:46:33 +00:00
}
2022-02-09 08:35:01 +00:00
private void PlaySound()
2022-01-26 07:46:33 +00:00
{
2022-02-09 08:35:01 +00:00
mCurIndex++;
2022-02-09 11:36:47 +00:00
if (mCurIndex < mSoundOrder.Length)
{
AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex])));
}
else
{
//end
LevelData tLvData = GameConfig.Instance.GetLevelData(PlayerData.Instance.CurrentLevelID);
2022-02-09 12:07:40 +00:00
int tEndingID = tLvData.GetMatchingEndingID(mEndingStr.Replace("_",""));
2022-02-09 11:36:47 +00:00
UIManager.Instance.CloseUI<PanelGame>();
PanelResult tUIResult = UIManager.Instance.OpenUI<PanelResult>();
2022-02-09 12:07:40 +00:00
if (tEndingID >= 0)
2022-02-09 11:36:47 +00:00
{
2022-02-09 12:07:40 +00:00
PlayerData.Instance.AddEnding(PlayerData.Instance.CurrentLevelID, tEndingID);
2022-02-09 12:28:20 +00:00
PlayerData.Instance.UnlockNewLevel();
2022-02-09 12:07:40 +00:00
EndingData tEdData = tLvData.Endings[tEndingID];
tUIResult.Init(PlayerData.Instance.CurrentLevelID, tEdData.EndingName, tEdData.IsGoodEnding, false);
2022-02-09 11:36:47 +00:00
}
else
{
2022-02-09 12:07:40 +00:00
tUIResult.Init(PlayerData.Instance.CurrentLevelID, "", false, false);
2022-02-09 11:36:47 +00:00
}
tUIResult.DelAgain = PlayAgain;
}
}
private void PlayAgain()
{
UIManager.Instance.CloseUI<PanelResult>();
PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>();
tUIGame.Init();
mFilm.PlayScene("0");
2022-01-26 07:46:33 +00:00
}
2022-02-09 08:35:01 +00:00
}