Esempio n. 1
0
 public IEnumerable <SynchronizerDto> GetAllUserSynchronizationInfos(string userId)
 {
     return(_scenes
            .Where(scene => scene.IsActive && scene.ShortPlayers.FirstOrDefault(x => x.UserId == userId && !x.Left) != null)
            .Select(scene =>
     {
         var player = scene.ShortPlayers.First(x => x.UserId == userId);
         var synchronizer = BattleHelper.GetFullSynchronizationData(scene, userId);
         BattleHelper.CalculateReward(ref synchronizer, scene, player.Id);
         return synchronizer;
     })
            .ToHashSet());
 }
Esempio n. 2
0
        public SynchronizerDto GetUserSynchronizationInfo(string userId, Guid?sceneId)
        {
            IScene scene;

            scene = _scenes
                    .FirstOrDefault(scene => scene.IsActive &&
                                    (sceneId == null || sceneId == scene.Id) &&
                                    scene.ShortPlayers.FirstOrDefault(x => x.UserId == userId && !x.Left) != null);

            if (scene == null)
            {
                return(null);
            }

            var player       = scene.ShortPlayers.First(x => x.UserId == userId);
            var synchronizer = BattleHelper.GetFullSynchronizationData(scene, userId);

            BattleHelper.CalculateReward(ref synchronizer, scene, player.Id);
            return(synchronizer);
        }