Пример #1
0
        public async Task <GameDataInfo> GetDataInfo(Guid userId, string gameId)
        {
            var prefix  = MakeKeyPrefix(userId, gameId);
            var request = new ListObjectsRequest
            {
                BucketName = _bucketName,
                Prefix     = prefix,
                MaxKeys    = 1,
            };
            var response = await _s3Client.ListObjectsAsync(request);

            if (response.S3Objects.Count == 0)
            {
                return(null);
            }
            var s3Object = response.S3Objects[0];
            var key      = SplitKeyString(s3Object.Key);
            var result   = new GameDataInfo
            {
                GameId           = gameId,
                CurrentIndex     = key.Index,
                LastModifiedDate = s3Object.LastModified,
                IconUrl          = GetDataIconUrl(userId, gameId)
            };

            return(result);
        }
Пример #2
0
    public void UnlockAll()
    {
        bool currentAudioEnable = _dataInfo.AudioEnabled;

        _dataInfo = new GameDataInfo();

        _dataInfo.AudioEnabled = currentAudioEnable;

        for (int i = 0; i < _stageNames.Length; i++)
        {
            _dataInfo.StageConfig.Add("locked_" + i, false);
            _dataInfo.StageConfig.Add("pickups_total_" + i, 0);
            _dataInfo.StageConfig.Add("pickups_highest_" + i, 0);
        }

        Save();
    }
Пример #3
0
    public static List <Stage> BuildStages(string[] names, GameDataInfo dataInfo)
    {
        // Note that we could skip adding some values, each stage will take its base value at Stage class.
        List <Stage> stages = new List <Stage>();
        Stage        newStage;

        for (int cnt = 0; cnt < names.Length; cnt++)
        {
            newStage = new Stage();

            newStage.SetConfig(cnt, (Hashtable)dataInfo.StageConfig)
            .SetAssetPath("level_" + cnt)
            .SetLabel(names[cnt]);

            stages.Add(newStage);
        }

        return(stages);
    }
Пример #4
0
    public void Load(string[] names)
    {
        _stageNames = names;

        if (File.Exists(_savePathName))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(_savePathName, FileMode.Open);
            try
            {
                // Reading File and setting value to data object
                _dataInfo = (GameDataInfo)bf.Deserialize(file);

                AudioListener.volume = _dataInfo.AudioEnabled ? 1 : 0;

                if (_dataInfo.StageConfig == null)
                {
                    CreateAndSaveDefault();
                }
                else
                {
                    /* Check if the last stage is available, otherwise, reset game in catch exception*/
                    bool lastStage = (bool)_dataInfo.StageConfig["locked_" + (_stageNames.Length - 1)];
                }
            }
            catch
            {
                // If serialization fails, the saved object is old or damage. Create default one.
                file.Close();
                CreateAndSaveDefault();
            }
            file.Close();
        }
        else
        {
            CreateAndSaveDefault();
        }
    }
Пример #5
0
    private void SetDefault()
    {
        bool currentAudioEnable = _dataInfo.AudioEnabled;

        _dataInfo = new GameDataInfo();

        _dataInfo.AudioEnabled = currentAudioEnable;

        for (int i = 0; i < _stageNames.Length; i++)
        {
            if (i == 0)
            {
                _dataInfo.StageConfig.Add("locked_0", false);
                _dataInfo.StageConfig.Add("pickups_total_0", 0);
                _dataInfo.StageConfig.Add("pickups_highest_0", 0);
            }
            else
            {
                _dataInfo.StageConfig.Add("locked_" + i, true);
                _dataInfo.StageConfig.Add("pickups_total_" + i, 0);
                _dataInfo.StageConfig.Add("pickups_highest_" + i, 0);
            }
        }
    }