public void SendMissionProgress(MyMissionBase mission, MyMissionProgressType progressType, MyTextsWrapperEnum? messageEnum = null) { MyEventMissionProgress message = new MyEventMissionProgress(); message.MissionId = mission != null ? (int)mission.ID : (int?)null; message.ProgressType = progressType; message.MessageEnum = messageEnum.HasValue ? (int)messageEnum.Value : (int?)null; Peers.SendToAll(ref message, NetDeliveryMethod.ReliableOrdered); }
public void OnMissionProgress(ref MyEventMissionProgress msg) { if (IsStory() && !IsHost) { ClearCountdownNotification(); Debug.Assert(m_followMission != null); switch (msg.ProgressType) { case MyMissionProgressType.Success: MyMission.ShowObjectiveCompleted(); m_followMission.SetObjectives(null); break; case MyMissionProgressType.Fail: { MyTextsWrapperEnum? message = null; if (msg.MessageEnum.HasValue) { message = (MyTextsWrapperEnum)msg.MessageEnum.Value; if (!MyMwcEnums.IsValidValue(message.Value)) { message = null; } } MySession.Static.GameOver(message); } break; case MyMissionProgressType.NewObjective: m_followMission.SetObjectives(msg.MissionId); break; default: Debug.Fail("Unknown MyMissionProgressType"); break; } } }