Esempio n. 1
0
    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);
    }
Esempio n. 2
0
 public void Build(int index)
 {
     if (currentProduction != PRODUCTION.BUSY)
     {
         BuildingJob = BuildingJobsList[index];
         BuildingJob.TotalProductionNeeded -= workLeft;
     }
 }
Esempio n. 3
0
 public void DoTurn()
 {
     if (buildingJob != null)
     {
         float workLeft = buildingJob.DoWork(productionPerTurn);
         if (workLeft <= 0)
         {
             // Job is complete
             buildingJob = null;
             // TODO: Save overflow
         }
     }
 }
Esempio n. 4
0
    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";
        }
    }
Esempio n. 5
0
    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();
        }
    }
Esempio n. 6
0
 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
         );
 }
Esempio n. 7
0
 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
         );
 }
Esempio n. 8
0
    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

                                      );
    }
Esempio n. 9
0
 public void SetCurrentBuildingJob(BuildingJob buildingJob)
 {
     this.buildingJob = buildingJob;
 }