Beispiel #1
0
        public override int getBonusReflexe(SortEnergie ecole)
        {
            int[] reflex = new int[]
            {
                0,    //0
                0,    //1
                0,    //2
                1,    //3
                1,    //4
                1,    //5
                2,    //6
                2,    //7
                2,    //8
                3,    //9
                3,    //10
                3,    //11
                4,    //12
                4,    //13
                4,    //14
                5,    //15
                5,    //16
                5,    //17
                6,    //18
                6,    //19
                6     //20
            };


            return(reflex[Math.Min(mMonsterNiveau, 20)] + mMonsterReflexe);
        }
        public static SortEnergie[] getAdaptedComp(SortNubia originale, NubiaPlayer eleve)
        {
            //SortNubia newSortNubia = (SortNubia)KonohaHelper.CopyItem(originale);
            ArrayList compPoss = new ArrayList();

            for (int i = 0; i < originale.allowCompetence.Length; i++)
            {
                CompType comp = (CompType)originale.allowCompetence[i];
                Console.WriteLine("Competence autorisé pour le SortNubia: " + comp.ToString());
                //if(eleve.getValueFor(comp) > 0.0)
                //{
                //	Console.WriteLine("-- Competence Ok pour l'élève: "+comp.ToString() );
                //TODO
                compPoss.Add(comp);
                //}
            }
            if (compPoss.Count == 0)
            {
                return(null);
            }
            SortEnergie[] cp = new SortEnergie[compPoss.Count];

            for (int f = 0; f < cp.Length; f++)
            {
                cp[f] = (SortEnergie)compPoss[f];
            }
            return(cp);
        }
Beispiel #3
0
        public override int getBonusVigueur(SortEnergie ecole)
        {
            int[] vig = new int[]
            {
                0,    //0
                2,    //1
                3,    //2
                3,    //3
                4,    //4
                4,    //5
                5,    //6
                5,    //7
                6,    //8
                6,    //9
                7,    //10
                7,    //11
                8,    //12
                8,    //13
                9,    //14
                9,    //15
                10,   //16
                10,   //17
                11,   //18
                11,   //19
                12    //20
            };


            return(vig[Math.Min(mMonsterNiveau, 20)] + mMonsterVigueur);
        }
Beispiel #4
0
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            NubiaPlayer player = sender.Mobile as NubiaPlayer;
            int         id     = info.ButtonID;

            if (id == 5)
            {
                player.SendMessage("Vous possédez maintenant les affinités " + (mDomaine != SortDomaine.All ? SortNubiaHelper.getDomaineString(mDomaine) : "???") + " / " +
                                   (mEnergie != SortEnergie.All ? SortNubiaHelper.getEnergieString(mEnergie) : "???"));
                player.Domaine = mDomaine;
                player.Energie = mEnergie;
            }
            else if (id >= 501)
            {
                sender.Mobile.SendGump(new SortMaitriseGump((NubiaPlayer)sender.Mobile, mDomaine, mEnergie, (MageSpe)(id - 500)));
            }
            else if (id >= 100)
            {
                SortEnergie ener = (SortEnergie)(id - 100);
                sender.Mobile.SendGump(new SortMaitriseGump((NubiaPlayer)sender.Mobile, mDomaine, ener, mMageSpecialise));
            }
            else if (id >= 50)
            {
                SortDomaine dom = (SortDomaine)(id - 50);
                sender.Mobile.SendGump(new SortMaitriseGump((NubiaPlayer)sender.Mobile, dom, mEnergie, mMageSpecialise));
            }
        }
