public override void Fail(MyTextsWrapperEnum?customMessage = null) { base.Fail(customMessage); MyMwcLog.WriteLine("Submission " + NameTemp + " fail. " + (customMessage.HasValue ? " (" + MyTextsWrapper.Get(customMessage.Value).ToString() + ")" : "")); ParentMission.Fail(customMessage); }
public override void Success() { if (this.ParentMission.MarkedForUnload) { return; } if (MyMultiplayerGameplay.IsHosting && !MySession.Static.EventLog.IsMissionFinished(ID)) { MyMultiplayerGameplay.Static.SendMissionProgress(this, CommonLIB.AppCode.Networking.Multiplayer.MyMissionProgressType.Success); } MySession.Static.EventLog.SubmissionFinished(ID); SetLocationVisibility(false); if (Location != null) { Location.Entity = null; } bool canPlaySuccessDialogue = (!MyFakes.ENABLE_AUTOSKIPPING_ENDMISSION_DIALOGUE || SkipDialogEnabled); if (MyFakes.TEST_MISSION_GAMEPLAY && MyFakes.TEST_MISSION_GAMEPLAY_AUTO_KILLS == 0) { m_dialogDelayToSkipForTesting -= MyConstants.PHYSICS_STEP_SIZE_IN_MILLISECONDS; if (m_dialogDelayToSkipForTesting <= 0) { //Stop success dialogue after one second. This delay should be enough to spawn bots etc. canPlaySuccessDialogue = false; } } else if (MyFakes.TEST_MISSION_GAMEPLAY) { canPlaySuccessDialogue = false; } if (canPlaySuccessDialogue) { if (m_succesDialogStarted && !m_successDialogFinished) // We are waiting to finish dialog { return; } if (!m_successDialogFinished && SuccessDialogId != null) // We succeded but still did not played succes dialog { m_succesDialogStarted = true; if (OnSuccessDialogueStarted != null) { OnSuccessDialogueStarted(this); } MyScriptWrapper.PlayDialogue(SuccessDialogId.Value); return; } } MyMwcLog.WriteLine("Submission " + NameTemp + " success."); base.Success(); MyAudio.AddCue2D(MySoundCuesEnum.HudObjectiveComplete); ParentMission.ObjectiveCompleted(this); MyMissions.SaveName = this.ParentMission.NameTemp.ToString() + ": " + (NameTemp != null ? NameTemp.ToString() : "(null)") + (SaveOnSuccess ? "" : " *"); MyMissions.NeedsSave |= SaveOnSuccess; }