Esempio n. 1
0
    public void DeactivateWorker(Worker worker)
    {
        var prefab = Instantiate(removerPrefab) as GameObject;
        var position = worker.transform.position;

        position.z = 1.0f;
        position.y += 1.0f;

        prefab.transform.position = position;

        worker.GiveTask(null);
        worker.transform.position = Vector3.zero; //  Temp position just to hide offscreen.
        worker.gameObject.SetActive(false);

        _inactiveWorkers.Enqueue(worker);
    }
Esempio n. 2
0
    /// <summary>
    /// Gets the WorkerInfo associated with the Worker for this room.
    /// If none exists, a new one is created and returned.
    /// </summary>
    /// <param name="worker">Who to check for</param>
    /// <returns>The WorkerInfo for the passed Worker</returns>
    protected WorkerInfo GetWorkerInfo(Worker worker)
    {
        for (var i = 0; i < _allWorkers.Count; i++)
            if (_allWorkers[i].worker == worker)
                return _allWorkers[i];

        //  It's a new Worker in the room so generate an
        //  'information card' about it.
        var newInfo = new WorkerInfo(worker, -1);

        worker.GiveTask(null);
        worker.transform.parent = transform;

        _allWorkers.Add(newInfo);
        return newInfo;
    }