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; }
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); }