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; }
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); }