Beispiel #5
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            m_owner      = (NubiaPlayer)reader.ReadMobile();
            m_createur   = reader.ReadString();
            m_name       = reader.ReadString();
            m_time       = reader.ReadDouble();
            m_timeToCast = reader.ReadDouble();

            m_maitrise = reader.ReadDouble();
            m_distance = reader.ReadInt();
            m_energie  = (SortEnergie)reader.ReadInt();
            //	m_skill = (SkillName)reader.ReadInt();
            m_emote = reader.ReadString();

            m_couleur = (MagieColor)reader.ReadInt();
            m_state   = (MagieState)reader.ReadInt();
            m_disturb = (MagieDisturb)reader.ReadInt();

            m_condition = (MagieCondition)reader.ReadInt();
            m_Object    = (Item)reader.ReadItem();
            m_Mobile    = (Mobile)reader.ReadMobile();
            m_SortNubia = (SortNubia)reader.ReadItem();

            if (m_owner != null)
            {
                m_owner.Magie.addSort(this);
            }

            //Console.WriteLine("Deserialize SortNubia: " +Nom);
        }
Beispiel #6
0
        public override int getBonusVolonte(SortEnergie ecole)
        {
            int[] vol = new int[]
            {
                0,    //0
                0,    //1
                1,    //2
                1,    //3
                1,    //4
                1,    //5
                2,    //6
                2,    //7
                2,    //8
                3,    //9
                3,    //10
                3,    //11
                4,    //12
                4,    //13
                4,    //14
                5,    //15
                5,    //16
                5,    //17
                6,    //18
                6,    //19
                6     //20
            };


            return(vol[Math.Min(mMonsterNiveau, 20)] + mMonsterVolonte);
        }
Beispiel #7
0
        public int getSauvegarde(SauvegardeEnum sauvegarde, SortEnergie ecole)
        {
            int save = 0;

            foreach (SauvegardeMod mod in mSauvegardes)
            {
                if (mod.Sauvegarde != sauvegarde)
                {
                    continue;
                }
                if (mod.Ecoles.Length == 0)
                {
                    save += mod.Value;
                }
                else
                {
                    for (int e = 0; e < mod.Ecoles.Length && ecole != SortEnergie.All; e++)
                    {
                        if (mod.Ecoles[e] == ecole)
                        {
                            save += mod.Value;
                            break;
                        }
                    }
                }
            }
            return(save);
        }
        public static string getEnergieString(SortEnergie dom)
        {
            switch (dom)
            {
            case SortEnergie.All: return("Tous");

            case SortEnergie.Air: return("Air");

            case SortEnergie.Eau: return("Eau");

            case SortEnergie.Feu: return("Feu");

            case SortEnergie.Matiere: return("Matières");

            case SortEnergie.Mental: return("Mental");

            case SortEnergie.Mort: return("Mort");

            case SortEnergie.Piege: return("Pièges");

            case SortEnergie.Terre: return("Terre");

            case SortEnergie.Vie: return("Vie");
            }
            return("energie");
        }
Beispiel #9
0
 public static double getModusStr(SortEnergie comp)
 {
     switch (comp)
     {
     case SortEnergie.All: return(1.0); break;
     }
     return(1.0);
 }
Beispiel #10
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            mIsElite = reader.ReadBool();
            if (version >= 1)
            {
                mEnergie = (SortEnergie)reader.ReadInt();
            }
        }
Beispiel #11
0
        public static double calculMaitriseEnergie(SortEnergie energie, SortEnergie enerMaitre, MageSpe magespe)
        {
            double p     = 0;
            int    ecart = 0;

            if (energie != enerMaitre)
            {
                int inc = 0;
                int dec = 0;
                ecart++;
                int count = (int)SortEnergie.Maximum - (int)(SortEnergie.All + 1);

                for (int rang = (int)enerMaitre; inc <= count; rang++)
                {
                    if ((SortEnergie)rang == energie)
                    {
                        break;
                    }
                    //    inc++;
                    if (rang >= (int)SortEnergie.Maximum)
                    {
                        rang = (int)SortEnergie.All;
                    }
                    else
                    {
                        inc++;
                    }
                }
                for (int rang = (int)(enerMaitre); dec <= count; rang--)
                {
                    if ((SortEnergie)rang == energie)
                    {
                        break;
                    }

                    if (rang <= (int)SortEnergie.All)
                    {
                        rang = (int)SortEnergie.Maximum;
                    }
                    else
                    {
                        dec++;
                    }
                }
                //     Console.WriteLine(energie.ToString() + "= " + inc + "," + dec);
                ecart = Math.Min(inc, dec);
            }

            p = algoSelectionSouple(ecart, magespe);

            return(p);
        }
