Пример #1
0
        ////////////////

        private IntroMovieSet UpdateMovieSetFromNetwork(CutsceneUpdateProtocol netData)
        {
            var currScene = this.CurrentScene as Intro00_SettingScene;
            var myNetData = netData as IntroCutsceneUpdateProtocol;

            currScene.Set.InteriorCrewNPC = myNetData?.InteriorCrewNPC ?? -1;
            currScene.Set.ShipPropNPC     = myNetData?.ShipPropNPC ?? -1;

            return(currScene.Set);
        }
Пример #2
0
        protected override SceneBase CreateNextSceneFromNetwork(SceneID sceneId, CutsceneUpdateProtocol netData)
        {
            IntroMovieSet set = this.UpdateMovieSetFromNetwork(netData);

            if (sceneId.Equals(this.FirstSceneId))
            {
                return(new Intro00_SettingScene(set));
            }
            else if (sceneId.Equals(this.SecondSceneId))
            {
                return(Intro01_PiratesScene.Create(this));
            }

            return(null);
        }
        internal void SetCurrentSceneFromNetwork_Internal(SceneID uid, CutsceneUpdateProtocol netData, bool sync)
        {
            this.CurrentScene.EndScene_Internal(this);
            this.CurrentScene = this.CreateNextSceneFromNetwork(uid, netData);
            this.CurrentScene.BeginScene_Internal(this);

            if (sync)
            {
                if (Main.netMode == NetmodeID.Server)
                {
                    CutsceneUpdateProtocol.SendToClients(cutscene: this, ignoreWho: -1);
                }
                else if (Main.netMode == NetmodeID.MultiplayerClient)
                {
                    CutsceneUpdateProtocol.Broadcast(cutscene: this);
                }
            }
        }
Пример #4
0
        ////////////////

        internal bool SetCutsceneSceneFromNetwork(
            CutsceneID cutsceneId,
            Player playsFor,
            SceneID sceneId,
            CutsceneUpdateProtocol netData,
            bool sync)
        {
            Cutscene cutscene = this._CutscenePerPlayer.GetOrDefault(playsFor.whoAmI);

            if (cutscene == null)
            {
                return(false);
            }
            if (cutscene.UniqueId != cutsceneId)
            {
                return(false);
            }

            cutscene.SetCurrentSceneFromNetwork_Internal(sceneId, netData, sync);
            return(true);
        }
Пример #5
0
 protected abstract SceneBase CreateNextSceneFromNetwork(SceneID sceneId, CutsceneUpdateProtocol data);