public static string GetNameClasse(ClasseType ct) { switch (ct) { case ClasseType.Barbare: return("Barbare"); case ClasseType.Barde: return("Barde"); case ClasseType.Guerrier: return("Guerrier"); case ClasseType.Mage: return("Mage"); case ClasseType.Moine: return("Moine"); case ClasseType.ArtisanSoigneur: return("Artisan: Soigneur"); case ClasseType.Rodeur: return("Rôdeur"); case ClasseType.Roublard: return("Roublard"); case ClasseType.ArtisanAlchimiste: return("Artisan: Alchimiste"); case ClasseType.ArtisanCouturier: return("Artisan: Couturier"); case ClasseType.ArtisanEbeniste: return("Artisan: Ebeniste"); case ClasseType.ArtisanForgeron: return("Artisan: Forgeron"); case ClasseType.ArtisanIngenieur: return("Artisan: Ingenieur"); case ClasseType.ArtisanPaysan: return("Artisan: Paysan"); } return("Classe: Inconnu"); }
public static Hashtable GetCompetences(ClasseType classe) { Hashtable table = new Hashtable(); ClasseInfo info = GetInfos(classe); ClasseCompetences[] cpt = null; if (info == null) { return(table); } cpt = info.ClasseCompetences; if (cpt != null) { for (int i = 0; i < cpt.Length; ++i) { ClasseCompetences competences = cpt[i]; if (!table.ContainsKey(competences.SkillName)) { table.Add(competences.SkillName, competences.Value); } } } return(table); }
public DonEntry(DonEnum don, ClasseType classe, int giveatlevel, bool choosen) { // mValue = 1; mChoosen = choosen; mDon = don; mClasse = classe; mGiveAtLevel = giveatlevel; }
public static bool IsValid(PlayerMobile m, ClasseType classe) { ClasseInfo info = GetInfos(classe); if (m == null || info == null) { return(false); } return(true); }
public ClasseInfo(ClasseType classe, ClasseCompetences[] classeCompetences, string name, string[] noms, string role, ClasseBranche branche, int image, int tooltip) { m_Classe = classe; m_ClasseCompetences = classeCompetences; m_Nom = name; m_Noms = noms; m_Role = role; m_ClasseBranche = branche; m_Image = image; m_Tooltip = tooltip; }
public FicheClasseGump(PlayerMobile from, ClasseType classeType, int pageClasse, int pageMetier) : base(from, "Classe", 560, 622, 2) { m_classeType = classeType; m_pageClasse = pageClasse; m_pageMetier = pageMetier; int x = XBase; int y = YBase; int line = 0; int scale = 25; y = 650; x = 90; int space = 80; List <string> listDon = new List <string>(); string temp = String.Empty; string nomTemp = String.Empty; string descrTemp = String.Empty; string reqTemp = String.Empty; /*Classe*/ if (classeType != ClasseType.None && classeType != ClasseType.Maximum) { ClasseInfo info = Classes.GetInfos(classeType); AddButton(x, y + line * scale, 8, info.Image); AddTooltip(info.Tooltip); for (int i = 0; i < info.ClasseCompetences.Length; i++) { temp += info.ClasseCompetences[i].SkillName.ToString() + ": " + info.ClasseCompetences[i].Value.ToString() + "%"; if (i != info.ClasseCompetences.Length - 1) { temp += Environment.NewLine; } } line = 12; AddSection(x, y + line * scale, 540, 120, "Compétences appliquées au niveau 30", temp); line -= 3; AddButton(x, y + (line * scale) + 10, 52, 52, 8, GumpButtonType.Reply, 0); AddHtml(x + 50, y + (line * scale) + 22, 200, 20, "<h3><basefont color=#025a>Classe<basefont></h3>", false, false); } else { line = 11; AddButton(x, y + (line * scale) + 10, 52, 52, 8, GumpButtonType.Reply, 0); AddHtml(x + 50, y + (line * scale) + 22, 200, 20, "<h3><basefont color=#025a>Classe<basefont></h3>", false, false); } }
public GumpChoixClasse(NubiaPlayer _owner, bool _creation, int _choix) : base("Choix de la " + (_creation ? "Première classe" : "classe"), 250, 485) { //Closable = false; Closable = !creation; m_owner = _owner; creation = _creation; choix = _choix; int y = YBase; int x = XBase; int line = 0; int scale = 25; int decal = 5; ClasseType possClasse = ClasseType.Maximum; bool canArtisan = true; int countArtisan = 0; foreach (Classe c in m_owner.GetClasses()) { possClasse = c.CType; if (c is ClasseArtisan) { countArtisan++; } } canArtisan = countArtisan <= 2; for (int i = 0; i < (int)ClasseType.Maximum; ++i) { if ((ClasseType)i == possClasse && possClasse != ClasseType.Maximum) { continue; } //Bloquage du multiclassage de Magicien/Ensorceleur /* if (((ClasseType)i == ClasseType.Magicien && possClasse == ClasseType.Ensorceleur) || * ((ClasseType)i == ClasseType.Ensorceleur && possClasse == ClasseType.Magicien)) * continue;*/ if ((ClasseType)i < ClasseType.ArtisanSoigneur || canArtisan) { AddButtonTrueFalse(x, y + (line * scale), i + 100, (choix == i), Classe.GetNameClasse((ClasseType)i)); } line++; } AddButton(x, y + (line * scale), 0x850, 0x851, 99, GumpButtonType.Reply, 0); }
public static ClasseInfo GetInfos(ClasseType classe) { ClasseInfo info = null; switch (classe) { case ClasseType.Archer: info = ClasseArcher.ClasseInfo; break; case ClasseType.Barbare: info = ClasseBarbare.ClasseInfo; break; case ClasseType.Guerrier: info = ClasseGuerrier.ClasseInfo; break; case ClasseType.Cavalier: info = ClasseCavalier.ClasseInfo; break; case ClasseType.Duelliste: info = ClasseDuelliste.ClasseInfo; break; case ClasseType.Protecteur: info = ClasseProtecteur.ClasseInfo; break; case ClasseType.Champion: info = ClasseChampion.ClasseInfo; break; case ClasseType.Magicien: info = ClasseMagicien.ClasseInfo; break; case ClasseType.Sorcier: info = ClasseSorcier.ClasseInfo; break; case ClasseType.Necromancien: info = ClasseNecromancien.ClasseInfo; break; case ClasseType.Illusioniste: info = ClasseIllusioniste.ClasseInfo; break; case ClasseType.Conjurateur: info = ClasseConjurateur.ClasseInfo; break; case ClasseType.Paladin: info = ClassePaladin.ClasseInfo; break; case ClasseType.PaladinDechu: info = ClassePaladinDechu.ClasseInfo; break; case ClasseType.Pretre: info = ClassePretre.ClasseInfo; break; case ClasseType.Espion: info = ClasseEspion.ClasseInfo; break; case ClasseType.Rodeur: info = ClasseRodeur.ClasseInfo; break; case ClasseType.Assassin: info = ClasseAssassin.ClasseInfo; break; case ClasseType.Voleur: info = ClasseVoleur.ClasseInfo; break; case ClasseType.Barde: info = ClasseBarde.ClasseInfo; break; case ClasseType.Artisan: info = ClasseArtisan.ClasseInfo; break; default: info = BaseClasse.ClasseInfo; break; } return(info); }
public static bool IsValidChange(ClasseType oldClass, ClasseType newClass) { /*ClasseInfo oldinfo = GetInfos(oldClass); * ClasseInfo info = GetInfos(newClass); * * if (info == null) * return false; * * return (info.ClasseAvant == oldClass || (info != null && oldinfo != null && info.ClasseAvant == Classe.Aucune && oldinfo.ClasseAvant == Classe.Aucune && info.ClasseArbre == oldinfo.ClasseArbre));*/ return(true); }
public static Type GetClasse(ClasseType ct) { //Console.WriteLine("GetClasse dans Classe: "+ct); Type type = typeof(ClasseGuerrier); switch (ct) { case ClasseType.Barbare: type = typeof(ClasseBarbare); break; case ClasseType.Barde: type = typeof(ClasseBarde); break; case ClasseType.Guerrier: type = typeof(ClasseGuerrier); break; case ClasseType.Mage: type = typeof(ClasseMage); break; case ClasseType.Moine: type = typeof(ClasseMoine); break; case ClasseType.ArtisanSoigneur: type = typeof(ArtisanSoigneur); break; case ClasseType.Rodeur: type = typeof(ClasseRodeur); break; case ClasseType.Roublard: type = typeof(ClasseRoublard); break; case ClasseType.ArtisanAlchimiste: type = typeof(ArtisanAlchimiste); break; case ClasseType.ArtisanCouturier: type = typeof(ArtisanCouturier); break; case ClasseType.ArtisanEbeniste: type = typeof(ArtisanEbeniste); break; case ClasseType.ArtisanForgeron: type = typeof(ArtisanForgeron); break; case ClasseType.ArtisanIngenieur: type = typeof(ArtisanIngenieur); break; case ClasseType.ArtisanPaysan: type = typeof(ArtisanPaysan); break; } return(type); }
public GumpDonChoix(NubiaPlayer owner, ClasseType c) : base("Choix de don", 300, 450) { Closable = true; int y = YBase; int x = XBase; int line = 0; int scale = 25; int decal = 5; mOwner = owner; cl = c; int page = 0; /* int xprev = 0; * int linePerPage = 19; * int totalPage = totalLines / 19 + page; * int donsDispo = DndHelper.getDonTotal(mOwner.Niveau);* * * /* if (line == 1) * { * AddPage(page); * AddButton(xprev, yprevnext, 4014, 4015, 5, GumpButtonType.Page, page - 1); * if (page < totalPage) * AddButton(xnext, yprevnext, 4005, 4006, 6, GumpButtonType.Page, page + 1); * else * AddButton(xnext, yprevnext, 4005, 4006, 6, GumpButtonType.Page, page); * * AddLabel(XCol, y + line * scale, ColorTextYellow, "Dons du personnage"); * line++; * if (donsDispo > 0 || mOwner.Dons.DonsEntrys.ContainsKey(DonEnum.DonSupClasse)) * { * AddSimpleButton(XCol, y + line * scale, 90, "Choisir un don ( " + donsDispo + " disponibles )", ColorTextGreen); * line++; * } * }*/ /* AddPage(0); * if ( mOwner.DonCredits.ContainsKey(cl) ) * { * if (cl != ClasseType.None) * { * * if (mOwner.Dons.DonsEntrys.ContainsKey(DonEnum.DonSupClasse)) * { * DonEntry entry = mOwner.Dons.DonsEntrys[DonEnum.DonSupClasse]; * AddLabel(x, y, ColorTextYellow, "Don supplémentaire de " + Classe.GetNameClasse(cl) + " niveau " + entry.GiveAtLevel); * line++; * DonEnum[] dispos = owner.getClasse(entry.Classe).getCustomDon(mOwner, entry.GiveAtLevel); * for (int d = 0; d < dispos.Length; d++) * { * if (BaseDon.DonBank.ContainsKey(dispos[d].ToString().ToLower()) && !mOwner.hasDon(dispos[d])) * { * BaseDon don = BaseDon.DonBank[dispos[d].ToString().ToLower()]; * list.Add(don.DType); * * } * } * } * else * { * // mOwner.SendMessage("BUG PAGEZ (Demandez Nexam. Bug N°01"); * } * } * else if (cl == ClasseType.None) * { * * // int libre = DndHelper.getDonTotal(owner.Niveau); * // if (libre > 0) * if (mOwner.Dons.DonsEntrys.ContainsKey(DonEnum.DonSupClasse)) * { * AddLabel(x, y, ColorTextGreen, "Dons Disponible : " + mOwner.DonCredits[ClasseType.None]); * for (int d = (int)DonEnum.AffiniteMagique; d < (int)DonEnum.Maximum; d++) * { * if (BaseDon.DonBank.ContainsKey(((DonEnum)d).ToString().ToLower()) && !mOwner.hasDon(((DonEnum)d))) * { * BaseDon don = BaseDon.DonBank[((DonEnum)d).ToString().ToLower()]; * if (don.hasConditions(mOwner)) * { * list.Add(don.DType); * * } * } * } * } * else * { * // mOwner.SendMessage("BUG PAGEZ (Demandez Nexam. Bug N°02"); * } * } * * int xnext = x + 200, xprev = x + 10, yprevnext = y + scale; * int linePerPage = 15; * * int totalPage = list.Count / linePerPage + 1; * * page = 1; * line = 1; * AddPage(1); * for (int d = 0; d < list.Count; d++) * { * * if (line == 1) * { * AddPage(page); * if (page > 1) * AddButton(xprev, yprevnext, 4014, 4015, 5, GumpButtonType.Page, page - 1); * * if (page < totalPage) * AddButton(xnext, yprevnext, 4005, 4006, 6, GumpButtonType.Page, page + 1); * // else * // AddButton(xnext, yprevnext, 4005, 4006, 6, GumpButtonType.Page, page); * * } * line++; * * DonEnum don = (DonEnum)list[d]; * string dname = ""; * if (BaseDon.DonBank.ContainsKey(don.ToString().ToLower())) * dname = BaseDon.DonBank[don.ToString().ToLower()].Name; * else * dname = don.ToString(); * * AddSimpleButton(x + 10, y + line * scale, d + 500, dname); * * if (line > linePerPage) * { * page++; * AddPage(page); * line = 1; * } * * * } * }*/ }
public FicheClassesInfoGump(PlayerMobile from, ClasseType classeType, int page) : base("Classe & Métier", 560, 622) { m_from = from; m_classeType = classeType; m_page = page; int x = XBase; int y = YBase; int line = 0; int scale = 25; int lineMax = 4; y = 650; x = 90; int space = 80; AddMenuItem(x, y, 1178, 1, true); x += space; AddMenuItem(x, y, 1179, 2, false); x += space; AddMenuItem(x, y, 1180, 3, true); x += space; AddMenuItem(x, y, 1194, 4, true); x += space; AddMenuItem(x, y, 1196, 5, true); x += space; AddMenuItem(x, y, 1222, 6, true); x += space; AddMenuItem(x, y, 1191, 7, true); x = XBase; y = YBase; AddTitre(x + 360, y + line * scale, 190, "Classes"); ++line; for (int i = page * lineMax; i < (page * lineMax) + lineMax && i < (int)ClasseType.Maximum; i++) { ClasseInfo tmp = Classes.GetInfos((ClasseType)i); AddButton(x + 360, y + line * scale, 0x4b9, 0x4bA, i + 50, GumpButtonType.Reply, 0); AddHtmlTexte(x + 375, y + line * scale, DefaultHtmlLength, ((ClasseType)i).ToString()); ++line; } if (page > 0) { AddButton(x + 360, y + line * scale, 4014, 4015, 10, GumpButtonType.Reply, 0); } if (page < (int)ClasseType.Maximum / lineMax) { AddButton(x + 500, y + line * scale, 4005, 4006, 11, GumpButtonType.Reply, 0); } ++line; if (classeType != ClasseType.None && classeType != ClasseType.Maximum) { ClasseInfo info = Classes.GetInfos(classeType); int linetmp = line; line = 0; //if (from.ClasseType == ClasseType.None) //{ // AddButton(x + 195, y + (line * scale), 52, 52, 8, GumpButtonType.Reply, 0); // AddHtml(x + 245, y + (line * scale) + 12, 200, 20, "<h3><basefont color=#025a>Choisir<basefont></h3>", false, false); //} AddButton(x, y + line * scale, 9, info.Image); AddTooltip(info.Tooltip); //// Apparait en double pour assurer l'affichage correct ainsi que la priorite du bouton. //if (from.ClasseType == ClasseType.None) //{ // AddButton(x + 195, y + (line * scale), 52, 52, 8, GumpButtonType.Reply, 0); // AddHtml(x + 245, y + (line * scale) + 12, 200, 20, "<h3><basefont color=#025a>Choisir<basefont></h3>", false, false); //} line = linetmp; AddSection(x + 240, y + line * scale, 300, 90, info.Nom, info.Role); List <string> listDon = new List <string>(); string temp = String.Empty; string nomTemp = String.Empty; string descrTemp = String.Empty; string reqTemp = String.Empty; for (int i = 0; i < info.ClasseCompetences.Length; i++) { temp += info.ClasseCompetences[i].SkillName.ToString() + ": " + info.ClasseCompetences[i].Value.ToString() + "%"; if (i != info.ClasseCompetences.Length - 1) { temp += Environment.NewLine; } } line = 12; AddSection(x, y + line * scale, 540, 180, "Compétences appliquées au niveau 30", temp); } }
public GumpNewDonChoix(NubiaPlayer _owner, ClasseType c, int niveauClasse, DonEnum donView, int page) : base("Dons de " + _owner.Name, 640, 480) { m_owner = _owner; mDonView = donView; m_classe = c; m_niveau = niveauClasse; m_page = page; int y = YBase; int x = XBase; int line = 4; int scale = 25; int decal = 10; int col = 0; int coldecal = 310; int limit = 16; if (m_owner.Dons == null) { return; } List <BaseDon> donDispo = new List <BaseDon> (); int nbrPage = BaseDon.DonBank.Values.Count / (limit * 2); if (page > 0) { AddButton(x + 500, y, 4014, 4015, 5, GumpButtonType.Reply, page - 1); } if (page < nbrPage) { AddButton(x + 550, y, 4005, 4006, 6, GumpButtonType.Reply, page + 1); } if (mDonView != DonEnum.DonSupClasse) { AddBackground(x, y, 300, 50, 9400); AddLabel(x + 5, y + 2, ColorTextYellow, BaseDon.getDonName(mDonView)); int cd = 200; if (m_classe > ClasseType.Roublard) { cd -= 55; } AddLabel(x + 5 + cd, y + 2, ColorTextLight, (m_classe == ClasseType.None ? "Général" : Classe.GetNameClasse(m_classe))); AddLabel(x + 5 + 250, y + 2, ColorText, "Niv " + m_niveau.ToString()); AddBackground(x, y + 25, 300, 80, 9200); BaseDon don = BaseDon.getDon(mDonView); if (don != null) { AddImage(x + 10, y + 40, don.Icone); // AddLabel(x + 10, y + 80, ColorTextYellow, "Rang:" + m_owner.Dons.getDonNiveau(don)); String desc = don.Description; if (don.CanUse) { desc += "<br>(Utilisation: .don " + don.ToString() + ")"; } AddHtml(x + 60, y + 35, 235, 60, desc, true, true); if (don.hasConditions(m_owner)) { AddButtonPageSuivante(x + coldecal, y, 9); AddLabel(x + coldecal + 60, y, ColorTextYellow, "Apprendre ce don"); } } } if (c == ClasseType.None) { BaseDon[] donArray = new BaseDon[BaseDon.DonBank.Values.Count]; BaseDon.DonBank.Values.CopyTo(donArray, 0); int mini = page * limit * 2; int count = 0; for (int b = 0; b < donArray.Length; b++) { BaseDon don = donArray[b]; if ((int)don.DType >= 1000 && !(m_owner.hasDon(don.DType) && don.AchatMax <= 1)) { count++; if (count < mini) { continue; } if (donDispo.Count < limit * 2) { donDispo.Add(don); } else { break; } } /* if (donDispo.Count > limit * 2) * break;*/ } foreach (BaseDon d in donDispo) { if (d != null) { addDonChoix(x + col * coldecal, decal + y + line * scale, d.DType, d.hasConditions(m_owner)); if (line > limit) { line = 0; col++; if (col >= 2) { break; } } line++; } } } else { DonEnum[] enumlist = m_owner.getClasse(m_classe).getCustomDon(m_owner, m_niveau); BaseDon[] donArray = new BaseDon[enumlist.Length]; int mini = page * limit * 2; int count = 0; for (int b = 0; b < enumlist.Length; b++) { BaseDon don = BaseDon.getDon(enumlist[b]); if (don == null) { continue; } if ((int)don.DType >= 1000 && !(m_owner.hasDon(don.DType) && don.AchatMax <= 1)) { count++; if (count < mini) { continue; } if (donDispo.Count < limit * 2) { donDispo.Add(don); } else { break; } count++; } /* if (donDispo.Count > limit * 2) * break;*/ } foreach (BaseDon d in donDispo) { if (d != null) { addDonChoix(x + col * coldecal, decal + y + line * scale, d.DType, d.hasConditions(m_owner)); if (line > limit) { line = 0; col++; if (col >= 2) { break; } } line++; } } } }