Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }