Example #1
0
 private static void Init()
 {
     RuleBook.defaultValues = new byte[RuleCatalog.ruleCount];
     for (int i = 0; i < RuleCatalog.ruleCount; i++)
     {
         RuleBook.defaultValues[i] = (byte)RuleCatalog.GetRuleDef(i).defaultChoiceIndex;
     }
 }
Example #2
0
 // Token: 0x0600106B RID: 4203 RVA: 0x00048280 File Offset: 0x00046480
 private void SetVotesFromRuleBookForSinglePlayer()
 {
     for (int i = 0; i < this.votes.Length; i++)
     {
         RuleDef ruleDef = RuleCatalog.GetRuleDef(i);
         this.votes[i].choiceValue = this.GetDefaultChoice(ruleDef).localIndex;
     }
     base.SetDirtyBit(2U);
 }
Example #3
0
 // Token: 0x06001970 RID: 6512 RVA: 0x00079A38 File Offset: 0x00077C38
 static RuleBook()
 {
     RuleCatalog.availability.CallWhenAvailable(delegate
     {
         RuleBook.defaultValues = new byte[RuleCatalog.ruleCount];
         for (int i = 0; i < RuleCatalog.ruleCount; i++)
         {
             RuleBook.defaultValues[i] = (byte)RuleCatalog.GetRuleDef(i).defaultChoiceIndex;
         }
     });
 }
Example #4
0
 // Token: 0x0600189F RID: 6303 RVA: 0x00069FD0 File Offset: 0x000681D0
 public DifficultyIndex FindDifficulty()
 {
     for (int i = 0; i < this.ruleValues.Length; i++)
     {
         RuleChoiceDef ruleChoiceDef = RuleCatalog.GetRuleDef(i).choices[(int)this.ruleValues[i]];
         if (ruleChoiceDef.difficultyIndex != DifficultyIndex.Invalid)
         {
             return(ruleChoiceDef.difficultyIndex);
         }
     }
     return(DifficultyIndex.Invalid);
 }
Example #5
0
        // Token: 0x06001034 RID: 4148 RVA: 0x00047468 File Offset: 0x00045668
        private void TestRuleValues()
        {
            RuleBook ruleBook = new RuleBook();

            ruleBook.Copy(this.networkRuleBookComponent.ruleBook);
            RuleDef       ruleDef   = RuleCatalog.GetRuleDef(UnityEngine.Random.Range(0, RuleCatalog.ruleCount));
            RuleChoiceDef choiceDef = ruleDef.choices[UnityEngine.Random.Range(0, ruleDef.choices.Count)];

            ruleBook.ApplyChoice(choiceDef);
            this.networkRuleBookComponent.SetRuleBook(ruleBook);
            base.Invoke("TestRuleValues", 0.5f);
        }
Example #6
0
        // Token: 0x060018A2 RID: 6306 RVA: 0x0006A0CC File Offset: 0x000682CC
        public EquipmentMask GenerateEquipmentMask()
        {
            EquipmentMask result = default(EquipmentMask);

            for (int i = 0; i < this.ruleValues.Length; i++)
            {
                RuleChoiceDef ruleChoiceDef = RuleCatalog.GetRuleDef(i).choices[(int)this.ruleValues[i]];
                if (ruleChoiceDef.equipmentIndex != EquipmentIndex.None)
                {
                    result.AddEquipment(ruleChoiceDef.equipmentIndex);
                }
            }
            return(result);
        }
Example #7
0
        // Token: 0x060018A1 RID: 6305 RVA: 0x0006A074 File Offset: 0x00068274
        public ItemMask GenerateItemMask()
        {
            ItemMask result = default(ItemMask);

            for (int i = 0; i < this.ruleValues.Length; i++)
            {
                RuleChoiceDef ruleChoiceDef = RuleCatalog.GetRuleDef(i).choices[(int)this.ruleValues[i]];
                if (ruleChoiceDef.itemIndex != ItemIndex.None)
                {
                    result.AddItem(ruleChoiceDef.itemIndex);
                }
            }
            return(result);
        }
Example #8
0
        // Token: 0x060018A0 RID: 6304 RVA: 0x0006A01C File Offset: 0x0006821C
        public ArtifactMask GenerateArtifactMask()
        {
            ArtifactMask result = default(ArtifactMask);

            for (int i = 0; i < this.ruleValues.Length; i++)
            {
                RuleChoiceDef ruleChoiceDef = RuleCatalog.GetRuleDef(i).choices[(int)this.ruleValues[i]];
                if (ruleChoiceDef.artifactIndex != ArtifactIndex.None)
                {
                    result.AddArtifact(ruleChoiceDef.artifactIndex);
                }
            }
            return(result);
        }
Example #9
0
 public void EnforceValidRuleChoices()
 {
     if (!NetworkServer.active)
     {
         Debug.LogWarning("[Server] function 'System.Void RoR2.PreGameController::EnforceValidRuleChoices()' called on client");
         return;
     }
     this.ruleBookBuffer.Copy(this.readOnlyRuleBook);
     for (int i = 0; i < RuleCatalog.ruleCount; i++)
     {
         if (!this.resolvedRuleChoiceMask[this.ruleBookBuffer.GetRuleChoice(i)])
         {
             RuleDef       ruleDef   = RuleCatalog.GetRuleDef(i);
             RuleChoiceDef choiceDef = ruleDef.choices[ruleDef.defaultChoiceIndex];
             int           num       = 0;
             int           j         = 0;
             int           count     = ruleDef.choices.Count;
             while (j < count)
             {
                 if (this.resolvedRuleChoiceMask[ruleDef.choices[j]])
                 {
                     num++;
                 }
                 j++;
             }
             if (this.resolvedRuleChoiceMask[choiceDef] || num == 0)
             {
                 this.ruleBookBuffer.ApplyChoice(choiceDef);
             }
             else
             {
                 int k      = 0;
                 int count2 = ruleDef.choices.Count;
                 while (k < count2)
                 {
                     if (this.resolvedRuleChoiceMask[ruleDef.choices[k]])
                     {
                         this.ruleBookBuffer.ApplyChoice(ruleDef.choices[k]);
                         break;
                     }
                     k++;
                 }
             }
         }
     }
     this.networkRuleBookComponent.SetRuleBook(this.ruleBookBuffer);
     this.UpdatePersistentRulebook();
 }
