public void ReceiveMessage(IEntity entity, IGameMessage msg) { // TODO : LevelUpChatInterface isn't receiving button click events (the client isn't sending any??????) if (msg.EventId != (int)MessageId.ButtonClicked) { return; } var data = msg.AsButtonClicked(); if (data.InterfaceId != Id) { return; } entity.SystemMessage($"Lvl up interface: {data.ButtonId}"); }
public void ReceiveMessage(IEntity entity, IGameMessage msg) { if (msg.EventId != (int)MessageId.ButtonClicked) { return; } var button = msg.AsButtonClicked(); if (button.InterfaceId != Id) { return; } entity.SystemMessage($"UnimplementedSidebarInterface: received button message, ID: {button.ButtonId}", CoreSystemMessageFlags.Debug | CoreSystemMessageFlags.Interface); }
public override void ReceiveMessage(IGameMessage msg) { switch (msg.EventId) { case (int)MessageId.ForcedMovement: case (int)MessageId.HealthChanged: case (int)MessageId.TookDamageLostHealth: case (int)MessageId.EatHealedHealth: case (int)MessageId.JustDied: case (int)MessageId.Move: case (int)MessageId.Teleport: OnActionOccurred(); break; case (int)MessageId.FrameBegin: Update(); break; case (int)MessageId.ButtonClicked: { /* * we handle button click data separately in order to filter out duplicate * clicks during a frame. * * We want to ensure that if a button id is pressed, we only send out one * event that signal that during that frame. */ var data = msg.AsButtonClicked(); if (_pressedButtonIds.Add(data.ButtonId)) { PropogateMsgToInterfaces(msg); } break; } } // we handle ButtonClicked events separately in OnButtonClicked if (msg.EventId != (int)MessageId.ButtonClicked) { PropogateMsgToInterfaces(msg); } }