52 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|