public Chest BuyChest(int instanceId, Chest.ChestType type) { var chests = Csv.Tables.Get(Csv.Files.TreasureChests); var mainchest = chests.GetDataWithInstanceId <TreasureChests>(instanceId); var baseChest = chests.GetData <TreasureChests>(mainchest.BaseChest); var chestArenas = Home.Arena.GetChestArenaNames(); var random = new Random(); var chest = new Chest { ChestId = instanceId, IsDraft = mainchest.DraftChest, Type = type }; // Common { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(2, 5); i++) { if (random.Next(1, 2) == 1) { var card = Cards.RandomByArena(Card.Rarity.Common, chestArenas); if (card == null) { continue; } card.Count = random.Next(40, 80); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { for (var i = 0; i < random.Next(2, 4); i++) { if (random.Next(1, 2) == 1) { var card = Cards.RandomByArena(Card.Rarity.Common, chestArenas); if (card == null) { continue; } card.Count = random.Next(15, 25); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } // Rare { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(1, 4); i++) { if (random.Next(1, 2) == 1) { var card = Cards.RandomByArena(Card.Rarity.Rare, chestArenas); if (card == null) { continue; } card.Count = random.Next(15, 35); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { for (var i = 0; i < random.Next(1, 2); i++) { if (random.Next(1, 4) == 1) { var card = Cards.RandomByArena(Card.Rarity.Rare, chestArenas); if (card == null) { continue; } card.Count = random.Next(8, 18); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } // Epic { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(1, 2); i++) { if (random.Next(1, 3) == 1) { var card = Cards.RandomByArena(Card.Rarity.Epic, chestArenas); if (card == null) { continue; } card.Count = random.Next(2, 10); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { if (random.Next(1, 20) == 1) { var card = Cards.RandomByArena(Card.Rarity.Epic, chestArenas); if (card != null) { card.Count = random.Next(1, 5); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } // Legendary { if (type == Chest.ChestType.Shop) { if (random.Next(1, 8) == 1) { var card = Cards.RandomByArena(Card.Rarity.Legendary, chestArenas); if (card != null) { card.Count = 1; card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { if (random.Next(1, 50) == 1) { var card = Cards.RandomByArena(Card.Rarity.Legendary, chestArenas); if (card != null) { card.Count = 1; card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } if (type == Chest.ChestType.Shop) { // TODO: Cost if (random.Next(1, 5) == 1) { chest.Gems = random.Next(5, 15); } if (random.Next(1, 4) == 1) { chest.Gold = random.Next(100, 250); } } else { if (random.Next(1, 10) == 1) { chest.Gems = random.Next(1, 5); } if (random.Next(1, 8) == 1) { chest.Gold = random.Next(10, 75); } } Home.Gold += chest.Gold; Home.Diamonds += chest.Gems; /*var price = * ((baseChest.ShopPriceWithoutSpeedUp * Home.Arena.GetCurrentArenaData().ChestShopPriceMultiplier) / 100); * * Console.WriteLine(RoundPrice(price));*/ return(chest); }
public Chest BuyChest(int instanceId, Chest.ChestType type) { var chests = Csv.Tables.Get(Csv.Files.TreasureChests); var mainchest = chests.GetDataWithInstanceId <TreasureChests>(instanceId); var baseChest = chests.GetData <TreasureChests>(mainchest.BaseChest); var random = new Random(); var chest = new Chest { ChestId = instanceId, IsDraft = mainchest.DraftChest, Type = type }; // Common { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(2, 5); i++) { if (random.Next(1, 2) == 1) { var card = Cards.Random(Card.Rarity.Common); card.Count = random.Next(40, 60); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { for (var i = 0; i < random.Next(2, 4); i++) { if (random.Next(1, 2) == 1) { var card = Cards.Random(Card.Rarity.Common); card.Count = random.Next(10, 20); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } // Rare { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(1, 4); i++) { if (random.Next(1, 2) == 1) { var card = Cards.Random(Card.Rarity.Rare); card.Count = random.Next(10, 30); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { for (var i = 0; i < random.Next(1, 2); i++) { if (random.Next(1, 4) == 1) { var card = Cards.Random(Card.Rarity.Rare); card.Count = random.Next(5, 15); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } } // Epic { if (type == Chest.ChestType.Shop) { for (var i = 0; i < random.Next(1, 2); i++) { if (random.Next(1, 3) == 1) { var card = Cards.Random(Card.Rarity.Epic); card.Count = random.Next(1, 8); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } else { if (random.Next(1, 20) == 1) { var card = Cards.Random(Card.Rarity.Epic); card.Count = random.Next(1, 5); card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } // Legendary { if (type == Chest.ChestType.Shop) { if (random.Next(1, 10) == 1) { var card = Cards.Random(Card.Rarity.Legendary); card.Count = 1; card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } else { if (random.Next(1, 50) == 1) { var card = Cards.Random(Card.Rarity.Legendary); card.Count = 1; card.IsNew = true; chest.Add(card); Home.Deck.Add(card); } } } if (type == Chest.ChestType.Shop) { // TODO: Cost if (random.Next(1, 5) == 1) { chest.Gems = random.Next(5, 15); } if (random.Next(1, 4) == 1) { chest.Gold = random.Next(100, 250); } } else { if (random.Next(1, 10) == 1) { chest.Gems = random.Next(1, 5); } if (random.Next(1, 8) == 1) { chest.Gold = random.Next(10, 75); } } Home.Gold += chest.Gold; Home.Diamonds += chest.Gems; return(chest); }