public override void Load()
        {
            base.Load();

            MyScriptWrapper.AlarmLaunched += MyScriptWrapper_AlarmLaunched;

            // Turn off sunwind, meteorwind and icestorm
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.SunWind, false);
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.MeteorWind, false);
            MyScriptWrapper.EnableGlobalEvent(World.Global.MyGlobalEventEnum.IceStorm, false);

            // Add Fourth Reich FalseId to inventory if player already haven't got one
            MyScriptWrapper.AddFalseIdToPlayersInventory(MyMwcObjectBuilder_FactionEnum.FourthReich);

            // Add Radar Jammer to player inventory
            MyScriptWrapper.AddInventoryItem(MyScriptWrapper.GetPlayerInventory(), MyMwcObjectBuilderTypeEnum.SmallShip_Tool, (int)MyMwcObjectBuilder_SmallShip_Tool_TypesEnum.RADAR_JAMMER, 1f);

            // Add Hacking Tool to player inventory
            MyScriptWrapper.AddInventoryItem(MyScriptWrapper.GetCentralInventory(), MyMwcObjectBuilderTypeEnum.SmallShip_HackingTool, (int)MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum.Level_2, 1f, true);
            MyScriptWrapper.AddInventoryItem(MyScriptWrapper.GetCentralInventory(), MyMwcObjectBuilderTypeEnum.SmallShip_HackingTool, (int)MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum.Level_3, 1f, true);

            // Set musicmood right from script start
            MyAudio.ApplyTransition(MyMusicTransitionEnum.TensionBeforeAnAction);

            m_Slave = (MySmallShipBot)MyScriptWrapper.TryGetEntity(328);
            MySession.PlayerFriends.Add(m_Slave);
            m_Slave.Follow(MySession.PlayerShip);
            m_Slave.SetName("Slave");
        }