Beispiel #12
0
        public static void MakeParalyzeEffect(NubiaPlayer caster, Mobile cible, SortEnergie type, double time)
        {
            int effet = 0xD26;

            if (type == SortEnergie.Vie)
            {
                switch (Utility.RandomMinMax(0, 3))
                {
                case 0: effet = 3378; break;

                case 1: effet = 3379; break;

                case 2: effet = 3391; break;

                case 3: effet = 3392; break;
                }
            }
            if (type == SortEnergie.Terre)
            {
                switch (Utility.RandomMinMax(0, 3))
                {
                case 0: effet = 6001; break;

                case 1: effet = 6002; break;

                case 2: effet = 6005; break;

                case 3: effet = 6005; break;
                }
            }
            if (type == SortEnergie.Terre)
            {
                switch (Utility.RandomMinMax(0, 3))
                {
                case 0: effet = 12252; break;

                case 1: effet = 12253; break;

                case 2: effet = 12262; break;

                case 3: effet = 12263; break;
                }
            }
            if (type == SortEnergie.Terre)
            {
                effet = 13597;
            }
            cible.FixedParticles(effet, (int)(time * 20), 32, 5030, -1, (int)MagieRender.Normal, EffectLayer.Waist);
        }
Beispiel #13
0
        public static int getMur(SortEnergie comp)
        {
            int id = 0x90;

            if (comp == SortEnergie.Mental)
            {
                id = Utility.RandomList(0x3946, 0x3956, 0x3967, 0x3979);
            }
            else if (comp == SortEnergie.Feu)
            {
                id = Utility.RandomList(0x398F, 0x3996);
            }
            else if (comp == SortEnergie.Air)
            {
                id = Utility.RandomList(0x3789);
            }
            else if (comp == SortEnergie.Terre)
            {
                id = Utility.RandomList(0x80, 0x81, 0x82, 0x83, 0x84, 0x85);
            }
            else if (comp == SortEnergie.Terre)
            {
                id = Utility.RandomList(0x37EB);
            }
            else if (comp == SortEnergie.Eau)
            {
                id = Utility.RandomList(0x3709, 0x90D);
            }
            else if (comp == SortEnergie.Mort)
            {
                id = Utility.RandomList(0x1A01, 0x1A02, 0x1A03, 0x1A04, 0x1A05, 0x1A06, 0x1A09, 0x1A0A, 0x1A0B, 0x1A0C, 0x1A0D, 0x1A0E);
            }
            else if (comp == SortEnergie.Mort)
            {
                id = Utility.RandomList(0x124D, 0x124B);
            }
            else if (comp == SortEnergie.Mort)
            {
                id = Utility.RandomList(0x373A, 0x375A);
            }
            else if (comp == SortEnergie.Vie)
            {
                id = Utility.RandomList(0xD94, 0xD98, 0x247D, 0xCDA, 0x224C, 0x26ED);
            }

            return(id);
        }
Beispiel #14
0
        public virtual int getBonusVigueur(SortEnergie ecole)
        {
            int bonus = 0;

            foreach (BaseBuff b in BuffList)
            {
                bonus += b.getSauvegarde(SauvegardeEnum.Vigueur, ecole);
            }
            foreach (BaseDebuff d in DebuffList)
            {
                bonus += d.getSauvegarde(SauvegardeEnum.Vigueur, ecole);
            }

            bonus += (int)DndHelper.GetCaracMod(this, DndStat.Constitution);

            return(bonus);
        }
