Exemple #1
0
        private void SetupData()
        {
            var game = Object.FindObjectOfType <GameManager>();

            config = InspectorUtil.GetPrivateValue <GameConfig, GameManager>("config", game);

            var cells = Object.FindObjectOfType <Cells>();

            var cellTypes = (Cells.CellTypes[])Enum.GetValues(typeof(Cells.CellTypes));

            foreach (var cellType in cellTypes)
            {
                if (cellType == Cells.CellTypes.None)
                {
                    continue;
                }

                var cell = cells.GetPrefab(cellType);
                if (cell != null)
                {
                    data.techTreeData.GetNode(cell);
                }
            }

            foreach (var buildAction in config.techConfig.buildActions)
            {
                data.techTreeData.GetNode(buildAction);
            }

            foreach (var upgradeAction in config.techConfig.upgrades)
            {
                data.techTreeData.GetNode(upgradeAction);
            }
        }
Exemple #2
0
        public TurnCalculator()
        {
            var game = Object.FindObjectOfType <GameManager>();

            config = InspectorUtil.GetPrivateValue <GameConfig, GameManager>("config", game);
            cells  = Object.FindObjectOfType <Cells>();
            config.Init(cells);
        }
Exemple #3
0
        private void UpdateUpgradeBonus(BuildingCell cell, int upgradeIndex, Currency currency)
        {
            var upgradeDetailsField = InspectorUtil.GetPrivateField <BuildingCell>("upgradeDetails");
            var details             = (List <BuildingCell.UpgradeDetail>)upgradeDetailsField.GetValue(cell);
            var detail = details[upgradeIndex];

            Undo.RecordObject(cell, "Update upgrade bonus");
            detail.currencyBonus  = currency;
            details[upgradeIndex] = detail;
            EditorUtility.SetDirty(cell);

            upgradeDetailsField.SetValue(cell, details);
        }
        public ProjectInspector(ProjectInspectionOptions options, NugetSearchService nugetService)
        {
            Options      = options;
            NugetService = nugetService;
            if (Options == null)
            {
                throw new Exception("Must provide a valid options object.");
            }

            if (String.IsNullOrWhiteSpace(Options.ProjectDirectory))
            {
                Options.ProjectDirectory = Directory.GetParent(Options.TargetPath).FullName;
            }

            if (String.IsNullOrWhiteSpace(Options.PackagesConfigPath))
            {
                Options.PackagesConfigPath = CreateProjectPackageConfigPath(Options.ProjectDirectory);
            }

            if (String.IsNullOrWhiteSpace(Options.ProjectJsonPath))
            {
                Options.ProjectJsonPath = CreateProjectJsonPath(Options.ProjectDirectory);
            }

            if (String.IsNullOrWhiteSpace(Options.ProjectJsonLockPath))
            {
                Options.ProjectJsonLockPath = CreateProjectJsonLockPath(Options.ProjectDirectory);
            }

            if (String.IsNullOrWhiteSpace(Options.ProjectAssetsJsonPath))
            {
                Options.ProjectAssetsJsonPath = CreateProjectAssetsJsonPath(Options.ProjectDirectory);
            }

            if (String.IsNullOrWhiteSpace(Options.ProjectName))
            {
                Options.ProjectName = Path.GetFileNameWithoutExtension(Options.TargetPath);
            }

            if (String.IsNullOrWhiteSpace(Options.VersionName))
            {
                Options.VersionName = InspectorUtil.GetProjectAssemblyVersion(Options.ProjectDirectory);
            }
        }
Exemple #5
0
        private VisualElement GetUpgradeDetails(HexCell cell)
        {
            if (!(cell is BuildingCell buildingCell))
            {
                return(null);
            }
            var upgradeDetails = InspectorUtil.GetPrivateValue <List <BuildingCell.UpgradeDetail>, BuildingCell>("upgradeDetails", buildingCell);

            var element = new VisualElement();

            for (int i = 0; i < upgradeDetails.Count; i++)
            {
                var index         = i;
                var detail        = upgradeDetails[index];
                var detailElement = new VisualElement();
                var currency      = NodeUtil.CreateCostField(detail.currencyBonus, newCurrency => UpdateUpgradeBonus(buildingCell, index, newCurrency));
                detailElement.Add(new Label(detail.tech.ToString()));
                detailElement.Add(currency);
                element.Add(detailElement);
            }

            return(element);
        }
Exemple #6
0
        private void SetupData()
        {
            var game   = Object.FindObjectOfType <GameManager>();
            var config = InspectorUtil.GetPrivateValue <GameConfig, GameManager>("config", game);
            var cells  = Object.FindObjectOfType <Cells>();

            config.Init(cells);
            playerData = new PlayerData(null);

            playerData.Init(config);

            var homeCell = (BuildingCell)cells.GetPrefab(Cells.CellTypes.Home);

            buildings.Add(homeCell);

            playerData.TurnNumber = 1;
            playerData.TechnologyData.AddTechnology(homeCell.Technology);
            playerData.CurrencyData.Supplies           = config.startingSupply;
            playerData.CurrencyData.Production.maximum = homeCell.GetCurrencyBonus().production;
            playerData.CurrencyData.Population.maximum = homeCell.GetCurrencyBonus().population;

            DisplayCurrency();
            turnLabel.text = $"Turn {playerData.TurnNumber}";
        }