Ejemplo n.º 1
0
        private void BrotherEncounter_Phase1_OnEnter(On.EntityStates.Missions.BrotherEncounter.Phase1.orig_OnEnter orig, EntityStates.Missions.BrotherEncounter.Phase1 self)
        {
            orig(self);

            respawnController.RespawnType = RespawnType.Mithrix;

            if (PluginConfig.RespawnOnMithrixStart.Value)
            {
                respawnController.RespawnAllUsers();
            }

            if (PluginConfig.BlockTimedRespawnOnMithrixFight.Value)
            {
                respawnController.BlockTimedRespawn();
            }
        }
Ejemplo n.º 2
0
        private void Phase1_OnEnter(On.EntityStates.Missions.BrotherEncounter.Phase1.orig_OnEnter orig, EntityStates.Missions.BrotherEncounter.Phase1 self)
        {
            orig(self);
            if (!SceneInfo.instance)
            {
                return;
            }
            ChildLocator component = SceneInfo.instance.GetComponent <ChildLocator>();

            if (!component)
            {
                return;
            }
            if (MoonMissionController.instance)
            {
                Transform transform = component.FindChild("PlayerSpawnOrigin");
                transform.position = new Vector3(165.1803f, 497.2362f, 105.2121f);
                foreach (var spawnPoint in new List <SpawnPoint>(SpawnPoint.instancesList))
                {
                    Destroy(spawnPoint.gameObject);
                }
                MoonMissionController.instance.GeneratePlayerSpawnPointsServer();
            }
        }
Ejemplo n.º 3
0
 private void Phase1_OnEnter(On.EntityStates.Missions.BrotherEncounter.Phase1.orig_OnEnter orig, EntityStates.Missions.BrotherEncounter.Phase1 self)
 {
     orig(self);
     currentlyInBattle = true;
 }
 private void Phase1_OnEnter(On.EntityStates.Missions.BrotherEncounter.Phase1.orig_OnEnter orig, EntityStates.Missions.BrotherEncounter.Phase1 self)
 {
     orig(self);
     MasterRoundNth.instance.MasterRound_Start();
 }
Ejemplo n.º 5
0
        private void Phase1_OnEnter(On.EntityStates.Missions.BrotherEncounter.Phase1.orig_OnEnter orig, EntityStates.Missions.BrotherEncounter.Phase1 self)
        {
            orig(self);

            bool teleportedAllies = false;

            if (!TeleportAlliesToFirstAvailablePlayer())
            {
                CharacterBody body = null;
                foreach (var masterController in PlayerCharacterMasterController.instances)
                {
                    if (masterController.master.GetBody())
                    {
                        body = masterController.master.GetBody();
                        break;
                    }
                }

                // Try one more time with a more direct approach
                if (body)
                {
                    Transform bodyTransform = getTransform(body);
                    Vector3   position      = new Vector3(
                        bodyTransform.position.x + Random.Range(-5f, 5f),
                        bodyTransform.position.y + 10f,
                        bodyTransform.position.z + Random.Range(-5f, 5f));
                    if (Physics.Raycast(position, Vector3.down, out RaycastHit hit, 30f, LayerIndex.world.mask))
                    {
                        position = hit.point;
                    }
                    if (!TeleportAlliesToFirstAvailablePlayer(position))
                    {
                        Debug.LogWarning("Couldn't teleport allies to a player body!");
                        Chat.SendBroadcastChat(new Chat.SimpleChatMessage()
                        {
                            baseToken = $"<color=#{ColorUtility.ToHtmlStringRGB(Color.green)}>Protect the VIP:</color> " +
                                        $"Couldn't teleport allies to someone! I guess they'll sit this fight out."
                        });
                    }
                    else
                    {
                        teleportedAllies = true;
                    }
                }
            }
            else
            {
                teleportedAllies = true;
            }

            if (teleportedAllies)
            {
                Chat.SendBroadcastChat(new Chat.SimpleChatMessage()
                {
                    baseToken = $"<color=#{ColorUtility.ToHtmlStringRGB(Color.green)}>Protect the VIP:</color> " +
                                $"Your ally joins you to fight by your side."
                });
            }

            Debug.Log("Unhooking from EntityStates.Missions.BrotherEncounter.Phase1.OnEnter");
            On.EntityStates.Missions.BrotherEncounter.Phase1.OnEnter -= Phase1_OnEnter;
        }