Exemplo n.º 1
0
        public void Initialize(CardSerializable cardSerializable)
        {
            base.Initialize(cardSerializable);
            cardData        = cardSerializable;
            _thickness      = cardData.Thickness;
            textureImporter = GameWorld.FindMeepleObjectByGuid(cardSerializable.CardImporterGuid) as TextureImporter;
            if (textureImporter is null)
            {
                throw new Exception("cardImporter is not set properly");
            }

            StartSetMaterials();
        }
Exemplo n.º 2
0
    //TODO: Think about saving in JSON. Rewrite? DO we need to save them in files?
    public void SaveCardsAndEffects(byte[] data)
    {
        ByteBuffer buffer = new ByteBuffer();

        buffer.WriteBytes(data);
        int packageID = buffer.ReadInteger();

        //On First Iteration Read Attack Cards
        int numberOfCards = buffer.ReadInteger(); //Read number of Attack Cards

        for (int i = 0; i < numberOfCards; i++)
        {
            var card = new CardSerializable();

            //Genereal Info
            card.id    = buffer.ReadInteger();
            card.type  = buffer.ReadString();
            card.name  = buffer.ReadString();
            card.image = buffer.ReadString();

            //Attack Card Info
            card.damage   = buffer.ReadInteger();
            card.bullets  = buffer.ReadInteger();
            card.accuracy = buffer.ReadInteger();

            //Initiative Effect
            card.initiativeEffect   = buffer.ReadInteger();
            card.initiativeValue    = buffer.ReadInteger();
            card.initiativeDuration = buffer.ReadInteger();


            //Add to all cards dictionary
            allCardsInfo.Add(card.id, card);

            //Add all sprites according to ID
            Sprite im = Resources.Load <Sprite>(@"Cards\" + card.image);
            allCardsSprites.Add(card.id, im);



            ///////////////////////////// TO DO : CHECK DO I NEED IT \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
            ////Saving to JSON. DO we need it?
            //string json = JsonUtility.ToJson(card);

            //string path = Application.dataPath + @"\Resources\Cards";

            //if (!System.IO.Directory.Exists(path))
            //{
            //    System.IO.Directory.CreateDirectory(path);
            //}
            //System.IO.File.WriteAllText(path + @"\Card" + card.id, json);
            ///////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        }

        //Second Heal Cards
        numberOfCards = buffer.ReadInteger(); //Read number of Heal Cards
        for (int i = 0; i < numberOfCards; i++)
        {
            var card = new CardSerializable();

            //Genereal Info
            card.id    = buffer.ReadInteger();
            card.type  = buffer.ReadString();
            card.name  = buffer.ReadString();
            card.image = buffer.ReadString();

            //Heal Card Info
            card.heal = buffer.ReadInteger();

            //Initiative Effect
            card.initiativeEffect   = buffer.ReadInteger();
            card.initiativeValue    = buffer.ReadInteger();
            card.initiativeDuration = buffer.ReadInteger();



            //Add to all cards dictionary
            allCardsInfo.Add(card.id, card);

            //Add all sprites according to ID
            Sprite im = Resources.Load <Sprite>(@"Cards\" + card.image);
            allCardsSprites.Add(card.id, im);



            ///////////////////////////// TO DO : CHECK DO I NEED IT \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
            ////Saving to JSON. DO we need it?
            //string json = JsonUtility.ToJson(card);

            //string path = Application.dataPath + @"\Resources\Cards";

            //if (!System.IO.Directory.Exists(path))
            //{
            //    System.IO.Directory.CreateDirectory(path);
            //}
            //System.IO.File.WriteAllText(path + @"\Card" + card.id, json);
            ///////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        }

        //Item Cards
        numberOfCards = buffer.ReadInteger(); //Read number of Item Cards
        for (int i = 0; i < numberOfCards; i++)
        {
            var card = new CardSerializable();

            //Genereal Info
            card.id    = buffer.ReadInteger();
            card.type  = buffer.ReadString();
            card.name  = buffer.ReadString();
            card.image = buffer.ReadString();

            //Item Card Info
            card.itemDuration    = buffer.ReadInteger();
            card.itemEffectLabel = buffer.ReadString();
            card.itemEffectImage = buffer.ReadString();

            //Initiative Effect
            card.initiativeEffect   = buffer.ReadInteger();
            card.initiativeValue    = buffer.ReadInteger();
            card.initiativeDuration = buffer.ReadInteger();



            //Add to all cards dictionary
            allCardsInfo.Add(card.id, card);

            //Add all sprites according to ID
            Sprite im = Resources.Load <Sprite>(@"Cards\" + card.image);
            allCardsSprites.Add(card.id, im);



            ///////////////////////////// TO DO : CHECK DO I NEED IT \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
            ////Saving to JSON. DO we need it?
            //string json = JsonUtility.ToJson(card);

            //string path = Application.dataPath + @"\Resources\Cards";

            //if (!System.IO.Directory.Exists(path))
            //{
            //    System.IO.Directory.CreateDirectory(path);
            //}
            //System.IO.File.WriteAllText(path + @"\Card" + card.id, json);
            ///////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        }


        //Now Save Effects
        int numberOfEffects = buffer.ReadInteger();

        for (int i = 0; i < numberOfEffects; i++)
        {
            var effect = new EffectSerializable();
            effect.ID    = buffer.ReadInteger();
            effect.name  = buffer.ReadString();
            effect.image = buffer.ReadString();
            allEffectsInfo[effect.ID] = effect;
            allEffectsSprites.Add(effect.ID, Resources.Load <Sprite>(@"Effects\" + effect.image));
        }
    }
    public void ShowCards(int[] cardIDs)
    {
        CardSerializable card = ClientManager.allCardsInfo[cardIDs[0]];
        Sprite           im   = ClientManager.allCardsSprites[cardIDs[0]];
        Sprite           initiative_eff_im = ClientManager.allEffectsSprites[card.initiativeEffect];
        Sprite           item_eff_im       = ClientManager.allEffectsSprites[card.initiativeEffect]; //TODO: REPLACE?

        //Hide Cover Image
        foreach (var cup in cardCup)
        {
            cup.SetActive(false);
        }


        //Player:
        {
            //Attack Card:
            cardUIManagers[0].cardID                 = card.id;
            cardUIManagers[0].cardImage.sprite       = im;
            cardUIManagers[0].initiativeImage.sprite = initiative_eff_im;

            if (card.initiativeValue != 0)
            {
                cardUIManagers[0].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[0].initiativeLabel.text = "";
            }

            cardUIManagers[0].bulletsLabel.text = card.bullets.ToString();
            cardUIManagers[0].damageLabel.text  = (card.damage * card.bullets).ToString();

            //Heal Card:
            card = ClientManager.allCardsInfo[cardIDs[1]];
            im   = ClientManager.allCardsSprites[cardIDs[1]];
            initiative_eff_im = ClientManager.allEffectsSprites[card.initiativeEffect];

            cardUIManagers[1].cardID                 = card.id;
            cardUIManagers[1].cardImage.sprite       = im;
            cardUIManagers[1].initiativeImage.sprite = initiative_eff_im;

            if (card.initiativeValue != 0)
            {
                cardUIManagers[1].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[1].initiativeLabel.text = "";
            }

            cardUIManagers[1].healLabel.text = card.heal.ToString();

            //Item Card:
            card = ClientManager.allCardsInfo[cardIDs[2]];
            im   = ClientManager.allCardsSprites[cardIDs[2]];
            initiative_eff_im = ClientManager.allEffectsSprites[card.initiativeEffect];

            cardUIManagers[2].cardID                 = card.id;
            cardUIManagers[2].cardImage.sprite       = im;
            cardUIManagers[2].initiativeImage.sprite = initiative_eff_im;

            if (card.initiativeValue != 0)
            {
                cardUIManagers[2].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[2].initiativeLabel.text = "";
            }

            cardUIManagers[2].itemDurationLabel.text = card.itemDuration.ToString();
            cardUIManagers[2].itemEffectImage.sprite = initiative_eff_im;
            cardUIManagers[2].itemEffectLabel.text   = card.itemEffectLabel;
        }

        //Enemy:
        {
            //Attack Card:
            card = ClientManager.allCardsInfo[cardIDs[0]];
            im   = ClientManager.allCardsSprites[cardIDs[0]];
            initiative_eff_im                        = ClientManager.allEffectsSprites[card.initiativeEffect];
            cardUIManagers[3].cardID                 = card.id;
            cardUIManagers[3].cardImage.sprite       = im;
            cardUIManagers[3].initiativeImage.sprite = initiative_eff_im;

            if (card.initiativeValue != 0)
            {
                cardUIManagers[3].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[3].initiativeLabel.text = "";
            }

            cardUIManagers[3].bulletsLabel.text = card.bullets.ToString();
            cardUIManagers[3].damageLabel.text  = card.damage.ToString();

            //Heal Card:
            card = ClientManager.allCardsInfo[cardIDs[1]];
            im   = ClientManager.allCardsSprites[cardIDs[1]];
            initiative_eff_im = ClientManager.allEffectsSprites[card.initiativeEffect];

            cardUIManagers[4].cardID                 = card.id;
            cardUIManagers[4].cardImage.sprite       = im;
            cardUIManagers[4].initiativeImage.sprite = initiative_eff_im;

            if (card.initiativeValue != 0)
            {
                cardUIManagers[4].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[4].initiativeLabel.text = "";
            }

            cardUIManagers[4].healLabel.text = card.heal.ToString();


            //Item Card:
            card = ClientManager.allCardsInfo[cardIDs[2]];
            im   = ClientManager.allCardsSprites[cardIDs[2]];
            initiative_eff_im = ClientManager.allEffectsSprites[card.initiativeEffect];


            cardUIManagers[5].cardID                 = card.id;
            cardUIManagers[5].cardImage.sprite       = im;
            cardUIManagers[5].initiativeImage.sprite = initiative_eff_im;


            if (card.initiativeValue != 0)
            {
                cardUIManagers[5].initiativeLabel.text = card.initiativeValue.ToString();
            }
            else
            {
                cardUIManagers[5].initiativeLabel.text = "";
            }

            cardUIManagers[5].itemDurationLabel.text = card.itemDuration.ToString();
            cardUIManagers[5].itemEffectImage.sprite = initiative_eff_im;
            cardUIManagers[5].itemEffectLabel.text   = card.itemEffectLabel;
        }
    }