public void OnPurchaseCompleted(IBuyable buyable) { _scorreCounter.ReductionScorre(GetPrice(buyable.Price, buyable.ObjectType)); ObjectOnScene.AddCount(buyable.ObjectType); GameDataStorage.SaveObjectsOnScene(ObjectOnScene); PurchaseCompleted?.Invoke(); }
private GameObject CreateEntity(Type type, JObject obj, GameDataStorage storage) { ConstructorInfo cInfo = type.GetConstructor(new Type[] { typeof(string), typeof(string) }); if (cInfo == null) { throw new InvalidOperationException(type.Name + CodeErrors.TypeNoConstructor); } object entity = cInfo.Invoke(new object[] { obj.Value <string>(GameStrings.Id), obj.Value <string>(GameStrings.Name) }); foreach (PropertyInfo pInfo in type.GetProperties()) { AddProperty(entity, pInfo, obj, storage); } if (entity is GameObject) { return((GameObject)entity); } else { throw new InvalidOperationException(CodeErrors.TypeIsntGameObject); } }
public GameDataStorage GetStorage(string filePath) { GameDataStorage result = new GameDataStorage(); if (!File.Exists(filePath)) { throw new ArgumentException(CodeErrors.FileDoesntExists); } dynamic buffer; using (StreamReader stream = new StreamReader(filePath)) { buffer = JObject.Parse(stream.ReadToEnd()); } JArray array = buffer[GameStrings.EntitiesPairs]; foreach (JObject obj in array) { AddStorage(obj.Value <string>(GameStrings.Type), obj.Value <string>(GameStrings.Path), result); } return(result); }
private void AddStorage(string typeName, string path, GameDataStorage storage) { if (!File.Exists(path)) { throw new ArgumentException(CodeErrors.FileDoesntExists); } dynamic buffer; using (StreamReader stream = new StreamReader(path)) { buffer = JObject.Parse(stream.ReadToEnd()); } JArray array = buffer[typeName]; Type t = GetTypeByName(typeName); GameEntityStorage smallStorage = storage.AddStorage(t); foreach (JObject obj in array) { storage.AddEntity(CreateEntity(t, obj, storage), smallStorage); } }
private void Show() { AddScore(Time.deltaTime); //_scorePerSecondViewer.text = _scoreFormConverter.GetConvertedScorrePerSecond(_savedScore.ScorePerSecond); _scoreViewer.text = _scoreFormConverter.GetConvertedScore(_savedScore.Score); GameDataStorage.SaveScore(_levelName, _savedScore); }
public override void initialize() { var halfScreen = camera.bounds.size * 0.5f; var background = Background.Create("UI/deathscreen_background"); addEntity(background); var restartButton = new Button("UI/restart_button_normal", "UI/restart_button_hover"); restartButton.position = new Vector2(halfScreen.X, 580); restartButton.Click += RestartButtonOnClick; addEntity(restartButton); var scoreText = new GameText($"{Player.score}"); scoreText.position = new Vector2(halfScreen.X, 335); addEntity(scoreText); var storage = GameDataStorage.getInstance(); storage.Load(); var bestScoreText = new GameText($"{storage.BestScore}"); bestScoreText.position = new Vector2(halfScreen.X, 435); addEntity(bestScoreText); var mainMenuButton = new Button("UI/menu_button_normal", "UI/menu_button_hover"); mainMenuButton.position = new Vector2(32, 32); mainMenuButton.Click += MainMenuButtonOnClick; addEntity(mainMenuButton); }
private void FillingScoreDatas(float sleepTime) { _savedScore = GameDataStorage.GetSavedScore(_levelName); if (_savedScore == null) { _savedScore = new SavedScore(0, 0, 2); } AddScore(sleepTime); Show(); }
public override void Save(string level) { for (int i = 0; i < _anchors.Length; i++) { var spawn = _anchors[i].InstalledFacility as Spawn; if (!_anchors[i].IsFree) { GameDataStorage.SaveSpawnObjects(i, _anchors[i].GetPosition(), spawn, spawn.SpawnTime); } } }
public override void Save(string level) { for (int i = 0; i < _anchors.Length; i++) { if (!_anchors[i].IsFree) { GameDataStorage.SaveActionObjects(i, _anchors[i].GetPosition(), _anchors[i].InstalledFacility as ActionObject); } else { GameDataStorage.RemoveActionObject(i); } } }
private void Start() { _levelName = GetComponent <LevelData>().LevelName; var savedScorre = GameDataStorage.GetSavedScore(); Score = savedScorre.Score; ScorePerSecond = savedScorre.ScorePerSecond; if (savedScorre.ScoreFactor >= _increaseTime) { _increaseTime = savedScorre.ScoreFactor; } _scorePerTime = new ScorrePerTime(10, Time.timeSinceLevelLoad, ScorePerSecond); ChangeScorre(0); }
public override void Load(string level) { _levelName = level; for (int i = 0; i < _anchors.Length; i++) { if (PlayerPrefs.HasKey(level + "_actionAnchorIndex_" + i + "_positionX")) { SavedObject savedObject = GameDataStorage.GetSavedObject("action", i); var actionObject = Instantiate(Resources.Load <ActionObject>("Prefabs/ActionObject/" + savedObject.Name)); var anchor = _anchors.Where(a => a.GetPosition() == savedObject.Position).First(); actionObject.SetPosition(anchor.GetPosition()); anchor.SetChangeableObject(actionObject); } } }
private void AddProperty(object entity, PropertyInfo pInfo, JObject obj, GameDataStorage storage) { Type[] genericsArgs = pInfo.PropertyType.GetGenericArguments(); Type entityType; if (genericsArgs.Length == 1) { entityType = genericsArgs.Single(); if (typeof(IEnumerable).IsAssignableFrom(pInfo.PropertyType)) { JArray array = obj.Value <JArray>(pInfo.Name); foreach (JValue jName in array) { ((IList)pInfo.GetValue(entity)).Add(storage.GetEntity(entityType, jName.Value <string>())); } } return; } entityType = pInfo.PropertyType; if (typeof(GameObject).IsAssignableFrom(entityType)) { pInfo.SetValue(entity, storage.GetEntity(entityType, obj.Value <string>(pInfo.Name))); return; } if (entityType == typeof(string)) { pInfo.SetValue(entity, obj.Value <string>(pInfo.Name)); return; } if (entityType == typeof(int)) { pInfo.SetValue(entity, obj.Value <int>(pInfo.Name)); return; } if (entityType == typeof(float)) { pInfo.SetValue(entity, obj.Value <float>(pInfo.Name)); return; } }
public void LevelPlay(int levelIndex) { _currentLevelIndex = levelIndex; _canLoadLevel = true; int count = GameDataStorage.NumberOfLaunches(levelIndex); if (_isDebug || count <= _adDisplayDelay) { LevelLoad(); } else { _videoAds.UnityAdsDidFinish += LevelLoad; _videoAds.ShowRewardedVideo(true); } }
public override void Load(string level) { _levelName = level; for (int i = 0; i < _anchors.Length; i++) { if (PlayerPrefs.HasKey(level + "_spawnAnchorIndex_" + i + "_positionX")) { SavedObject savedObject = GameDataStorage.GetSavedObject("spawn", i); var spawn = _spawnPool.GetObject() as Spawn; var anchor = _anchors.Where(a => a.GetPosition() == savedObject.Position).First(); if (anchor.IsFree) { spawn.Upgrade(spawn.SpawnTime - PlayerPrefs.GetFloat(level + "_spawnIndex_" + i + "_spawnTime")); spawn.LeaveThePoolAndRun(anchor.GetPosition()); anchor.SetChangeableObject(spawn as IUpgradeable); } } } }
public override void initialize() { var halfScreen = camera.bounds.size * 0.5f; var background = Background.Create("UI/menu_background"); addEntity(background); var playButton = new Button("UI/play_button_normal", "UI/play_button_hover"); playButton.position = new Vector2(halfScreen.X, 380); playButton.Click += PlayButtonOnClick; addEntity(playButton); var storage = GameDataStorage.getInstance(); storage.Load(); var bestScoreText = new GameText($"{storage.BestScore.ToString()}"); bestScoreText.position = new Vector2(halfScreen.X, 600); addEntity(bestScoreText); }
public void AddingScorre(float scorre) { ScorePerSecond = _scorePerTime.GetValue(scorre, Time.timeSinceLevelLoad); ChangeScorre(scorre); GameDataStorage.SaveScore(Score, ScorePerSecond, _increaseTime); }