Example #1
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);
        }
Example #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;
        }