| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using cfg;
- using SimpleJSON;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- using TMPro;
- public enum SoldierType
- {
- sword = 0,
- shield = 1,
- spear = 2,
- }
- public class GameManager : MonoBehaviour
- {
- public static GameManager instance;
- public float gameTime;
- public float totalGameTime;
- public Tables allCfgData;
- public UIHP p1uiHP;
- public UIHP p1uiMP;
- public GameObject[] demonicNum;
- public TextMeshProUGUI text;
- static public SoldierType[] curSoldiers; //本局游戏选择的三个士兵
- public GameObject chapterBG; //当前关卡的原始背景(用于和boss背景做替换)
- public List<CreateEnemyConfig> createEnemyConfigs;
- public LeveType leveType;
- public GameObject nextLevelButton;
- public bool isGaming;
- private JSONNode Loader(string fileName)
- {
- return JSON.Parse(File.ReadAllText("GenerateDatas/json/" + fileName + ".json"));
- }
- public void GetAllExcel()
- {
- allCfgData = new Tables(Loader);
- }
- public void ReloadCfgCreateEnemyData()
- {
- createEnemyConfigs = new List<CreateEnemyConfig>(); ;
- for (int i = 0; i < 9; i++)
- {
- JSONNode keyValuePairs = JSON.Parse(File.ReadAllText($"GenerateDatas/json/CfgCreateEnemy{i}.json"));
- CreateEnemyConfig createEnemyConfig = new CreateEnemyConfig(keyValuePairs);
- createEnemyConfigs.Add(createEnemyConfig);
- }
- }
- private void Awake()
- {
- //选定本局游戏有哪些士兵,后面兵多了这里要改
- curSoldiers = new SoldierType[3];
- curSoldiers[0] = SoldierType.sword;
- curSoldiers[1] = SoldierType.shield;
- curSoldiers[2] = SoldierType.spear;
- if (!instance)
- {
- instance = this;
- GetAllExcel();
- ReloadCfgCreateEnemyData();
- }
- else
- {
- DestroyImmediate(gameObject);
- return;
- }
- leveType = LeveType.Introduction;
- }
- private void Start()
- {
- gameTime = 0;
- isGaming = true;
- }
- private void FixedUpdate()
- {
- if (isGaming)
- {
- gameTime += Time.deltaTime;
- totalGameTime += Time.deltaTime;
- EnemyCreater.instance.OnGameTimeChange(gameTime);
- int timeText = (int)totalGameTime;
- text.text = $"{timeText / 60:D2}:{timeText % 60:D2}({timeText}s)";
- }
- }
- //游戏结束
- public void GameEnd()
- {
- isGaming = false;
- foreach (List<Enemy> objs in EnemyCreater.instance.enemyDic.Values)
- {
- for (int i = 0; i < objs.Count; i++)
- {
- if (objs[i].gameObject.activeSelf)
- {
- objs[i].ChangeState(CharacterState.Die);
- }
- }
- }
- if (leveType == LeveType.Conclusion)
- {
- return;
- }
- nextLevelButton.SetActive(true);
- }
- //下一关
- public void NextLevel()
- {
- nextLevelButton.SetActive(false);
- switch (leveType)
- {
- case LeveType.Introduction:
- EnemyCreater.instance.GetLevelOrientation();
- leveType = LeveType.Development;
- break;
- case LeveType.Development:
- leveType = LeveType.Transition;
- break;
- case LeveType.Transition:
- leveType = LeveType.Conclusion;
- break;
- }
- PlayersInput.instance[0].PlayerRevive();
- foreach(List<GameObject> objs in PoolManager.instance.activeObjs.Values)
- {
- List<GameObject> newObjs = new List<GameObject>(objs);
- for(int i = 0; i < newObjs.Count; i++)
- {
- newObjs[i].gameObject.SetActive(false);
- }
- }
- EnemyCreater.instance.Init();
- LevelSelect.instance.ChangeText();
- gameTime = 0;
- isGaming = true;
- }
- }
|