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(); }
//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; } }