Ejemplo n.º 1
0
        private void CharacterBody_HandleConstructTurret(On.RoR2.CharacterBody.orig_HandleConstructTurret orig, NetworkMessage netMsg)
        {
            switch (currentRule)
            {
                case 1:
                    {
                        SetToDefault();
                        break;
                    }
                case 2:
                    {
                        SetToRail();
                        break;
                    }
                case 3:
                    {
                        SetToMinigun();
                        break;
                    }
                default:
                    {
                        if (lastWasRebar == false)
                        {
                            SetToRail();
                            lastWasRebar = true;
                            Chat.SendBroadcastChat(new Chat.SimpleChatMessage
                            {
                                baseToken = "Next Turret will be: [Machine Gun]"
                            });
                        }
                        else
                        {
                            SetToMinigun();
                            lastWasRebar = false;
                            Chat.SendBroadcastChat(new Chat.SimpleChatMessage
                            {
                                baseToken = "Next Turret will be: [Railgun]"
                            });
                        }
                        break;
                    }
            }

            orig(netMsg);
        }
Ejemplo n.º 2
0
        private void CharacterBody_HandleConstructTurret(On.RoR2.CharacterBody.orig_HandleConstructTurret orig, NetworkMessage netMsg)
        {
            var message = netMsg.ReadMessage<ConstructTurretMessage>();
            netMsg.reader.SeekZero();
            string turretType = "0";
            CSteamID steamID = new CSteamID();
            
            foreach (var item in PlayerCharacterMasterController.instances)
            {
                if (item.GetFieldValue<CharacterBody>("body") == message.builder.GetComponent<CharacterBody>())
                {
                    steamID = item.GetFieldValue<NetworkUser>("resolvedNetworkUserInstance").id.steamId;
                    Debug.Log(steamID.value.ToString());
                    break;
                    //NetworkUser.readOnlyInstancesList.First(p => p.);
                }
            }
            if (RoR2Application.isInSinglePlayer)
            {
                turretType = currentRule.ToString();
            }
            else
            {
                if(steamID != null)
                {
                    turretType = Facepunch.Steamworks.Client.Instance.Lobby.GetMemberData(steamID.value, "Turret");
                }
            }

            if (turretType == "RailGun" || turretType == "2")
            {
                SetToRail();
            }
            else if (turretType == "MiniGun" || turretType == "3")
            {
                SetToMinigun();
            }
            else
            {
                SetToDefault();
            }

            orig(netMsg);
        }