public TrackData()
 {
     if (TrackFileController.DontTrackYet)
     {
         keystones   = 0;
         spiritLight = 0;
         ore         = 0;
         skills      = new HashSet <String>();
         upgraded    = new HashSet <String>();
         events      = new HashSet <String>();
         teleporters = new HashSet <String>();
     }
     try {
         keystones   = InterOp.get_keystones();
         spiritLight = InterOp.get_experience();
         ore         = InterOp.get_ore();
         skills      = SaveController.SkillsFound.Select((AbilityType type) => trackName(type)).ToHashSet();
         upgraded    = SaveController.UpgradedWeapons.Select((AbilityType type) => $"{type.GetDescription().Replace(" ", "")}").ToHashSet();
         if (SaveController.HasAbility(AbilityType.DamageUpgrade1) && SaveController.HasAbility(AbilityType.DamageUpgrade2))
         {
             upgraded.Add(trackName(AbilityType.DamageUpgrade1));
         }
         events      = SaveController.WorldEvents.Select((QuestEventType type) => type.GetDescription()).ToHashSet();
         teleporters = Teleporter.TeleporterStates.Keys.Where((TeleporterType t) => (new Teleporter(t)).Has()).Select((TeleporterType t) => t.GetDescription()).ToHashSet();
     }
     catch (Exception e) {
         Randomizer.Error("TrackData()", e);
     }
 }
Пример #2
0
 public static void Update()
 {
     if (InterOp.get_game_state() == GameState.Game)
     {
         DontTrackYet = false;
     }
     if (IgnoreUpdateFrames > 0)
     {
         IgnoreUpdateFrames--;
         return;
     }
     try {
         if (Last == null || Last.ore != InterOp.get_ore() || Last.spiritLight != InterOp.get_experience() || Last.keystones != InterOp.get_keystones())
         {
             Write();
         }
     } catch (Exception e) {
         Randomizer.Error("Track.Update", e);
         Randomizer.Log($"Last: {Last}", false);
     }
 }