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(); }
private void RetirerCategorie(Categorie c) { m_Categories.Remove(c); }
public void AjouterCategorie(Categorie cat) { m_Categories.Add(cat); }
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); } }
public GeopolPrompt(Categorie p, CatOuTerre e) { parent = p; choix = e; }
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); } }
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)); } }
public GeopolGump(Categorie ct) : this(ct, 0) { }