Ejemplo n.º 1
0
 public static void Postfix(KeyboardJoystick __instance)
 {
     if (Input.GetKeyDown(KeyCode.Tab))
     {
         TheOtherRolesPlugin.optionsPage = (TheOtherRolesPlugin.optionsPage + 1) % 4;
     }
 }
Ejemplo n.º 2
0
        public static void Postfix(KeyboardJoystick __instance)
        {
            if (AmongUsClient.Instance.AmHost && AmongUsClient.Instance.GameState == InnerNet.InnerNetClient.GameStates.Started)
            {
                //ゲーム強制終了
                if (Input.GetKey(KeyCode.LeftControl) && Input.GetKey(KeyCode.F5))
                {
                    MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ForceEnd, Hazel.SendOption.Reliable, -1);
                    AmongUsClient.Instance.FinishRpcImmediately(writer);
                    RPCProcedure.forceEnd();
                }
            }

            if (!TheOtherRolesPlugin.DebugMode.Value)
            {
                return;
            }

            // Spawn dummys
            if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.F))
            {
                var playerControl = UnityEngine.Object.Instantiate(AmongUsClient.Instance.PlayerPrefab);
                var i             = playerControl.PlayerId = (byte)GameData.Instance.GetAvailableId();

                bots.Add(playerControl);
                GameData.Instance.AddPlayer(playerControl);
                AmongUsClient.Instance.Spawn(playerControl, -2, InnerNet.SpawnFlags.None);

                // int hat = random.Next(HatManager.Instance.AllHats.Count);
                // int pet = random.Next(HatManager.Instance.AllPets.Count);
                // int skin = random.Next(HatManager.Instance.AllSkins.Count);
                // int visor = random.Next(HatManager.Instance.AllVisors.Count);
                // int color = random.Next(Palette.PlayerColors.Length);
                // int nameplate = random.Next(HatManager.Instance.AllNamePlates.Count);

                // playerControl.transform.position = PlayerControl.LocalPlayer.transform.position;
                // playerControl.GetComponent<DummyBehaviour>().enabled = true;
                // playerControl.NetTransform.enabled = false;
                // playerControl.SetName(RandomString(10));
                // playerControl.SetColor(color);
                // playerControl.SetHat(HatManager.Instance.AllHats[hat].ProductId, color);
                // playerControl.SetPet(HatManager.Instance.AllPets[pet].ProductId, color);
                // playerControl.SetVisor(HatManager.Instance.AllVisors[visor].ProductId);
                // playerControl.SetSkin(HatManager.Instance.AllSkins[skin].ProductId);
                // playerControl.SetNamePlate(HatManager.Instance.AllNamePlates[nameplate].ProductId);
                GameData.Instance.RpcSetTasks(playerControl.PlayerId, new byte[0]);
            }

            // ゲーム内ログ出力のトグル
            if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.F2))
            {
                Logger.isAlsoInGame = !Logger.isAlsoInGame;
                Logger.SendInGame("isAlsoInGame: " + Logger.isAlsoInGame);
            }
        }
Ejemplo n.º 3
0
 public static void Postfix(KeyboardJoystick __instance)
 {
     if (Input.GetKeyDown(KeyCode.H) && AmongUsClient.Instance.GameState == InnerNet.InnerNetClient.GameStates.Started)
     {
         toggleInfoOverlay();
     }
     else if (Input.GetKeyDown(KeyCode.I) && AmongUsClient.Instance.GameState == InnerNet.InnerNetClient.GameStates.Started)
     {
         toggleRoleOverlay();
     }
 }
Ejemplo n.º 4
0
        public static void Postfix(KeyboardJoystick __instance)
        {
            if (Input.GetKeyDown(KeyCode.Q))
            {
                IReadOnlyList <Ability> abilities = LocalPlayer.GetAbilities();
                if (abilities?.Count > 0)
                {
                    abilities[0]?.TryUse();
                }
            }

            if (Input.GetKeyDown(KeyCode.Tab) && LobbyBehaviour.Instance != null)
            {
                OptionPage.TurnPage();
            }
        }
            public static bool Prefix(KeyboardJoystick __instance)
            {
                if (!PlayerControl.LocalPlayer)
                {
                    return(false);
                }
                var del = Vector2.zero;

                if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(ConfigManager.keyBinds[KeyAction.Right]))
                {
                    del.x += 1f;
                }
                if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(ConfigManager.keyBinds[KeyAction.Left]))
                {
                    del.x -= 1f;
                }
                if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(ConfigManager.keyBinds[KeyAction.Forward]))
                {
                    del.y += 1f;
                }
                if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(ConfigManager.keyBinds[KeyAction.Backward]))
                {
                    del.y -= 1f;
                }
                del.Normalize();
                __instance.del = del;

                HandleHud();
                if (Input.GetKeyDown(KeyCode.Escape))
                {
                    if (Minigame.Instance)
                    {
                        Minigame.Instance.Close();
                    }
                    else if (DestroyableSingleton <HudManager> .InstanceExists && MapBehaviour.Instance &&
                             MapBehaviour.Instance.IsOpen)
                    {
                        MapBehaviour.Instance.Close();
                    }
                    else if (CustomPlayerMenu.Instance)
                    {
                        CustomPlayerMenu.Instance.Close(true);
                    }
                }

                return(false);
            }
