Exemplo n.º 1
0
    /// <summary>
    ///
    /// Create a new player deck
    ///
    /// </summary>
    public DeckData CreatePlayerDeck(DeckData deckTemplate, string deckName, int?campaignId = null)
    {
        //Generate the ID of the deck. Takes the last deck id in the list and adds one to it
        var newId = 0;

        if (PlayerDeckList.Count > 0)
        {
            newId = PlayerDeckList.LastOrDefault().Id.Value + 1;
        }

        //Adds the deck to the list
        var newDeck = new DeckData(deckTemplate)
        {
            Id   = newId,
            Name = deckName,
        };

        PlayerDeckList.Add(newDeck);

        if (campaignId.HasValue)
        {
            newDeck.CampaignTracker = new CampaignProgression(newDeck.Id.Value, campaignId.Value);
        }

        //Save decks to file
        SaveDecks();

        return(newDeck);
    }
Exemplo n.º 2
0
        private void Receiver_OnReceived(string action, string data)
        {
            switch (action)
            {
            case "BattleReady":
                Dispatcher.Invoke(() =>
                {
                    EnemyDeckList.Clear();
                });
                break;

            case "Load":
                Sender.Initialize(int.Parse(data));
                Sender.Send($"Setting:{Settings.ToString()}");
                break;

            case "EnemyPlay":
            case "EnemyAdd":
                Dispatcher.Invoke(() =>
                {
                    EnemyDeckList.Add(CardData.Parse(data, action == "EnemyPlay" ? 1 : -1));
                });
                break;

            case "PlayerDeck":
                var cardList = new List <CardData>();
                var cards    = data.Split('\n');
                foreach (var card in cards)
                {
                    cardList.Add(CardData.Parse(card));
                }

                Dispatcher.Invoke(() =>
                {
                    PlayerDeckList.Clear();
                    PlayerDeckList.Add(cardList);
                });
                break;

            case "PlayerDraw":
                Dispatcher.Invoke(() =>
                {
                    PlayerDeckList.Add(CardData.Parse(data, -1));
                });
                break;

            case "ReplayDetail":
                Dispatcher.Invoke(() =>
                {
                    ReplayGrid.DataContext = ReplayData.Parse(data);
                });
                break;
            }
            Dispatcher.Invoke(() =>
            {
                LogText.Text = $"{action}:{data}\n{LogText.Text}";
            });
        }
Exemplo n.º 3
0
 /// <summary>
 ///
 /// Removes a player deck from the list
 ///
 /// </summary>
 public void DeletePlayerDeck(DeckData deck)
 {
     PlayerDeckList.Remove(deck);
     //Resets the deck indexes for the remaining decks
     for (int deckIndex = 0; deckIndex < PlayerDeckList.Count; deckIndex++)
     {
         PlayerDeckList[deckIndex].Id = deckIndex;
     }
     SaveDecks();
 }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// Gets a list of player decks based on whether it is for a campaign or not
 ///
 /// </summary>
 public List <DeckData> GetPlayerDecks(bool isCampaign = false)
 {
     //Note that if is campaign
     return(PlayerDeckList.Where(x => x.IsCampaign == isCampaign && (!isCampaign || isCampaign && !x.CampaignTracker.CompletedCampaign)).ToList());
 }
Exemplo n.º 5
0
 /// <summary>
 ///
 /// Gets a player deck of a particular ID
 ///
 /// </summary>
 public DeckData GetPlayerDeck(int id)
 {
     return(PlayerDeckList.FirstOrDefault(x => x.Id == id));
 }