Beispiel #15
0
        public virtual int getBonusReflexe(SortEnergie ecole)
        {
            int bonus = 0;

            foreach (BaseBuff b in BuffList)
            {
                bonus += b.getSauvegarde(SauvegardeEnum.Reflexe, ecole);
            }
            foreach (BaseDebuff d in DebuffList)
            {
                bonus += d.getSauvegarde(SauvegardeEnum.Reflexe, ecole);
            }

            bonus += (int)DndHelper.GetCaracMod(this, DndStat.Dexterite);

            return(bonus);
        }
        public SortCreationChoixEnergie(NubiaPlayer _owner, SortNubia _SortNubia)
            : base("Tissage de sort", 270, 270)
        {
            m_owner     = _owner;
            m_SortNubia = _SortNubia;


            bool GM = (m_owner.AccessLevel >= AccessLevel.GameMaster);

            int largeur = 450;
            int hauteur = 450;
            int x       = XBase;
            int y       = YBase;

            int line  = 0;
            int scale = 22;

            //18lignes max ;)
            AddLabel(x, (y + line * scale), ColorTextYellow, "Choix de l'energie");
            line++;
            //AddButton( col, (y+line*scale), 0xFAB, 0xFAC, 998, GumpButtonType.Reply, 0 );
            AddLabel(x, y + line * scale, ColorTextGreen, "Actuelle: " + SortNubiaHelper.getEnergieString(m_SortNubia.energie));
            line++;


            for (int i = (int)SortEnergie.All + 1; i < (int)SortEnergie.Maximum; i++)            // 100+
            {
                SortEnergie energie = (SortEnergie)i;

                bool allowComp = SortNubiaHelper.calculMaitriseEnergie(energie, m_owner.Energie) > 0;
                if (!allowComp)
                {
                    continue;
                }
                AddButton(x, (y + line * scale), 0xFAB, 0xFAC, 100 + i, GumpButtonType.Reply, 0);
                AddLabel(x + 40, y + line * scale, ColorTextGreen, SortNubiaHelper.getEnergieString(energie));
                line++;
            }
            line++;
            AddButton(x, (y + line * scale), 0xFAB, 0xFAC, 999, GumpButtonType.Reply, 0);
            AddLabel(x + 40, y + line * scale, ColorTextRed, "Annuler");
        }
Beispiel #17
0
 public virtual void DamageMagic(int amount, Mobile from, SortEnergie ecole)
 {
     Damage(amount, from, true);
 }