Example #10
0
 // Token: 0x060018A3 RID: 6307 RVA: 0x0006A124 File Offset: 0x00068324
 public static void ToXml(XElement element, RuleBook src)
 {
     byte[] array = src.ruleValues;
     RuleBook.< > c__DisplayClass28_0 CS$ < > 8__locals1;
     CS$ < > 8__locals1.choiceNamesBuffer = new string[array.Length];
     CS$ < > 8__locals1.choiceNamesCount  = 0;
     for (int i = 0; i < array.Length; i++)
     {
         RuleDef ruleDef = RuleCatalog.GetRuleDef(i);
         byte    b       = array[i];
         if ((ulong)b < (ulong)((long)ruleDef.choices.Count))
         {
             RuleBook.< ToXml > g__AddChoice | 28_0 (ruleDef.choices[(int)b].globalName, ref CS$ < > 8__locals1);
         }
     }
     element.Value = string.Join(" ", CS$ < > 8__locals1.choiceNamesBuffer, 0, CS$ < > 8__locals1.choiceNamesCount);
 }
        private static void CCRulesDump(ConCommandArgs args)
        {
            List <string> list  = new List <string>();
            List <string> list2 = new List <string>();

            for (int i = 0; i < RuleCatalog.ruleCount; i++)
            {
                RuleDef ruleDef = RuleCatalog.GetRuleDef(i);
                for (int j = 0; j < ruleDef.choices.Count; j++)
                {
                    RuleChoiceDef ruleChoiceDef = ruleDef.choices[j];
                    string        item          = string.Format("  {{localChoiceIndex={0} globalChoiceIndex={1} localName={2}}}", ruleChoiceDef.localIndex, ruleChoiceDef.globalIndex, ruleChoiceDef.localName);
                    list2.Add(item);
                }
                string str = string.Join("\n", list2);
                list2.Clear();
                string str2 = string.Format("[{0}] {1} defaultChoiceIndex={2}\n", i, ruleDef.globalName, ruleDef.defaultChoiceIndex);
                list.Add(str2 + str);
            }
            Debug.Log(string.Join("\n", list));
        }
Example #12
0
 // Token: 0x06001898 RID: 6296 RVA: 0x00069E9E File Offset: 0x0006809E
 public RuleChoiceDef GetRuleChoice(int ruleIndex)
 {
     return(RuleCatalog.GetRuleDef(ruleIndex).choices[(int)this.ruleValues[ruleIndex]]);
 }
Example #13
0
        // Token: 0x06001065 RID: 4197 RVA: 0x00047FA8 File Offset: 0x000461A8
        private static void UpdateGameVotes()
        {
            int i           = 0;
            int choiceCount = RuleCatalog.choiceCount;

            while (i < choiceCount)
            {
                PreGameRuleVoteController.votesForEachChoice[i] = 0;
                i++;
            }
            int j         = 0;
            int ruleCount = RuleCatalog.ruleCount;

            while (j < ruleCount)
            {
                RuleDef ruleDef = RuleCatalog.GetRuleDef(j);
                int     count   = ruleDef.choices.Count;
                foreach (PreGameRuleVoteController preGameRuleVoteController in PreGameRuleVoteController.instancesList)
                {
                    PreGameRuleVoteController.Vote vote = preGameRuleVoteController.votes[j];
                    if (vote.hasVoted && vote.choiceValue < count)
                    {
                        RuleChoiceDef ruleChoiceDef = ruleDef.choices[vote.choiceValue];
                        PreGameRuleVoteController.votesForEachChoice[ruleChoiceDef.globalIndex]++;
                    }
                }
                j++;
            }
            if (NetworkServer.active)
            {
                int k          = 0;
                int ruleCount2 = RuleCatalog.ruleCount;
                while (k < ruleCount2)
                {
                    RuleDef ruleDef2 = RuleCatalog.GetRuleDef(k);
                    int     count2   = ruleDef2.choices.Count;
                    PreGameController.instance.readOnlyRuleBook.GetRuleChoiceIndex(ruleDef2);
                    int  ruleChoiceIndex = -1;
                    int  num             = 0;
                    bool flag            = false;
                    for (int l = 0; l < count2; l++)
                    {
                        RuleChoiceDef ruleChoiceDef2 = ruleDef2.choices[l];
                        int           num2           = PreGameRuleVoteController.votesForEachChoice[ruleChoiceDef2.globalIndex];
                        if (num2 == num)
                        {
                            flag = true;
                        }
                        else if (num2 > num)
                        {
                            ruleChoiceIndex = ruleChoiceDef2.globalIndex;
                            num             = num2;
                            flag            = false;
                        }
                    }
                    if (num == 0)
                    {
                        ruleChoiceIndex = ruleDef2.choices[ruleDef2.defaultChoiceIndex].globalIndex;
                    }
                    if (!flag || num == 0)
                    {
                        PreGameController.instance.ApplyChoice(ruleChoiceIndex);
                    }
                    k++;
                }
            }
            Action action = PreGameRuleVoteController.onVotesUpdated;

            if (action == null)
            {
                return;
            }
            action();
        }