using System.Collections.Generic; //что то типа Service Locator public static class G { public static WeaponModel WeaponModel { get; private set; } public static ScoreModel ScoreModel { get; private set; } public static PlayerStateModel PlayerStateModel { get; private set; } public static DangersModel DangersModel { get; private set; } public static EndGameConditionChecker EndGameChecker; public static GameSessionTerminator Terminator; public static CameraShaker CameraShaker { get; private set; } public static RankSystem.RankInfo Rank; public static void Initialize(Player player, Health playerHealth, List spawners, CameraShaker cameraShaker) { WeaponModel = new WeaponModel(player.ActiveWeapon, player.weaponsContainer); var commonListEnemies = new List(); foreach (var s in spawners) { commonListEnemies.AddRange(s.EnemyPrefabs); } ScoreModel = new ScoreModel(commonListEnemies); PlayerStateModel = new PlayerStateModel(player, playerHealth); DangersModel = new DangersModel(); string playtime = SettingsManager.GetString(SettingKey.PlayTime, "2 мин."); int sessionTimeMinutes = PluralizeUtil.PlaytimeToMinutes(playtime); EndGameChecker = new EndGameConditionChecker(WeaponModel, playerHealth, sessionTimeMinutes); Terminator = new GameSessionTerminator(); EndGameChecker.OnEndGameCondition += Terminator.TerminateGame; CameraShaker = cameraShaker; CameraShaker.Init(); } public static void Clear() { WeaponModel = null; ScoreModel = null; PlayerStateModel = null; DangersModel = null; } }