private void ShowPrize(LootboxEntity currentPrize) { ShowPrizeComponent prize = currentPrize.showPrize; Transform parent = uiStorage.resourcesRoot.transform; switch (prize.resourceModel.ResourceTypeEnum) { case ResourceTypeEnum.SoftCurrency: { var go = UnityEngine.Object.Instantiate(uiStorage.softCurrencyPrefab, parent); var script = go.GetComponent <SoftCurrencyAccrual>(); SoftCurrencyResourceModel softCurrencyResourceModel = ZeroFormatterSerializer.Deserialize <SoftCurrencyResourceModel>(prize.resourceModel .SerializedModel); script.StartAnimation(softCurrencyResourceModel.Amount); particlesColorUpdater.SetStartColor(Color.blue); break; } case ResourceTypeEnum.HardCurrency: { var go = UnityEngine.Object.Instantiate(uiStorage.hardCurrencyPrefab, parent); var script = go.GetComponent <HardCurrencyAccrual>(); HardCurrencyResourceModel hardCurrencyResourceModel = ZeroFormatterSerializer.Deserialize <HardCurrencyResourceModel>(prize.resourceModel .SerializedModel); script.SetData(hardCurrencyResourceModel.Amount); Color purple = new Color(209, 0, 4); particlesColorUpdater.SetStartColor(purple); break; } case ResourceTypeEnum.WarshipPowerPoints: { var go = UnityEngine.Object.Instantiate(uiStorage.warshipPowerPointsPrefab, parent); var script = go.GetComponent <WarshipPowerPointsAccrual>(); var wppModel = ZeroFormatterSerializer.Deserialize <WarshipPowerPointsResourceModel>(prize.resourceModel .SerializedModel); if (wppModel.WarshipTypeEnum == 0) { throw new Exception("Не указан тип корабля"); } script.SetData(wppModel); Color red = new Color(209, 0, 0); particlesColorUpdater.SetStartColor(red); break; } default: throw new ArgumentOutOfRangeException(); } }
public ResourceModel Create(List <WarshipDbDto> warships) { ResourceTypeEnum resourceTypeEnum = lootboxResourceTypeFactory.CreateResourceType(); switch (resourceTypeEnum) { case ResourceTypeEnum.SoftCurrency: { int amount = random.Next(15, 100); var model = new SoftCurrencyResourceModel() { Amount = amount }; return(new ResourceModel { SerializedModel = ZeroFormatterSerializer.Serialize(model), ResourceTypeEnum = ResourceTypeEnum.SoftCurrency }); } case ResourceTypeEnum.WarshipPowerPoints: { int warshipIndex = random.Next(warships.Count); WarshipDbDto warship = warships[warshipIndex]; int amount = random.Next(2, 15); var model = new WarshipPowerPointsResourceModel(); var test = WarshipPowerScale.GetModel(warship.WarshipPowerLevel); if (test == null) { return(null); } model.MaxValueForLevel = test.PowerPointsCost; model.WarshipSkinName = warship.CurrentSkinType.Name; model.FinishValue = warship.WarshipPowerPoints + amount; model.StartValue = warship.WarshipPowerPoints; model.WarshipId = warship.Id; model.WarshipTypeEnum = warship.WarshipTypeId; warship.WarshipPowerPoints += amount; return(new ResourceModel { SerializedModel = ZeroFormatterSerializer.Serialize(model), ResourceTypeEnum = ResourceTypeEnum.WarshipPowerPoints }); } case ResourceTypeEnum.HardCurrency: { var model = new HardCurrencyResourceModel() { Amount = random.Next(2, 15) }; return(new ResourceModel { SerializedModel = ZeroFormatterSerializer.Serialize(model), ResourceTypeEnum = ResourceTypeEnum.HardCurrency }); } default: throw new Exception("Неизвестный тип подарка " + resourceTypeEnum); } }