public void Update(Status status, IIsaacReader reader) { if (MainWindow.IsShuttingDown) { return; } Dispatcher.Invoke(() => { if (!status.Ready) { Clear(); return; } var abpReader = reader as AfterbirthPlusIsaacReader; if (abpReader == null) { Clear(); return; } List <Item> trinkets; if (CreationMode.On) { trinkets = Trinkets.AllTrinkets.Select(pair => pair.Value).ToList(); trinkets.Sort((a, b) => string.CompareOrdinal(a.I18N, b.I18N)); } else { trinkets = abpReader.GetSmeltedTrinkets(); } if (_addedTrinkets.Count > trinkets.Count) { Clear(); } var toAdd = new Dictionary <int, Item>(); for (var i = 0; i < trinkets.Count; i++) { var trinket = trinkets[i]; if (!_addedTrinkets.Contains(trinket)) { toAdd.Add(i, trinket); } } toAdd.ToList().ForEach(pair => { var trinket = pair.Value; var resource = ResourcesUtil.TrinketResource(trinket); var imageModel = new GeneralImageModel(resource, trinket.I18N, 0, 0, 2, Visibility.Visible, Cursors.Hand, 64, 64); var trinketImage = new GeneralImage(imageModel, BitmapScalingMode.NearestNeighbor, MouseLeftButtonDownOnTrinketImage); MainPanel.Children.Insert(pair.Key, trinketImage); _addedTrinkets.Add(pair.Value); }); }); }
public void Update(Status status, IIsaacReader reader) { if (MainWindow.IsShuttingDown) { return; } Dispatcher.Invoke(() => { if (!status.Ready) { MainPanel.Children.Clear(); return; } var abpREader = reader as AfterbirthPlusIsaacReader; if (abpREader == null) { MainPanel.Children.Clear(); return; } var voidedItems = abpREader.GetVoidedItems(); if (MainPanel.Children.Count > voidedItems.Count) { MainPanel.Children.Clear(); } for (var i = MainPanel.Children.Count; i < voidedItems.Count; i++) { var voidedItem = voidedItems[i]; GeneralImageModel imageModel; if (voidedItem == null) { imageModel = new GeneralImageModel(null, "Unknown", 0, 0, 2, Visibility.Visible, Cursors.Arrow, 64, 64); } else { imageModel = new GeneralImageModel(ResourcesUtil.ItemResource(voidedItem), voidedItem.I18N, 0, 0, 2, Visibility.Visible, Cursors.Arrow, 64, 64); } MainPanel.Children.Add(new GeneralImage(imageModel)); } }); }
public void Update(Status status, IIsaacReader reader) { if (!status.Ready) { SoundFunPlayer.ResetTouchedItems(); _firstCheck = true; return; } var numberOfPlayers = MemoryReader.GetNumberOfPlayers(); if (numberOfPlayers == 0) { SoundFunPlayer.ResetTouchedItems(); _firstCheck = true; return; } var timerCounter = reader.GetTimeCounter(); var reseted = timerCounter < 2; // resets on hold "r" if (reseted) { SoundFunPlayer.ResetTouchedItems(); } if (reader.IsGamePaused()) { SoundFunPlayer.Pause(false); return; } // tries to resume SoundFunPlayer.Resume(false); var startCheck = reseted || _firstCheck; _firstCheck = false; SoundFunPlayer.CheckPlaySound(reader.GetItemsTouchedList(), startCheck); }
public static void Update(Status status, IIsaacReader reader) { if (!status.Ready || IsaacVersion.AfterbirthPlus != MemoryReader.GetVersion()) { Clear(); return; } var abpReader = reader as AfterbirthPlusIsaacReader; if (abpReader == null) { Clear(); return; } var numberOfPlayers = GetNumberOfPlayers(); if (numberOfPlayers == 0) { Clear(); return; } if (_loaded) { return; } _loaded = true; ModdedItems.Clear(); ModdedItems.AddRange(LoadModdedItems()); ModdedTrinkets.Clear(); ModdedTrinkets.AddRange(LoadModdedTrinkets()); ModdedPills.Clear(); ModdedPills.AddRange(LoadModdedPills()); }
public void Update(Status status, IIsaacReader reader) { if (MainWindow.IsShuttingDown) { return; } Dispatcher.Invoke(() => { if (!status.Ready) { Reset(); return; } var pool = reader.GetPillPool(); if (!pool.Any()) { Reset(); return; } var seed = reader.GetSeed(); if (seed == 0) { Reset(); return; } var pillKnowledge = reader.GetPillKnowledge(); var hasPhd = reader.HasItem(new Item(75)); var considerCache = pillKnowledge.Any(known => known); // any pill known if (considerCache) { if (!_pillKnowledgeCache.ContainsKey(seed)) { _pillKnowledgeCache[seed] = new List <bool>() { false, false, false, false, false, false, false, false, false, false, false, false, false }; } var cache = _pillKnowledgeCache[seed]; if (hasPhd) { var isPill = reader.IsPillOrCard() == Consumable.Pill; var pillIndex = reader.GetPillCardId(); if (isPill && pillIndex > 0 && pillIndex <= 13) { cache[pillIndex - 1] = true; } pillKnowledge = cache; } else { for (var i = 0; i < 13; i++) { cache[i] = pillKnowledge[i]; } } } var toGoodPills = hasPhd || reader.HasItem(new Item(303)); if (PillPanel.Children.Count != pool.Count) { InitPills(pool, pillKnowledge, toGoodPills); } else { UpdatePills(pool, pillKnowledge, toGoodPills); } var lastPillIndex = reader.IndexOfLastPillTaken(); if (lastPillIndex == 0 || pool.Count < lastPillIndex) { Model.LastPillVisibility = Visibility.Hidden; } else { Item lastPill = null; if (lastPillIndex > 0 && lastPillIndex <= 13) { lastPill = pool[lastPillIndex - 1]; } SetPill(LastPill.Model, lastPill, lastPillIndex, true, toGoodPills); Model.LastPillVisibility = Visibility.Visible; } }); }