Exemple #1
0
        public override void ReceiveMessage(IGameMessage msg)
        {
            switch (msg.EventId)
            {
            case (int)MessageId.Teleport:
                UpdatePosition();
                break;

            case (int)MessageId.Move:
                UpdateOnMove(msg.AsMove().SumMovements());
                break;
            }
        }
        public override void ReceiveMessage(IGameMessage msg)
        {
            // TODO : handle ForcedMovement in Transform,
            // TODO : handle ForcedMovement movement over time in a separate component
            switch (msg.EventId)
            {
            case (int)MessageId.FrameBegin:
            {
                OnUpdate();
                break;
            }

            case (int)MessageId.BeginMovePath:
            {
                OnBeginMovePath(msg.AsBeginMovePath());
                break;
            }

            case (int)MessageId.Move:
            {
                OnMove(msg.AsMove());
                break;
            }

            case (int)MessageId.NewPlayerFollowTarget:
            {
                OnNewFollowPlayer(msg.AsNewPlayerFollowTarget());
                break;
            }

            case (int)MessageId.SyncLocalsToGlobals:
            {
                SyncLocalsToGlobals(Parent.AssertGetClientPosition());
                break;
            }
            }
        }
        public override void ReceiveMessage(IGameMessage msg)
        {
            switch (msg.EventId)
            {
            case (int)MessageId.NewOverheadText:
            {
                SetFlag(new OverheadForcedTextUpdateFlag(msg.AsNewOverheadText().Message));
                break;
            }

            case (int)MessageId.NewAnimation:
            {
                SetFlag(new AnimationUpdateFlag(msg.AsNewAnimation().Animation));
                break;
            }

            case (int)MessageId.ParticleEffect:
            {
                SetFlag(new ParticleEffectUpdateFlag(msg.AsParticleEffect().Effect));
                break;
            }

            case (int)MessageId.ForcedMovement:
            {
                SetFlag(new ForcedMovementUpdateFlag(msg.AsForcedMovement().Movement));
                break;
            }

            case (int)MessageId.ChatMessage:
            {
                SetFlag(new PlayerChatUpdateFlag(msg.AsChatMessage().Chat));
                break;
            }

            case (int)MessageId.UpdatePlayerAppearance:
            {
                HandleAppearanceMessage(msg.AsPlayerAppearance());
                break;
            }

            case (int)MessageId.TookDamageLostHealth:
            {
                SetFlag(new DamageUpdateFlag(msg.AsTookDamangeLostHealth()));
                break;
            }

            case (int)MessageId.NewFacingDirection:
            {
                SetFlag(new FacingCoordinateUpdateFlag(msg.AsNewFacingDirection().FacingState));
                break;
            }

            case (int)MessageId.NewInteractingEntity:
            {
                SetFlag(new InteractingEntityUpdateFlag(msg.AsNewInteractingEntity().Interacting));
                break;
            }

            case (int)MessageId.DefinitionChange:
            {
                SetFlag(new DefinitionChangeUpdateFlag(msg.AsDefinitionChange().Definition));
                break;
            }

            case (int)MessageId.Move:
            {
                Movement = msg.AsMove();
                break;
            }

            case (int)MessageId.Teleport:
            {
                Reinitialize = true;
                break;
            }

            case (int)MessageId.FrameEnd:
            {
                Reset();
                break;
            }
            }
        }