Ejemplo n.º 6
0
        public static void Postfix(KeyboardJoystick __instance)
        {
            if (!TheOtherRolesPlugin.DebugMode.Value)
            {
                return;
            }

            // Spawn dummys
            if (Input.GetKeyDown(KeyCode.F))
            {
                var playerControl = UnityEngine.Object.Instantiate(AmongUsClient.Instance.PlayerPrefab);
                var i             = playerControl.PlayerId = (byte)GameData.Instance.GetAvailableId();

                bots.Add(playerControl);
                GameData.Instance.AddPlayer(playerControl);
                AmongUsClient.Instance.Spawn(playerControl, -2, InnerNet.SpawnFlags.None);

                playerControl.transform.position = PlayerControl.LocalPlayer.transform.position;
                playerControl.GetComponent <DummyBehaviour>().enabled = true;
                playerControl.NetTransform.enabled = false;
                playerControl.SetName(RandomString(10));
                playerControl.SetColor((byte)random.Next(Palette.PlayerColors.Length));
                playerControl.SetHat((uint)random.Next(HatManager.Instance.AllHats.Count), playerControl.Data.ColorId);
                playerControl.SetPet((uint)random.Next(HatManager.Instance.AllPets.Count));
                playerControl.SetSkin((uint)random.Next(HatManager.Instance.AllSkins.Count));
                GameData.Instance.RpcSetTasks(playerControl.PlayerId, new byte[0]);
            }

            // Terminate round
            if (Input.GetKeyDown(KeyCode.L))
            {
                MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.ForceEnd, Hazel.SendOption.Reliable, -1);
                AmongUsClient.Instance.FinishRpcImmediately(writer);
                RPCProcedure.forceEnd();
            }
        }
