Exemplo n.º 1
0
            public static bool Prefix(GPOHFPAIEMA __instance, byte OPCIDHAAHLI, Hazel.MessageReader DNCHPFLHHEN)
            {
                switch (OPCIDHAAHLI)
                {
                case 22:
                    __instance.Close();
                    break;

                case 23: {
                    byte[] states = DNCHPFLHHEN.ReadBytesAndSize();
                    byte[] votes  = DNCHPFLHHEN.ReadBytesAndSize();
                    BAGGGBBOHOH.FGMBFCIIILC playerById = BAGGGBBOHOH.Instance.GetPlayerById(DNCHPFLHHEN.ReadByte());
                    bool tie = DNCHPFLHHEN.ReadBoolean();
                    VotingComplete(__instance, states, votes, playerById, tie);
                    break;
                }

                case 24: {
                    byte  srcPlayerId     = DNCHPFLHHEN.ReadByte();
                    sbyte suspectPlayerId = DNCHPFLHHEN.ReadSByte();
                    __instance.CastVote(srcPlayerId, suspectPlayerId);
                    break;
                }

                case 25:
                    __instance.ClearVote();
                    break;
                }
                return(false);
            }
Exemplo n.º 2
0
            public static void PopulateResults(GPOHFPAIEMA __instance, byte[] states, byte[] votes)
            {
                __instance.TitleText.Text = "Voting Results";
                int num = 0;

                for (int i = 0; i < __instance.OMJGIAMFODK.Length; i++)
                {
                    LJEHDCNEKBG playerVoteArea = __instance.OMJGIAMFODK[i];
                    playerVoteArea.ClearForResults();
                    int num2 = 0;
                    for (int j = 0; j < states.Length; j++)
                    {
                        if ((states[j] & 128) == 0)                           //!isDead
                        {
                            BAGGGBBOHOH.FGMBFCIIILC playerById = BAGGGBBOHOH.Instance.GetPlayerById((byte)__instance.OMJGIAMFODK[j].AGGEFFKBKLE);
                            int votedFor = (sbyte)votes[j];

                            SpriteRenderer spriteRenderer = UnityEngine.Object.Instantiate <SpriteRenderer>(__instance.PlayerVotePrefab);
                            if (GLHCHLEDNBA.GameOptions.IAFJLBELLDA)
                            {
                                GLHCHLEDNBA.SetPlayerMaterialColors(KPNJLIGHOEI.BAOLBIKEKEK, spriteRenderer);
                            }
                            else
                            {
                                GLHCHLEDNBA.SetPlayerMaterialColors((int)playerById.LMDCNHODEAN, spriteRenderer);
                            }
                            spriteRenderer.transform.localScale = Vector3.zero;

                            if ((int)playerVoteArea.AGGEFFKBKLE == votedFor)
                            {
                                spriteRenderer.transform.SetParent(playerVoteArea.transform);
                                spriteRenderer.transform.localPosition = __instance.GOCOEAPLJFA + new Vector3(__instance.OHFLCOGINJN.x * (float)num2, 0f, 0f);
                                __instance.StartCoroutine(JDBGLNAEBLG.GBIKBPPNKEB((float)num2 * 0.5f, spriteRenderer.transform, 1f, 0.5f));
                                num2++;
                            }
                            else if (i == 0 && votedFor == -1)
                            {
                                spriteRenderer.transform.SetParent(__instance.SkippedVoting.transform);
                                spriteRenderer.transform.localPosition = __instance.GOCOEAPLJFA + new Vector3(__instance.OHFLCOGINJN.x * (float)num, 0f, 0f);
                                __instance.StartCoroutine(JDBGLNAEBLG.GBIKBPPNKEB((float)num * 0.5f, spriteRenderer.transform, 1f, 0.5f));
                                num++;
                            }
                        }
                    }
                }
            }
Exemplo n.º 3
0
            public static bool Prefix(GPOHFPAIEMA __instance)
            {
                if (__instance.OMJGIAMFODK.All((LJEHDCNEKBG ps) => ps.isDead || ps.didVote))
                {
                    byte[] self = calculateVotes(__instance.OMJGIAMFODK);

                    int maxIdx = indexOfMax(self, out bool tie) - 1;
                    BAGGGBBOHOH.FGMBFCIIILC exiled = BAGGGBBOHOH.Instance.GetPlayerById((byte)maxIdx);
                    byte[] states = __instance.OMJGIAMFODK.Select(s => s.GetState()).ToArray();
                    byte[] votes  = __instance.OMJGIAMFODK.Select(s => (byte)s.votedFor).ToArray();

                    MessageWriter messageWriter = JNFEHNLGIFF.Instance.StartRpc(__instance.NetId, 23, SendOption.Reliable);
                    messageWriter.WriteBytesAndSize(states);
                    messageWriter.WriteBytesAndSize(votes);                     //Added because of the state's 4 bit vote id limit
                    messageWriter.Write((exiled != null) ? exiled.PAGHECLPIMH : byte.MaxValue);
                    messageWriter.Write(tie);
                    messageWriter.EndMessage();

                    MeetingHudHandleRpcPatch.VotingComplete(__instance, states, votes, exiled, tie);
                }
                return(false);
            }
Exemplo n.º 4
0
            public static void VotingComplete(GPOHFPAIEMA __instance, byte[] states, byte[] votes, BAGGGBBOHOH.FGMBFCIIILC exiled, bool tie)
            {
                if (__instance.FDLEFBMLMFM == GPOHFPAIEMA.DHLNNGGOJNI.Results)
                {
                    return;
                }
                __instance.FDLEFBMLMFM = GPOHFPAIEMA.DHLNNGGOJNI.Results;
                __instance.NFIBDGIOEIA = __instance.discussionTimer;
                __instance.GKGOFBGECAK = exiled;
                __instance.GBOFEFNNKCF = tie;
                __instance.SkipVoteButton.gameObject.SetActive(false);
                __instance.SkippedVoting.gameObject.SetActive(true);

                PopulateResults(__instance, states, votes);
                __instance.LLMHJIDIDFK();
            }