public async Task <IActionResult> Edit(int id, [Bind("Id,Nombre,Descripcion,GeneroMusical")] Tribu tribu) { if (id != tribu.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(tribu); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TribuExists(tribu.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(tribu)); }
private void GenererSlots() { bool tuileActuelleDuneAutreTribu = false; foreach (Revendication revendicateur in tuileExploitee.revendication.revendicateurs) { if (revendicateur.EstTribu && revendicateur != expedition.tribu.revendication) { Tribu tribu = (Tribu)revendicateur.parent; if (tuileExploitee == tribu.tuileActuelle) { tuileActuelleDuneAutreTribu = true; break; } } } if (expedition.tribu.tuileActuelle != tuileExploitee && !tuileActuelleDuneAutreTribu) { int nbrSlots = tuileExploitee.productionTuile.NbrSlot; for (int i = 0; i < nbrSlots; i++) { GameObject nvSlot = Instantiate(slot, zoneSlots.transform); nvSlot.SetActive(true); SlotExploit slotExploit = nvSlot.GetComponentInChildren <SlotExploit>(); listeSlots.Add(slotExploit); slotExploit.exploitation = this; } } MiseAJourInterdictions(); }
private IEnumerator DeroulerTour() { hostile.TrouverCiblesAPortee(); while (ptsDeplacement > 0 || hostile.PeutAttaquer) { //print(hostile.PeutAttaquer); if (hostile.PeutAttaquer) { StartCoroutine(hostile.Attaquer()); } else { if (!tribuCible || entetement <= 0) { entetement = entetementDefaut; tribuCible = TrouverTribuPlusProche(); } chemin = pathFinder.TrouverCheminPlusCourt(tuileActuelle, tribuCible.tuileActuelle, peutEmbarquer); StartCoroutine(SeDeplacer()); } yield return(new WaitUntil(() => aFaitUneAction)); aFaitUneAction = false; } aPasseSonTour = true; }
private Tribu TrouverTribuPlusProche() { Tribu[] tribus = FindObjectsOfType <Tribu>(); float[] distances = new float[tribus.Length]; for (int i = 0; i < tribus.Length; i++) { Stack <TuileManager> cheminTribu = pathFinder.TrouverCheminPlusCourt(tuileActuelle, tribus[i].tuileActuelle, peutEmbarquer); distances[i] = pathFinder.CalculerLongeurChemin(cheminTribu); } float minim = MiniMax.TrouverMinimum(distances); int indexMinim = 0; for (int i = 0; i < distances.Length; i++) { if (distances[i] == minim) { indexMinim = i; break; } } return(tribuCible = tribus[indexMinim]); }
private void MiseAJourInterdictions() { if (tuileExploitee) { foreach (Revendication revendicateur in tuileExploitee.revendication.revendicateurs) { if (revendicateur != expedition.tribu.revendication) { if (revendicateur.EstTribu) { Tribu tribu = (Tribu)revendicateur.parent; foreach (Exploitation exploit in tribu.expedition.listeExploitations) { if (exploit.tuileExploitee == tuileExploitee) { int slotsAInterdire = 0; foreach (SlotExploit slot in exploit.listeSlots) { if (slot.estOccupe) { slotsAInterdire++; } } if (slotsAInterdire > 0) { InterdireSlots(slotsAInterdire, "<color=#" + ColorUtility.ToHtmlStringRGBA(ListeCouleurs.Defaut.couleurAlerteTexteInterface) + ">Une autre tribu exploite déjà ce slot<color=\"white\">"); } } } } } } } }
public void AfficherInventaire(Tribu tribu, PlatoEchange platoKiAppelle) { platoActuel = platoKiAppelle; gameObject.SetActive(true); platoActuel.ActiverInteraction(false); GenererInventaireSlot(tribu); rectT.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, rectT.position.z); }
public async Task <IActionResult> Create([Bind("Id,Nombre,Descripcion,GeneroMusical")] Tribu tribu) { if (ModelState.IsValid) { _context.Add(tribu); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(tribu)); }
public IEnumerator Attaquer() { Tribu cible = ciblesAPortee[Random.Range(0, ciblesAPortee.Count - 1)]; cible.guerrier.EngagementGeneral(); Combat combatEnCours = AttaquerCible(cible); yield return(new WaitWhile(() => combatEstEnCours)); Destroy(combatEnCours.gameObject); cible.guerrier.DesengagementGeneral(); pion.aFaitUneAction = true; }
private IEnumerator ActivationTPT() { effets.Invoke(); Tribu tribuKiSubit = InfoTribus.TribukiJoue; yield return(new AttendreFinTour(nombreTour)); effet.TribuKiSubit = tribuKiSubit; antiEffets.Invoke(); effet.TribuKiSubit = null; }
private void GenererSlots(int nbrSlots) { bool tuileActuelleDuneAutreTribu = false; foreach (Revendication revendicateur in tuileExploitee.revendication.revendicateurs) { if (revendicateur.EstTribu && revendicateur != expedition.tribu.revendication) { Tribu tribu = (Tribu)revendicateur.parent; if (tuileExploitee == tribu.tuileActuelle) { tuileActuelleDuneAutreTribu = true; break; } } } if (expedition.tribu.tuileActuelle != tuileExploitee && !tuileActuelleDuneAutreTribu) { if (nbrSlots > 0) //si le nobre de slots à rajouter est positif, on instantie ces slots { for (int i = 0; i < nbrSlots; i++) { GameObject nvSlot = Instantiate(slot, zoneSlots.transform); nvSlot.SetActive(true); SlotExploit slotExploit = nvSlot.GetComponentInChildren <SlotExploit>(); listeSlots.Add(slotExploit); slotExploit.exploitation = this; } } else //sinon on supprime des slots { for (int i = 0; i < Math.Abs(nbrSlots); i++) { if (listeSlots.Count > 1) { Destroy(listeSlots[listeSlots.Count - 1].gameObject); listeSlots.RemoveAt(listeSlots.Count - 1); } else { Destroy(listeSlots[0].gameObject); listeSlots.RemoveAt(0); } } } } }
private List <Tribu> TrouverTribusAPortee() { List <Tribu> tribusAPortee = new List <Tribu>(); foreach (Revendication cible in tribu.revendication.TrouverRevendicateursAPortee()) { Tribu TribuObeservee = cible.GetComponent <Tribu>(); if (TribuObeservee && TribuObeservee != tribu) { tribusAPortee.Add(TribuObeservee); } } return(tribusAPortee); }
private IEnumerator ActivationEvenement() { effets.Invoke(); bool eventFini = false; Tribu tribuKiSubit = InfoTribus.TribukiJoue; InterfaceEvenement.Defaut.eventFinEvenement.AddListener(() => eventFini = true); yield return(new WaitUntil(() => eventFini)); effet.TribuKiSubit = tribuKiSubit; antiEffets.Invoke(); effet.TribuKiSubit = null; }
public static void AjouterTribu(Vector3 position) { if (listeOrdonneeTribus.Length < cela.nbrTribuMax) { int nbrTribus = listeOrdonneeTribus.Length; #if !UNITY_EDITOR GameObject nvlleTribu = Instantiate(cela.prefabTribu, cela.transform); #else GameObject nvlleTribu = PrefabUtility.InstantiatePrefab(cela.prefabTribu, cela.transform) as GameObject; #endif nvlleTribu.transform.localPosition = new Vector3(position.x, position.y, 0); Tribu trib = nvlleTribu.GetComponent <Tribu>(); trib.idTribu = nbrTribus; nvlleTribu.name = "Tribu" + nbrTribus; } }
private void DessinerInterfaceTribu(Tribu tribu) { GUILayoutOption[] options = new GUILayoutOption[2] { GUILayout.Height(30), GUILayout.Width(60) }; GUILayout.BeginHorizontal(); if (GUILayout.Button(tribu.gameObject.name, options)) { SceneView.lastActiveSceneView.LookAt(tribu.transform.position); } GUI.backgroundColor = ListeCouleurs.Defaut.couleurAlerteTexteInterface; if (GUILayout.Button("Retirer", options)) { InfoTribus.RetirerTribu(tribu); } GUI.backgroundColor = couleurBGDefaut; GUILayout.EndHorizontal(); }
private Combat AttaquerCible(Tribu cible) { jetonAttaque = false; Combat nvCombat = InstancierCombat(); nvCombat.Guerrier = cible.guerrier; if (OptionsJeu.Defaut.modeCombatsSimplifies) { nvCombat.LancerCombat(); } else { InterfaceEvenement.Defaut.OuvrirFenetreEvenementCombat(nvCombat); } combatEstEnCours = true; return(nvCombat); }
public static void RetirerTribu(Tribu tribuARetirer) { int pallier = tribuARetirer.idTribu; for (int i = 0; i < listeOrdonneeTribus.Length; i++) { if (listeOrdonneeTribus[i].idTribu > pallier) { listeOrdonneeTribus[i].idTribu--; listeOrdonneeTribus[i].gameObject.name = "Tribu" + listeOrdonneeTribus[i].idTribu; } } if (Application.isPlaying) { TourParTour.Defaut.idTribu = 0; Destroy(tribuARetirer.gameObject); } else { DestroyImmediate(tribuARetirer.gameObject); } }
public async Task <IActionResult> Create([Bind("Id,Nombre,Descripcion,GeneroMusical,Creator")] Tribu tribu) { if (ModelState.IsValid) { string currentUserName = User.Identity.Name; Usuario currentUser = _context.Users.FirstOrDefault(x => x.UserName == currentUserName); tribu.Creator = currentUser.Email; UsuarioTribu m = new UsuarioTribu() { UsuarioId = currentUser.Id, TribuId = tribu.Id, Tribus = tribu, Usuarios = currentUser }; _context.UsuariosTribus.Add(m); _context.Add(tribu); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(tribu)); }
private void GenererInventaireSlot(Tribu tribu) { NettoyerInventaire(); float[] gains = tribu.stockRessources.RessourcesEnStock.gains; //Génère slots de ressource for (int i = 0; i < gains.Length; i++) { Ressource ressource = ListeRessources.Defaut.listeDesRessources[i]; if (gains[i] >= 1 && !platoActuel.ressourcesEchangees.Contains(ressource.nom)) { GameObject nvSlot = Instantiate(slotRessourceBase, fond); listeSlots.Add(nvSlot); nvSlot.SetActive(true); foreach (Image image in nvSlot.GetComponentsInChildren <Image>()) { if (image.name == "Icone") { image.sprite = ListeIcones.Defaut.TrouverIconeRessource(ressource); } } nvSlot.GetComponentInChildren <TextMeshProUGUI>().text = "" + gains[i]; nvSlot.GetComponentInChildren <InfoBulle>().texteInfoBulle = ressource.texteInfobulle; Button nvBouton = nvSlot.GetComponentInChildren <Button>(); nvBouton.onClick.AddListener(() => platoActuel.AjouterSlotEchange(ressource)); nvBouton.onClick.AddListener(() => Destroy(nvSlot)); nvBouton.onClick.AddListener(CacherInventaire); } } List <Consommable> consommables = tribu.stockRessources.consommables; Dictionary <Consommable, int> inventaireConso = new Dictionary <Consommable, int>(); //Génère slots de consommables for (int i = 0; i < consommables.Count; i++) { if (inventaireConso.ContainsKey(consommables[i])) { inventaireConso[consommables[i]]++; } else { inventaireConso.Add(consommables[i], 1); } } foreach (Consommable consommable in inventaireConso.Keys) { if (!platoActuel.ressourcesEchangees.Contains(consommable.nom)) { GameObject nvSlot = Instantiate(slotRessourceBase, fond); listeSlots.Add(nvSlot); nvSlot.SetActive(true); foreach (Image image in nvSlot.GetComponentsInChildren <Image>()) { if (image.name == "Icone") { image.sprite = consommable.icone; } } nvSlot.GetComponentInChildren <TextMeshProUGUI>().text = "" + inventaireConso[consommable]; nvSlot.GetComponentInChildren <InfoBulle>().texteInfoBulle = consommable.TexteInfobulle; Button nvBouton = nvSlot.GetComponentInChildren <Button>(); nvBouton.onClick.AddListener(() => platoActuel.AjouterSlotEchange(consommable)); nvBouton.onClick.AddListener(() => Destroy(nvSlot)); nvBouton.onClick.AddListener(CacherInventaire); } } }