Beispiel #2
0
        void Script_BotSpawned(MyEntity spawnpoint, MyEntity bot)
        {
            foreach (var item2 in new List <List <uint> > {
                m_raceFansSP1, m_raceFansSP2, m_raceFansSP3, m_raceFansSP4, m_raceFansSP5
            })
            {
                foreach (var item in item2)
                {
                    if (spawnpoint == MyScriptWrapper.GetEntity(item))
                    {
                        MySmallShipBot botship = (MySmallShipBot)bot;
                        botship.LookTarget  = MySession.PlayerShip;
                        botship.DisplayName = MyTextsWrapper.Get(MyTextsWrapperEnum.RacingFan).ToString();
                    }
                }
            }
            if (spawnpoint == MyScriptWrapper.GetEntity((uint)EntityID.Racer2))
            {
                MySmallShipBot racer2 = (MySmallShipBot)bot;
                racer2.SetName("Racer2");
                MyScriptWrapper.SetSleepDistance(bot, 10000f);
                MyScriptWrapper.SetEntityDisplayName(bot, MyTextsWrapper.Get(MyTextsWrapperEnum.Actor_RaceOpponent).ToString());
                MyScriptWrapper.SetEntityDestructible(racer2, false);
            }
            if (spawnpoint == MyScriptWrapper.GetEntity((uint)EntityID.Racer3))
            {
                MySmallShipBot racer3 = (MySmallShipBot)bot;
                racer3.SetName("Racer3");
                MyScriptWrapper.SetSleepDistance(bot, 10000f);
                MyScriptWrapper.SetEntityDisplayName(bot, MyTextsWrapper.Get(MyTextsWrapperEnum.Actor_RaceOpponent).ToString());
                MyScriptWrapper.SetEntityDestructible(racer3, false);
            }
            if (spawnpoint == MyScriptWrapper.GetEntity((uint)EntityID.Challenger))
            {
                MySmallShipBot challenger = (MySmallShipBot)bot;
                challenger.SetName("Challenger");
                MyScriptWrapper.SetSleepDistance(bot, 10000f);
                MyScriptWrapper.SetEntityDisplayName(bot, MyTextsWrapper.Get(MyTextsWrapperEnum.Actor_RaceChallenger).ToString());
                MyScriptWrapper.SetEntityDestructible(challenger, false);

                MyScriptWrapper.PlayDialogue(MyDialogueEnum.JUNKYARD_RETURN_0250);
            }
            foreach (var item in m_companionSpawnpoints)
            {
                if (spawnpoint == MyScriptWrapper.GetEntity(item))
                {
                    MySmallShipBot botship = (MySmallShipBot)bot;
                    botship.LookTarget = MySession.PlayerShip;
                    MyScriptWrapper.SetEntityDestructible(bot, false);
                }
            }
        }
 private void MyScriptWrapperOnOnSpawnpointBotSpawned(MyEntity spawnPoint, MyEntity bot)
 {
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnContact)
     {
         //  Debug.Assert(!m_07followContact.IsAvailable(), "Bot spawned in bad mission"); //Not needed anymore
         MySmallShipBot mitchel = bot as MySmallShipBot;
         mitchel.SpeedModifier = 0.7f;
         mitchel.SetName("Mitchel");
         mitchel.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_MITCHEL)).ToString();
     }
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointClient1 || spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointClient2)
     {
         bot.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_CLIENT1)).ToString();
         MySmallShipBot botship = bot as MySmallShipBot;
         botship.SpeedModifier = 0.5f;
     }
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointBouncer)
     {
         MySmallShipBot bouncer = bot as MySmallShipBot;
         bot.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_BOUNCER)).ToString();
         bot.SetName("Bouncer");
         MyScriptWrapper.SetEntityDestructible(bot, false);
         bouncer.LookTarget     = m_barkeeper;
         m_barkeeper.LookTarget = bouncer;
     }
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointFactory)
     {
         bot.SetName("Smuggler");
         bot.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_SMUGGLER)).ToString();
         MyScriptWrapper.SetEntityDestructible(bot, false);
         ((MySmallShipBot)bot).LookTarget = MyScriptWrapper.GetEntity("Mitchel");
     }
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointGuardL)
     {
         bot.SetName("GuardL");
         bot.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_GUARD)).ToString();
         MyScriptWrapper.SetEntityDestructible(bot, false);
         ((MySmallShipBot)bot).SleepDistance = 10000;
     }
     if (spawnPoint.EntityId.Value.NumericValue == (uint)EntityID.SpawnpointGuardR)
     {
         bot.SetName("GuardR");
         bot.DisplayName = MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.RIME_GUARD)).ToString();
         MyScriptWrapper.SetEntityDestructible(bot, false);
         ((MySmallShipBot)bot).SleepDistance = 10000;
     }
 }
        public override void Load()
        {
            if (!IsMainSector)
            {
                return;
            }

            //add biochem ammo
            //MyScriptWrapper.GetPlayerInventory().AddInventoryItem(MyMwcObjectBuilderTypeEnum.SmallShip_Ammo, (int)MyMwcObjectBuilder_SmallShip_Ammo_TypesEnum.Missile_BioChem, 100f, true);
            //MyScriptWrapper.GetPlayerInventory().AddInventoryItem(MyMwcObjectBuilderTypeEnum.SmallShip_Ammo, (int)MyMwcObjectBuilder_SmallShip_Ammo_TypesEnum.Universal_Launcher_Mine_BioChem, 100, true);
            MyScriptWrapper.AddInventoryItem(MyScriptWrapper.GetPlayerInventory(), MyMwcObjectBuilderTypeEnum.SmallShip_Ammo, (int)MyMwcObjectBuilder_SmallShip_Ammo_TypesEnum.Autocannon_BioChem, 100);
            MyScriptWrapper.AddInventoryItem(MyScriptWrapper.GetCentralInventory(), MyMwcObjectBuilderTypeEnum.SmallShip_HackingTool, (int)MyMwcObjectBuilder_SmallShip_HackingTool_TypesEnum.Level_2, 1f, true);

            MyScriptWrapper.DeactivateSpawnPoint((uint)EntityID.SpawnpointAtWeHaveCompany);

            /*
             * MyMwcObjectBuilder_SmallShip_Player originalBuilder = MySession.PlayerShip.GetObjectBuilder(true) as MyMwcObjectBuilder_SmallShip_Player;
             * originalBuilder.ShipType = MyMwcObjectBuilder_SmallShip_TypesEnum.GETTYSBURG;
             * MySession.PlayerShip.Close();
             * MyEntities.CreateFromObjectBuilderAndAdd(null, originalBuilder, originalBuilder.PositionAndOrientation.GetMatrix());
             */
            m_panelsLeft = GetPanelsLeft((uint)EntityID.PanelsPrefabContainer);
            //MyAudio.ApplyTransition(MyMusicTransitionEnum.HeavyFight);

            MyScriptWrapper.SetPlayerFaction(MyMwcObjectBuilder_FactionEnum.Rainiers);
            MyScriptWrapper.SetFactionRelation(MyMwcObjectBuilder_FactionEnum.Rainiers, MyMwcObjectBuilder_FactionEnum.FourthReich, MyFactions.RELATION_BEST);
            MyScriptWrapper.SetFactionRelation(MyMwcObjectBuilder_FactionEnum.Rainiers, MyMwcObjectBuilder_FactionEnum.Euroamerican, MyFactions.RELATION_WORST);
            MyScriptWrapper.FixBotNames();

            MyEntityDetector startDetector = MyScriptWrapper.GetDetector(MyScriptWrapper.GetEntity((uint)EntityID.StartDetector));

            startDetector.OnEntityEnter += StartDummyDetector;
            startDetector.On();

            MyEntityDetector Security01Detector = MyScriptWrapper.GetDetector(MyScriptWrapper.GetEntity((uint)EntityID.SecurityDetector));

            Security01Detector.OnEntityEnter += StartSecurity01Detector;
            Security01Detector.On();

            MyEntityDetector Security02Detector = MyScriptWrapper.GetDetector(MyScriptWrapper.GetEntity((uint)EntityID.SecurityDetector2));

            Security02Detector.OnEntityEnter += StartSecurity02Detector;
            Security02Detector.On();

            MyScriptWrapper.EntityClosing += EntityClosing;

            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.DestroyPanelsEnable1), false);
            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.CargoExitDoor), false);
            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.Doors1), false);
            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.DestroyPanelsEnable2), false);
            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.Doors3), false);
            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((uint)EntityID.Doors4), false);

            MyScriptWrapper.OnSpawnpointBotSpawned += OnSpawnpointSpawned;

            MyScriptWrapper.OnSentenceStarted += MyScriptWrapper_OnSentenceStarted;



            m_marcus = MyScriptWrapper.GetEntity("Marcus") as MySmallShipBot;

            //disable marcus
            if (m_marcus != null)
            {
                //MyScriptWrapper.DisableShip(m_ma);
                m_marcus.Enabled  = false;
                m_marcus.Visible  = false;
                m_marcus.ActiveAI = false;
                MyScriptWrapper.StopFollow(m_marcus);
                m_marcusInventory.Clear();
                m_marcusInventory.AddRange(m_marcus.Inventory.GetInventoryItems());
                m_marcus.Inventory.ClearInventoryItems();
            }

            //disable ships for marcus
            MyScriptWrapper.DisableShip(MyScriptWrapper.GetEntity((uint)EntityID.MarcusFakeShip1));
            MyScriptWrapper.DisableShip(MyScriptWrapper.GetEntity((uint)EntityID.MarcusFakeShip2));
            MyScriptWrapper.DisableShip(MyScriptWrapper.GetEntity((uint)EntityID.MarcusPlaceholder));
            MyScriptWrapper.DisableShip(MyScriptWrapper.GetEntity((uint)EntityID.MarcusFakeShip3));


            m_marcusPlacHolder = MyScriptWrapper.GetEntity((uint)EntityID.MarcusPlaceholder);

            MyScriptWrapper.SetEntityEnabled(MyScriptWrapper.GetEntity((int)EntityID.SecurityHub), false);

            InitDetector((uint)75094, StartEACDetector);

            //add Raven Girl and Raven Guy
            //We need to replace old vitolino+tanja, because they have deutch smallships from doppelburg

            m_ravenguyBot = MyScriptWrapper.GetEntity("RavenGuy") as MySmallShipBot;
            m_ravenguyBot.SetName("Disabled_vitolino");
            m_ravenguyBot.MarkForClose();

            m_ravenguyBot = MyScriptWrapper.InsertFriend(MyActorEnum.VALENTIN);
            m_ravenguyBot.LeaderLostEnabled = true;
            m_ravenguyBot.Follow(MySession.PlayerShip);
            Matrix ravenguyPosition = Matrix.CreateWorld(MySession.PlayerShip.GetPosition() - Vector3.Right * 15, MySession.PlayerShip.WorldMatrix.Forward, MySession.PlayerShip.WorldMatrix.Up);

            m_ravenguyBot.SetWorldMatrix(ravenguyPosition);

            m_ravengirlBot = MyScriptWrapper.GetEntity("RavenGirl") as MySmallShipBot;
            m_ravengirlBot.SetName("Disabled_tanja");
            m_ravengirlBot.MarkForClose();

            m_ravengirlBot = MyScriptWrapper.InsertFriend(MyActorEnum.TARJA);
            m_ravengirlBot.LeaderLostEnabled = true;
            m_ravenguyBot.Follow(MySession.PlayerShip);
            Matrix ravengirlPosition = Matrix.CreateWorld(MySession.PlayerShip.GetPosition() + Vector3.Right * 15, MySession.PlayerShip.WorldMatrix.Forward, MySession.PlayerShip.WorldMatrix.Up);

            m_ravengirlBot.SetWorldMatrix(ravengirlPosition);

            base.Load();
        }