public override void Load()
        {
            EnableCorrectBarths((uint)EntityID.ThomasBartId, (uint)EntityID._01SmallShipBarth);

            MyGuiScreenGamePlay.Static.CameraContrlolledObjectChanged += Static_CameraContrlolledObjectChanged;
            MyScriptWrapper.EntityClosing += MyScriptWrapperOnEntityClosing;
            MyScriptWrapper.AlarmLaunched += MyScriptWrapperOnAlarmLaunched;
            MyScriptWrapper.SpawnpointBotsKilled += MyScriptWrapperOnSpawnpointBotsKilled;
            MyScriptWrapper.OnBotReachedWaypoint += MyScriptWrapperOnOnBotReachedWaypoint;
            MyScriptWrapper.OnDialogueFinished += MyScriptWrapperOnOnDialogueFinished;
            MyScriptWrapper.OnEntityAtacked += MyScriptWrapperOnEntityAttacked;

            if (!MyMissions.GetMissionByID(MyMissionID.BARTHS_MOON_TRANSMITTER_TALK_TO_BARTH).IsCompleted())
            {
                var startPosition = MyScriptWrapper.GetEntity((uint)EntityID.PlayerStartLocationTransmitter).GetPosition();
                MyScriptWrapper.Move(MyScriptWrapper.GetEntity(MyActorConstants.GetActorName(MyActorEnum.MADELYN)), startPosition);
                MyScriptWrapper.MovePlayerAndFriendsToHangar(this.RequiredActors);
            }

            HideContainer(EntityID.InvisibleContainer1);
            HideContainer(EntityID.InvisibleContainer2);
            HideContainer(EntityID.InvisibleContainer3);
            //HideContainer(EntityID.HidePrefabCont);
            MyScriptWrapper.SetEntityEnabled((uint)EntityID.BarthsMoon2DisableInfluenceSphere, false);
            MyScriptWrapper.TryHideEntities(m_hidePrefabs);
            MyScriptWrapper.SetEntitiesEnabled(m_disableDummies, false);
            //InitDetector((uint)EntityID.EnterMainLabDetector, StartMainLabDetector);
            MyScriptWrapper.OnSentenceStarted += MyScriptWrapper_OnSentenceStarted;

            MyEntityDetector detector = MyScriptWrapper.GetDetector(MyScriptWrapper.GetEntity((uint)EntityID.EscapeEventDummy));
            detector.OnEntityEnter += (OnEntityEnter)EscapeEvent;
            detector.On();


            foreach (uint deadShip in m_deadShips)
            {
                MyEntity shipEntity = MyScriptWrapper.TryGetEntity(deadShip);
                if (shipEntity != null)
                {
                    MyScriptWrapper.DisableShip(MyScriptWrapper.GetEntity(deadShip), false);
                    MyScriptWrapper.RemoveEntityMark(MyScriptWrapper.GetEntity(deadShip));
                }
            }


            m_thomasBarth = (MySmallShipBot)MyScriptWrapper.GetEntity((uint)EntityID.ThomasBartId);
            m_thomasBarth.SpeedModifier = 0.5f;

            ActivateTurretsObjects(m_turrets1, false);
            ActivateTurretsObjects(m_turrets2, false);
            ActivateTurretsObjects(m_turrets3, false);


            foreach (var entity in m_whiteMarks)
            {
                var en = MyScriptWrapper.TryGetEntity(entity);

                if (en != null)
                {
                    var name = "";
                    if (en.Name != null) name = en.Name;
                    if (en.DisplayName != null) name = en.DisplayName;
                    //TODO: can't we just remove SHOW_TEXT?
                    MyScriptWrapper.MarkEntity(en, name, HUD.MyHudIndicatorFlagsEnum.SHOW_DISTANCE | HUD.MyHudIndicatorFlagsEnum.SHOW_TEXT | MyHudIndicatorFlagsEnum.ALPHA_CORRECTION_BY_DISTANCE, HUD.MyGuitargetMode.Neutral);
                }
            }


            m_computerDownDialoguePlayed = false;

            var prefabCont = MyScriptWrapper.GetEntity((uint)EntityID.BuildContainer4);

            foreach (var child in prefabCont.Children)
            {
                if (child.Physics != null) child.Physics.Enabled = false;
                MyScriptWrapper.Highlight(child.EntityId.Value.NumericValue, true, this);
            }

            m_thomasBarth.SetWaypointPath("interior2");
            m_thomasBarth.PatrolMode = MyPatrolMode.CYCLE;
            m_thomasBarth.Patrol();

            MyScriptWrapper.TryHideEntities(m_entitiesToHide);
            //MyScriptWrapper.TryHideEntities(new List<uint>(){(uint)EntityID._01SmallShipBarth});

            m_turrets1.Clear();
            m_turrets1.AddRange(m_turrets1Waves);
            m_turrets2.Clear();
            m_turrets2.AddRange(m_turrets2Waves);
            m_turrets3.Clear();
            m_turrets3.AddRange(m_turrets3Waves);

            //MyScriptWrapper.GetEntity("Madelyn").SetWorldMatrix(MyScriptWrapper.GetEntity((uint)EntityID.BarthsMoon2MadelynLocation).WorldMatrix);
            //MySession.PlayerShip.SetWorldMatrix(MyScriptWrapper.GetEntity((uint)EntityID.BarthsMoon2StartLocation).WorldMatrix);

            LoadFanPhysics();

            m_lookedThroughLeftCameras = false;
            m_lookedThroughRightCameras = false;
            base.Load();
        }
        public override void Load() // Code in that block will be called on the load of the sector
        {
            MyScriptWrapper.AlarmLaunched += MyScriptWrapperOnAlarmLaunched;

            MyScriptWrapper.OnHarvesterUse += MyScriptWrapperOnOnHarvesterUse;
            
            MyScriptWrapper.HideEntity(MyScriptWrapper.GetEntity((uint)EntityID.BotTemplar));
            MyScriptWrapper.ApplyTransition(MyMusicTransitionEnum.CalmAtmosphere); // Sets music group to be played in the sector - no matter if the mission is running or not
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.SunWind, false);
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.MeteorWind, false);
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.IceStorm, false);


            m_captain = MyScriptWrapper.GetEntity((uint) EntityID.Captain) as MySmallShipBot;
            m_gateKeeper = MyScriptWrapper.GetEntity((uint) EntityID.GateKeeper) as MySmallShipBot;
            m_captain.SpeedModifier = 0.25f;
            m_gateKeeper.SpeedModifier = 0.25f;

            m_captain.SetWaypointPath("Captain");
            m_captain.PatrolMode = MyPatrolMode.CYCLE;
            m_captain.SpeedModifier = 0.25f;
            m_captain.Patrol();

            m_gateKeeper.SetWaypointPath("GateKeep");
            m_gateKeeper.PatrolMode = MyPatrolMode.CYCLE;
            m_gateKeeper.SpeedModifier = 0.25f;
            m_gateKeeper.Patrol();

            InitDetector((uint)EntityID.Detector1, OnDetecor1Active);
            InitDetector((uint)EntityID.Detector2, OnDetecor2Active);
            InitDetector((uint)EntityID.Detector3, OnDetecor3Active);
            InitDetector((uint)EntityID.Detector4, OnDetecor4Active);
            InitDetector((uint)EntityID.Detector5, OnDetecor5Active);


            base.Load();
        }
