private void BuildList() { BuildingJobsList = new List <BuildingJob>(); // Settler var job = new BuildingJob(Resources.Load <Sprite>("Icons/Unit.Warrior"), "Settler", 2, () => // OnCompleteFunc { Unit unit = new Unit("Settler", 100, 0, 2f, Unit.UNITTYPE.Settler) { CanBuildCities = true }; GameObject.Find("GameController").GetComponent <GameController>().SpawnUnitAt(unit, Hex); currentProduction = PRODUCTION.IDLE; BuildingJob = null; }); BuildingJobsList.Add(job); // Warrior job = new BuildingJob(Resources.Load <Sprite>("Icons/Unit.Warrior"), "Warrior", 5, () => // OnCompleteFunc { Unit unit = new Unit("Warrior", 100, 8, 2f, Unit.UNITTYPE.Warrior); GameObject.Find("GameController").GetComponent <GameController>().SpawnUnitAt(unit, Hex); currentProduction = PRODUCTION.IDLE; BuildingJob = null; }); BuildingJobsList.Add(job); }
public void Build(int index) { if (currentProduction != PRODUCTION.BUSY) { BuildingJob = BuildingJobsList[index]; BuildingJob.TotalProductionNeeded -= workLeft; } }
public void DoTurn() { if (buildingJob != null) { float workLeft = buildingJob.DoWork(productionPerTurn); if (workLeft <= 0) { // Job is complete buildingJob = null; // TODO: Save overflow } } }
public void UpdateCurrentProductionText() { BuildingJob buildingJob = currentCity.GetCurrentBuildingJob(); if (buildingJob == null) { currentProductionPanel.GetComponentInChildren <Text>().text = "No Current Project"; } else { currentProductionPanel.GetComponentInChildren <Text>().text = buildingJob.buildingJobName + Environment.NewLine + "(" + (buildingJob.GetWorkLeft() / currentCity.productionPerTurn) + " Turns)" + Environment.NewLine + currentCity.productionPerTurn + " Production / Turn"; } }
public void OnClick() { //todo - get current city production if (thisBuildingJob == null) { BuildingJob buildingJob = null; if (BuildingBlueprint != null) { buildingJob = new BuildingJob( BuildingBlueprint.name, BuildingBlueprint.productionCost, 0, () => { BuildingBlueprint.OnBuildingComplete(MyCity); Destroy(gameObject); }, null ); } else if (UnitBlueprint != null) { buildingJob = new BuildingJob( UnitBlueprint.name, UnitBlueprint.productionCost, 0, () => { UnitBlueprint.OnUnitComplete(MyCity); MyCityScreen.RemoveCompletedUnitFromInProgress(UnitBlueprint, MyCity); }, null ); } thisBuildingJob = buildingJob; } MyCity.SetCurrentBuildingJob(thisBuildingJob); if (MyCityScreen) { MyCityScreen.UpdateCurrentProductionText(); } }
void EXAMPLE() { buildingJob = new BuildingJob( null, "Dwarf Warrior", 100, 0, () => { this.Hex.HexMap.SpawnUnitAt( new Unit(), this.Hex.HexMap.UnitDwarfPrefab, this.Hex.Q, this.Hex.R ); }, null ); }
void EXAMPLE() { buildingJob = new BuildingJob( null, "Tri-ship", 100, 0, () => { this.Hex.HexMap.SpawnUnitAt( new Unit(), this.Hex.HexMap.UnitShipPrefab, this.Hex.Q, this.Hex.R ); }, null ); }
void EXAMPLE() { buildingJob = new BuildingJob(null, "Dwarf Warrior", 100, 0, () => { this.Hex.HexMap.SpawnUnitAt( new Unit(), GameManager.instance.playerUnit, this.Hex.Q, this.Hex.R ); }, null ); }
public void SetCurrentBuildingJob(BuildingJob buildingJob) { this.buildingJob = buildingJob; }