Exemple #1
0
        public Terre(Categorie parent, XmlElement node)
        {
            m_Parent     = parent;
            m_Rentes     = new List <Rente>();
            m_Tresoriers = new List <Tresorier>();

            m_Nom   = Utility.GetText(node["nom"], null);
            m_Type  = Utility.GetXMLInt32(Utility.GetText(node["type"], "-1"), -1);
            m_Fonds = Utility.GetXMLInt32(Utility.GetText(node["fonds"], "0"), 0);

            foreach (XmlElement ele in node.GetElementsByTagName("rente"))
            {
                m_Rentes.Add(new Rente(ele));
            }

            foreach (XmlElement ele in node.GetElementsByTagName("tresorier"))
            {
                int       serial = Utility.GetXMLInt32(Utility.GetText(ele, "0"), 0);
                Tresorier t      = (Tresorier)World.FindMobile(serial);
                if (t != null)
                {
                    m_Tresoriers.Add(t);
                    t.Terre = this;
                }
            }

            m_LastPaiement = Utility.GetXMLDateTime(Utility.GetText(node["lastpaiement"], ""), DateTime.Now);

            DateTime thismonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

            if (m_LastPaiement < thismonth)
            {
                PayerRente();
            }

            TimerProchaineRente();
        }
Exemple #2
0
 private void RetirerCategorie(Categorie c)
 {
     m_Categories.Remove(c);
 }
Exemple #3
0
 public void AjouterCategorie(Categorie cat)
 {
     m_Categories.Add(cat);
 }
Exemple #4
0
            public AttacherTerreGump(Tresorier tr, Categorie ct, int page)
                : base(0, 0)
            {
                tresorier = tr;
                cat       = ct;
                this.page = page;

                this.Closable   = true;
                this.Disposable = true;
                this.Dragable   = true;
                this.Resizable  = false;

                AddPage(0);
                AddBackground(31, 48, 416, 440, 9250);
                AddBackground(39, 56, 400, 424, 3500);

                AddLabel(174, 75, 1301, cat.Nom == "" ? @"Rentes et Géopolitique" : cat.Nom);

                if (cat.Parent != null)
                {
                    AddButton(72, 99, 4014, 4015, (int)Buttons.MenuPrecedent, GumpButtonType.Reply, 0);
                    AddLabel(108, 100, 1301, @"Menu Précédent");
                }

                int maxpages = (cat.CategoriesCount + cat.TerresCount) / 10;
                int i        = -1;
                int basey    = 123;
                int offset   = 0;

                foreach (Categorie c in cat.Categories())
                {
                    i++;
                    if (i < page * 10)
                    {
                        continue;
                    }
                    if ((page + 1) * 10 < i)
                    {
                        break;
                    }
                    AddLabel(86, basey + offset * 30 + 1, 1301, c.Nom);
                    AddButton(354, basey + offset * 30, 4005, 4006, 100 + i, GumpButtonType.Reply, 0);
                    offset = (offset + 1) % 10;
                }
                if (i == -1)
                {
                    i = 0;
                }
                int j = -1;

                foreach (Terre t in cat.Terres())
                {
                    j++;
                    if (i + j < page * 10)
                    {
                        continue;
                    }
                    if ((page + 1) * 10 < i + j)
                    {
                        break;
                    }
                    AddLabel(86, basey + offset * 30 + 1, 1301, t.Nom);
                    AddButton(354, basey + offset * 30, 4011, 4012, 200 + j, GumpButtonType.Reply, 0);
                    offset = (offset + 1) % 10;
                }

                if (page < maxpages)
                {
                    AddButton(402, 418, 5601, 5605, (int)Buttons.NextPage, GumpButtonType.Reply, 0);
                }
                if (page > 0)
                {
                    AddButton(59, 418, 5603, 5607, (int)Buttons.PreviousPage, GumpButtonType.Reply, 0);
                }
            }
Exemple #5
0
 public GeopolPrompt(Categorie p, CatOuTerre e)
 {
     parent = p;
     choix  = e;
 }
