/** * Used to initialize the Hud for the first time */ public void Initialize(RessourcesController ressourcesController, List <Player> players) { this.ressourcesController = ressourcesController; int numOfPlayers = 0; //Initialy set all Player Infos to invisible maxNumOfPlayers = playersInfoUI.Count; for (int i = 0; i < maxNumOfPlayers; i++) { playersInfoUI[i].gameObject.SetActive(false); } //Check if list provided of players is more then the maximum allowed, if it is then just take the ones up to it's max if (players.Count > maxNumOfPlayers) { numOfPlayers = maxNumOfPlayers; } else { numOfPlayers = players.Count; } setNumOfPlayers(numOfPlayers); //For each player Set up initial Values for (int i = 0; i < numOfPlayers; i++) { PlayerUpdate(players[i]); } timer.Run = true; }
private void InventoryManagement() { inventory.ShowSlot(); if (isBuild && buildingStats.hasProduction) { for (int i = 0; i < buildingStats.productionOrder.rc_Out.Length; i++) { RessourcesController _rc = buildingStats.productionOrder.rc_Out [i]; if (inventory.Count(_rc.Element) > 0 && rcGive [i].TotalAmount != inventory.Count(_rc.Element)) { if (DeactivateAllGiveWorkOrder != null) { DeactivateAllGiveWorkOrder(gameObject); } rcGive [i] = new RessourcesController(inventory.Count(_rc.Element), _rc.Element, RessourcesController.workOrderType.Give_Ressource); if (CreateWorkOrder != null) { CreateWorkOrder(gameObject, flagPostition.transform.position, rcGive [i], inventory.Count(rcGive [i].Element)); } } else if (inventory.Count(_rc.Element) <= 0) { DeactivateAllGiveWorkOrder(gameObject); } } } }
bool CheckInvForElement(RessourcesController _rc) { if (inventory.Count(_rc.Element) < _rc.TotalAmount) { return(false); } return(true); }
void DeactivateRunningWorkOrder(GameObject _go, RessourcesController _rs) { WorkOrder work = workOrderQueue.Find(w => w.resController == _rs && w.requestor == _go && (w.status == WorkOrder.workOrderStatus.Running || w.status == WorkOrder.workOrderStatus.Reserved)); if (work != null) { work.SetInactive(); //workOrderQueue.Remove (work); } }
bool CheckWorkOrder(GameObject _go, RessourcesController _rs) { WorkOrder workQ = workOrderQueue.Find(w => w.resController == _rs && w.requestor == _go && (w.status == WorkOrder.workOrderStatus.Queue || w.status == WorkOrder.workOrderStatus.Running || w.status == WorkOrder.workOrderStatus.Reserved || w.status == WorkOrder.workOrderStatus.Error)); if (workQ != null) { return(true); } return(false); }
public WorkOrder(GameObject _requestedGo, Vector3 _locOfOrder, RessourcesController _rC, float _amount, int _num) { requestor = _requestedGo; locationOfOrder = _locOfOrder; resController = _rC; typeOfOrder = _rC.Type; status = workOrderStatus.Queue; number = _num; errorCount = 0; amount = _amount; if (amount <= 0) { Debug.LogError("Error amount < 0:" + amount); } }
// Use this for initialization void Start() { //players.Clear (); GameObject.Find("GameLoader").GetComponent <GameLoader> ().load(players); currentGame = gameObject.AddComponent <Game>(); ressourcesController = new RessourcesController(); setUpPlayers(); GameObject.Find("GameRecorder").GetComponent <GameRecorder> ().Initialize(players.Count); InitializeControllers(); StartGame(); }
void CommunicationWorkOrderInError(GameObject _go, RessourcesController _rc) { if (_go == null) { Debug.LogError("Go == null"); } Debug.LogWarning("go:" + _go.name); Debug.LogWarning("GameObject:" + gameObject.name); if (gameObject != null && _go != null) { if (_go == gameObject) { currentWorkOrderIsError = true; } else { currentWorkOrderIsError = false; } } }
void Start() { currentState = State.selected; grid = GameObject.Find("A*").GetComponent <Grid> (); inventory = GetComponent <Inventory> (); animator = GetComponent <Animator>(); transform.gameObject.SetActive(true); gameObject.name = buildingStats.buildingName; if (transform.Find("Flag") == null) { flagPostition = (GameObject)Instantiate(flagPrefab, transform); flagPostition.transform.position = new Vector3(0, 0, -5); flagPostition.name = "Flag"; flagPostition.SetActive(false); flagPostition.GetComponent <SpriteRenderer> ().sortingOrder = 1; } else { flagPostition = this.transform.Find("Flag").gameObject; } flagPositionSet = false; isBuild = false; if (buildingStats.hasProduction) { rcGive = new RessourcesController[buildingStats.productionOrder.rc_Out.Length]; for (int i = 0; i < rcGive.Length; i++) { rcGive [i] = new RessourcesController(0, buildingStats.productionOrder.rc_Out[i].Element, RessourcesController.workOrderType.Give_Ressource); } } WorkOrderManager.CommunicationWorkOrderInError += CommunicationWorkOrderInError; }
IEnumerator OwnBehaivor() { while (true) { if (batteryStatus > 0) { if (currentStatus == Status.idle) { if (sucheArbeit != null) { currentWorkOrder = sucheArbeit(gameObject); if (!currentWorkOrder.IsNull()) { currentStatus = Status.workIdle; } } } else { print("current WorkOrder: " + currentWorkOrder.WorkOrderType); if (currentWorkOrder.WorkOrderType == "Need_Ressource") { // Prüft, ob er im eigenen Inv die Ressourcen hat. Falls ja, geht er zum Platz und hinterlässt sein kompletten Inv. // Falls nein, reserviert er den jetzigen Workorder if (inventory.Count(currentWorkOrder.resController.Element) <= 0) { //Debug.LogError ("carring unrequested inv - deleting everything - debug"); DroppingElementInGround(); } if (inventory.Count(currentWorkOrder.resController.Element) > 0) { print("Inventory über 0"); if (currentStatus != Status.transport) { currentStatus = Status.transport; transportToLocation(currentWorkOrder.getLocationOfWork); } if (currentStatus != Status.arrivedAtLocation) { TransferElementsWithBuilding(currentWorkOrder.WorkOrderType); } } else if (inventory.Count(currentWorkOrder.resController.Element) <= 0) { print("Inventory unter 0"); ReserveWorkOrder(currentWorkOrder, gameObject); WorkOrder giveWorkOrder = SearchForWorkOrder(currentWorkOrder.resController.Element, "Give_Ressource"); if (giveWorkOrder != null) { currentWorkOrder = giveWorkOrder; currentWorkOrder.status = WorkOrder.workOrderStatus.Running; } else { RessourcesController rc_Dig = new RessourcesController(currentWorkOrder.Amount, currentWorkOrder.resController.Element, RessourcesController.workOrderType.Dig_Ressource); bool doneRequest = false; if (CheckStatusOfWorkOrder != null) { doneRequest = CheckStatusOfWorkOrder(gameObject, currentWorkOrder.Amount, currentWorkOrder.resController.Element); print("Einwohner doneRequest: " + doneRequest); } if (CreateDigWorkOrder != null && !doneRequest) { //wird von WorkOrderManager aufgerufen CreateDigWorkOrder(gameObject, Vector3.zero, rc_Dig, rc_Dig.TotalAmount - inventory.Count(rc_Dig.Element)); currentStatus = Status.idle; } } } else { Debug.LogError("error, check"); } } else if (currentWorkOrder.WorkOrderType == "Dig_Ressource") { gatheringRessources(currentWorkOrder.resController.Element); } else if (currentWorkOrder.WorkOrderType == "Give_Ressource") { if (currentStatus != Status.transport) { currentStatus = Status.transport; transportToLocation(currentWorkOrder.getLocationOfWork); } if (currentStatus != Status.arrivedAtLocation) { TransferElementsWithBuilding(currentWorkOrder.WorkOrderType); } } } } yield return(new WaitForSeconds(2)); } }
public void SetUpGame(HudController hud, RessourcesController ressourcesController, List <Player> players) { HudController = hud; PlayersInGame = players; hudController.Initialize(ressourcesController, playersInGame); }
void CreateWorkOrder(GameObject _go, Vector3 _locationOfWork, RessourcesController _rs, float _missingAmount) { print("creating Workorder"); workOrderQueue.Add(new WorkOrder(_go, _locationOfWork, _rs, _missingAmount, counter)); counter++; }