示例#1
0
 // Token: 0x06002CED RID: 11501 RVA: 0x000C4050 File Offset: 0x000C2250
 public void OnFadedToBlack()
 {
     foreach (SavePedestal savePedestal in SavePedestal.All)
     {
         savePedestal.OnFinishedTeleporting();
     }
     if (!InstantiateUtility.IsDestroyed(this.m_teleportingStartSound))
     {
         this.m_teleportingStartSound.FadeOut(0.5f, true);
         this.m_teleportingStartSound = null;
     }
     if (this.BloomFade)
     {
         UberGCManager.CollectResourcesIfNeeded();
     }
     Characters.Sein.Position = this.m_teleporterTargetPosition + Vector3.up * 1.6f;
     CameraPivotZone.InstantUpdate();
     Scenes.Manager.UpdatePosition();
     Scenes.Manager.UnloadScenesAtPosition(true);
     Scenes.Manager.EnableDisabledScenesAtPosition(false);
     Characters.Sein.Controller.StopAnimation();
     UI.Cameras.Current.MoveCameraToTargetInstantly(true);
     if (Characters.Ori)
     {
         Characters.Ori.BackToPlayerController();
     }
     GameController.Instance.CreateCheckpoint();
     GameController.Instance.PerformSaveGameSequence();
     RandomizerStatsManager.UsedTeleporter();
     LateStartHook.AddLateStartMethod(new Action(this.OnFinishedTeleporting));
 }
示例#2
0
 // Token: 0x06002B34 RID: 11060
 public override void Perform(IContext context)
 {
     Game.Checkpoint.SaveGameData = new SaveGameData();
     try {
         Randomizer.initialize();
         Randomizer.showSeedInfo();
         Randomizer.JustSpawned = true;
         RandomizerStatsManager.Activate();
     } catch (Exception e) {
         Randomizer.LogError("New Game Action: " + e.Message);
     }
     if (Randomizer.OpenMode)
     {
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.GinsoData);
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.ForlornData);
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.HoruData);
     }
     if (Randomizer.OpenWorld)
     {
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.GladesData);
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.ValleyLeverDoorData);
         Game.Checkpoint.SaveGameData.LoadCustomData(Randomizer.ValleyStompDoorData);
     }
     GameController.Instance.RequireInitialValues = true;
     GameStateMachine.Instance.SetToGame();
 }
 // Token: 0x060003A5 RID: 933
 public override void Perform(IContext context)
 {
     Randomizer.Returning = false;
     Randomizer.Warping   = 0;
     RandomizerStatsManager.OnReturnToMenu();
     GameController.Instance.RestartGame();
 }
示例#4
0
 public static void getPickup(Vector3 position)
 {
     try {
         RandomizerBonus.CollectPickup();
         RandomizerStatsManager.IncPickup();
         if (Randomizer.ColorShift)
         {
             Randomizer.changeColor();
         }
         int hashKey = GetHashKey(position);
         if (hashKey != -1)
         {
             RandomizerSwitch.GivePickup((RandomizerAction)Randomizer.Table[hashKey], hashKey, true);
             if (Randomizer.HotColdItems.ContainsKey(hashKey))
             {
                 Characters.Sein.Inventory.SetRandomizerItem(Randomizer.HotColdItems[hashKey].Id, 1);
                 RandomizerColorManager.UpdateHotColdTarget();
             }
             return;
         }
     }
     catch (Exception e) {
         Randomizer.LogError("GetPickup: " + e.Message);
     }
 }
示例#5
0
    public static void returnToStart()
    {
        if (Characters.Sein.Abilities.Carry.IsCarrying || !Characters.Sein.Controller.CanMove || !Characters.Sein.Active)
        {
            return;
        }
        if (Items.NightBerry != null)
        {
            Items.NightBerry.transform.position = new Vector3(-755f, -400f);
        }
        RandomizerStatsManager.WarpedToStart();
        RandomizerBonusSkill.LastAltR = Characters.Sein.Position;
        Randomizer.Returning          = true;
        Characters.Sein.Position      = new Vector3(189f, -215f);
        Characters.Sein.Speed         = new Vector3(0f, 0f);
        Characters.Ori.Position       = new Vector3(190f, -210f);
        Scenes.Manager.SetTargetPositions(Characters.Sein.Position);
        UI.Cameras.Current.CameraTarget.SetTargetPosition(Characters.Sein.Position);
        UI.Cameras.Current.MoveCameraToTargetInstantly(true);
        int value = World.Events.Find(Randomizer.MistySim).Value;

        if (value != 1 && value != 8)
        {
            World.Events.Find(Randomizer.MistySim).Value = 10;
        }
    }
    public static void EventPickup(int Value)
    {
        switch (Value)
        {
        case 0:
            PickupMessage("*Water Vein*", 300);
            Keys.GinsoTree = true;
            break;

        case 1:
            PickupMessage("*Clean Water*#", 300);
            Sein.World.Events.WaterPurified = true;
            break;

        case 2:
            PickupMessage("#Gumon Seal#", 300);
            Keys.ForlornRuins = true;
            break;

        case 3:
            PickupMessage("#Wind Restored#", 300);
            Sein.World.Events.WindRestored = true;
            break;

        case 4:
            PickupMessage("@Sunstone@", 300);
            Keys.MountHoru = true;
            break;

        case 5:
            PickupMessage("@Warmth Returned@", 300);
            break;
        }
        RandomizerStatsManager.FoundEvent(Value);
    }
示例#7
0
 // Token: 0x06003414 RID: 13332
 public void PerformSaveGameSequence()
 {
     RandomizerStatsManager.OnSave(false);
     if (this.GameSaveSequence)
     {
         this.GameSaveSequence.Perform(null);
     }
 }
 // Token: 0x0600051A RID: 1306
 public void OnMenuItemPressed()
 {
     if (this.CurrentSkillItem == null)
     {
         return;
     }
     if (this.CurrentSkillItem.HasSkillItem)
     {
         if (this.OnAlreadyEarnedAbility)
         {
             this.RequirementsLineAShake.Restart();
             this.OnAlreadyEarnedAbility.Perform(null);
         }
         return;
     }
     if (this.CurrentSkillItem.CanEarnSkill)
     {
         this.CurrentSkillItem.HasSkillItem = true;
         Characters.Sein.PlayerAbilities.SetAbility(this.CurrentSkillItem.Ability, true);
         Characters.Sein.PlayerAbilities.GainAbilityAction = this.CurrentSkillItem.GainSkillSequence;
         InstantiateUtility.Instantiate(this.GainSkillEffect, this.CurrentSkillItem.transform.position, Quaternion.identity);
         RandomizerBonus.SpentAP(this.CurrentSkillItem.ActualRequiredSkillPoints);
         BingoController.OnGainAbility(this.CurrentSkillItem.Ability);
         Characters.Sein.Level.SkillPoints -= this.CurrentSkillItem.ActualRequiredSkillPoints;
         if (this.OnGainAbility)
         {
             this.OnGainAbility.Perform(null);
         }
         SeinLevel.HasSpentSkillPoint = true;
         AchievementsController.AwardAchievement(this.SpentFirstSkillPointAchievement);
         GameController.Instance.CreateCheckpoint();
         RandomizerStatsManager.OnSave(false);
         GameController.Instance.SaveGameController.PerformSave();
         this.UpdateRequirementsText();
         return;
     }
     if (!this.CurrentSkillItem.SoulRequirementMet)
     {
         if (this.CurrentSkillItem.RequiresAbilitiesOrItems)
         {
             this.RequirementsLineAShake.Restart();
         }
         else
         {
             this.RequirementsLineAShake.Restart();
         }
     }
     if (!this.CurrentSkillItem.AbilitiesRequirementMet)
     {
         this.RequirementsLineAShake.Restart();
     }
     if (this.OnCantEarnSkill)
     {
         this.OnCantEarnSkill.Perform(null);
     }
 }
