private void ProcessBingoTileFlip(BingoTileData data) { //TODO: Mp and Hp need inventory definitions in save editor switch (data.TileDef.Type) { case BingoTileType.Hp: var hu = (int)SaveHelpers.StageToHpUpgrades(data.TileDef.Stage); if (PageModel.SaveInfo.HpUpgradesInv.Contains(hu)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.HpUpgradesInv.Remove(hu); PageModel.SaveInfo.HpUpgrades--; } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.HpUpgradesInv.Add(hu); PageModel.SaveInfo.HpUpgrades++; } break; case BingoTileType.Mp: var mu = (int)SaveHelpers.StageToMpUpgrades(data.TileDef.Stage); if (PageModel.SaveInfo.MpUpgradesInv.Contains(mu)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.MpUpgradesInv.Remove(mu); PageModel.SaveInfo.MpUpgrades--; } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.MpUpgradesInv.Add(mu); PageModel.SaveInfo.MpUpgrades++; } break; case BingoTileType.Clock: var cu = (int)SaveHelpers.StageToClockUpgrades(data.TileDef.Stage); if (PageModel.SaveInfo.ClockUpgradesInv.Contains(cu)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.ClockUpgradesInv.Remove(cu); PageModel.SaveInfo.ClockUpgrades--; } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.ClockUpgradesInv.Add(cu); PageModel.SaveInfo.ClockUpgrades++; } break; case BingoTileType.Knife: var ku = (int)SaveHelpers.StageToKnifeUpgrades(data.TileDef.Stage); if (PageModel.SaveInfo.KnifeUpgradesInv.Contains(ku)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.KnifeUpgradesInv.Remove(ku); PageModel.SaveInfo.KnifeUpgrades--; } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.KnifeUpgradesInv.Add(ku); PageModel.SaveInfo.KnifeUpgrades++; } break; case BingoTileType.Trash: var t = data.TileDef.Data; if (PageModel.SaveInfo.TrashCans.Contains(t)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.TrashCans.Remove(t); } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.TrashCans.Add(t); } break; case BingoTileType.Statue: var s = data.TileDef.Data; if (PageModel.SaveInfo.Statues.Contains(s)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.Statues.Remove(s); } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.Statues.Add(s); } break; case BingoTileType.Key: var k = data.TileDef.Data; if (PageModel.SaveInfo.Keys.Contains(k)) { data.ImgVisible = Visibility.Hidden; PageModel.SaveInfo.Keys.Remove(k); } else { data.ImgVisible = Visibility.Visible; PageModel.SaveInfo.Keys.Add(k); } break; case BingoTileType.Upgrade: { HandleUpgradeToggle(data); break; } } Task.Run(() => SyncViewModelToSave(false)); }
private Visibility IsBingoTileVisible(BingoTileData data) { if (data.TileDef == null) { return(Visibility.Hidden); } try { switch (data.TileDef.Type) { case BingoTileType.Hp: if (PageModel.SaveInfo.HpUpgradesInv.Contains((int)SaveHelpers.StageToHpUpgrades(data.TileDef.Stage))) { return(Visibility.Visible); } break; case BingoTileType.Mp: if (PageModel.SaveInfo.MpUpgradesInv.Contains((int)SaveHelpers.StageToMpUpgrades(data.TileDef.Stage))) { return(Visibility.Visible); } break; case BingoTileType.Clock: if (PageModel.SaveInfo.ClockUpgradesInv.Contains((int)SaveHelpers.StageToClockUpgrades(data.TileDef.Stage))) { return(Visibility.Visible); } break; case BingoTileType.Knife: if (PageModel.SaveInfo.KnifeUpgradesInv.Contains((int)SaveHelpers.StageToKnifeUpgrades(data.TileDef.Stage))) { return(Visibility.Visible); } break; case BingoTileType.Trash: if (PageModel.SaveInfo.TrashCans.Contains(data.TileDef.Data)) { return(Visibility.Visible); } break; case BingoTileType.Statue: if (PageModel.SaveInfo.Statues.Contains(data.TileDef.Data)) { return(Visibility.Visible); } break; case BingoTileType.Skill: break; case BingoTileType.Key: if (PageModel.SaveInfo.Keys.Contains(data.TileDef.Data)) { return(Visibility.Visible); } break; case BingoTileType.Upgrade: if (PageModel.SaveInfo.Upgrades.Contains(data.TileDef.Data)) { return(Visibility.Visible); } break; } } catch (Exception ex) { ErrorTracker.CurrentError = ex.Message; } return(Visibility.Hidden); }