Example #1
0
        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");
        }
Example #2
0
        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);
        }
Example #3
0
 public DonEntry(DonEnum don, ClasseType classe, int giveatlevel, bool choosen)
 {
     //  mValue = 1;
     mChoosen     = choosen;
     mDon         = don;
     mClasse      = classe;
     mGiveAtLevel = giveatlevel;
 }
Example #4
0
        public static bool IsValid(PlayerMobile m, ClasseType classe)
        {
            ClasseInfo info = GetInfos(classe);

            if (m == null || info == null)
            {
                return(false);
            }

            return(true);
        }
Example #5
0
 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;
 }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
        }
Example #8
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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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;
             *        }
             *
             *
             *    }
             * }*/
        }
Example #12
0
        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);
            }
        }
Example #13
0
        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++;
                    }
                }
            }
        }