public StartDeckCardDrawingSystem(Contexts contexts, DeckSetting setting) : base(contexts) { _gameContext = contexts.game; _cardContext = contexts.card; _setting = setting; _eventContext = contexts.gameEvent; }
public Task CardPlayed(CardPlayedDto data) { var ctx = new GameEventContext(data.GameId, data.RoundIndex); var e = new CardPlayed(ctx, new PlayerIndex(data.PlayerIndex), _deck[data.CardIndex]); _gameEventCallback(e); return(Task.CompletedTask); }
public Task TrickWon(TrickWonDto data) { var ctx = new GameEventContext(data.GameId, data.RoundIndex); var e = new TrickWon(ctx, new PlayerIndex(data.PlayerIndex)); _gameEventCallback(e); return(Task.CompletedTask); }
private HandReceivedDto GetHandReceivedData(GameEventContext ctx, HandReceived hand) { if (hand.Player == _playerIndex) { var knownHand = hand.Hand as KnownHand; return(HandReceivedDto.ForKnownHand(ctx.GameId, ctx.RoundIndex, hand.Player, knownHand.Select(GetIndex).ToList())); } return(HandReceivedDto.ForSecretHand(ctx.GameId, ctx.RoundIndex, hand.Player, hand.Hand.NumberOfCards)); }
public void TrickStateHasValueSemantics() { var gameCtx = new GameEventContext("game", 12); var ts1 = TrickState.Initial.Next(new CardPlayed(gameCtx, new PlayerIndex(3), new Card(Suit.Diamonds, Rank.Queen))); var ts2 = TrickState.Initial.Next(new CardPlayed(gameCtx, new PlayerIndex(3), new Card(Suit.Diamonds, Rank.Queen))); Assert.Equal(ts1, ts2); }
public Task GuessGiven(GuessGivenDto data) { var ctx = new GameEventContext(data.GameId, data.RoundIndex); var e = new GuessGiven(ctx, new PlayerIndex(data.PlayerIndex), data.Count); System.Console.WriteLine(e); _gameEventCallback(e); return(Task.CompletedTask); }
public BossActiveSkillUsingSystem(Contexts contexts, TurnNotification noti, SystemController syscon) : base(contexts) { _cardContext = contexts.card; _unitContext = contexts.unit; _eventContext = contexts.gameEvent; _noti = noti; _syscon = syscon; }
void Awake() { m_rectTransform = GetComponent <RectTransform>(); m_nRadius = m_controllerRect.rect.width / 2 - 20; m_nSqrRadius = m_nRadius * m_nRadius; m_nPower = 100; m_bMousePressed = false; m_EvtCtx = new GameEventContext(); }
public void TrickWonIsMappedAndBack() { var ctx = new GameEventContext("g", 12); var trickWon = new TrickWon(ctx, new PlayerIndex(1)); var persistable = GameEventSerializer.Convert(trickWon); var recreated = GameEventSerializer.Convert(persistable) as TrickWon; Assert.Equal(1, recreated.Player.Value); }
public void GuessGivenIsMappedAndBack() { var ctx = new GameEventContext("g", 12); var guessGiven = new GuessGiven(ctx, new PlayerIndex(1), 23); var persistable = GameEventSerializer.Convert(guessGiven); var recreated = GameEventSerializer.Convert(persistable) as GuessGiven; Assert.Equal(1, recreated.Player.Value); Assert.Equal(23, recreated.Count); }
public void HandReceivedIsMappedAndBack() { var ctx = new GameEventContext("g", 12); var handReceivedEvent = new HandReceived(ctx, new PlayerIndex(4), new KnownHand(new[] { new Card(Suit.Club, Rank.Four), new Card(Suit.Hearts, Rank.Ace) })); var persistable = GameEventSerializer.Convert(handReceivedEvent); var recreated = GameEventSerializer.Convert(persistable) as HandReceived; Assert.Equal(4, recreated.Player.Value); Assert.Equal(handReceivedEvent.Hand, recreated.Hand); }
public void CardPlayedIsMappedAndBack() { var ctx = new GameEventContext("g", 12); var aCard = new Card(Suit.Diamonds, Rank.King); var cardPlayed = new CardPlayed(ctx, new PlayerIndex(2), aCard); var persistable = GameEventSerializer.Convert(cardPlayed); var recreated = GameEventSerializer.Convert(persistable) as CardPlayed; Assert.Equal(2, recreated.Player.Value); Assert.Equal(aCard, recreated.Card); }
public GameEventHub(EumelGameRoomDefinition definition, GameProgress progress) { _gameEventContext = new(definition.Name, -1); _numPlayers = definition.Players.Count; _plan = definition.Plan; // TODO: join event types. Make GameSeriesStarted contents static data of the room _events = new EventCollection <GameEvent>(); if (progress.LastRoundEvents.Any()) { ForwardTo(progress); } }
public Task HandReceived(HandReceivedDto data) { System.Console.WriteLine(data); var hand = data.CardIndices == null ? (IHand) new UnknownHand(data.NumberOfCards) : new KnownHand(data.CardIndices.Select(i => _deck[i])); var ctx = new GameEventContext(data.GameId, data.RoundIndex); var e = new HandReceived(ctx, new PlayerIndex(data.PlayerIndex), hand); System.Console.WriteLine(e); _gameEventCallback(e); return(Task.CompletedTask); }
public void MoveToNextRound() { if (!HasMoreRounds) { throw new InvalidOperationException("No more rounds"); } _gameEventContext = _gameEventContext with { RoundIndex = _gameEventContext.RoundIndex + 1 }; CurrentRoundSettings = _plan.Rounds[_gameEventContext.RoundIndex]; State = GameState.Initial(_numPlayers, CurrentRoundSettings); _events.Clear(); }
public Contexts() { game = new GameContext(); gameEvent = new GameEventContext(); input = new InputContext(); var postConstructors = System.Linq.Enumerable.Where( GetType().GetMethods(), method => System.Attribute.IsDefined(method, typeof(Entitas.CodeGeneration.Attributes.PostConstructorAttribute)) ); foreach (var postConstructor in postConstructors) { postConstructor.Invoke(this, null); } }
public void RemoveEventReceiver(GameEventType evt, GameEventContext context, GameEventHandler handler) { if (eventReceivers == null) { eventReceivers = new Dictionary <GameEventType, HashSet <GameEventContext> >(); } if (!eventReceivers.ContainsKey(evt)) { return; } if (handler != null) { context.UnBind(evt, handler); } eventReceivers[evt].Remove(context); }
public static GameEvent Convert(PersistedEvent persisted) { var context = new GameEventContext(persisted.GameUuid, persisted.RoundIndex); return(persisted.Type switch { PersistedEventType.HandReceived => RecreateHandReceived(context, JsonSerializer.Deserialize <HandReceivedPayload>(persisted.Payload)), PersistedEventType.GuessGiven => RecreateGuessGiven(context, JsonSerializer.Deserialize <GuessPayload>(persisted.Payload)), PersistedEventType.CardPlayed => RecreateCardPlayed(context, JsonSerializer.Deserialize <CardPlayedPayload>(persisted.Payload)), PersistedEventType.TrickWon => RecreateTrickWon(context, JsonSerializer.Deserialize <TrickWonPayload>(persisted.Payload)), _ => throw new NotImplementedException() });
public void AddEventReceiver(GameEventType evt, GameEventContext context, GameEventHandler handler) { if (handler == null) { return; } if (eventReceivers == null) { eventReceivers = new Dictionary <GameEventType, HashSet <GameEventContext> >(); } if (eventReceivers.ContainsKey(evt) == false || eventReceivers[evt] == null) { HashSet <GameEventContext> set = new HashSet <GameEventContext>(); eventReceivers.Add(evt, set); } context.Bind(evt, handler); eventReceivers[evt].Add(context); }
public void GameState_DispatchingWithUnknownHands_Succeeds() { var gameCtx = new GameEventContext("game", 12); var gamestate = GameState.Initial(3, new EumelRoundSettings(0, 1)); gamestate = gamestate.Dispatch(new HandReceived(gameCtx, new PlayerIndex(0), new UnknownHand(1))); gamestate = gamestate.Dispatch(new HandReceived(gameCtx, new PlayerIndex(1), new UnknownHand(1))); gamestate = gamestate.Dispatch(new HandReceived(gameCtx, new PlayerIndex(2), new UnknownHand(1))); gamestate = gamestate.Dispatch(new GuessGiven(gameCtx, new PlayerIndex(0), 0)); gamestate = gamestate.Dispatch(new GuessGiven(gameCtx, new PlayerIndex(1), 0)); gamestate = gamestate.Dispatch(new GuessGiven(gameCtx, new PlayerIndex(2), 0)); gamestate = gamestate.Dispatch(new CardPlayed(gameCtx, new PlayerIndex(0), new Card(Suit.Hearts, Rank.Ace))); System.Console.WriteLine(gamestate); Assert.Equal(0, gamestate.Players[0].Hand.NumberOfCards); Assert.Equal(1, gamestate.Players[1].Hand.NumberOfCards); Assert.True(gamestate.Turn.IsPlay); Assert.False(gamestate.Turn.IsRoundOver); Assert.Equal(new PlayerIndex(1), gamestate.Turn.PlayerIndex); }
public RoundLimitGameEndSystem(Contexts contexts) : base(contexts) { _eventContext = contexts.gameEvent; }
public GameBaseState() { m_estateType = EGAME_STATE_TYPE.EGAME_STATE_BASE; m_evtCtx = new GameEventContext(); }
public CameraMode() { m_type = ECameraModeType.DefaultCamera; m_EvtCtx = new GameEventContext(); }
void Awake() { m_EvtCtx = new GameEventContext(); }
public StartTurnDrawSystem(Contexts contexts, DeckSetting setting) : base(contexts.game) { _cardContext = contexts.card; _setting = setting; _eventContext = contexts.gameEvent; }
public IGameSystem() { mEvtCtx = new GameEventContext(); }
public AllPlayerDeadGameEnd(Contexts contexts) : base(contexts) { _eventContext = contexts.gameEvent; _gameContext = contexts.game; }
void Awake() { instance = this; evtCtx = new GameEventContext(); }
public MissionDeadOrAliveFailSystem(Contexts contexts, WeatherResloveDisplayer weatherDisplay) : base(contexts) { _eventContext = contexts.gameEvent; _display = weatherDisplay; }
public EventReactiveSystem(Contexts contexts) : base(contexts.gameEvent) { _context = contexts.gameEvent; }