Beispiel #1
0
 public void Init(BuildingConfig b)
 {
     transform.localScale = new Vector3(transform.localScale.x, b.height, transform.localScale.z);
     transform.position   = new Vector3(transform.position.x, b.height / 2f, transform.position.z);
     startingScale        = transform.localScale;
     startingValue        = b.value;
 }
Beispiel #2
0
 public void Init(BuildingConfig config, float cellSize)
 {
     _config = config;
     _meshTransform.localPosition = Vector3.up * config.Height / 2;
     _meshTransform.localScale    = new Vector3(cellSize * config.Width, config.Height, cellSize * config.Length);
     _materialPropertyBlock       = new MaterialPropertyBlock();
 }
Beispiel #3
0
 static BuildingConfigs()
 {
     configs[0] = new BuildingConfig(2, 100000);
     configs[1] = new BuildingConfig(2.5f, 150000);
     configs[2] = new BuildingConfig(3, 300000);
     configs[3] = new BuildingConfig(3.5f, 1000000);
 }
    /// <summary>
    /// 读完所有表后处理
    /// </summary>
    public static void afterReadConfigAll()
    {
        LongObjectMap <BuildingLevelConfig> fDic;

        if (!(fDic = _dic).isEmpty())
        {
            BuildingConfig config;

            BuildingLevelConfig[] values;
            BuildingLevelConfig   v;

            for (int i = (values = fDic.getValues()).Length - 1; i >= 0; --i)
            {
                if ((v = values[i]) != null)
                {
                    config = BuildingConfig.get(v.id);

                    if (config.levelMax < v.level)
                    {
                        config.levelMax = v.level;
                    }
                }
            }
        }
    }
Beispiel #5
0
 public bool BuildBuilding(BuildingConfig config)
 {
     if (!IsBuilding() && localSystem.GetEmpire().UseGold(config.GetCost()))
     {
         buildingUnderConstruction = config;
         daysLeftOnBuild           = config.GetBuildTime();
         isBuilding = true;
         return(true);
     }
     return(false);
 }
Beispiel #6
0
    public virtual void OnCreate(int config)
    {
        info = BuildingConfig.GetBuildingInfo(config);
        if (info == null)
        {
            Logger.LogError("Create Building Failed! Config : " + config);
            return;
        }

        Config            = info.Config;
        Name              = info.Name;
        GenerateBaseMoney = info.GenerateBaseMoney;
    }
Beispiel #7
0
    void UpdateShop()
    {
        UserData userData = CookieGameManager.Instance.UserData;

        for (int i = 0; i < (int)ProcessType.COUNT; ++i)
        {
            if (shopButtons[i] != null)
            {
                BuildingConfig config      = CookieGameManager.Instance.ConfigData.configData[i];
                ProcessType    processType = (ProcessType)i;
                if (userData.processData[i].count > 0 || userData.cookieCount > config.GetBuildCost(userData.processData[i].count))
                {
                    shopButtons[i].Init(config, userData.processData[i].count);
                }
            }
        }
    }
Beispiel #8
0
    void UpdateUpgrades()
    {
        while (UpgradeRoot.childCount > 0)
        {
            GameObject child = UpgradeRoot.GetChild(0).gameObject;
            child.transform.SetParent(null);
            GameObject.Destroy(child);
        }
        UserData userData = CookieGameManager.Instance.UserData;

        for (int i = 0; i < (int)ProcessType.COUNT; ++i)
        {
            ProcessType    processType = (ProcessType)i;
            BuildingConfig config      = CookieGameManager.Instance.ConfigData.configData[i];
            if (config)
            {
                int currentLevel = userData.processData[i].level;
                if (currentLevel < config.levels.Length - 1)
                {
                    if (userData.processData[i].count >= config.levels[currentLevel + 1].minCount)
                    {
                        GameObject upgradeObj = GameObject.Instantiate(UpgradePrefab);
                        upgradeObj.transform.SetParent(UpgradeRoot);
                        upgradeObj.SetActive(true);
                        Button button = upgradeObj.GetComponent <Button>();
                        if (button)
                        {
                            button.onClick.AddListener(() =>
                            {
                                if (userData.cookieCount > config.levels[currentLevel + 1].cost && purchaseTask == null)
                                {
                                    purchaseTask = CookieServer.Instance.PurchaseUpgrade(CookieGameManager.Instance.UserId, processType);
                                }
                            });
                        }
                        UpgradeButton upgradeButton = upgradeObj.GetComponent <UpgradeButton>();
                        if (upgradeButton)
                        {
                            upgradeButton.Init(config.levels[currentLevel + 1].displayName, config.levels[currentLevel + 1].cost);
                        }
                    }
                }
            }
        }
    }
