예제 #1
0
        public override ComponentReplyMessage RecieveMessage(object sender, ComponentMessageType type,
                                                             params object[] list)
        {
            ComponentReplyMessage reply = base.RecieveMessage(sender, type, list);

            if (sender == this)
            {
                return(ComponentReplyMessage.Empty);
            }

            switch (type)
            {
            case ComponentMessageType.GetActorConnection:
                reply = new ComponentReplyMessage(ComponentMessageType.ReturnActorConnection,
                                                  playerSession.ConnectedClient);
                break;

            case ComponentMessageType.GetActorSession:
                reply = new ComponentReplyMessage(ComponentMessageType.ReturnActorSession, playerSession);
                break;

            case ComponentMessageType.Die:
                playerSession.AddPostProcessingEffect(PostProcessingEffectType.Death, -1);
                IoCManager.Resolve <IRoundManager>().CurrentGameMode.PlayerDied(playerSession);
                // Tell the current game mode a player just died
                break;
            }

            return(reply);
        }