Example #1
0
 public SyncEventArgs(IScene scene, int version, Helpers.SceneAction action, ISynchronizer syncInfo, int?id, int?actionId, int?targetX, int?targetY)
 {
     this.Version       = version;
     this.Scene         = scene;
     this.Action        = action;
     this.SyncInfo      = syncInfo;
     this.ActorId       = id;
     this.SkillActionId = actionId;
     this.TargetX       = targetX;
     this.TargetY       = targetY;
 }
Example #2
0
        public bool AfterUpdateSynchronization(Helpers.SceneAction action, TileObject actor, int?actionId, int?targetX, int?targetY)
        {
            AfterActionUpdate();
            this.ReturnAction?.Invoke(this, new SyncEventArgs(this, ++Version, action, GetSynchronizationData(true), actor?.Id, actionId, targetX, targetY));
            if (WinCondition(this))
            {
                foreach (Player player in players)
                {
                    if (player.Status == PlayerStatus.Playing)
                    {
                        player.Victory();
                    }
                }

                this.ReturnAction?.Invoke(this, new SyncEventArgs(this, ++Version, Helpers.SceneAction.EndGame, GetSynchronizationDataPlayersOnly(), null, null, null, null));
                IsActive = false;
                return(false);
            }

            return(true);
        }