示例#1
0
    public void OnEndDrag()
    {
        if (GUImain.DragObject == null) return;
        if (!SelectedWorker.gameObject.activeSelf) return;

        if (SelectedWorker.Worker != null) {
            if (SelectedWorker.Worker.Resource.ID == GUImain.DragObject.Resource.id) return;

            //foreach (int i in SelectedWorker.Worker.AssignLaborers) {

            //}

        } else {
            //Debug.Log("Drag");
            ResourceWorker worker = new ResourceWorker(GUImain.DragObject.Resource.id);
            CurrentBuilding.ActiveWorks.List[SelectedWorker.ListID] = worker;
            SelectedWorker.Worker = worker;
            SelectedWorker.Redraw();

            guiSlot slot = ActiveWorks.GetItem<guiSlot>(SelectedWorker.ListID);
            slot.Icon.sprite = worker.Resource.Image;

        }
    }
示例#2
0
    bool CheckResource(ResourceWorker worker)
    {
        if (worker.Resource.Request.Count < 1) return true;

        bool enough = true;

        foreach (ResourceData data in worker.Resource.Request.List) {
            if (data.id < 0) continue;
            if (!Inventory.Check(data.id, data.amount)) {
                enough = false;
                break;
            }
        }

        if (!enough) return false;

        foreach (ResourceData data in worker.Resource.Request.List) {
            if (data.id < 0) continue;
            Inventory.Remove(data.id, data.amount);
        }

        return true;
    }
示例#3
0
    public virtual void EndWorker(ResourceWorker worker)
    {
        Inventory.Add(worker.Resource.ID, worker.Resource.Amount);

        if (OnResourceChange != null) OnResourceChange();
    }
示例#4
0
	public void Add(ResourceWorker worker) {
		List.Add(worker);
	}