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; }
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(); }
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; } } } } }
public bool BuildBuilding(BuildingConfig config) { if (!IsBuilding() && localSystem.GetEmpire().UseGold(config.GetCost())) { buildingUnderConstruction = config; daysLeftOnBuild = config.GetBuildTime(); isBuilding = true; return(true); } return(false); }
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; }
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); } } } }
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); } } } } } }
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); }
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(); }
public void Init(BuildingConfig config, long count) { nameText.text = config.displayName; costText.text = config.GetBuildCost(count).ToString(); countText.text = count.ToString(); }
public void AddToProductionQueue(BuildingConfig building) { _currentlyBuilding = new CurrentlyBuilding(building.Id, -1, -1, _currentlyBuilding.ProductionAccrued); }
public abstract void Init(ProcessData data, BuildingConfig config);
public override void Init(ProcessData data, BuildingConfig config) { processData = data; configData = config; }
protected abstract void LoadConfig(BuildingConfig config);
protected override void LoadConfig(BuildingConfig config) { price = BigInteger.Parse(config.price); }
protected override void LoadConfig(BuildingConfig config) { }
protected override void LoadConfig(BuildingConfig config) { neededWorkersAmount = BigInteger.Parse(config.needWorkers); }
public Building(BuildingConfig config) { Power = config.Power; }
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)); }
/// <summary> /// 获取战斗单位ID /// </summary> public override int getFightUnitID() { return(BuildingConfig.get(id).fightUnitID); }
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); } }