Exemple #6
0
        public GeopolGump(Categorie ct, int page) : base(0, 0)
        {
            cat       = ct;
            this.page = page;

            this.Closable   = true;
            this.Disposable = true;
            this.Dragable   = true;
            this.Resizable  = false;

            AddPage(0);
            AddBackground(31, 48, 416, 550, 9250);
            AddBackground(39, 56, 400, 534, 3500);

            AddLabel(174, 75, 1301, cat.Nom == "" ? @"Rentes et Géopolitique" : cat.Nom);


            if (cat.Parent != null)
            {
                AddButton(72, 99, 4014, 4015, (int)Buttons.MenuPrecedent, GumpButtonType.Reply, 0);
                AddLabel(108, 100, 1301, @"Menu Précédent");
            }

            AddButton(209, 440, 4005, 4006, (int)Buttons.AjouterCategorie, GumpButtonType.Reply, 0);
            AddLabel(64, 441, 1301, @"Ajouter une catégorie");
            AddButton(381, 440, 4005, 4006, (int)Buttons.AjouterTerre, GumpButtonType.Reply, 0);
            AddLabel(261, 441, 1301, @"Ajouter une terre");

            AddImageTiled(67, 472, 342, 3, 96);
            AddImage(61, 463, 95);
            AddImage(408, 463, 97);
            AddLabel(209, 486, 1301, @"Gérer les rentes");
            AddButton(330, 485, 4005, 4006, (int)Buttons.GererRentes, GumpButtonType.Reply, 0);
            AddLabel(177, 516, 1301, @"Supprimer la catégorie");
            AddButton(330, 515, 4017, 4018, (int)Buttons.Supprimer, GumpButtonType.Reply, 0);
            AddLabel(99, 546, 1301, @"Afficher le journal des événements");
            AddButton(330, 545, 4011, 4012, (int)Buttons.AfficherJournal, GumpButtonType.Reply, 0);


            int maxpages = (cat.CategoriesCount + cat.TerresCount) / 10;
            int i        = -1;
            int basey    = 123;
            int offset   = 0;

            foreach (Categorie c in cat.Categories())
            {
                i++;
                if (i < page * 10)
                {
                    continue;
                }
                if ((page + 1) * 10 < i)
                {
                    break;
                }
                AddLabel(86, basey + offset * 30 + 1, 1301, c.Nom);
                AddButton(354, basey + offset * 30, 4005, 4006, 100 + i, GumpButtonType.Reply, 0);
                offset = (offset + 1) % 10;
            }
            if (i == -1)
            {
                i = 0;
            }
            int j = -1;

            foreach (Terre t in cat.Terres())
            {
                j++;
                if (i + j < page * 10)
                {
                    continue;
                }
                if ((page + 1) * 10 < i + j)
                {
                    break;
                }
                AddLabel(86, basey + offset * 30 + 1, 1301, t.Nom);
                AddButton(354, basey + offset * 30, 4011, 4012, 200 + j, GumpButtonType.Reply, 0);
                offset = (offset + 1) % 10;
            }

            if (page < maxpages)
            {
                AddButton(402, 418, 5601, 5605, (int)Buttons.NextPage, GumpButtonType.Reply, 0);
            }
            if (page > 0)
            {
                AddButton(59, 418, 5603, 5607, (int)Buttons.PreviousPage, GumpButtonType.Reply, 0);
            }
        }
