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); }
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); }
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)); } }
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); }
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); }
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"); }
public static double getModusStr(SortEnergie comp) { switch (comp) { case SortEnergie.All: return(1.0); break; } return(1.0); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); mIsElite = reader.ReadBool(); if (version >= 1) { mEnergie = (SortEnergie)reader.ReadInt(); } }
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); }
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); }
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); }
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); }
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"); }
public virtual void DamageMagic(int amount, Mobile from, SortEnergie ecole) { Damage(amount, from, true); }
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 }
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); }
public static double calculMaitriseEnergie(SortEnergie energie, SortEnergie enerMaitre) { return(calculMaitriseEnergie(energie, enerMaitre, MageSpe.Normal)); }
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); }