Beispiel #9
0
        public void Build(BuildingConfig buildingConfig, int x, int y)
        {
            var building = new Building(buildingConfig);
            var maxX     = x + buildingConfig.Width;
            var maxY     = y + buildingConfig.Length;

            for (int i = x; i < maxX; i++)
            {
                for (int j = y; j < maxY; j++)
                {
                    Cells[i, j].Build(building);
                }
            }

            _buildings.Add(building);

            TotalPower += building.Power;

            Built?.Invoke(building);
        }
Beispiel #10
0
    public void InitShop()
    {
        UserData userData = CookieGameManager.Instance.UserData;

        while (ShopRoot.childCount > 0)
        {
            GameObject child = ShopRoot.GetChild(0).gameObject;
            child.transform.SetParent(null);
            GameObject.Destroy(child);
        }
        for (int i = 0; i < (int)ProcessType.COUNT; ++i)
        {
            BuildingConfig config      = CookieGameManager.Instance.ConfigData.configData[i];
            ProcessType    processType = (ProcessType)i;
            if (config)
            {
                GameObject buttonObj = GameObject.Instantiate(ShopPrefab);
                buttonObj.transform.SetParent(ShopRoot);
                buttonObj.SetActive(true);
                ShopButton shopButton = buttonObj.GetComponent <ShopButton>();
                if (shopButton)
                {
                    shopButtons[i] = shopButton;
                }
                Button button = buttonObj.GetComponent <Button>();
                if (button)
                {
                    button.onClick.AddListener(() =>
                    {
                        if (userData.cookieCount > config.GetBuildCost(userData.processData[(int)processType].count) && purchaseTask == null)
                        {
                            purchaseTask = CookieServer.Instance.MakePurchase(CookieGameManager.Instance.UserId, processType, 1);
                        }
                    });
                }
            }
        }
        UpdateShop();
        UpdateUpgrades();
    }
Beispiel #11
0
 public void Init(BuildingConfig config, long count)
 {
     nameText.text  = config.displayName;
     costText.text  = config.GetBuildCost(count).ToString();
     countText.text = count.ToString();
 }
Beispiel #12
0
 public void AddToProductionQueue(BuildingConfig building)
 {
     _currentlyBuilding = new CurrentlyBuilding(building.Id, -1, -1, _currentlyBuilding.ProductionAccrued);
 }
Beispiel #13
0
 public abstract void Init(ProcessData data, BuildingConfig config);
Beispiel #14
0
 public override void Init(ProcessData data, BuildingConfig config)
 {
     processData = data;
     configData  = config;
 }
Beispiel #15
0
 protected abstract void LoadConfig(BuildingConfig config);
Beispiel #16
0
 protected override void LoadConfig(BuildingConfig config)
 {
     price = BigInteger.Parse(config.price);
 }
Beispiel #17
0
 protected override void LoadConfig(BuildingConfig config)
 {
 }
Beispiel #18
0
 protected override void LoadConfig(BuildingConfig config)
 {
     neededWorkersAmount = BigInteger.Parse(config.needWorkers);
 }
Beispiel #19
0
 public Building(BuildingConfig config)
 {
     Power = config.Power;
 }
