Beispiel #1
0
        // Token: 0x060021B9 RID: 8633 RVA: 0x00091E14 File Offset: 0x00090014
        private void FixedUpdate()
        {
            ArenaMissionController instance = ArenaMissionController.instance;

            if (instance)
            {
                bool flag = false;
                if (this.currentMonsterBodyIndices.Length != instance.syncActiveMonsterBodies.Count)
                {
                    Array.Resize <int>(ref this.currentMonsterBodyIndices, instance.syncActiveMonsterBodies.Count);
                    flag = true;
                }
                for (int i = 0; i < instance.syncActiveMonsterBodies.Count; i++)
                {
                    if (this.currentMonsterBodyIndices[i] != instance.syncActiveMonsterBodies[i])
                    {
                        this.currentMonsterBodyIndices[i] = instance.syncActiveMonsterBodies[i];
                        flag = true;
                    }
                }
                if (flag)
                {
                    this.SetMonsterBodies(this.currentMonsterBodyIndices);
                }
                bool flag2 = false;
                if (this.currentPickupIndices.Length != instance.syncActivePickups.Count)
                {
                    Array.Resize <PickupIndex>(ref this.currentPickupIndices, instance.syncActivePickups.Count);
                    flag2 = true;
                }
                for (int j = 0; j < instance.syncActivePickups.Count; j++)
                {
                    PickupIndex pickupIndex = new PickupIndex(instance.syncActivePickups[j]);
                    if (pickupIndex != this.currentPickupIndices[j])
                    {
                        this.currentPickupIndices[j] = pickupIndex;
                        flag2 = true;
                    }
                }
                if (flag2)
                {
                    this.SetPickups(this.currentPickupIndices);
                }
            }
        }
Beispiel #2
0
        private void ArenaMissionController_EndRound(On.RoR2.ArenaMissionController.orig_EndRound orig, ArenaMissionController self)
        {
            GameObject cachedRewardPosition = self.rewardSpawnPosition;

            self.rewardSpawnPosition = null;
            int participatingPlayerCount = Run.instance.participatingPlayerCount;

            if (participatingPlayerCount != 0 && self.rewardSpawnPosition)
            {
                List <PickupIndex> list = Run.instance.availableTier1DropList;
                if (self.currentRound > 4)
                {
                    list = Run.instance.availableTier2DropList;
                }
                if (self.currentRound == self.totalRoundsMax)
                {
                    list = Run.instance.availableTier3DropList;
                }
                if (list.Count > 0)
                {
                    PickupIndex pickupIndex = self.rng.NextElementUniform <PickupIndex>(list);
                    int         num         = participatingPlayerCount;
                    float       angle       = 360f / (float)num;
                    Vector3     vector      = Quaternion.AngleAxis((float)UnityEngine.Random.Range(0, 360), Vector3.up) * (Vector3.up * 40f + Vector3.forward * 5f);
                    Quaternion  rotation    = Quaternion.AngleAxis(angle, Vector3.up);
                    int         k           = 0;
                    while (k < num)
                    {
                        PickupDropletController.CreatePickupDroplet(pickupIndex, self.rewardSpawnPosition.transform.position, vector);
                        k++;
                        vector = rotation * vector;
                    }
                }
            }
            orig(self);
            self.rewardSpawnPosition = cachedRewardPosition;
        }
Beispiel #3
0
            // Token: 0x060024A2 RID: 9378 RVA: 0x0009FD04 File Offset: 0x0009DF04
            protected override string GenerateString()
            {
                ArenaMissionController instance = ArenaMissionController.instance;

                return(string.Format(Language.GetString(this.baseToken), instance.clearedRounds, instance.totalRoundsMax));
            }
Beispiel #4
0
        private void TrueSuicideOnNullVoid(On.RoR2.ArenaMissionController.orig_EndRound orig, ArenaMissionController self)
        {
            if (self.currentRound >= self.totalRoundsMax)
            {
                ReadOnlyCollection <TeamComponent> teamMembers = TeamComponent.GetTeamMembers(TeamIndex.Monster);
                for (int j = teamMembers.Count - 1; j >= 0; j--)
                {
                    teamMembers[j].body.inventory.ResetItem(ItemIndex.ExtraLife);
                }
            }

            orig(self);
        }
Beispiel #5
0
 internal static void VoidFieldsStartPostfix(ref ArenaMissionController __instance)
 {
     __instance.availableTier1DropList = ScrapChestsPlugin._cachedItemLists[0].Where(x => ArenaMissionController.IsPickupAllowedForMonsters(x)).ToList();
     __instance.availableTier2DropList = ScrapChestsPlugin._cachedItemLists[1].Where(x => ArenaMissionController.IsPickupAllowedForMonsters(x)).ToList();
     __instance.availableTier3DropList = ScrapChestsPlugin._cachedItemLists[2].Where(x => ArenaMissionController.IsPickupAllowedForMonsters(x)).ToList();
 }