示例#9
0
 public static void OnDeath()
 {
     if (Randomizer.Sync)
     {
         RandomizerSyncManager.onDeath();
     }
     RandomizerBonusSkill.OnDeath();
     RandomizerTrackedDataManager.UpdateBitfields();
     RandomizerStatsManager.OnDeath();
 }
示例#10
0
    public static void Initialize()
    {
        CreditsDone = false;
        Credits     = new List <KeyValuePair <string, int> >();
        Credits.Add(new KeyValuePair <string, int>(
                        @"ANCHORTOPPARAMS_20_7.5_2_Ori DE Randomizer (3.0)

Developed by:
Sigmasin
*Eiko*  #Meldon#  @Vulajin@", 9));
        Credits.Add(new KeyValuePair <string, int>(
                        @"ANCHORTOPPARAMS_20_7.5_2_Major contributions by:
DevilSquirrel

Community Contributions by:
GreeZ  Hydra  Jitaenow  LusTher
Phant  Skulblaka  Terra  xaviershay", 11));
        Credits.Add(new KeyValuePair <string, int>(
                        @"ANCHORTOPPARAMS_20_10_2_Additional community contributions by:
Athos213    AvengedRuler    Cereberon    Cleanfel
CovertMuffin    Grimelios    iRobin    JHobz
Jitaenow    Kirefel    madinsane    Mattermonkey
RainbowPoogle    Roryrai    UncleRonny   Wingheart
SeaAverage   DireKrow   Eph   shedd", 14));

        Credits.Add(new KeyValuePair <string, int>(
                        @"ANCHORTOPPARAMS_20_10_2_Ori DE Randomizer inspired by:
Chicken_Supreme's Ori 'remix'
Link to the Past Randomizer", 7));


        Credits.Add(new KeyValuePair <string, int>(
                        @"ALIGNLEFTANCHORTOPPARAMS_20_10_2_        Ori Randomizer Tournament Champions

		2017
Singles:	Covert_Muffin
Doubles:	That Is Faster (Sigmasin and IMRaziel)

		2018
Singles:	Sigmasin
Doubles:	That Is Still Faster (Sigmasin and IMRaziel)
", 14));


        // Credits.Add(new KeyValuePair<string, int>("In memory of Grandma Irine", 5));
        Credits.Add(new KeyValuePair <string, int>(RandomizerStatsManager.GetStatsPage(0), 50));
        Credits.Add(new KeyValuePair <string, int>(RandomizerStatsManager.GetStatsPage(1), 50));
        Credits.Add(new KeyValuePair <string, int>(RandomizerStatsManager.GetStatsPage(2), 50));
        Credits.Add(new KeyValuePair <string, int>(
                        @"ANCHORTOPPARAMS_20_12_2_Thanks for playing!
Website: orirando.com
Join the Ori community: orirando.com/discord", 30));

        NextCreditCountdown = 0;
    }
示例#11
0
 public static bool UnlockCreditWarp(string message)
 {
     if (get(1587) > 0)
     {
         return(false);
     }
     FoundBonusSkill(1587);
     ActiveBonus = 1587;
     message    += "\nPress " + RandomizerRebinding.BonusToggle.FirstBindName() + " to warp to credits";
     Randomizer.Print(message, 10, false, true, false, false);
     RandomizerStatsManager.WriteStatsFile();
     return(true);
 }
        // Token: 0x060037A2 RID: 14242
        public Uri GetURL()
        {
            string cleaned_id = this.id.Replace("#", "");

            if (cleaned_id.Contains("\\"))
            {
                cleaned_id = cleaned_id.Split('\\')[0];
            }
            string url = RootUrl + "/found/" + this.coords + "/" + this.type + "/" + cleaned_id;

            url += "?zone=" + RandomizerStatsManager.CurrentZone();

            return(new Uri(url));
        }
 // Token: 0x060003A5 RID: 933
 public override void Perform(IContext context)
 {
     try
     {
         Randomizer.Returning         = false;
         Randomizer.Warping           = 0;
         Randomizer.FixCutscenePickup = -1;
         Randomizer.JustSpawned       = false;
         RandomizerStatsManager.OnReturnToMenu();
     }
     catch (Exception e)
     {
         Randomizer.LogError("ReturnToTitleScreenAction: " + e.Message);
     }
     GameController.Instance.RestartGame();
 }
示例#14
0
    public static void getMapStone()
    {
        if (!Randomizer.ProgressiveMapStones)
        {
            Randomizer.getPickup();
            return;
        }
        RandomizerBonus.CollectMapstone();
        RandomizerStatsManager.FoundMapstone();

        if (Randomizer.ColorShift)
        {
            Randomizer.changeColor();
        }
        RandomizerSwitch.GivePickup((RandomizerAction)Randomizer.Table[20 + RandomizerBonus.MapStoneProgression() * 4], 20 + RandomizerBonus.MapStoneProgression() * 4, true);
    }
    // Token: 0x0600377B RID: 14203 RVA: 0x0002BADF File Offset: 0x00029CDF

    public static int ExpWithBonuses(int baseExp)
    {
        float mult = 1.0f + Characters.Sein.Inventory.GetRandomizerItem(9);

        if (Characters.Sein.PlayerAbilities.AbilityMarkers.HasAbility)
        {
            mult += .5f;
        }
        if (Characters.Sein.PlayerAbilities.SoulEfficiency.HasAbility)
        {
            mult += .5f;
        }
        int total = (int)(baseExp * mult);

        RandomizerStatsManager.OnExp(baseExp, total - baseExp);
        return(total);
    }
示例#16
0
 // Token: 0x0600321F RID: 12831
 private void SaveOnPedestal()
 {
     if (this.m_hint)
     {
         this.m_hint.HideMessageScreen();
     }
     this.m_used = true;
     this.MarkAsUsed();
     RandomizerStatsManager.OnSave();
     if (Characters.Sein.Abilities.Carry && Characters.Sein.Abilities.Carry.CurrentCarryable != null)
     {
         Characters.Sein.Abilities.Carry.CurrentCarryable.Drop();
     }
     if (this.OnOpenedAction)
     {
         this.OnOpenedAction.Perform(null);
     }
     base.StartCoroutine(this.MoveSeinToCenterSmoothly());
 }
 // Token: 0x06001382 RID: 4994
 private void CastSoulFlame()
 {
     if (this.ChargingSound)
     {
         this.ChargingSound.StopAndFadeOut(0.1f);
     }
     this.m_sein.Energy.Spend(this.SoulFlameCost);
     this.m_cooldownRemaining = 1f;
     this.m_holdDownTime      = 0f;
     if (this.m_sein.PlayerAbilities.Regroup.HasAbility)
     {
         this.m_sein.Mortality.Health.GainHealth(4);
     }
     if (this.m_sein.PlayerAbilities.UltraSoulFlame.HasAbility)
     {
         this.m_sein.Mortality.Health.GainHealth(4);
     }
     this.m_sceneCheckpoint = new MoonGuid(Scenes.Manager.CurrentScene.SceneMoonGuid);
     if (this.m_checkpointMarkerGameObject)
     {
         this.m_checkpointMarkerGameObject.GetComponent <SoulFlame>().Disappear();
     }
     this.SpawnSoulFlame(Characters.Sein.Position);
     RandomizerBonusSkill.LastSoulLink = Characters.Sein.Position;
     RandomizerStatsManager.OnSave();
     SeinSoulFlame.OnSoulFlameCast();
     SaveSlotBackupsManager.CreateCurrentBackup();
     GameController.Instance.CreateCheckpoint();
     GameController.Instance.SaveGameController.PerformSave();
     this.m_numberOfSoulFlamesCast++;
     if (this.m_numberOfSoulFlamesCast == 50)
     {
         AchievementsController.AwardAchievement(AchievementsLogic.Instance.SoulLinkManyTimesAchievementAsset);
     }
     if (this.CheckpointSequence)
     {
         this.CheckpointSequence.Perform(null);
     }
 }
 // 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);
     }
 }
示例#19
0
 public static void Update()
 {
     Randomizer.UpdateMessages();
     if (Characters.Sein && SkillTreeManager.Instance != null && SkillTreeManager.Instance.NavigationManager.IsVisible)
     {
         if (Characters.Sein.IsSuspended)
         {
             SkillTreeManager.Instance.NavigationManager.FadeAnimator.SetParentOpacity(1f);
         }
         else
         {
             SkillTreeManager.Instance.NavigationManager.FadeAnimator.SetParentOpacity(RandomizerSettings.AbilityMenuOpacity);
         }
     }
     Randomizer.Tick();
     if (Characters.Sein && !Characters.Sein.IsSuspended)
     {
         RandomizerBonus.Update();
         if (!Randomizer.ColorShift)
         {
             RandomizerColorManager.UpdateColors();
         }
         Randomizer.UpdateHoruCutsceneStatus();
         if (Characters.Sein.Inventory.GetRandomizerItem(82) > 0 && Items.NightBerry != null)
         {
             Items.NightBerry.transform.position = new Vector3(-910f, -300f);
             Characters.Sein.Inventory.SetRandomizerItem(82, 0);
         }
         if (RandomizerBonusSkill.LevelExplosionCooldown > 0)
         {
             RandomizerBonusSkill.LevelExplosionCooldown--;
             if (RandomizerBonusSkill.LevelExplosionCooldown > 10)
             {
                 Characters.Sein.Energy.SetCurrent(RandomizerBonusSkill.OldEnergy);
                 Characters.Sein.Mortality.Health.SetAmount(RandomizerBonusSkill.OldHealth);
             }
         }
         if (Randomizer.Chaos)
         {
             RandomizerChaosManager.Update();
         }
         if (Randomizer.Sync)
         {
             RandomizerSyncManager.Update();
         }
         if (Randomizer.Warping > 0)
         {
             if (Randomizer.DelayedWarp)
             {
                 Randomizer.DelayedWarp = false;
                 Randomizer.WarpTo(Randomizer.WarpTarget, Randomizer.Warping);
             }
             else
             {
                 Characters.Sein.Position = Randomizer.WarpTarget;
                 Characters.Sein.Speed    = new Vector3(0f, 0f);
                 Characters.Ori.Position  = new Vector3(Randomizer.WarpTarget.x, Randomizer.WarpTarget.y - 5);
                 bool loading = false;
                 foreach (SceneManagerScene sms in Scenes.Manager.ActiveScenes)
                 {
                     if (sms.CurrentState == SceneManagerScene.State.Loading)
                     {
                         loading = true;
                         break;
                     }
                 }
                 if (!loading)
                 {
                     Randomizer.Warping--;
                 }
                 if (Randomizer.Warping == 0 && Randomizer.SaveAfterWarp)
                 {
                     GameController.Instance.CreateCheckpoint();
                     GameController.Instance.SaveGameController.PerformSave();
                     Randomizer.SaveAfterWarp = false;
                 }
             }
         }
         else if (Randomizer.Returning)
         {
             Characters.Sein.Position = new Vector3(189f, -215f);
             if (Scenes.Manager.CurrentScene.Scene == "sunkenGladesRunaway")
             {
                 Randomizer.Returning = false;
             }
         }
     }
     if (CreditsActive)
     {
         return;
     }
     if (RandomizerRebinding.ReloadSeed.IsPressed())
     {
         Randomizer.initialize();
         Randomizer.showSeedInfo();
         return;
     }
     if (RandomizerRebinding.ShowStats.IsPressed() && Characters.Sein)
     {
         RandomizerStatsManager.ShowStats(10);
         return;
     }
     if (RandomizerRebinding.ListTrees.IsPressed() && Characters.Sein)
     {
         Randomizer.MessageQueueTime = 0;
         RandomizerTrackedDataManager.ListTrees();
         return;
     }
     if (RandomizerRebinding.ListRelics.IsPressed() && Characters.Sein)
     {
         Randomizer.MessageQueueTime = 0;
         RandomizerTrackedDataManager.ListRelics();
         return;
     }
     if (RandomizerRebinding.ListMapAltars.IsPressed() && Characters.Sein)
     {
         Randomizer.MessageQueueTime = 0;
         RandomizerTrackedDataManager.ListMapstones();
         return;
     }
     if (RandomizerRebinding.ListTeleporters.IsPressed() && Characters.Sein)
     {
         Randomizer.MessageQueueTime = 0;
         RandomizerTrackedDataManager.ListTeleporters();
         return;
     }
     if (RandomizerRebinding.BonusSwitch.IsPressed() && Characters.Sein)
     {
         RandomizerBonusSkill.SwitchBonusSkill();
         return;
     }
     if (RandomizerRebinding.BonusToggle.IsPressed() && Characters.Sein)
     {
         RandomizerBonusSkill.ActivateBonusSkill();
         return;
     }
     if (RandomizerRebinding.BonusSwitch.IsPressed() && Characters.Sein)
     {
         RandomizerBonusSkill.SwitchBonusSkill();
         return;
     }
     if (RandomizerRebinding.ReplayMessage.IsPressed())
     {
         Randomizer.playLastMessage();
         return;
     }
     if (RandomizerRebinding.ReturnToStart.IsPressed() && Characters.Sein && Randomizer.Warping <= 0)
     {
         if (Randomizer.AltRDisabled || RandomizerBonus.AltRDisabled())
         {
             Randomizer.printInfo("Return to start is disabled!");
             return;
         }
         Randomizer.returnToStart();
         return;
     }
     if (RandomizerRebinding.ShowProgress.IsPressed() && Characters.Sein)
     {
         Randomizer.MessageQueueTime = 0;
         Randomizer.showProgress();
         return;
     }
     if (RandomizerRebinding.ColorShift.IsPressed())
     {
         string obj = "Color shift enabled";
         if (Randomizer.ColorShift)
         {
             obj = "Color shift disabled";
         }
         else
         {
             Randomizer.changeColor();
         }
         Randomizer.ColorShift = !Randomizer.ColorShift;
         Randomizer.printInfo(obj);
     }
     if (RandomizerRebinding.ToggleChaos.IsPressed() && Characters.Sein)
     {
         if (Randomizer.Chaos)
         {
             Randomizer.showChaosMessage("Chaos deactivated");
             Randomizer.Chaos = false;
             RandomizerChaosManager.ClearEffects();
             return;
         }
         Randomizer.showChaosMessage("Chaos activated");
         Randomizer.Chaos = true;
         return;
     }
     else if (RandomizerRebinding.ChaosVerbosity.IsPressed() && Randomizer.Chaos)
     {
         Randomizer.ChaosVerbose = !Randomizer.ChaosVerbose;
         if (Randomizer.ChaosVerbose)
         {
             Randomizer.showChaosMessage("Chaos messages enabled");
             return;
         }
         Randomizer.showChaosMessage("Chaos messages disabled");
         return;
     }
     else
     {
         if (RandomizerRebinding.ForceChaosEffect.IsPressed() && Randomizer.Chaos && Characters.Sein)
         {
             RandomizerChaosManager.SpawnEffect();
             return;
         }
         return;
     }
 }
    public static void AbilityPickup(int Ability)
    {
        Randomizer.GiveAbility = true;
        switch (Ability)
        {
        case 0:
            PickupMessage("$Bash$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Bash, true);
            break;

        case 2:
            PickupMessage("$Charge Flame$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.ChargeFlame, true);
            break;

        case 3:
            PickupMessage("$Wall Jump$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.WallJump, true);
            break;

        case 4:
            PickupMessage("$Stomp$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Stomp, true);
            break;

        case 5:
            PickupMessage("$Double Jump$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.DoubleJump, true);
            break;

        case 8:
            PickupMessage("$Charge Jump$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.ChargeJump, true);
            break;

        case 12:
            PickupMessage("$Climb$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Climb, true);
            break;

        case 14:
            PickupMessage("$Glide$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Glide, true);
            break;

        case 15:
            PickupMessage("$Spirit Flame$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.SpiritFlame, true);
            break;

        case 50:
            PickupMessage("$Dash$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Dash, true);
            break;

        case 51:
            PickupMessage("$Grenade$", 300);
            Characters.Sein.PlayerAbilities.SetAbility(AbilityType.Grenade, true);
            break;
        }
        Randomizer.GiveAbility = false;
        RandomizerStatsManager.FoundSkill(Ability);
    }
示例#21
0
    // Token: 0x060017AC RID: 6060 RVA: 0x0007AAFC File Offset: 0x00078CFC
    public override void OnRecieveDamage(Damage damage)
    {
        bool terrain = (damage.Type == DamageType.Crush || damage.Type == DamageType.Spikes || damage.Type == DamageType.Lava || damage.Type == DamageType.Laser);

        if (this.Entity is Enemy && !(terrain || damage.Type == DamageType.Projectile || damage.Type == DamageType.Enemy))
        {
            RandomizerBonus.DamageDealt(Math.Max(Math.Min(this.Health / 4f, damage.Amount), 0f));
        }
        this.OnModifyDamage(damage);
        if (damage.Type == DamageType.Enemy)
        {
            return;
        }
        if (damage.Type == DamageType.Projectile)
        {
            damage.SetAmount(damage.Amount * 4f);
        }
        if (damage.Type == DamageType.Spikes || damage.Type == DamageType.Lava)
        {
            damage.SetAmount(1000f);
        }
        if (this.Entity.gameObject != base.gameObject)
        {
            damage.DealToComponents(this.Entity.gameObject);
        }
        base.OnRecieveDamage(damage);
        if (base.NoHealthLeft)
        {
            EntityDamageReciever.OnEntityDeathEvent(this.Entity);
            if (damage.Type == DamageType.Projectile && this.Entity is Enemy)
            {
                Projectile component = damage.Sender.GetComponent <Projectile>();
                if (component != null && component.HasBeenBashedByOri)
                {
                    AchievementsLogic.Instance.OnProjectileKilledEnemy();
                }
                if (component != null && !component.HasBeenBashedByOri)
                {
                    AchievementsLogic.Instance.OnEnemyKilledAnotherEnemy();
                }
            }
            if (terrain)
            {
                Type type = this.Entity.GetType();
                if (type != typeof(DropSlugEnemy) && type != typeof(KamikazeSootEnemy) && !base.gameObject.name.ToLower().Contains("wall"))
                {
                    AchievementsLogic.Instance.OnEnemyKilledItself();
                }
            }
            if (this.Entity is Enemy)
            {
                RandomizerStatsManager.OnKill(damage.Type);
                if (damage.Type == DamageType.ChargeFlame)
                {
                    if (Characters.Sein && Characters.Sein.Abilities.Dash)
                    {
                        if (Characters.Sein.Abilities.Dash.CurrentState == SeinDashAttack.State.ChargeDashing)
                        {
                            AchievementsLogic.Instance.OnChargeDashKilledEnemy();
                        }
                        else
                        {
                            AchievementsLogic.Instance.OnChargeFlameKilledEnemy();
                        }
                    }
                    else
                    {
                        AchievementsLogic.Instance.OnChargeFlameKilledEnemy();
                    }
                }
                else if ((damage.Type == DamageType.Stomp && damage.Force.y < 0f) || damage.Type == DamageType.StompBlast)
                {
                    AchievementsLogic.Instance.OnStompKilledEnemy();
                }
                else if (damage.Type == DamageType.SpiritFlameSplatter || damage.Type == DamageType.SpiritFlame)
                {
                    AchievementsLogic.Instance.OnSpiritFlameKilledEnemy();
                }
                else if (damage.Type == DamageType.Grenade)
                {
                    AchievementsLogic.Instance.OnGrenaedKilledEnemy();
                }
            }
            if (this.Entity is PetrifiedPlant)
            {
                Randomizer.getPickup(this.Entity.Position);
                RandomizerPlantManager.DestroyPlant(this.Entity.MoonGuid);
            }
        }
    }
示例#22
0
    // Token: 0x0600376D RID: 14189 RVA: 0x000E2764 File Offset: 0x000E0964
    public static void UpgradeID(int ID)
    {
        bool flag = ID < 0;

        if (flag)
        {
            ID = -ID;
        }
        if (RandomizerBonusSkill.BonusSkillNames.ContainsKey(ID))
        {
            RandomizerBonusSkill.FoundBonusSkill(ID);
            return;
        }
        if (ID >= 200 && ID < 260)
        {
            int     abilityId = (ID - 200) % 30;
            Ability ability   = abilities[abilityId];
            if (ID < 230)
            {
                ability.Found();
            }
            else
            {
                ability.Lost();
            }
            return;
        }
        switch (ID)
        {
        case 0:
            if (!flag)
            {
                Characters.Sein.Mortality.Health.SetAmount((float)(Characters.Sein.Mortality.Health.MaxHealth + 20));
                RandomizerSwitch.PickupMessage("Mega Health");
                return;
            }
            break;

        case 1:
            if (!flag)
            {
                Characters.Sein.Energy.SetCurrent(Characters.Sein.Energy.Max + 5f);
                RandomizerSwitch.PickupMessage("Mega Energy");
                return;
            }
            break;

        case 2:
            Randomizer.returnToStart();
            RandomizerSwitch.PickupMessage("Go Home!");
            return;

        case 20:
            break;

        case 6:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Attack Upgrade (" + RandomizerBonus.SpiritFlameLevel().ToString() + ")");
                return;
            }
            if (RandomizerBonus.SpiritFlameLevel() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Attack Upgrade (" + RandomizerBonus.SpiritFlameLevel().ToString() + ")");
                return;
            }
            break;

        case 8:
            RandomizerSwitch.PickupMessage("Explosion Power Upgrade");
            if (!RandomizerBonus.ExplosionPower())
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                return;
            }
            break;

        case 9:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            }
            else if (Characters.Sein.Inventory.GetRandomizerItem(ID) > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
            }
            if (Characters.Sein.Inventory.GetRandomizerItem(ID) == 1)
            {
                RandomizerSwitch.PickupMessage("Spirit Light Efficiency");
            }
            else
            {
                RandomizerSwitch.PickupMessage("Spirit Light Efficiency (" + Characters.Sein.Inventory.GetRandomizerItem(ID).ToString() + ")");
            }
            break;

        case 10:
            RandomizerSwitch.PickupMessage("Extra Air Dash");
            if (!RandomizerBonus.DoubleAirDash())
            {
                Characters.Sein.Inventory.SetRandomizerItem(ID, 1);
                return;
            }
            break;

        case 11:
            RandomizerSwitch.PickupMessage("Charge Dash Efficiency");
            if (!RandomizerBonus.ChargeDashEfficiency())
            {
                Characters.Sein.Inventory.SetRandomizerItem(ID, 1);
                return;
            }
            break;

        case 12:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                if (RandomizerBonus.DoubleJumpUpgrades() == 1)
                {
                    RandomizerSwitch.PickupMessage("Extra Double Jump");
                    return;
                }
                RandomizerSwitch.PickupMessage("Extra Double Jump (" + RandomizerBonus.DoubleJumpUpgrades().ToString() + ")");
                return;
            }
            else if (RandomizerBonus.DoubleJumpUpgrades() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                if (RandomizerBonus.DoubleJumpUpgrades() == 1)
                {
                    RandomizerSwitch.PickupMessage("Extra Double Jump");
                    return;
                }
                RandomizerSwitch.PickupMessage("Extra Double Jump (" + RandomizerBonus.DoubleJumpUpgrades().ToString() + ")");
                return;
            }
            break;

        case 13:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Health Regeneration (" + RandomizerBonus.HealthRegeneration().ToString() + ")");
                return;
            }
            if (RandomizerBonus.HealthRegeneration() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Health Regeneration (" + RandomizerBonus.HealthRegeneration().ToString() + ")");
                return;
            }
            break;

        case 15:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Energy Regeneration (" + RandomizerBonus.EnergyRegeneration().ToString() + ")");
                return;
            }
            if (RandomizerBonus.EnergyRegeneration() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Energy Regeneration (" + RandomizerBonus.EnergyRegeneration().ToString() + ")");
                return;
            }
            break;

        case 17:
            if (flag)
            {
                if (RandomizerBonus.WaterVeinShards() > 0)
                {
                    Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                    RandomizerSwitch.PickupMessage("*Water Vein Shard (" + RandomizerBonus.WaterVeinShards().ToString() + "/3)*");
                }
            }
            else if (RandomizerBonus.WaterVeinShards() >= 3)
            {
                RandomizerSwitch.PickupMessage("*Water Vein Shard (extra)*");
            }
            else
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("*Water Vein Shard (" + RandomizerBonus.WaterVeinShards().ToString() + "/3)*", 300);
            }
            Keys.GinsoTree = (RandomizerBonus.WaterVeinShards() >= 3);
            if (Keys.GinsoTree)
            {
                RandomizerStatsManager.FoundEvent(0);
            }
            return;

        case 19:
            if (flag)
            {
                if (RandomizerBonus.GumonSealShards() > 0)
                {
                    Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                    RandomizerSwitch.PickupMessage("#Gumon Seal Shard (" + RandomizerBonus.GumonSealShards().ToString() + "/3)#");
                }
            }
            else if (RandomizerBonus.GumonSealShards() >= 3)
            {
                RandomizerSwitch.PickupMessage("#Gumon Seal Shard (extra)#");
            }
            else
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("#Gumon Seal Shard (" + RandomizerBonus.GumonSealShards().ToString() + "/3)#", 300);
            }
            Keys.ForlornRuins = (RandomizerBonus.GumonSealShards() >= 3);
            if (Keys.ForlornRuins)
            {
                RandomizerStatsManager.FoundEvent(2);
            }
            return;

        case 21:
            if (flag)
            {
                if (RandomizerBonus.SunstoneShards() > 0)
                {
                    Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                    RandomizerSwitch.PickupMessage("@Sunstone Shard (" + RandomizerBonus.SunstoneShards().ToString() + "/3)@");
                }
            }
            else if (RandomizerBonus.SunstoneShards() >= 3)
            {
                RandomizerSwitch.PickupMessage("@Sunstone Shard (extra)@");
            }
            else
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("@Sunstone Shard (" + RandomizerBonus.SunstoneShards().ToString() + "/3)@", 300);
            }
            Keys.MountHoru = (RandomizerBonus.SunstoneShards() >= 3);
            if (Keys.MountHoru)
            {
                RandomizerStatsManager.FoundEvent(4);
            }
            return;

        case 28:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            }
            else if (RandomizerBonus.WarmthFrags() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
            }
            if (Randomizer.fragKeyFinish < RandomizerBonus.WarmthFrags())
            {
                RandomizerSwitch.PickupMessage("@Warmth Fragment (extra)@", 300);
                return;
            }
            RandomizerSwitch.PickupMessage(string.Concat(new object[] { "@Warmth Fragment (", RandomizerBonus.WarmthFrags().ToString(), "/", Randomizer.fragKeyFinish, ")@" }), 300);
            break;

        case 29:
            return;

        case 30:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Bleeding x" + RandomizerBonus.Bleeding().ToString());
                return;
            }
            if (RandomizerBonus.Bleeding() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Bleeding x" + RandomizerBonus.Bleeding().ToString());
                return;
            }
            break;

        case 31:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            }
            else if (RandomizerBonus.Lifesteal() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
            }
            if (Lifesteal() == 1)
            {
                RandomizerSwitch.PickupMessage("Health Leech");
            }
            else
            {
                RandomizerSwitch.PickupMessage("Health Leech x" + RandomizerBonus.Lifesteal().ToString());
            }
            break;

        case 32:
            if (!flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            }
            else if (RandomizerBonus.Manavamp() > 0)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
            }
            if (Manavamp() == 1)
            {
                RandomizerSwitch.PickupMessage("Energy Leech");
            }
            else
            {
                RandomizerSwitch.PickupMessage("Energy Leech x" + RandomizerBonus.Manavamp().ToString());
            }
            break;

        case 33:
            if (!flag)
            {
                int v = Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Skill Velocity Upgrade x" + v.ToString());
                if (Characters.Sein.Inventory.GetRandomizerItem(108) == 0)
                {
                    RandomizerBonusSkill.FoundBonusSkill(108);
                }
                return;
            }
            if (RandomizerBonus.Velocity() > 0)
            {
                int v = Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Skill Velocity Upgrade x" + v.ToString());
                return;
            }
            break;

        case 34:
            Characters.Sein.Inventory.SetRandomizerItem(34, 1);
            RandomizerSwitch.PickupMessage("Return to start disabled!");
            break;

        case 35:
            Characters.Sein.Inventory.SetRandomizerItem(34, 0);
            RandomizerSwitch.PickupMessage("Return to start enabled!");
            break;

        case 36:
            RandomizerSwitch.PickupMessage("Underwater Skill Usage");
            Characters.Sein.Inventory.SetRandomizerItem(36, 1);
            break;

        case 37:
            if (!flag)
            {
                int v = Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
                RandomizerSwitch.PickupMessage("Jump Upgrade x" + v.ToString());
                if (Characters.Sein.Inventory.GetRandomizerItem(108) == 0)
                {
                    RandomizerBonusSkill.FoundBonusSkill(108);
                }
                return;
            }
            if (RandomizerBonus.Jumpgrades() > 0)
            {
                int v = Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
                RandomizerSwitch.PickupMessage("Jump Upgrade x" + v.ToString());
                return;
            }
            break;

        case 40:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Wall Jump Lost!!@", 240);
            Characters.Sein.PlayerAbilities.WallJump.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 41:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@ChargeFlame Lost!!@", 240);
            Characters.Sein.PlayerAbilities.ChargeFlame.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 42:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@DoubleJump Lost!!@", 240);
            Characters.Sein.PlayerAbilities.DoubleJump.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 43:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Bash Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Bash.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 44:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Stomp Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Stomp.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 45:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Glide Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Glide.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 46:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Climb Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Climb.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 47:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Charge Jump Lost!!@", 240);
            Characters.Sein.PlayerAbilities.ChargeJump.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 48:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Dash Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Dash.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 49:
            if (!Characters.Sein || flag)
            {
                return;
            }
            RandomizerSwitch.PickupMessage("@Grenade Lost!!@", 240);
            Characters.Sein.PlayerAbilities.Grenade.HasAbility = false;
            Characters.Sein.Prefabs.EnsureRightPrefabsAreThereForAbilities();
            return;

        case 81:
            if (Characters.Sein.Inventory.GetRandomizerItem(ID) > 0)
            {
                return;
            }
            Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            string s_color = "";
            string g_color = "";
            if (Characters.Sein.PlayerAbilities.HasAbility(AbilityType.Stomp))
            {
                s_color = "$";
            }
            if (Characters.Sein.PlayerAbilities.HasAbility(AbilityType.Grenade))
            {
                g_color = "$";
            }
            RandomizerSwitch.PickupMessage(s_color + "Stomp: " + Randomizer.StompZone + s_color + g_color + "    Grenade: " + Randomizer.GrenadeZone + g_color, 480);
            break;

        default:
            if (flag)
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, -1);
            }
            else
            {
                Characters.Sein.Inventory.IncRandomizerItem(ID, 1);
            }
            return;
        }
    }
示例#23
0
    // Token: 0x06003848 RID: 14408
    public static void Tick()
    {
        long tick = DateTime.Now.Ticks % 10000000L;

        if (tick < Randomizer.LastTick)
        {
            if (ResetVolume == 1)
            {
                ResetVolume = 0;
                GameSettings.Instance.SoundEffectsVolume = CachedVolume;
            }
            else if (ResetVolume > 1)
            {
                ResetVolume--;
            }

            if (RepeatableCooldown > 0)
            {
                RepeatableCooldown--;
            }
            if (RandomizerStatsManager.StatsTimer > 0)
            {
                RandomizerStatsManager.StatsTimer--;
            }
            RandomizerStatsManager.IncTime();
            if (Scenes.Manager.CurrentScene != null)
            {
                string scene = Scenes.Manager.CurrentScene.Scene;
                if (scene == "titleScreenSwallowsNest")
                {
                    ResetTrackerCount++;
                    if (ResetTrackerCount > 10)
                    {
                        RandomizerTrackedDataManager.Reset();
                        ResetTrackerCount = 0;
                    }
                    if (RandomizerCreditsManager.CreditsDone)
                    {
                        RandomizerCreditsManager.CreditsDone = false;
                    }
                }
                else if (scene == "creditsScreen")
                {
                    if (!CreditsActive && !RandomizerCreditsManager.CreditsDone)
                    {
                        CreditsActive = true;
                        RandomizerCreditsManager.Initialize();
                    }
                }
                else if (scene == "theSacrifice" && RandomizerStatsManager.Active)
                {
                    foreach (SceneManagerScene sms in Scenes.Manager.ActiveScenes)
                    {
                        if (sms.MetaData.Scene == "creditsScreen" && sms.CurrentState == SceneManagerScene.State.Loading)
                        {
                            RandomizerStatsManager.Finish();
                        }
                    }
                }
            }

            if (CreditsActive && !RandomizerCreditsManager.CreditsDone)
            {
                RandomizerCreditsManager.Tick();
            }

            if (Characters.Sein)
            {
                if (JustSpawned && SpawnWith != "" && Characters.Sein.Inventory)
                {
                    JustSpawned = false;
                    RandomizerAction spawnItem;
                    if (Randomizer.StringKeyPickupTypes.Contains(SpawnWith.Substring(0, 2)))
                    {
                        spawnItem = new RandomizerAction(SpawnWith.Substring(0, 2), SpawnWith.Substring(2));
                    }
                    else
                    {
                        spawnItem = new RandomizerAction(SpawnWith.Substring(0, 2), int.Parse(SpawnWith.Substring(2)));
                    }
                    RandomizerSwitch.GivePickup(spawnItem, 2, true);
                }
                if (!Characters.Sein.IsSuspended && Scenes.Manager.CurrentScene != null)
                {
                    ResetTrackerCount = 0;
                    RandomizerTrackedDataManager.UpdateBitfields();
                    RandomizerColorManager.UpdateHotColdTarget();
                    if (Characters.Sein.Position.y > 937f && Sein.World.Events.WarmthReturned && Scenes.Manager.CurrentScene.Scene == "ginsoTreeWaterRisingEnd")
                    {
                        if (Characters.Sein.Abilities.Bash.IsBashing)
                        {
                            Characters.Sein.Abilities.Bash.BashGameComplete(0f);
                        }
                        Characters.Sein.Position = new Vector3(750f, -120f);
                        return;
                    }
                    if (Scenes.Manager.CurrentScene.Scene == "catAndMouseResurrectionRoom" && !Randomizer.canFinalEscape())
                    {
                        if (Randomizer.Entrance)
                        {
                            Randomizer.EnterDoor(new Vector3(-242f, 489f));
                            return;
                        }
                        Characters.Sein.Position = new Vector3(20f, 105f);
                        return;
                    }
                    else if (!Characters.Sein.Controller.CanMove && Scenes.Manager.CurrentScene.Scene == "moonGrottoGumosHideoutB")
                    {
                        Randomizer.LockedCount++;
                        if (Randomizer.LockedCount >= 4)
                        {
                            GameController.Instance.ResetInputLocks();
                            return;
                        }
                    }
                    else
                    {
                        Randomizer.LockedCount = 0;
                    }
                }
            }
        }
        Randomizer.LastTick = tick;
    }
示例#24
0
    public static void initialize()
    {
        Randomizer.OHKO                 = false;
        Randomizer.ZeroXP               = false;
        Randomizer.BonusActive          = true;
        Randomizer.GiveAbility          = false;
        Randomizer.Chaos                = false;
        Randomizer.ChaosVerbose         = false;
        Randomizer.Returning            = false;
        Randomizer.Sync                 = false;
        Randomizer.ForceMaps            = false;
        Randomizer.SyncMode             = 4;
        Randomizer.StringKeyPickupTypes = new List <string> {
            "TP", "SH", "NO", "WT", "MU", "HN", "WP", "RP", "WS"
        };
        Randomizer.ShareParams = "";
        RandomizerChaosManager.initialize();
        Randomizer.DamageModifier             = 1f;
        Randomizer.Table                      = new Hashtable();
        Randomizer.GridFactor                 = 4.0;
        Randomizer.Message                    = "Good luck on your rando!";
        Randomizer.MessageProvider            = (RandomizerMessageProvider)ScriptableObject.CreateInstance(typeof(RandomizerMessageProvider));
        Randomizer.ProgressiveMapStones       = true;
        Randomizer.ForceTrees                 = false;
        Randomizer.CluesMode                  = false;
        Randomizer.Shards                     = false;
        Randomizer.WorldTour                  = false;
        Randomizer.SeedMeta                   = "";
        Randomizer.MistySim                   = new WorldEvents();
        Randomizer.MistySim.MoonGuid          = new MoonGuid(1061758509, 1206015992, 824243626, -2026069462);
        Randomizer.TeleportTable              = new Hashtable();
        Randomizer.TeleportTable["Forlorn"]   = "forlorn";
        Randomizer.TeleportTable["Grotto"]    = "moonGrotto";
        Randomizer.TeleportTable["Sorrow"]    = "valleyOfTheWind";
        Randomizer.TeleportTable["Grove"]     = "spiritTree";
        Randomizer.TeleportTable["Swamp"]     = "swamp";
        Randomizer.TeleportTable["Valley"]    = "sorrowPass";
        Randomizer.TeleportTable["Ginso"]     = "ginsoTree";
        Randomizer.TeleportTable["Horu"]      = "mountHoru";
        Randomizer.TeleportTable["Glades"]    = "sunkenGlades";
        Randomizer.TeleportTable["Blackroot"] = "mangroveFalls";
        Randomizer.Entrance                   = false;
        Randomizer.DoorTable                  = new Hashtable();
        Randomizer.ColorShift                 = false;
        Randomizer.MessageQueue               = new Queue();
        Randomizer.MessageQueueTime           = 0;
        Randomizer.QueueBash                  = false;
        Randomizer.BashWasQueued              = false;
        Randomizer.BashTap                    = false;
        Randomizer.fragsEnabled               = false;
        Randomizer.LastTick                   = 10000000L;
        Randomizer.LockedCount                = 0;
        Randomizer.ResetTrackerCount          = 0;
        Randomizer.HotCold                    = false;
        Randomizer.HotColdTypes               = new string[] { "EV", "RB17", "RB19", "RB21", "RB28", "SK" };
        Randomizer.HotColdItems               = new Dictionary <int, RandomizerHotColdItem>();
        Randomizer.HotColdMaps                = new List <int>();
        int HotColdSaveId = 2000;

        Randomizer.HoruScene = "";
        Randomizer.HoruMap   = new Hashtable();
        Randomizer.HoruMap["mountHoruStomperSystemsR"]    = 2640380;
        Randomizer.HoruMap["mountHoruProjectileCorridor"] = 1720288;
        Randomizer.HoruMap["mountHoruMovingPlatform"]     = 3040304;
        Randomizer.HoruMap["mountHoruLaserTurretsR"]      = 2160192;
        Randomizer.HoruMap["mountHoruBlockableLasers"]    = -919624;
        Randomizer.HoruMap["mountHoruBigPushBlock"]       = -199724;
        Randomizer.HoruMap["mountHoruBreakyPathTop"]      = -1639664;
        Randomizer.HoruMap["mountHoruFallingBlocks"]      = -959848;
        Randomizer.OpenMode  = true;
        Randomizer.OpenWorld = false;
        RandomizerDataMaps.LoadGladesData();
        RandomizerDataMaps.LoadGinsoData();
        RandomizerDataMaps.LoadForlornData();
        RandomizerDataMaps.LoadHoruData();
        RandomizerDataMaps.LoadValleyData();
        RandomizerColorManager.Initialize();
        RandomizerPlantManager.Initialize();
        RandomizerRebinding.ParseRebinding();
        RandomizerSettings.ParseSettings();
        Randomizer.RelicZoneLookup = new Dictionary <string, string>();
        RandomizerTrackedDataManager.Initialize();
        RandomizerStatsManager.Initialize();
        Randomizer.RelicCount        = 0;
        Randomizer.GrenadeZone       = "MIA";
        Randomizer.StompZone         = "MIA";
        Randomizer.RepeatablePickups = new HashSet <int>();
        Randomizer.StompTriggers     = false;
        Randomizer.SpawnWith         = "";
        Randomizer.IgnoreEnemyExp    = false;
        bool relicCountOverride = false;

        try {
            if (File.Exists("randomizer.dat"))
            {
                string[] allLines = File.ReadAllLines("randomizer.dat");
                string[] flagLine = allLines[0].Split(new char[] { '|' });
                string   s        = flagLine[1];
                string[] flags    = flagLine[0].Split(new char[] { ',' });
                Randomizer.SeedMeta = allLines[0];
                foreach (string rawFlag in flags)
                {
                    string flag = rawFlag.ToLower();
                    if (flag == "ohko")
                    {
                        Randomizer.OHKO = true;
                    }
                    if (flag.StartsWith("worldtour"))
                    {
                        Randomizer.WorldTour = true;
                        if (flag.Contains("="))
                        {
                            relicCountOverride    = true;
                            Randomizer.RelicCount = int.Parse(flag.Substring(10));
                        }
                    }
                    if (flag.StartsWith("sync"))
                    {
                        Randomizer.Sync   = true;
                        Randomizer.SyncId = flag.Substring(4);
                        RandomizerSyncManager.Initialize();
                    }
                    if (flag.StartsWith("frags/"))
                    {
                        Randomizer.fragsEnabled = true;
                        string[] fragParams = flag.Split(new char[]
                        {
                            '/'
                        });
                        Randomizer.maxFrags      = int.Parse(fragParams[2]);
                        Randomizer.fragKeyFinish = int.Parse(fragParams[1]);
                    }
                    if (flag.StartsWith("mode="))
                    {
                        string modeStr = flag.Substring(5).ToLower();
                        int    syncMode;
                        if (modeStr == "shared")
                        {
                            syncMode = 1;
                        }
                        else if (modeStr == "none")
                        {
                            syncMode = 4;
                        }
                        else
                        {
                            syncMode = int.Parse(modeStr);
                        }
                        Randomizer.SyncMode = syncMode;
                    }
                    if (flag.StartsWith("shared="))
                    {
                        Randomizer.ShareParams = flag.Substring(7);
                    }
                    if (flag == "noextraexp")
                    {
                        Randomizer.IgnoreEnemyExp = true;
                    }
                    if (flag == "0xp")
                    {
                        Randomizer.IgnoreEnemyExp = true;
                        Randomizer.ZeroXP         = true;
                    }
                    if (flag == "nobonus")
                    {
                        Randomizer.BonusActive = false;
                    }
                    if (flag == "nonprogressivemapstones")
                    {
                        Randomizer.ProgressiveMapStones = false;
                    }
                    if (flag == "forcetrees")
                    {
                        Randomizer.ForceTrees = true;
                    }
                    if (flag == "forcemaps")
                    {
                        Randomizer.ForceMaps = true;
                    }
                    if (flag == "clues")
                    {
                        Randomizer.CluesMode = true;
                        RandomizerClues.initialize();
                    }
                    if (flag == "shards")
                    {
                        Randomizer.Shards = true;
                    }
                    if (flag == "entrance")
                    {
                        Randomizer.Entrance = true;
                    }
                    if (flag == "closeddungeons")
                    {
                        Randomizer.OpenMode = false;
                    }
                    if (flag == "openworld")
                    {
                        Randomizer.OpenWorld = true;
                    }
                    if (flag.StartsWith("hotcold="))
                    {
                        Randomizer.HotCold      = true;
                        Randomizer.HotColdTypes = flag.Substring(8).Split(new char[] { '+' });
                        Array.Sort(Randomizer.HotColdTypes);
                    }
                    if (flag.StartsWith("sense="))
                    {
                        Randomizer.HotColdTypes = flag.Substring(6).Split(new char[] { '+' });
                        Array.Sort(Randomizer.HotColdTypes);
                    }
                    if (flag == "noaltr")
                    {
                        Randomizer.AltRDisabled = true;
                    }
                    if (flag == "stomptriggers")
                    {
                        Randomizer.StompTriggers = true;
                    }
                }
                for (int i = 1; i < allLines.Length; i++)
                {
                    string[] lineParts = allLines[i].Split(new char[] { '|' });
                    int      coords;
                    int.TryParse(lineParts[0], out coords);
                    if (coords == 2)
                    {
                        SpawnWith = lineParts[1] + lineParts[2];
                        continue;
                    }
                    int index = Array.BinarySearch <string>(Randomizer.HotColdTypes, lineParts[1]);
                    if (index < 0)
                    {
                        index = -index - 1;
                    }
                    while (index < Randomizer.HotColdTypes.Length && Randomizer.HotColdTypes[index].Substring(0, 2) == lineParts[1])
                    {
                        if (Randomizer.HotColdTypes[index] == lineParts[1] || Randomizer.HotColdTypes[index].Substring(2) == lineParts[2])
                        {
                            if (Math.Abs(coords) > 100)
                            {
                                Randomizer.HotColdItems.Add(coords, new RandomizerHotColdItem(Randomizer.HashKeyToVector(coords), HotColdSaveId));
                                HotColdSaveId++;
                            }
                            else
                            {
                                Randomizer.HotColdMaps.Add(coords);
                            }
                        }
                        index++;
                    }
                    if (Randomizer.StringKeyPickupTypes.Contains(lineParts[1]))
                    {
                        Randomizer.Table[coords] = new RandomizerAction(lineParts[1], lineParts[2]);
                        if (lineParts[1] == "WT")
                        {
                            Randomizer.RelicZoneLookup[lineParts[2]] = lineParts[3];
                            if (!relicCountOverride)
                            {
                                Randomizer.RelicCount++;
                            }
                        }
                        if (lineParts[1] == "RP")
                        {
                            Randomizer.RepeatablePickups.Add(coords);
                        }
                    }
                    else
                    {
                        int id;
                        int.TryParse(lineParts[2], out id);
                        if (lineParts[1] == "EN")
                        {
                            // door entries are coord|EN|targetX|targetY
                            int doorY;
                            int.TryParse(lineParts[3], out doorY);
                            Randomizer.DoorTable[coords] = new Vector3((float)id, (float)doorY);
                        }
                        else
                        {
                            Randomizer.Table[coords] = new RandomizerAction(lineParts[1], id);
                            if (lineParts[1] == "SK")
                            {
                                if (id == 51)
                                {
                                    GrenadeZone = lineParts[3];
                                }
                                else if (id == 4)
                                {
                                    StompZone = lineParts[3];
                                }
                            }
                            if (Randomizer.CluesMode && lineParts[1] == "EV" && id % 2 == 0)
                            {
                                RandomizerClues.AddClue(lineParts[3], id / 2);
                            }
                        }
                    }
                }
                Randomizer.HotColdMaps.Sort();
                if (Randomizer.CluesMode)
                {
                    RandomizerClues.FinishClues();
                }
            }
            else
            {
                Randomizer.printInfo("Error: randomizer.dat not found");
            }
        }
        catch (Exception e) {
            Randomizer.printInfo("Error parsing randomizer.dat:" + e.Message, 300);
        }
        RandomizerBonusSkill.Reset();
    }