Exemple #7
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile from   = sender.Mobile;
            int    button = info.ButtonID;

            switch (button)
            {
            case (int)Buttons.AjouterCategorie:
                if (cat == null)
                {
                    break;
                }
                if (cat.CategoriesCount > 15)
                {
                    from.SendMessage("Vous ne pouvez avoir plus de 16 catégories sous une même catégorie.");
                    from.SendGump(new GeopolGump(cat));
                    break;
                }
                from.SendMessage("Entrez le nom de la catégorie que vous désirez créer.");
                from.Prompt = new GeopolPrompt(cat, GeopolPrompt.CatOuTerre.Categorie);
                break;

            case (int)Buttons.AjouterTerre:
                if (cat == null)
                {
                    break;
                }
                if (cat.TerresCount > 255)
                {
                    from.SendMessage("Vous ne pouvez pas avoir plus de 256 terres sous une même catégorie.");
                }
                from.SendMessage("Entrez le nom de la terre que vous désirez créer.");
                from.Prompt = new GeopolPrompt(cat, GeopolPrompt.CatOuTerre.Terre);
                break;

            case (int)Buttons.AfficherJournal:
                FunctionNonImplementee(from);
                break;

            case (int)Buttons.GererRentes:
                from.SendGump(new GererRentesGump());
                break;

            case (int)Buttons.Supprimer:
                if (cat != null)
                {
                    if (cat == Geopolitique.geopolitique)
                    {
                        from.SendMessage("Vous ne pouvez supprimer la catégorie principale.");
                        from.SendGump(new GeopolGump(cat));
                        return;
                    }
                    if (cat.CategoriesCount > 0 || cat.TerresCount > 0)
                    {
                        from.SendMessage("Vous ne pouvez supprimer une catégorie que si elle ne contient " +
                                         "pas de terres ou d'autres catégories.");
                        from.SendGump(new GeopolGump(cat, page));
                    }
                    else
                    {
                        Categorie c = cat.Parent;
                        cat.SupprimerCategorie();
                        from.SendMessage("La catégorie a été retirée.");
                        from.SendGump(new GeopolGump(c));
                    }
                }
                else if (terre != null)
                {
                    from.SendMessage("Supprimer la terre va détacher tous les trésoriers de la terre et " +
                                     "ils n'auront plus accès aux fonds et à la rente.");
                    from.SendMessage("Êtes vous certains de vouloir continuer?");
                    from.Prompt = new SupprimerTerrePrompt(terre);
                }
                break;

            case (int)Buttons.NextPage:
                if (cat != null)     //C'est un ou l'autre
                {
                    from.SendGump(new GeopolGump(cat, page + 1));
                }
                else if (terre != null)
                {
                    from.SendGump(new GeopolGump(terre, page + 1));
                }
                break;

            case (int)Buttons.PreviousPage:
                if (cat != null)     //C'est un ou l'autre
                {
                    from.SendGump(new GeopolGump(cat, page - 1));
                }
                else if (terre != null)
                {
                    from.SendGump(new GeopolGump(terre, page - 1));
                }
                break;

            case (int)Buttons.MenuPrecedent:
                if (cat != null)
                {
                    if (cat.Parent != null)
                    {
                        from.SendGump(new GeopolGump(cat.Parent));
                    }
                }
                break;

            case (int)Buttons.AjouterTresorier:
                if (terre == null)
                {
                    break;
                }
                from.SendMessage("Entrez une description pour le trésorier que vous désirez créer.");
                from.Prompt = new TresorierPrompt(terre);
                break;

            case (int)Buttons.RetourCategorie:
                if (terre != null)
                {
                    from.SendGump(new GeopolGump(terre.Parent));
                }
                break;

            case (int)Buttons.ChangerNom:
                if (terre != null)
                {
                    from.SendMessage("Veuillez entrer le nouveau nom pour la terre.");
                    from.Prompt = new RenommerTerrePrompt(terre);
                }
                break;

            case (int)Buttons.ModifierFonds:
                if (terre != null)
                {
                    from.SendMessage("Veuillez indiquer quel montant la terre doit avoir.");
                    from.Prompt = new ModifierFondsPrompt(terre);
                }
                break;

            //case (int)Buttons.ModifierRentes:

            //    break;

            case (int)Buttons.ChangerType:
                if (terre != null)
                {
                    from.SendGump(new ChoisirTypeGump(terre, 0));
                }
                break;
            }

            if (cat != null && button >= 100 && button < 100 + cat.CategoriesCount)
            {
                from.SendGump(new GeopolGump(cat.CategorieParIndex(button - 100)));
            }
            if (cat != null && button >= 200 && button < 200 + cat.TerresCount)
            {
                from.SendGump(new GeopolGump(cat.TerreParIndex(button - 200)));
            }
            if (terre != null && button >= 300 && button < 300 + terre.TresorierCount)
            {
                from.SendGump(new TresorierGump(terre.TresorierParIndex(button - 300), from, 0));
            }
        }
Exemple #8
0
 public GeopolGump(Categorie ct)
     : this(ct, 0)
 {
 }