Exemple #1
0
        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));
        }
Exemple #2
0
    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();
    }
Exemple #3
0
    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;
    }
Exemple #4
0
    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]);
    }
Exemple #5
0
 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\">");
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Exemple #6
0
    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);
    }
Exemple #7
0
        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));
        }
Exemple #8
0
    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;
    }
Exemple #9
0
    private IEnumerator ActivationTPT()
    {
        effets.Invoke();

        Tribu tribuKiSubit = InfoTribus.TribukiJoue;

        yield return(new AttendreFinTour(nombreTour));

        effet.TribuKiSubit = tribuKiSubit;

        antiEffets.Invoke();

        effet.TribuKiSubit = null;
    }
Exemple #10
0
    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);
                    }
                }
            }
        }
    }
Exemple #11
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);
    }
Exemple #12
0
    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;
    }
Exemple #13
0
    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;
        }
    }
Exemple #14
0
    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();
    }
Exemple #15
0
    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);
    }
Exemple #16
0
    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);
        }
    }
Exemple #17
0
        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));
        }
Exemple #18
0
    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);
            }
        }
    }