public virtual bool IsMissionEntity(MyEntity target) { // Show hud marker for location dummy in mission colors return(!MySession.Static.EventLog.IsMissionFinished(ID) && (HasLocationEntity() && Location.Entity == target || MissionEntityIDs != null && target.EntityId.HasValue && MissionEntityIDs.Contains(target.EntityId.Value.NumericValue))); }
private void MyGuiScreenInventoryManagerForGameOnOpeningInventoryScreen(MyEntity entity, MySmallShipInteractionActionEnum interactionAction) { if (MissionEntityIDs.Contains(entity.EntityId.Value.NumericValue)) { MissionEntityIDs.Remove(entity.EntityId.Value.NumericValue); if (0 == MissionEntityIDs.Count) { m_isSuccess = true; } } }
public MyBarthsMoonSubmissionTalkWithThomasBarth(MyTextsWrapperEnum Name, MyMissionID ID, MyTextsWrapperEnum Description, MyMission ParentMission, MyMissionID[] RequiredMissions, MyDialogueEnum?dialogue, bool restartPatrol = true, MyDialogueEnum?startDialogue = null, string pathName = "interior2") : base(Name, ID, Description, null, ParentMission, RequiredMissions, null, null, dialogue) { m_botToTalkId = (uint)EntityID.ThomasBartId; m_botDetectorId = (uint)EntityID.ThomasBartDetectorId; m_distanceToTalk = 100; m_restartPatrol = restartPatrol; m_pathName = pathName; MissionEntityIDs.Add(m_botToTalkId); }
public override void Load() { base.Load(); foreach (var loc in m_locations) { loc.Entity = MyEntities.GetEntityByMissionLocationIdentifier(loc.LocationEntityIdentifier) as MyDummyPoint; Debug.Assert(loc.Entity != null, "Cannot find location dummypoint, IDENTIFIER: " + loc.LocationEntityIdentifier.ToString()); if (!MissionEntityIDs.Contains(loc.Entity.EntityId.Value.NumericValue)) { MissionEntityIDs.Add(loc.Entity.EntityId.Value.NumericValue); } } }
private void UpdateBotToTalk() { m_success = false; if (m_constructorFromName) { MyMwcLog.WriteLine("Bot name: " + m_botName); m_botToTalk = (MySmallShipBot)MyScriptWrapper.GetEntity(m_botName); m_botToTalkId = m_botToTalk.EntityId.Value.NumericValue; MissionEntityIDs.Add(m_botToTalkId.Value); } else { MyMwcLog.WriteLine("Bot ID: " + m_botToTalkId.Value.ToString()); MissionEntityIDs.Add(m_botToTalkId.Value); m_botToTalk = (MySmallShipBot)MyScriptWrapper.GetEntity(m_botToTalkId.Value); } m_detectorReached = false; Debug.Assert(m_botToTalk != null); if (m_botToTalk.WaypointPath != null) { PathName = m_botToTalk.WaypointPath.Name; } m_botToTalk.SpeedModifier = m_slowdown; if (m_botDetectorId.HasValue) { m_botDetector = MyScriptWrapper.GetDetector(m_botDetectorId.Value); m_botDetector.On(); m_botDetector.OnEntityEnter += m_botDetector_OnEntityEnter; } else if (FollowMe) { MyScriptWrapper.Follow(MySession.PlayerShip, m_botToTalk); } }
public override void Unload() { StopFollow(); MissionEntityIDs.Clear(); if (m_botToTalk != null) { m_botToTalk.SpeedModifier = 1.0f; m_botToTalk = null; if (m_constructorFromName) { m_botToTalkId = null; } } base.Unload(); if (m_botDetector != null) { m_botDetector.Off(); m_botDetector.OnEntityEnter -= m_botDetector_OnEntityEnter; } }