Ejemplo n.º 7
0
            public static void Postfix(KeyboardJoystick __instance)
            {
                if (!PlayerControl.LocalPlayer.isRole(RoleType.Puppeteer))
                {
                    return;
                }

                if (stealthed)
                {
                    // 梯子を使う/ドアを開ける
                    if (Input.GetKeyDown(KeyCode.E) || Input.GetKeyDown(KeyCode.Space))
                    {
                        PlainDoor[] doors;
                        if (PlayerControl.GameOptions.MapId == 4)
                        {
                            doors = DestroyableSingleton <AirshipStatus> .Instance.GetComponentsInChildren <PlainDoor>();
                        }
                        else if (PlayerControl.GameOptions.MapId == 2)
                        {
                            doors = DestroyableSingleton <PolusShipStatus> .Instance.GetComponentsInChildren <PlainDoor>();
                        }
                        else if (PlayerControl.GameOptions.MapId == 1)
                        {
                            doors = DestroyableSingleton <MiraShipStatus> .Instance.GetComponentsInChildren <PlainDoor>();
                        }
                        else if (SubmergedCompatibility.isSubmerged())
                        {
                            // 遅いかも
                            doors = UnityEngine.GameObject.FindObjectsOfType <PlainDoor>();
                        }
                        else
                        {
                            doors = DestroyableSingleton <SkeldShipStatus> .Instance.GetComponentsInChildren <PlainDoor>();
                        }
                        PlainDoor t           = null;
                        float     minDistance = 9999;
                        foreach (var door in doors)
                        {
                            float distance = Vector2.Distance(door.transform.position, dummy.transform.position);
                            if (distance < 1.5f && distance < minDistance)
                            {
                                t           = door;
                                minDistance = distance;
                            }
                        }
                        if (t != null)
                        {
                            var deconSystem = t.transform.parent.gameObject.GetComponent <DeconSystem>();
                            if (deconSystem != null)
                            {
                                bool flag = true;
                                if (PlayerControl.GameOptions.MapId == 2)
                                {
                                    flag = t.name.Contains("Inner");
                                }
                                else if (SubmergedCompatibility.isSubmerged())
                                {
                                    flag = t.name.Contains("Upper");
                                }
                                var          consoles = t.GetComponentsInChildren <DeconControl>();
                                DeconControl inner    = null;
                                DeconControl outer    = null;
                                foreach (var console in consoles)
                                {
                                    if (console.name == "InnerConsole")
                                    {
                                        inner = console;
                                    }
                                    if (console.name == "OuterConsole")
                                    {
                                        outer = console;
                                    }
                                }
                                float distOuter = Vector2.Distance(outer.transform.position, dummy.transform.position);
                                float distInner = Vector2.Distance(inner.transform.position, dummy.transform.position);
                                if (distInner < distOuter)
                                {
                                    deconSystem.OpenFromInside(flag);
                                }
                                else
                                {
                                    deconSystem.OpenDoor(flag);
                                }
                            }
                            else
                            {
                                DestroyableSingleton <ShipStatus> .Instance.RpcRepairSystem(SystemTypes.Doors, t.Id | 64);

                                t.SetDoorway(true);
                            }
                        }


                        if (PlayerControl.GameOptions.MapId == 4)
                        {
                            Ladder[] ladders = DestroyableSingleton <AirshipStatus> .Instance.GetComponentsInChildren <Ladder>();

                            Ladder target = null;
                            foreach (var ladder in ladders)
                            {
                                float distance = Vector2.Distance(ladder.transform.position, dummy.transform.position);
                                if (distance < 0.5f)
                                {
                                    target = ladder;
                                    break;
                                }
                            }
                            if (target != null)
                            {
                                MessageWriter messageWriter = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.PuppeteerClimbRadder, Hazel.SendOption.Reliable, -1);
                                messageWriter.Write(dummy.PlayerId);
                                messageWriter.Write(target.Id);
                                AmongUsClient.Instance.FinishRpcImmediately(messageWriter);
                                RPCProcedure.puppeteerClimbRadder(dummy.PlayerId, target.Id);
                            }
                        }

                        // エレベーター(サブマージド)
                        if (SubmergedCompatibility.isSubmerged())
                        {
                            var    elevators = Helpers.FindObjectsOfType(SubmarineElevatorType);
                            object elevator  = null;
                            minDistance = 9999;
                            foreach (var e in elevators)
                            {
                                var       pos = (e as UnityEngine.MonoBehaviour).transform.position;
                                FieldInfo lowerInnerDoorInfo = SubmarineElevatorType.GetField("LowerInnerDoor");
                                FieldInfo upperInnerDoorInfo = SubmarineElevatorType.GetField("UpperInnerDoor");
                                var       lowerInnerDoor     = lowerInnerDoorInfo.GetValue(e) as PlainDoor;
                                var       upperInnerDoor     = upperInnerDoorInfo.GetValue(e) as PlainDoor;
                                float     lowerDistance      = Vector2.Distance(dummy.transform.position, lowerInnerDoor.transform.position);
                                float     upperDistance      = Vector2.Distance(dummy.transform.position, upperInnerDoor.transform.position);
                                float     distance           = lowerDistance < upperDistance ? lowerDistance : upperDistance;
                                if (distance < 1.5 && distance < minDistance)
                                {
                                    minDistance = distance;
                                    elevator    = e;
                                }
                            }
                            if (elevator != null)
                            {
                                var use = SubmarineElevatorType.GetMethod("Use");
                                use.Invoke(elevator, new object[0]);
                            }
                        }
                    }

                    if (Input.GetKeyDown(KeyCode.D))
                    {
                        right = true;
                    }
                    if (Input.GetKeyUp(KeyCode.D))
                    {
                        right = false;
                    }
                    if (Input.GetKeyDown(KeyCode.A))
                    {
                        left = true;
                    }
                    if (Input.GetKeyUp(KeyCode.A))
                    {
                        left = false;
                    }
                    if (Input.GetKeyDown(KeyCode.W))
                    {
                        up = true;
                    }
                    if (Input.GetKeyUp(KeyCode.W))
                    {
                        up = false;
                    }
                    if (Input.GetKeyDown(KeyCode.S))
                    {
                        down = true;
                    }
                    if (Input.GetKeyUp(KeyCode.S))
                    {
                        down = false;
                    }

                    if (Puppeteer.dummy != null)
                    {
                        Vector2 pos    = Puppeteer.dummy.transform.position;
                        Vector2 offset = Vector2.zero;
                        if (up)
                        {
                            offset += new Vector2(0f, 0.5f);
                        }
                        if (down)
                        {
                            offset += new Vector2(0f, -0.5f);
                        }
                        if (left)
                        {
                            offset += new Vector2(-0.5f, 0.0f);
                        }
                        if (right)
                        {
                            offset += new Vector2(0.5f, 0.0f);
                        }
                        MessageWriter writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.WalkDummy, Hazel.SendOption.Reliable, -1);
                        writer.Write(offset.x);
                        writer.Write(offset.y);
                        AmongUsClient.Instance.FinishRpcImmediately(writer);
                        RPCProcedure.walkDummy(offset);
                        if (!(up || down || right || left))
                        {
                            writer = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte)CustomRPC.MoveDummy, Hazel.SendOption.Reliable, -1);
                            writer.Write(Puppeteer.dummy.transform.position.x);
                            writer.Write(Puppeteer.dummy.transform.position.y);
                            writer.Write(Puppeteer.dummy.transform.position.z);
                            writer.Write(false);
                            AmongUsClient.Instance.FinishRpcImmediately(writer);
                            // RPCProcedure.moveDummy(Puppeteer.dummy.transform.position);
                        }
                    }
                }
            }