void OnMouseDownSimulation() { island = this.transform.parent.parent.parent.gameObject.GetComponent<MinorIsland>(); building = GameObject.Find(island.nameBuildingTouched).GetComponent<Building>(); island.nameBuildingTouched = string.Empty; if (this.name == "Upgrade") { if (building.level < 3) { island.buildingInfoPresent = false; island.createChallengeUpgrade(building); island.challengePresent = true; //To be cheked this.Client.sendData("@30505@" + (100*(building.level + 1)).ToString()); } else { island.displayPopup("Ce bâtiment est déjà au niveau maximal !", 3); //StartCoroutine(island.destroyPopup(island.createPopup("Ce bâtiment est déjà au niveau maximal !"), 3)); } } island.upgradeBuildingInfoPresent = false; Destroy(GameObject.Find(this.transform.parent.parent.name)); }
void OnMouseDownSimulation() { island = this.transform.parent.parent.parent.gameObject.GetComponent <MinorIsland>(); building = GameObject.Find(island.nameBuildingTouched).GetComponent <Building>(); island.nameBuildingTouched = string.Empty; if (this.name == "Upgrade") { if (building.level < 3) { island.buildingInfoPresent = false; island.createChallengeUpgrade(building); island.challengePresent = true; //To be cheked this.Client.sendData("@30505@" + (100 * (building.level + 1)).ToString()); } else { island.displayPopup("Ce bâtiment est déjà au niveau maximal !", 3); //StartCoroutine(island.destroyPopup(island.createPopup("Ce bâtiment est déjà au niveau maximal !"), 3)); } } island.upgradeBuildingInfoPresent = false; Destroy(GameObject.Find(this.transform.parent.parent.name)); }
void OnTriggerEnter(Collider col) { this.Client = GameObject.Find("Network").GetComponent <Client>(); if (col.name == islandToSend + "_Harbor") { MinorIsland islandReceiver = GameObject.Find(islandToSend).GetComponent <MinorIsland>(); this.collided = true; islandReceiver.displayPopup("Vous venez de recevoir une cargaison de " + this.quantityCarried.ToString() + " " + Resource.translateResourceName(resourceSent) + " !", 3); MinorIsland.exchangePerforming = false; //add resources to islandToSend TypeResource res = (TypeResource)System.Enum.Parse(typeof(TypeResource), resourceSent); islandReceiver.resourceManager.changeResourceStock(res, this.quantityCarried); this.Client.sendData("@2" + islandReceiver.nameMinorIsland.Split('_')[2] + "355@" + islandReceiver.resourceManager.getResource(res).TypeResource.ToString() + "@" + this.quantityCarried.ToString()); StartCoroutine(startBoatDisappearance()); } else { if (this.quantityCarried / 2 == 0) { this.collided = true; island.displayPopup("Suite aux dommages subis, votre bateau coule, ainsi que toutes les ressources transportées ...", 3); MinorIsland.exchangePerforming = false; //SINK ANIMATION StartCoroutine(SinkingCargo()); //StartCoroutine(startBoatDisappearance()); } else { resetting = true; StartCoroutine(resetPosition()); if (col.name.Contains("Harbor")) { island.displayPopup("Ce n'est pas le bon port ! Vous perdez donc la moitié des ressources à transmettre.", 3); } else { island.displayPopup("Attention ! Vous venez de subir une collision, vous perdez donc la moitié des ressources à transmettre.", 3); } this.quantityCarried /= 2; } } }
void OnMouseDownSimulation() { this.Client = GameObject.Find("Network").GetComponent <Client>(); refresh(); if (!island.otherWindowOpen) { string resourceName; int resourceQuantity; if (resource_sp.GetComponent <SpriteRenderer>().sprite.name == "cercleChoixRessource") //default sprite { resourceName = string.Empty; resourceQuantity = 0; } else { resourceName = Resource.getResourceFromIconName(resource_sp.GetComponent <SpriteRenderer>().sprite.name); resourceQuantity = (int)this.island.resourceManager.getResource((TypeResource)System.Enum.Parse(typeof(TypeResource), resourceName)).Stock; } Vector3 vector3; switch (this.name) { case "ResourceValue": Canvas listResourcesCanvasPrefab = Resources.Load <Canvas>("Prefab/ListResourcesCanvas"); Canvas listResourcesCanvas = Instantiate(listResourcesCanvasPrefab); listResourcesCanvas.name = "listResourcesCanvas_" + island.nameMinorIsland; listResourcesCanvas.transform.SetParent(GameObject.Find(island.nameMinorIsland).transform); vector3 = GameObject.Find("sprite-" + island.nameMinorIsland).transform.position; vector3.z = -6; listResourcesCanvas.transform.position = vector3; foreach (SpriteRenderer sr in listResourcesCanvas.GetComponentsInChildren <SpriteRenderer>()) { sr.GetComponent <BoxCollider>().enabled = true; if ((sr.name != "Close") && (this.island.resourceManager.getResource((TypeResource)System.Enum.Parse(typeof(TypeResource), sr.name)).Stock < 5)) { sr.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + sr.name + "Icon_disabled"); sr.GetComponent <BoxCollider>().enabled = false; } } island.otherWindowOpen = true; quantityValue.text = "0"; //rotation if other side of the table char id = this.island.nameMinorIsland[this.island.nameMinorIsland.Length - 1]; if (id == '1' || id == '2') { listResourcesCanvas.transform.Rotate(Vector3.forward * 180); } break; case "Less": if (quantityValue.text == "0") { this.GetComponent <BoxCollider>().enabled = false; } else { quantityValue.text = (int.Parse(quantityValue.text) - 5).ToString(); more.GetComponent <BoxCollider>().enabled = true; } break; case "More": this.GetComponent <BoxCollider>().enabled = true; if ((quantityValue.name == "QuantityValue") && (int.Parse(quantityValue.text) + 5 <= resourceQuantity)) { quantityValue.text = (int.Parse(quantityValue.text) + 5).ToString(); less.GetComponent <BoxCollider>().enabled = true; } break; case "Island": Canvas listIslandsCanvasPrefab = Resources.Load <Canvas>("Prefab/ListeIslandsCanvas"); Canvas listIslandsCanvas = Instantiate(listIslandsCanvasPrefab); listIslandsCanvas.name = "listIslandsCanvas_" + island.nameMinorIsland; listIslandsCanvas.transform.SetParent(GameObject.Find(island.nameMinorIsland).transform); vector3 = GameObject.Find("sprite-" + island.nameMinorIsland).transform.position; vector3.z = -6; listIslandsCanvas.transform.position = vector3; //disable clic on self island foreach (SpriteRenderer sp in listIslandsCanvas.GetComponentsInChildren <SpriteRenderer>()) { if (sp.name == island.nameMinorIsland) { sp.GetComponent <BoxCollider>().enabled = false; } } island.otherWindowOpen = true; //rotation if other side of the table char idIsland = this.island.nameMinorIsland[this.island.nameMinorIsland.Length - 1]; if (idIsland == '1' || idIsland == '2') { listIslandsCanvas.transform.Rotate(Vector3.forward * 180); } break; case "Close": island.exchangeWindowPresent = false; Destroy(GameObject.Find(this.transform.parent.parent.name)); break; case "Send": if (to.text == "Ile X") { island.displayPopup("Veuillez sélectionner une île, en appuyant sur \"Ile X\".", 3); } else { if (quantityValue.text == "0") { island.displayPopup("Veuillez sélectionner une quantité à envoyer", 3); } else { if (resource_sp.sprite.name == "Knob") //defaults sprite when not already clicked on { island.displayPopup("Veuillez sélectionner une ressource à envoyer", 3); } else { if (MinorIsland.exchangePerforming) { island.displayPopup("Veuillez attendre la fin de l'échange en cours", 3); } else { //withdrawal of resources TypeResource tr = (TypeResource)System.Enum.Parse(typeof(TypeResource), Resource.getResourceFromIconName(this.resource_sp.sprite.name)); int quantitySent = int.Parse(quantityValue.text); Resource res = island.resourceManager.getResource(tr); res.changeStock(-quantitySent); this.Client.sendData("@2" + this.island.nameMinorIsland.Split('_')[2] + "355@" + res.TypeResource.ToString() + "@" + (-quantitySent).ToString()); MinorIsland.exchangePerforming = true; SpriteRenderer exchangeResourceAnimationPrefab = Resources.Load <SpriteRenderer>("Prefab/exchangeResourceAnimation/exchangeResourceAnimation_" + island.nameMinorIsland[island.nameMinorIsland.Length - 1].ToString()); exchangeResourceAnimation = Instantiate(exchangeResourceAnimationPrefab); exchangeResourceAnimation.transform.parent = GameObject.Find(island.nameMinorIsland).transform; exchangeResourceAnimation.name = "ExchangeResourceAnimation_" + island.nameMinorIsland; exchangeResourceAnimation.GetComponent <BoatMoving>().islandToSend = "sous_ile_" + island.islandToSend[island.islandToSend.Length - 1].ToString(); exchangeResourceAnimation.GetComponent <BoatMoving>().quantityCarried = quantitySent; exchangeResourceAnimation.GetComponent <BoatMoving>().resourceSent = tr.ToString(); island.exchangeWindowPresent = false; island.displayPopup("Emmenez le bateau jusqu'au port de l'île sélectionnée pour lui apporter les ressources", 5); Destroy(GameObject.Find(this.transform.parent.parent.name)); } } } } break; } } else //closure of other windows (listResources & listIslands) { if (this.name == "Close") { island.otherWindowOpen = false; island.exchangeWindowPresent = false; Destroy(GameObject.Find("listIslandsCanvas_" + island.nameMinorIsland)); Destroy(GameObject.Find("listResourcesCanvas_" + island.nameMinorIsland)); Destroy(GameObject.Find(this.transform.parent.parent.name)); } } }
void OnMouseDownSimulation() { Vector3 pos; char id = island.nameMinorIsland[island.nameMinorIsland.Length - 1]; switch (this.name) { case "Upgrade": Canvas upgradeBuildingWindowCanvasPrefab = Resources.Load <Canvas>("Prefab/UpgradeBuildingWindowCanvas"); Canvas upgradeBuildingWindowCanvas = Instantiate(upgradeBuildingWindowCanvasPrefab); upgradeBuildingWindowCanvas.name = "UpgradeBuildingWindowCanvas_" + building.name + "_" + island.nameMinorIsland; upgradeBuildingWindowCanvas.transform.SetParent(this.transform.parent.parent.parent); //parent : sous_ile pos = GameObject.Find("sprite-" + island.nameMinorIsland).transform.position; pos.z = -2; upgradeBuildingWindowCanvas.transform.position = pos; //rotation of image according to the place of the island if (id == '1' || id == '2') { upgradeBuildingWindowCanvas.transform.Rotate(Vector3.forward * 180); } island.upgradeBuildingInfoPresent = true; //modification of the content of the different Text Children of the Canvas foreach (Text textInCanvas in upgradeBuildingWindowCanvas.GetComponent <Canvas>().GetComponentsInChildren <Text>()) { switch (textInCanvas.name) { case "Name": textInCanvas.text = "Amélioration " + (building.level + 1).ToString(); break; case "CostValue1": switch (building.level) { case 0: textInCanvas.text = building.upgrade1ResourceNeeded[0].Second.ToString(); if (building.upgrade1ResourceNeeded[0].Second > island.resourceManager.getResource(building.upgrade1ResourceNeeded[0].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } break; case 1: textInCanvas.text = building.upgrade2ResourceNeeded[0].Second.ToString(); if (building.upgrade2ResourceNeeded[0].Second > island.resourceManager.getResource(building.upgrade2ResourceNeeded[0].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } break; case 2: textInCanvas.text = building.upgrade3ResourceNeeded[0].Second.ToString(); if (building.upgrade3ResourceNeeded[0].Second > island.resourceManager.getResource(building.upgrade3ResourceNeeded[0].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } break; default: textInCanvas.text = "-"; break; } break; case "CostValue2": switch (building.level) { case 0: if (building.upgrade1ResourceNeeded.Count == 2) { textInCanvas.text = building.upgrade1ResourceNeeded[1].Second.ToString(); if (building.upgrade1ResourceNeeded[1].Second > island.resourceManager.getResource(building.upgrade1ResourceNeeded[1].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } } else { textInCanvas.text = "-"; } break; case 1: if (building.upgrade2ResourceNeeded.Count == 2) { textInCanvas.text = building.upgrade2ResourceNeeded[1].Second.ToString(); if (building.upgrade2ResourceNeeded[1].Second > island.resourceManager.getResource(building.upgrade2ResourceNeeded[1].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } } else { textInCanvas.text = "-"; } break; case 2: if (building.upgrade3ResourceNeeded.Count == 2) { textInCanvas.text = building.upgrade3ResourceNeeded[1].Second.ToString(); if (building.upgrade3ResourceNeeded[1].Second > island.resourceManager.getResource(building.upgrade3ResourceNeeded[1].First).Stock) { textInCanvas.color = Color.red; } else { textInCanvas.color = Color.green; } } else { textInCanvas.text = "-"; } break; default: textInCanvas.text = "-"; break; } break; } } //modification of the background of the different Image Children of the Canvas foreach (Image imageInCanvas in upgradeBuildingWindowCanvas.GetComponent <Canvas>().GetComponentsInChildren <Image>()) { switch (imageInCanvas.name) { case "CostImage1": switch (building.level) { case 0: imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade1ResourceNeeded[0].First.ToString() + "Icon"); break; case 1: imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade2ResourceNeeded[0].First.ToString() + "Icon"); break; case 2: imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade3ResourceNeeded[0].First.ToString() + "Icon"); break; default: imageInCanvas.sprite = null; break; } break; case "CostImage2": switch (building.level) { case 0: if (building.upgrade1ResourceNeeded.Count == 2) { imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade1ResourceNeeded[1].First.ToString() + "Icon"); } else { imageInCanvas.sprite = null; } break; case 1: if (building.upgrade2ResourceNeeded.Count == 2) { imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade2ResourceNeeded[1].First.ToString() + "Icon"); } else { imageInCanvas.sprite = null; } break; case 2: if (building.upgrade3ResourceNeeded.Count == 2) { imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.upgrade3ResourceNeeded[1].First.ToString() + "Icon"); } else { imageInCanvas.sprite = null; } break; default: imageInCanvas.sprite = null; break; } break; //mêmes images case "ProductionImage": imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + Building.getNameResourceOrStatProduced(building.name.Split('_')[3]) + "Icon"); break; case "ProductionImage2": imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + Building.getNameResourceOrStatProduced(building.name.Split('_')[3]) + "Icon"); break; } //check if upgrade is possible foreach (SpriteRenderer sr in upgradeBuildingWindowCanvas.GetComponent <Canvas>().GetComponentsInChildren <SpriteRenderer>()) { if (sr.name == "Upgrade") { switch (building.level) { case 0: if (island.resourceManager.getResource(building.upgrade1ResourceNeeded[0].First).Stock < building.upgrade1ResourceNeeded[0].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } else if (building.upgrade1ResourceNeeded.Count == 2) { if (island.resourceManager.getResource(building.upgrade1ResourceNeeded[1].First).Stock < building.upgrade1ResourceNeeded[1].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } } break; case 1: if (island.resourceManager.getResource(building.upgrade2ResourceNeeded[0].First).Stock < building.upgrade2ResourceNeeded[0].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } else if (building.upgrade2ResourceNeeded.Count == 2) { if (island.resourceManager.getResource(building.upgrade2ResourceNeeded[1].First).Stock < building.upgrade2ResourceNeeded[1].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } } break; case 2: if (island.resourceManager.getResource(building.upgrade3ResourceNeeded[0].First).Stock < building.upgrade3ResourceNeeded[0].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } else if (building.upgrade3ResourceNeeded.Count == 2) { if (island.resourceManager.getResource(building.upgrade3ResourceNeeded[1].First).Stock < building.upgrade3ResourceNeeded[1].Second) { sr.sprite = Resources.Load <Sprite>("infoBatiments/UpgradeGrise"); sr.GetComponent <BoxCollider>().enabled = false; } } break; } } } } break; case "Remove": if (this.building.name.Split('_')[3] == TypeBuilding.Harbor.ToString()) { island.displayPopup("Impossible de supprimer le port !", 3); } else { Canvas removeBuildingWindowCanvasPrefab = Resources.Load <Canvas>("Prefab/RemoveBuildingWindowCanvas"); Canvas removeBuildingWindowCanvas = Instantiate(removeBuildingWindowCanvasPrefab); removeBuildingWindowCanvas.name = "RemoveBuildingWindowCanvas_" + building.name; island.removeBuildingInfoPresent = true; removeBuildingWindowCanvas.transform.SetParent(this.transform.parent.parent.parent); //parent : sous_ile pos = GameObject.Find("sprite-" + island.nameMinorIsland).transform.position; pos.z = -4; removeBuildingWindowCanvas.transform.position = pos; //rotation of image according to the place of the island if (id == '1' || id == '2') { removeBuildingWindowCanvas.transform.Rotate(Vector3.forward * 180); } //modification of the content of the different Text Children of the Canvas foreach (Text textInCanvas in removeBuildingWindowCanvas.GetComponent <Canvas>().GetComponentsInChildren <Text>()) { switch (textInCanvas.name) { case "Question": textInCanvas.text = "Etes vous sûr de vouloir détruire le bâtiment \"" + Building.translateBuildingName(building.TypeBuilding.ToString()) + "\" ?"; break; case "GainValue1": textInCanvas.text = (building.constructionResourceNeeded[0].Second / 2).ToString(); break; case "GainValue2": if (building.constructionResourceNeeded.Count == 2) { textInCanvas.text = (building.constructionResourceNeeded[1].Second / 2).ToString(); } else { textInCanvas.text = "-"; } break; } } //modification of the background of the different Image Children of the Canvas foreach (SpriteRenderer imageInCanvas in removeBuildingWindowCanvas.GetComponent <Canvas>().GetComponentsInChildren <SpriteRenderer>()) { switch (imageInCanvas.name) { //mêmes images case "GainImage1": imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.constructionResourceNeeded[0].First.ToString() + "Icon"); break; case "GainImage2": if (building.constructionResourceNeeded.Count == 2) { imageInCanvas.sprite = Resources.Load <Sprite>("infoBatiments/ResourcesIcons/" + building.constructionResourceNeeded[1].First.ToString() + "Icon"); } else { imageInCanvas.sprite = null; } break; } } } break; case "Move": if (this.building.name.Split('_')[3] == TypeBuilding.Harbor.ToString()) { island.displayPopup("Impossible de déplacer le port !", 3); //StartCoroutine(this.island.destroyPopup(this.island.createPopup("Impossible de déplacer le port !"), 3)); } else { if (building.TypeBuilding.ToString() == "Harbor") { island.displayPopup("Le port ne peut pas être déplacé !", 3); //StartCoroutine(island.destroyPopup(island.createPopup("Le port ne peut pas être déplacé !"), 3)); } else { island.displayPopup("Appuyez sur l'endroit où placer le batiment", 3); //StartCoroutine(island.destroyPopup(island.createPopup("Appuyez sur l'endroit où placer le batiment"), 3)); island.moveBuilding = true; } } break; } island.touchBuildingPresent = false; Destroy(GameObject.Find(this.transform.parent.parent.name)); }