예제 #1
0
 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;
         }
     }
 }
예제 #3
0
            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);
                }
            }
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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;
            }
        }