Пример #1
0
        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);
        }
Пример #3
0
        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);
            }
        }