//consume the ressourceNeedded and produce the ressourceProduced (only if there was still a stock of ressourceNeedded) //method called by an Island, each 10 seconds while the state of the building is 1 public void consume_produce(Island island) { RessourceManager rm = new RessourceManager(); //checks if the ressourceNeeded exists and if there is enough of its stock if ((island.getRessource(ressourceNeeded) != null) && (island.getRessource(ressourceNeeded).stock >= consumptionCost)) { rm.withdrawRessource(ressourceNeeded, island, consumptionCost); //consumption rm.giveRessource(ressourceProduced, island, productionCost); //production System.Diagnostics.Debug.WriteLine("Le batiment " + this.name + " utilise " + this.consumptionCost.ToString() + " " + this.ressourceNeeded + " et produit " + this.productionCost.ToString() + " " + this.ressourceProduced + " sur l'ile " + island.id.ToString()); } else { System.Diagnostics.Debug.WriteLine("Le batiment " + this.name + " ne peut plus produire de " + this.ressourceProduced + " car il ne reste pas assez de " + ressourceNeeded + " sur l'ile " + island.id.ToString()); } }
//give a stock of "quantity" of the ressource named "name" to "island" public void giveRessourceToIsland(string name, int quantity, Island island) { RessourceManager rm = new RessourceManager(); int quantityWithdrawn = rm.withdrawRessource(name, this, quantity); //we give to "island" the quantity withdrawn from the current island if (quantityWithdrawn != 0) { rm.giveRessource(name, island, quantityWithdrawn); System.Diagnostics.Debug.WriteLine("L'ile " + this.id.ToString() + " donne " + quantityWithdrawn.ToString() + " " + name + " à l'ile " + island.id.ToString()); } else System.Diagnostics.Debug.WriteLine("La ressource " + name + " n'est plus disponible sur l'ile " + island.id.ToString()); }