Exemple #1
0
        public static void ReStartBuilding(Account acc, Village vill)
        {
            RemoveCompletedTasks(vill, acc);
            //remove ongoing building task for this village
            acc.Tasks.RemoveAll(x =>
                                x.vill == vill &&
                                x.GetType() == typeof(UpgradeBuilding)
                                );

            if (vill.Build.Tasks.Count == 0)
            {
                return;                              //No build tasks
            }
            var nextExecution = DateTime.Now.AddSeconds(5);
            var lastCB        = vill.Build.CurrentlyBuilding.LastOrDefault();

            var maxBuildings = 1;

            if (acc.AccInfo.PlusAccount)
            {
                maxBuildings++;
            }
            if (lastCB != null && lastCB.Duration > nextExecution && vill.Build.CurrentlyBuilding.Count >= maxBuildings)
            {
                nextExecution = lastCB.Duration;
            }

            var building = new UpgradeBuilding()
            {
                vill      = vill,
                ExecuteAt = nextExecution,
            };

            TaskExecutor.AddTask(acc, building);
        }
Exemple #2
0
    private void Start()
    {
        canvasManager = GameObject.FindWithTag("GameManager").GetComponent <CanvasManager>();

        buildBuilding    = GetComponent <BuildBuilding>();
        upgradeFarmHouse = farmHouse.GetComponent <UpgradeBuilding>();
        upgradeFarm      = farm.GetComponent <UpgradeBuilding>();
        upgradeHouse     = house.GetComponent <UpgradeBuilding>();
        upgradeTower     = tower.GetComponent <UpgradeBuilding>();

        StartCoroutine(Print());
        StartCoroutine(Logging());
        StartCoroutine(Quarring());
        StartCoroutine(Forging());

        extraMoney++;
        extraWood++;
        extraStone++;
        extraHay++;

        LevelMoney++;
        LevelWood++;
        LevelStone++;
        LevelHay++;
    }