public static void getSkill(int tree)
 {
     RandomizerTrackedDataManager.SetTree(tree);
     Randomizer.getSkill();
 }
    // Token: 0x06000F85 RID: 3973 RVA: 0x0005DF74 File Offset: 0x0005C174
    public void SetAbility(AbilityType ability, bool value)
    {
        switch (ability)
        {
        case AbilityType.Bash:
            if (Randomizer.GiveAbility)
            {
                this.Bash.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(4);
            }
            break;

        case AbilityType.ChargeFlame:
            if (Randomizer.GiveAbility)
            {
                this.ChargeFlame.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(2);
            }
            break;

        case AbilityType.WallJump:
            if (Randomizer.GiveAbility)
            {
                this.WallJump.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(1);
            }
            break;

        case AbilityType.Stomp:
            if (Randomizer.GiveAbility)
            {
                this.Stomp.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(5);
            }
            break;

        case AbilityType.DoubleJump:
            if (Randomizer.GiveAbility)
            {
                this.DoubleJump.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(3);
            }
            break;

        case AbilityType.ChargeJump:
            if (Randomizer.GiveAbility)
            {
                this.ChargeJump.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(8);
            }
            break;

        case AbilityType.Magnet:
            this.Magnet.HasAbility = value;
            break;

        case AbilityType.UltraMagnet:
            this.UltraMagnet.HasAbility = value;
            break;

        case AbilityType.Climb:
            if (Randomizer.GiveAbility)
            {
                this.Climb.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(7);
            }
            break;

        case AbilityType.Glide:
            if (Randomizer.GiveAbility)
            {
                this.Glide.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(6);
            }
            break;

        case AbilityType.SpiritFlame:
            RandomizerTrackedDataManager.SetTree(0);
            this.SpiritFlame.HasAbility = value;
            Characters.Ori.MoveOriToPlayer();
            break;

        case AbilityType.RapidFlame:
            this.RapidFire.HasAbility = value;
            break;

        case AbilityType.SplitFlameUpgrade:
            this.SplitFlameUpgrade.HasAbility = value;
            break;

        case AbilityType.SoulEfficiency:
            this.SoulEfficiency.HasAbility = value;
            break;

        case AbilityType.WaterBreath:
            this.WaterBreath.HasAbility = value;
            break;

        case AbilityType.ChargeFlameBlast:
            this.ChargeFlameBlast.HasAbility = value;
            break;

        case AbilityType.ChargeFlameBurn:
            this.ChargeFlameBurn.HasAbility = value;
            break;

        case AbilityType.DoubleJumpUpgrade:
            this.DoubleJumpUpgrade.HasAbility = value;
            break;

        case AbilityType.BashBuff:
            this.BashBuff.HasAbility = value;
            break;

        case AbilityType.UltraDefense:
            this.UltraDefense.HasAbility = value;
            break;

        case AbilityType.HealthEfficiency:
            this.HealthEfficiency.HasAbility = value;
            break;

        case AbilityType.Sense:
            this.Sense.HasAbility = value;
            break;

        case AbilityType.UltraStomp:
            this.StompUpgrade.HasAbility = value;
            break;

        case AbilityType.SparkFlame:
            this.SparkFlame.HasAbility = value;
            break;

        case AbilityType.QuickFlame:
            this.QuickFlame.HasAbility = value;
            break;

        case AbilityType.MapMarkers:
            this.MapMarkers.HasAbility = value;
            break;

        case AbilityType.EnergyEfficiency:
            this.EnergyEfficiency.HasAbility = value;
            break;

        case AbilityType.HealthMarkers:
            this.HealthMarkers.HasAbility = value;
            break;

        case AbilityType.EnergyMarkers:
            this.EnergyMarkers.HasAbility = value;
            break;

        case AbilityType.AbilityMarkers:
            this.AbilityMarkers.HasAbility = value;
            break;

        case AbilityType.Rekindle:
            this.Rekindle.HasAbility = value;
            break;

        case AbilityType.Regroup:
            this.Regroup.HasAbility = value;
            break;

        case AbilityType.ChargeFlameEfficiency:
            this.ChargeFlameEfficiency.HasAbility = value;
            break;

        case AbilityType.UltraSoulFlame:
            this.UltraSoulFlame.HasAbility = value;
            break;

        case AbilityType.SoulFlameEfficiency:
            this.SoulFlameEfficiency.HasAbility = value;
            break;

        case AbilityType.CinderFlame:
            this.CinderFlame.HasAbility = value;
            break;

        case AbilityType.UltraSplitFlame:
            this.UltraSplitFlame.HasAbility = value;
            break;

        case AbilityType.Dash:
            if (Randomizer.GiveAbility)
            {
                this.Dash.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(10);
            }
            break;

        case AbilityType.Grenade:
            if (Randomizer.GiveAbility)
            {
                this.Grenade.HasAbility = true;
            }
            else
            {
                Randomizer.getSkill(9);
            }
            break;

        case AbilityType.GrenadeUpgrade:
            this.GrenadeUpgrade.HasAbility = value;
            break;

        case AbilityType.ChargeDash:
            this.ChargeDash.HasAbility = value;
            break;

        case AbilityType.AirDash:
            this.AirDash.HasAbility = value;
            break;

        case AbilityType.GrenadeEfficiency:
            this.GrenadeEfficiency.HasAbility = value;
            break;
        }
        this.m_sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
    }
 // Token: 0x06003798 RID: 14232
 public static void CheckPickups(object sender, UploadValuesCompletedEventArgs e)
 {
     try
     {
         if (e.Error != null)
         {
             if (e.Error is System.NullReferenceException)
             {
                 return;
             }
             Randomizer.LogError("CheckPickups got error: " + e.Error.ToString());
         }
         if (!e.Cancelled && e.Error == null)
         {
             if (!Characters.Sein)
             {
                 return;
             }
             string[] array = System.Text.Encoding.UTF8.GetString(e.Result).Split(new char[]
             {
                 ','
             });
             int bf = int.Parse(array[0]);
             foreach (SkillInfoLine skillInfoLine in SkillInfos)
             {
                 if (getBit(bf, skillInfoLine.bit) && !Characters.Sein.PlayerAbilities.HasAbility(skillInfoLine.skill))
                 {
                     RandomizerSwitch.GivePickup(new RandomizerAction("SK", skillInfoLine.id), 0, false);
                 }
             }
             int bf2 = int.Parse(array[1]);
             foreach (EventInfoLine eventInfoLine in EventInfos)
             {
                 if (getBit(bf2, eventInfoLine.bit) && !eventInfoLine.checker())
                 {
                     RandomizerSwitch.GivePickup(new RandomizerAction("EV", eventInfoLine.id), 0, false);
                 }
             }
             int bf4 = int.Parse(array[2]);
             foreach (TeleportInfoLine teleportInfoLine in TeleportInfos)
             {
                 if (getBit(bf4, teleportInfoLine.bit) && !isTeleporterActivated(teleportInfoLine.id))
                 {
                     RandomizerSwitch.GivePickup(new RandomizerAction("TP", teleportInfoLine.id), 0, false);
                 }
             }
             if (array[3] != "")
             {
                 string[] upgrades = array[3].Split(';');
                 foreach (string rawUpgrade in upgrades)
                 {
                     string[] splitpair = rawUpgrade.Split('x');
                     int      id        = int.Parse(splitpair[0]);
                     int      cnt       = int.Parse(splitpair[1]);
                     if (id >= 100)
                     {
                         if (id >= 900)
                         {
                             if (id < 910)
                             {
                                 int    tree     = id - 899;
                                 string treeName = RandomizerTrackedDataManager.Trees[tree];
                                 if (RandomizerTrackedDataManager.SetTree(tree))
                                 {
                                     Randomizer.showHint(treeName + " tree (activated by teammate)");
                                 }
                             }
                             else if (id < 922)
                             {
                                 string relicZone = RandomizerTrackedDataManager.Zones[id - 911];
                                 if (RandomizerTrackedDataManager.SetRelic(relicZone))
                                 {
                                     Randomizer.showHint("#" + relicZone + " relic# (found by teammate)", 300);
                                 }
                             }
                         }
                         else if (!RandomizerBonusSkill.UnlockedBonusSkills.ContainsValue(id) && cnt > 0)
                         {
                             RandomizerBonus.UpgradeID(id);
                         }
                     }
                     else if (RandomizerBonus.UpgradeCount(id) < cnt)
                     {
                         RandomizerBonus.UpgradeID(id);
                     }
                     else if (!PickupQueue.Where((Pickup p) => p.type == "RB" && p.id == splitpair[0]).Any() && RandomizerBonus.UpgradeCount(id) > cnt)
                     {
                         RandomizerBonus.UpgradeID(-id);
                     }
                 }
             }
             if (array.Length > 5)
             {
                 foreach (string text in array[5].Split(new char[] { '|' }))
                 {
                     if (CurrentSignals.Contains(text))
                     {
                         continue;
                     }
                     if (text == "stop")
                     {
                         RandomizerChaosManager.ClearEffects();
                     }
                     else if (text.StartsWith("msg:"))
                     {
                         Randomizer.printInfo(text.Substring(4), 360);
                     }
                     else if (text.StartsWith("win:"))
                     {
                         if (!RandomizerBonusSkill.UnlockCreditWarp(text.Substring(4)))
                         {
                             Randomizer.Print(text.Substring(4), 10, false, true, false, false);
                             RandomizerStatsManager.WriteStatsFile();
                         }
                     }
                     else if (text.StartsWith("pickup:"))
                     {
                         string[]         parts = text.Substring(7).Split(new char[] { '|' });
                         RandomizerAction action;
                         if (Randomizer.StringKeyPickupTypes.Contains(parts[0]))
                         {
                             action = new RandomizerAction(parts[0], parts[1]);
                         }
                         else
                         {
                             int pickup_id;
                             int.TryParse(parts[1], out pickup_id);
                             action = new RandomizerAction(parts[0], pickup_id);
                         }
                         RandomizerSwitch.GivePickup(action, 0, false);
                     }
                     else if (text == "spawnChaos")
                     {
                         Randomizer.ChaosVerbose = true;
                         RandomizerChaosManager.SpawnEffect();
                         ChaosTimeoutCounter = 3600;
                     }
                     var client = new WebClient();
                     client.DownloadStringAsync(new Uri(RootUrl + "/callback/" + text));
                     CurrentSignals.Add(text);
                 }
             }
             else
             {
                 CurrentSignals.Clear();
             }
             return;
         }
         if (e.Error.GetType().Name == "WebException" && ((HttpWebResponse)((WebException)e.Error).Response).StatusCode == HttpStatusCode.PreconditionFailed)
         {
             if (Randomizer.SyncMode == 1)
             {
                 Randomizer.printInfo("Co-op server error, try reloading the seed (Alt+L)");
             }
             else
             {
                 Randomizer.LogError("Co-op server error, try reloading the seed (Alt+L)");
             }
             return;
         }
     }
     catch (Exception e2)
     {
         Randomizer.LogError("CheckPickups threw error: " + e2.Message);
     }
 }