void PlayScript(StoryCutsceneIni ct, CutsceneState state) { ui.Visible = false; cState = CutsceneState.Regular; string scName = ct.Encounters[0].Action; if (!string.IsNullOrEmpty(ct.Encounters[0].Offer)) { scName = ct.Encounters[0].Offer; cState = CutsceneState.Offer; } switch (state) { case CutsceneState.Decision: scName = ct.Encounters[0].Decision; cState = state; break; case CutsceneState.Accept: scName = ct.Encounters[0].Accept; cState = state; break; case CutsceneState.Reject: scName = ct.Encounters[0].Reject; cState = state; break; } var script = new ThnScript(session.Game.GameData.ResolveDataPath(scName)); currentCutscene = ct; RoomDoSceneScript(script, ScriptState.Cutscene); }
public void FinishCutscene(StoryCutsceneIni cutscene) { ActiveCutscenes.Remove(cutscene); connection.SendPacket(new RTCCompletePacket() { RTC = cutscene.RefPath }, NetDeliveryMethod.ReliableSequenced); }
public void AddRTC(string[] paths) { ActiveCutscenes = new List <StoryCutsceneIni>(); foreach (var path in paths) { var rtc = new StoryCutsceneIni(Game.GameData.Ini.Freelancer.DataPath + path, Game.GameData.VFS); rtc.RefPath = path; ActiveCutscenes.Add(rtc); } }
private void SceneOnScriptFinished(ThnScript obj) { if (waitingForFinish != null && obj == waitingForFinish) { if (currentCutscene != null) { if (cState == CutsceneState.Decision) { return; } FadeOut(0.25, () => { RoomDoSceneScript(null, ScriptState.None); ui.Visible = true; FLLog.Info("Thn", "Finished cutscene"); if (cState == CutsceneState.Regular) { session.FinishCutscene(currentCutscene); currentCutscene = null; if (toPlay.Count > 0) { ProcessNextCutscene(); } } else if (cState == CutsceneState.Offer) { PlayScript(currentCutscene, CutsceneState.Decision); ui.Event("MissionOffer", currentCutscene.Encounters[0].MissionTextId); } FadeIn(0.2, 0.25); }); } else if (currentState == ScriptState.Launch) { SendLaunch(); } else { currentState = ScriptState.None; SetRoomCameraAndShip(); animatingLetterbox = true; } } }
public void FinishCutscene(StoryCutsceneIni cutscene) { ActiveCutscenes.Remove(cutscene); rpcServer.RTCComplete(cutscene.RefPath); }