52 lines
1.7 KiB
C#

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<EnemySpawner> spawners, CameraShaker cameraShaker)
{
WeaponModel = new WeaponModel(player.ActiveWeapon, player.weaponsContainer);
var commonListEnemies = new List<EnemyShip>();
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;
}
}