private void AddLoadedTank(TankConfig tankConfig) {
            if (!tankConfig.IsValid()) {
                Debug.LogError("Invalid tank config");
                PApplicationUtil.Quit(1);
                return;
            }
            
            tankConfig.Prefab = cnf.TankPrefab;
            if (tankConfig.Prefab == null) {
                Debug.LogError("Tank have no prefab");
                PApplicationUtil.Quit(1);
                return;
            }

            foreach (var weaponConfig in tankConfig.Weapons) {
                try {
                    weaponConfig.Prefab = cnf.TankWeapons.First(info => info.Name == weaponConfig.Name).Prefab;
                } catch (InvalidOperationException e) {
                    Debug.LogErrorFormat("Cannot find tank weapon {0} in {1}", weaponConfig.Name, nameof(cnf.TankWeapons));
                    Debug.LogException(e);
                    PApplicationUtil.Quit(1);
                    return;
                }

                if (weaponConfig.Prefab == null) {
                    Debug.LogErrorFormat("Weapon config {0} have no prefab", weaponConfig.Name);
                    PApplicationUtil.Quit(1);
                    return;
                }
            }
            

            st.TankConfig = tankConfig;
        }
示例#2
0
        private void OnEnemyGeneratorLoaded()
        {
            st.TankUnit = st.CharacterGenerator.GenerateTank();
            st.TankUnit.transform.SetParent(st.WorldDynamicTransform);
            st.TankUnit.SetOnDieCallback(() => {
                Debug.LogFormat("YOU DIED...");
                Debug.LogFormat("Score: {0}", GetScore());
                PApplicationUtil.Quit(0);
            });

            OnModuleLoaded(st.CharacterGenerator);
        }
 private void TryCallOnLoadEnd() {
     if (st.LoadingInProcess > 0) {
         return;
     }
     
     if (st.EnemiesConfigs.IsEmpty()) {
         Debug.LogError("Cannot load any enemy config");
         PApplicationUtil.Quit(1);
         return;
     }
     
     st.OnLoadEnd?.Invoke();
     st.OnLoadEnd = null;
 }
 private void OnLoadTankConfigFailure() {
     Debug.LogError("Cannot load tank config");
     PApplicationUtil.Quit(1);
 }