Beispiel #18
0
        public SortMaitriseGump(NubiaPlayer _owner, SortDomaine domaine, SortEnergie energie, MageSpe amplitude)
            : base("Choix des affinités magiques", 380, 365)
        {
            Closable        = true;
            mOwner          = _owner;
            mDomaine        = domaine;
            mEnergie        = energie;
            mMageSpecialise = amplitude;

            int y     = YBase;
            int x     = XBase;
            int line  = 0;
            int scale = 22;
            int decal = 5;


            int xoffset = x + 20;
            int yoffset = y + 20;
            //Onglets


            //CERCLE
            //Domaines
            int a = 0;

            AddLabel(x, y + line * scale, ColorTextYellow, "Domaines: ");
            line++;
            //     Console.WriteLine("-- CALCUL DOMAINE --");
            for (int d = (int)SortDomaine.All + 1; d < (int)SortDomaine.Maximum; d++)
            {
                int    col = ColorTextGray;
                double p   = 0;
                if (mDomaine != SortDomaine.All)
                {
                    p   = SortNubiaHelper.calculMaitriseDomaine((SortDomaine)d, mDomaine, mMageSpecialise);
                    col = SortNubiaHelper.getHueForPercent((int)p);
                }
                AddSimpleButton(x, y + line * scale, 50 + d, SortNubiaHelper.getDomaineString(((SortDomaine)d)) + " " + (p > 0 ? p.ToString() + "%" : ""), col);
                line++;
                a++;
            }

            line = 0;
            AddLabel(x + 200, y + line * scale, ColorTextYellow, "Energies: ");
            line++;
            //  Console.WriteLine("-- CALCUL ENERGIE --");
            for (int d = (int)SortEnergie.All + 1; d < (int)SortEnergie.Maximum; d++)
            {
                int    col = ColorTextGray;
                double p   = 0;
                if (mEnergie != SortEnergie.All)
                {
                    p   = SortNubiaHelper.calculMaitriseEnergie((SortEnergie)d, mEnergie, mMageSpecialise);
                    col = SortNubiaHelper.getHueForPercent((int)p);
                }
                AddSimpleButton(x + 200, y + line * scale, 100 + d, SortNubiaHelper.getEnergieString((SortEnergie)d) + " " + p.ToString() + "%", col);
                line++;
                a++;
            }


            AddBackground(x, y + line * scale, 300, 25, 3000);
            AddLabel(x + 5, y + line * scale, ColorTextYellow, "Votre choix: ");

            AddLabel(x + 100, 1 + y + line * scale, ColorTextLight, (mDomaine != SortDomaine.All ? SortNubiaHelper.getDomaineString(mDomaine) : "???") + " / " +
                     (mEnergie != SortEnergie.All ? SortNubiaHelper.getEnergieString(mEnergie) : "???"));
            line++;
            line++;

            AddButtonTrueFalse(x, y + line * scale, 501, mMageSpecialise == MageSpe.Generaliste, "Amplitude: Généraliste");

            line++;
            AddButtonTrueFalse(x, y + line * scale, 502, mMageSpecialise == MageSpe.Normal, "Amplitude: Normal");
            line++;
            AddButtonTrueFalse(x, y + line * scale, 503, mMageSpecialise == MageSpe.Specialiste, "Amplitude: Spécialisé");
            line++;

            line++;
            if (mDomaine != SortDomaine.All && mEnergie != SortEnergie.All)
            {
                AddSimpleButton(x, y + line * scale, 5, "Je choisi définitivement ces affinités");
            }
            //Description
        }
Beispiel #19
0
        public string getModusDescript()
        {
            string des = "<br>";

            if (m_Freeze)
            {
                des += "<br>Paralisant !";
            }
            if (mStr != 0)
            {
                des += "<br><i>Force:</i> " + (mStr > 0 ? "+" : "") + mStr + "";
            }
            if (mDex != 0)
            {
                des += "<br><i>Dexterité:</i> " + (mDex > 0 ? "+" : "") + mDex + "";
            }
            if (mInt != 0)
            {
                des += "<br><i>Intelligence:</i> " + (mInt > 0 ? "+" : "") + mInt + "";
            }
            if (mSag != 0)
            {
                des += "<br><i>Sagesse:</i> " + (mSag > 0 ? "+" : "") + mSag + "";
            }
            if (mCons != 0)
            {
                des += "<br><i>Constitution:</i> " + (mCons > 0 ? "+" : "") + mCons + "";
            }
            if (mCha != 0)
            {
                des += "<br><i>Charisme:</i> " + (mCha > 0 ? "+" : "") + mCha + "";
            }

            if (mDegatBonus != 0)
            {
                des += "<br><i>Bonus de dégat:</i> " + (mDegatBonus > 0 ? "+" : "") + mDegatBonus + "";
            }
            for (int s = 0; s < (int)SauvegardeEnum.Reflexe; s++)
            {
                SauvegardeEnum save       = (SauvegardeEnum)s;
                int            generalVal = -999;
                for (int i = 0; i <= (int)SortEnergie.Mental; i++)
                {
                    SortEnergie ecole = (SortEnergie)i;
                    int         val   = getSauvegarde(save, ecole);
                    if (ecole == SortEnergie.All)
                    {
                        generalVal = val;
                    }
                    if (val != 0 && (val != generalVal || ecole == SortEnergie.All))
                    {
                        des += "<br><i>" + save.ToString() + ":</i> " + (val > 0 ? "+": "") + val;
                        if (ecole != SortEnergie.All)
                        {
                            des += " <i>( " + ecole.ToString() + " )</i>";
                        }
                    }
                }
            }

            int compVal = -999;

            for (int c = -1; c < (int)CompType.Maximum; c++)
            {
                CompType comp = (CompType)c;
                int      val  = getCompetence(comp);
                if (comp == CompType.All)
                {
                    compVal = val;
                }
                if (val != 0 && (val != compVal || comp == CompType.All))
                {
                    string compName = comp.ToString();
                    if (!(m_caster.Competences[comp] is NullCompetence))
                    {
                        compName = m_caster.Competences[comp].Name;
                    }

                    if (comp == CompType.All)
                    {
                        compName = "Compétences";
                    }
                    des += "<br><i>" + compName + ":</i> " + (val > 0 ? "+" : "") + val;
                }
            }
            return(des);
        }