Exemplo n.º 3
0
        private void SetBotPath(MySmallShipBot bot)
        {
            bot.WaypointPath = MyWayPointGraph.GetPath(m_wayPointPath);
            bot.PatrolMode = PatrolMode;

            //check if any leader present
            Bot leader = m_botShips.Find(s => (s.Ship != null && s.Ship.Leader == null));
            if (leader != null)
            {
                bot.Follow(leader.Ship);
            }
            else if (bot.WaypointPath != null)
            {
                bot.Patrol();
            }

            if (Leader != null)
            {
                bot.Follow(Leader);
            }
        }
        public override void Load()
        {
            //if (!IsMainSector) return;
            MyScriptWrapper.OnSpawnpointBotSpawned += MyScriptWrapperOnOnSpawnpointBotSpawned;
            MyScriptWrapper.EntityDeath += OnEntityDeath;
            MyGuiScreenGamePlay.Static.CameraContrlolledObjectChanged += Static_CameraContrlolledObjectChanged;



            m_templarBot = (MySmallShipBot)MyScriptWrapper.GetEntity((uint)EntityID.BotTemplar);
            m_royalBot = (MySmallShipBot)MyScriptWrapper.GetEntity((uint)EntityID.BotRoyal);

            m_templarBot.SetWaypointPath("Templar");
            m_templarBot.PatrolMode = MyPatrolMode.CYCLE;
            m_templarBot.SpeedModifier = 0.25f;
            m_templarBot.Patrol();

            m_royalBot.SetWaypointPath("Royal");
            m_royalBot.PatrolMode = MyPatrolMode.CYCLE;
            m_royalBot.SpeedModifier = 0.25f;
            m_royalBot.Patrol();

            m_ravenguyBot = MyScriptWrapper.GetEntity("RavenGuy") as MySmallShipBot;
            m_ravengirlBot = MyScriptWrapper.GetEntity("RavenGirl") as MySmallShipBot;
            m_marcus = MyScriptWrapper.GetEntity("Marcus") as MySmallShipBot;



            MyScriptWrapper.UnhideEntity(MyScriptWrapper.GetEntity((uint)EntityID.BotTemplar));


            m_deadlyScanners = new MyDeadlyScanners(m_scanners1IDs, new List<int>() { 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000 });
            if (!MyScriptWrapper.IsMissionFinished(m_disableScanner2.ID)) 
                Components.Add(m_deadlyScanners);
            DisableEntities(new List<uint>() { (uint)EntityID.Scanner1, (uint)EntityID.Scanner2 });
            
            foreach (var mine in m_minesDummies)
            {
                MyScriptWrapper.GenerateMinesField<MyMineBasic>(MyScriptWrapper.GetEntity(mine),
                                                                MyMwcObjectBuilder_FactionEnum.Russian_KGB, 1, MyTexts.Mine,
                                                                MyHudIndicatorFlagsEnum.SHOW_BORDER_INDICATORS |
                                                                MyHudIndicatorFlagsEnum.ALPHA_CORRECTION_BY_DISTANCE |
                                                                MyHudIndicatorFlagsEnum.SHOW_TEXT |
                                                                MyHudIndicatorFlagsEnum.SHOW_DISTANCE |
                                                                MyHudIndicatorFlagsEnum.SHOW_FACTION_RELATION_MARKER |
                                                                MyHudIndicatorFlagsEnum.SHOW_ONLY_IF_DETECTED_BY_RADAR
            );
            }

            if (MySession.Static.EventLog.IsMissionFinished(MyMissionID.FORT_VALIANT_C_FOLLOW_FIND_VENTILATION) && !MySession.Static.EventLog.IsMissionFinished(MyMissionID.FORT_VALIANT_C_CATACOMBS))
            {
                SetFriendsPatrol();
            }

            if (!MyMissions.GetMissionByID(MyMissionID.FORT_VALIANT_C_CAPTAIN).IsCompleted())
            {
                var startPosition = MyScriptWrapper.GetEntity((uint)EntityID.StartLocationC).GetPosition();
                MyScriptWrapper.Move(MyScriptWrapper.GetEntity(MyActorConstants.GetActorName(MyActorEnum.MADELYN)), startPosition);
                MyScriptWrapper.MovePlayerAndFriendsToHangar(this.RequiredActors);
            }
            

            base.Load();
        }