Beispiel #20
0
        public void CheckCycle()
        {
            var buildingConfig = new BuildingConfig()
            {
                Type             = BuildingType.Smeltery,
                ModulesLimit     = 1,
                AvailableModules = new[] { ModuleType.Furnace }
            };

            var moduleConfig = new ModuleConfig()
            {
                Type = ModuleType.Furnace,

                ConstructionTime = 2,
                ConstructionCost = new Dictionary <ResourceType, int>()
                {
                    { ResourceType.Metal, 10 }
                },

                CycleTime  = 4,
                CycleInput = new Dictionary <ResourceType, int>()
                {
                    { ResourceType.Ore, 10 },
                    { ResourceType.Energy, 5 }
                },
                CycleOutput = new Dictionary <ResourceType, int>()
                {
                    { ResourceType.Metal, 1 }
                }
            };

            var core = new Core();

            core.Bank.Change(ResourceType.Metal, 10);
            core.Bank.Change(ResourceType.Ore, 80);
            core.Bank.Change(ResourceType.Energy, 10);

            var building = new Building(buildingConfig);

            core.Ship.GetRoom(0).Building = building;

            var module = new Module(moduleConfig);

            Assert.IsTrue(
                new ModuleConstruct(building, module, 0)
                .Execute(core)
                .IsValid
                );

            new NextTurn().Execute(core);

            Assert.IsFalse(module.Cycle.IsRunning);

            new NextTurn().Execute(core);

            Assert.IsTrue(module.Constructible.IsReady);
            Assert.IsFalse(module.Cycle.IsRunning);

            new NextTurn().Execute(core);
            Assert.IsTrue(module.Cycle.IsRunning);
            Assert.AreEqual(1, module.Cycle.Progress);

            Assert.AreEqual(70, core.Bank.Get(ResourceType.Ore));
            Assert.AreEqual(5, core.Bank.Get(ResourceType.Energy));
            Assert.AreEqual(0, core.Bank.Get(ResourceType.Metal));

            new NextTurnCount(3).Execute(core);
            Assert.IsFalse(module.Cycle.IsRunning);

            Assert.AreEqual(70, core.Bank.Get(ResourceType.Ore));
            Assert.AreEqual(5, core.Bank.Get(ResourceType.Energy));
            Assert.AreEqual(1, core.Bank.Get(ResourceType.Metal));

            new NextTurn().Execute(core);
            Assert.IsTrue(module.Cycle.IsRunning);

            Assert.AreEqual(60, core.Bank.Get(ResourceType.Ore));
            Assert.AreEqual(0, core.Bank.Get(ResourceType.Energy));
            Assert.AreEqual(1, core.Bank.Get(ResourceType.Metal));

            new NextTurnCount(3).Execute(core);
            Assert.IsFalse(module.Cycle.IsRunning);

            Assert.AreEqual(2, core.Bank.Get(ResourceType.Metal));

            new NextTurn().Execute(core);             // Cant launch because of Energy leak
            Assert.IsFalse(module.Cycle.IsRunning);
            Assert.AreEqual(60, core.Bank.Get(ResourceType.Ore));
            Assert.AreEqual(0, core.Bank.Get(ResourceType.Energy));
        }
Beispiel #21
0
 /// <summary>
 /// 获取战斗单位ID
 /// </summary>
 public override int getFightUnitID()
 {
     return(BuildingConfig.get(id).fightUnitID);
 }
Beispiel #22
0
        public GameConfigCache()
        {
            var gameConfigRepository = CallContext <GameConfigRepository> .GetData("GameConfigRepository");

            var actions = gameConfigRepository.GetEntities("Action");

            foreach (var action in actions)
            {
                var id     = (int)action.Id;
                var config = new ActionConfig(id);
                _actionConfigsById.Add(id, config);
                _actionConfigIds.Add(id);
                _actionConfigsByName.Add(config.Name, id);
            }

            var buildings = gameConfigRepository.GetEntities("Building");

            foreach (var building in buildings)
            {
                var id     = (int)building.Id;
                var config = new BuildingConfig(id);
                _buildingConfigsById.Add(id, config);
                _buildingConfigIds.Add(id);
                _buildingConfigsByName.Add(config.Name, id);
            }

            var movements = gameConfigRepository.GetEntities("Movement");

            foreach (var movement in movements)
            {
                var id     = (int)movement.Id;
                var config = new MovementConfig(id);
                _movementConfigsById.Add(id, config);
                _movementConfigIds.Add(id);
                _movementConfigsByName.Add(config.Name, id);
            }

            var races = gameConfigRepository.GetEntities("Race");

            foreach (var race in races)
            {
                var id     = (int)race.Id;
                var config = new RaceConfig(id);
                _raceConfigsById.Add(id, config);
                _raceConfigIds.Add(id);
                _raceConfigsByName.Add(config.Name, id);
            }

            var terrains = gameConfigRepository.GetEntities("Terrain");

            foreach (var terrain in terrains)
            {
                var id     = (int)terrain.Id;
                var config = new TerrainConfig(id);
                _terrainConfigsById.Add(id, config);
                _terrainConfigIds.Add(id);
                _terrainConfigsByName.Add(config.Name, id);
            }

            var units = gameConfigRepository.GetEntities("Unit");

            foreach (var unit in units)
            {
                var id     = (int)unit.Id;
                var config = new UnitConfig(id);
                _unitConfigsById.Add(id, config);
                _unitConfigIds.Add(id);
                _unitConfigsByName.Add(config.Name, id);
            }
        }