예제 #1
0
        public BuildItemUnitView GetMotherViewModel(bool premiumIsActive, StorageResources resources = null)
        {
            //if (resources == null) throw new Exception(Error.UserResourceNotSetInInstance);

            var description = new LangField(Resource.MotherEnergyConverter, Resource.MotherEnergyConverterDescription);

            var images = new SpriteImages().BuildImages(MotherCssNativename);

            var model = new BuildItemUnitView
            {
                TranslateName = description.Name,
                NativeName    = NativeName,
                IconSelf      = images.Icon,
                Info          = new BuildDropItemInfo
                {
                    Description = description.Name,
                    DropImage   = images.Detail
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildEnergyConverterActions.ViewPath,
                    Data     = new BuildEnergyConverterActions
                    {
                        StorageResources = null,
                        ConvertLoses     = GameMathStats.BaseConvertLosses
                    }
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Action.SetButtons();
            return(model);
        }
        public BuildItemUnitView GetViewModel(ItemProgress buildProgress, bool premiumIsActive,
                                              StorageResources resources = null)
        {
            var text = _text;

            var images = _images;
            var level  = buildProgress?.Level ?? 1;

            var model = new BuildItemUnitView
            {
                TranslateName = text.Name,
                NativeName    = NativeName,
                IconSelf      = images.Icon,
                Progress      = buildProgress,
                Info          = new BuildDropItemInfo
                {
                    Description = text.Name,
                    DropImage   = images.Detail
                },
                Update = new BuildDropItemUpdate
                {
                    Price      = CalcPrice(level, premiumIsActive),
                    Properties = PropertyList(level, premiumIsActive)
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Update.SetButtons();
            //model.Action.SetButtons();
            return(model);
        }
예제 #3
0
        public override List <BuildItemUnitView> GetMotherBuildList(UserMothershipDataModel mother,
                                                                    UserPremiumWorkModel userPremium)
        {
            var teches    = new BattleTeches(mother.TechProgress);
            var techesOut = teches.ConvertToTechesOut(false);


            var propertiesView = teches.CreateBuildItemTechData(false);
            var result         = new List <BuildItemUnitView>();

            techesOut.ForEach(i =>
            {
                var techOut = techesOut[i.Value.TechType];
                techOut.CalcResultPrice(userPremium.IsActive);
                var model = new BuildItemUnitView
                {
                    Progress      = i.Value.Progress,
                    TranslateName = i.Value.Text.Name,
                    NativeName    = i.Value.TechType.ToString(),
                    IconSelf      = i.Value.SpriteImages.Icon,
                    Info          = new BuildDropItemInfo
                    {
                        Description = i.Value.Text.Description,
                        DropImage   = i.Value.SpriteImages.Detail,
                        Data        = propertiesView[i.Value.TechType]
                    },
                    Update = new BuildDropItemUpdate
                    {
                        Properties    = propertiesView[i.Value.TechType].Properties.Select(p => p.Value).ToList(),
                        Price         = i.Value.BasePrice,
                        IsUnitUpgrade = false
                    },
                    IsBuildItem  = false,
                    AdvancedData = new Dictionary <string, object>
                    {
                        { "TechOut", techOut }
                    }
                };
                model.SetComplexButtonView();
                if (!techOut.Disabled)
                {
                    model.Update.SetButtons(true);
                }


                result.Add(model);
            });
            return(result);
        }
예제 #4
0
        public BuildItemUnitView GetMotherViewModel(bool premiumIsActive, StorageResources resources = null)
        {
            if (resources?.Current == null)
            {
                throw new Exception(Error.ProportionNotSetInModel);
            }


            var description = new LangField(Resource.MotherExtractionModule, Resource.MotherStorageDescription);

            var images = new SpriteImages().BuildImages(MotherCssNativename);

            //todo  временно
            // var power = GetPower(1, premiumIsActive);
            var power      = GetPower(22, premiumIsActive);
            var extraction = new ExtractionResource();

            extraction.SetAndCalcEmpFromProportion(resources.Current, power, BaseProportion.Ir, BaseProportion.Dm);


            var model = new BuildItemUnitView
            {
                TranslateName = description.Name,
                NativeName    = NativeName,
                IconSelf      = images.Icon,
                Info          = new BuildDropItemInfo
                {
                    Description = description.Name,
                    DropImage   = images.Detail
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildExtractionModuleActions.ViewPath,
                    Data     = new BuildExtractionModuleActions
                    {
                        //todo  реализовать
                        Power             = power,
                        Percent           = extraction.ExtractionProportin,
                        ExtractionPerHour = extraction.ExtractionPerHour
                    }
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Action.SetButtons();

            return(model);
        }
예제 #5
0
        public BuildItemUnitView GetViewModel(ItemProgress buildProgress, bool premiumIsActive,
                                              StorageResources resources = null)
        {
            //todo  Временный костыль из за не состыковки типов
            if (resources?.Current == null)
            {
                throw new Exception(Error.ProportionNotSetInModel);
            }

            var em = Init(buildProgress, premiumIsActive, resources.Current);


            var model = new BuildItemUnitView
            {
                Progress      = em.ItemProgress,
                TranslateName = em.Text.Name,
                NativeName    = NativeName,
                IconSelf      = em.Images.Icon,
                Info          = new BuildDropItemInfo
                {
                    DropImage   = em.Images.Detail,
                    Description = em.Text.Description
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildExtractionModuleActions.ViewPath,
                    Data     = new BuildExtractionModuleActions
                    {
                        Power             = em.Power,
                        Percent           = em.ExtractionProportin,
                        ExtractionPerHour = em.ExtractionPerHour
                    }
                },
                Update = new BuildDropItemUpdate
                {
                    Price      = em.Cost,
                    Properties = em.Properties
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Update.SetButtons(true);
            model.Action.SetButtons(true);
            return(model);
        }
예제 #6
0
        public BuildItemUnitView GetViewModel(ItemProgress buildProgress, bool premiumIsActive,
                                              StorageResources resources = null)
        {
            var model = new BuildItemUnitView
            {
                Progress      = buildProgress,
                TranslateName = _text.Name,
                NativeName    = NativeName,
                IconSelf      = _images.Icon,
                Info          = GetInfo(),
                Update        = new BuildDropItemUpdate
                {
                    Price = CalcPrice(premiumIsActive)
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Update.SetButtons();
            return(model);
        }
예제 #7
0
        public BuildItemUnitView GetViewModel(ItemProgress buildProgress, bool premiumIsActive,
                                              StorageResources resources = null)
        {
            var ec = Init(premiumIsActive, buildProgress);

            var model = new BuildItemUnitView
            {
                Progress      = ec.ItemProgress,
                TranslateName = ec.Text.Name,
                NativeName    = NativeName,
                IconSelf      = ec.Images.Icon,
                Info          = new BuildDropItemInfo
                {
                    Description = ec.Text.Description,
                    DropImage   = ec.Images.Detail
                },
                Update = new BuildDropItemUpdate
                {
                    Properties = ec.Properties,
                    Price      = ec.Cost
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildEnergyConverterActions.ViewPath,
                    Data     = new BuildEnergyConverterActions
                    {
                        StorageResources = null,
                        ConvertLoses     = ec.Properties[0].CurrentValue
                    }
                },
                IsBuildItem = true
            };

            model.SetComplexButtonView();
            model.Update.SetButtons(true);
            model.Action.SetButtons(true);
            return(model);
        }
예제 #8
0
        public BuildItemUnitView GetViewModel(ItemProgress buildProgress, bool premiumIsActive,
                                              StorageResources resources = null)
        {
            //var res = ToModel<StorageResources>(planet.resources);
            var storage = Init(resources, buildProgress, premiumIsActive);

            var model = new BuildItemUnitView
            {
                Progress      = storage.ItemProgress,
                TranslateName = storage.Text.Name,
                NativeName    = NativeName,
                IconSelf      = storage.Images.Icon,
                Info          = new BuildDropItemInfo
                {
                    DropImage   = storage.Images.Detail,
                    Description = storage.Text.Description
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildStorageActions.ViewPath,
                    Data     = new BuildStorageActions
                    {
                        StorageResources = storage.StorageResources,
                        Losses           = storage.Properties[3].CurrentValue + 1
                    }
                },
                Update = new BuildDropItemUpdate
                {
                    Price      = storage.Cost,
                    Properties = storage.Properties
                },
                IsBuildItem = true
            };

            SetRequiredButtons(model);
            model.Update.SetButtons();
            return(model);
        }
예제 #9
0
        public BuildItemUnitView GetMotherViewModel(bool premiumIsActive, StorageResources resources = null)
        {
            if (resources == null)
            {
                resources = new StorageResources();
                resources.InitializeField();
            }
            var description = new LangField(Resource.MotherStorage, Resource.MotherStorageDescription);
            var images      = new SpriteImages().BuildImages(MotherCssNativename);

            var model = new BuildItemUnitView
            {
                TranslateName = description.Name,
                NativeName    = NativeName,
                IconSelf      = images.Icon,
                Info          = new BuildDropItemInfo
                {
                    Description = description.Name,
                    DropImage   = images.Detail
                },
                Action = new BuildDropItemAction
                {
                    ViewPath = BuildStorageActions.ViewPath,
                    Data     = new BuildStorageActions
                    {
                        StorageResources = resources,
                        Losses           = GetTransferLossesMod(1, premiumIsActive)
                    }
                },
                IsBuildItem = true
            };


            SetRequiredButtons(model);

            return(model);
        }
예제 #10
0
 private void SetRequiredButtons(BuildItemUnitView model)
 {
     model.SetComplexButtonView();
     model.Action.SetButtons();
     model.Action.Buttons.Add(SendAllBtnKey, ButtonsView.StorageActionSendAll());
 }
        private static BuildItemUnitView GetUnitViewInSpaceShipyard(UnitType unitType, int hangarCount,
                                                                    TurnedUnit upgrade, ItemProgress spaceShipyard, UserPremiumWorkModel userPremium)
        {
            var unit = UnitHelper.GetBaseUnit(unitType);

            var baseTime = unit.BasePrice.TimeProduction;

            var buildLevel = 1;

            if (spaceShipyard?.Level != null)
            {
                buildLevel = (int)spaceShipyard.Level;
            }
            var price = unit.BasePrice.CreateNewFromThis();

            //=================

            price.TimeProduction =
                (int)Math.Ceiling(CalculateTimeProduction(baseTime, userPremium.IsActive, buildLevel));


            var progress = ((upgrade != null)
                ? CalculateUnitProgress(upgrade, baseTime, buildLevel, userPremium, hangarCount)
                : new ItemProgress
            {
                Level = hangarCount,
                IsProgress = false
            });


            var unitText = unit.Text;
            var model    = new BuildItemUnitView
            {
                Progress      = progress,
                TranslateName = unitText.Name,
                NativeName    = unit.Key,
                IconSelf      = unit.SpriteImages.Icon,
                Info          = new BuildDropItemInfo
                {
                    Description = unitText.Description,
                    DropImage   = unit.SpriteImages.Detail,
                    Data        = new BuildItemUnitData(true, unit.UnitStats)
                },
                //Action = new BuildDropItemAction
                //{
                //    ViewPath = BuildExtractionModuleActions.ViewPath,
                //    Data = new BuildExtractionModuleActions
                //    {
                //        //todo  реализовать
                //        Power = power,
                //        Percent = new MaterialResource().Init(percentE, percentIr, percentDm),
                //        ExtractionPerHour = new MaterialResource().Init(valE, valIr, valDm),
                //    }
                //},
                Update = new BuildDropItemUpdate
                {
                    Price         = price,
                    IsUnitUpgrade = true
                },
                IsBuildItem = false
            };

            model.SetComplexButtonView();
            model.Update.SetButtons();
            return(model);
        }