Beispiel #20
0
 public static double calculMaitriseEnergie(SortEnergie energie, SortEnergie enerMaitre)
 {
     return(calculMaitriseEnergie(energie, enerMaitre, MageSpe.Normal));
 }
Beispiel #21
0
        public static ArtefactModus generate(ArtefactQuality qualite)
        {
            ArtefactModus arte = new ArtefactModus();

            while (arte.getArtefactQuality() < qualite)
            {
                int rand = Utility.Random(2);
                if (rand == 0) // STAT
                {
                    arte.mDndStat = (DndStat)Utility.Random(5);
                    arte.mStatValue++;
                }
                else if (rand == 1) //CompetenceMod
                {
                    CompType ctype = (CompType)Utility.Random((int)CompType.Maximum);
                    if (ctype != CompType.All && ctype != CompType.Maximum)
                    {
                        int value = 0;
                        if (qualite >= ArtefactQuality.Superieur)
                        {
                            value = Utility.Random(4) + 1;
                        }
                        else
                        {
                            value = Utility.Random(2) + 1;
                        }
                        bool c*k = false;
                        foreach (CompetenceMod cmod in arte.mCompetenceMod)
                        {
                            if (cmod.Comp == ctype)
                            {
                                c*k = false;
                                break;
                            }
                        }
                        if (c*k)
                        {
                            arte.mCompetenceMod.Add(new CompetenceMod(value, ctype));
                        }
                    }
                }
                else if (rand == 2) //Sauvegarde Mod)
                {
                    SauvegardeEnum save    = (SauvegardeEnum)Utility.Random(3);
                    bool           doEcole = true;
                    int            value   = Utility.Random(4) + 1;

                    if (qualite >= ArtefactQuality.Rare)
                    {
                        doEcole = Utility.RandomBool();
                    }
                    if (doEcole)
                    {
                        int           nbrEcole = Utility.Random(2) + 1;
                        SortEnergie[] ecoles   = new SortEnergie[nbrEcole];
                        for (int e = 0; e < (int)nbrEcole; e++)
                        {
                            SortEnergie ecole = 1 + (SortEnergie)Utility.Random((int)SortEnergie.Air);

                            ecoles[e] = ecole;
                        }
                        arte.mSaugevardMod.Add(new SauvegardeMod(value, save, ecoles));
                    }
                    else
                    {
                        arte.mSaugevardMod.Add(new SauvegardeMod(value, save));
                    }
                }

                /*   else if (rand == 3) // CA MOD
                 * {
                 *     arte.mCAMod += Utility.Random(4) + 1;
                 * }
                 * else if (rand == 4)
                 * {
                 *     arte.mDegatMod += Utility.Random(1) + 1;
                 * }*/
            }
            return(arte);
        }