public float GetEnhancementEffect(Enums.eEnhance iEffect, int subEnh, float mag) { float num1; if (this.Enh < 0) { num1 = 0.0f; } else { float num2 = 0.0f; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[this.Enh]; foreach (Enums.sEffect sEffect in enhancement.Effect) { if (sEffect.Mode == Enums.eEffMode.Enhancement && (sEffect.BuffMode != Enums.eBuffDebuff.DeBuffOnly || (double)mag <= 0.0) && ((sEffect.BuffMode != Enums.eBuffDebuff.BuffOnly || (double)mag >= 0.0) && (sEffect.Schedule != Enums.eSchedule.None && (Enums.eEnhance)sEffect.Enhance.ID == iEffect)) && (subEnh < 0 || subEnh == sEffect.Enhance.SubID)) { float scheduleMult = this.GetScheduleMult(enhancement.TypeID, sEffect.Schedule); if ((double)Math.Abs(sEffect.Multiplier) > 0.01) { scheduleMult *= sEffect.Multiplier; } num2 += scheduleMult; } } num1 = num2; } return(num1); }
public float GetEnhancementEffect(Enums.eEnhance iEffect, int subEnh, float mag) { if (Enh < 0) { return(0.0f); } float num2 = 0.0f; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[Enh]; foreach (Enums.sEffect sEffect in enhancement.Effect) { if (sEffect.Mode != Enums.eEffMode.Enhancement || (sEffect.BuffMode == Enums.eBuffDebuff.DeBuffOnly && !(mag <= 0.0)) || ((sEffect.BuffMode == Enums.eBuffDebuff.BuffOnly && !(mag >= 0.0)) || (sEffect.Schedule == Enums.eSchedule.None || (Enums.eEnhance)sEffect.Enhance.ID != iEffect)) || (subEnh >= 0 && subEnh != sEffect.Enhance.SubID)) { continue; } float scheduleMult = GetScheduleMult(enhancement.TypeID, sEffect.Schedule); if (Math.Abs(sEffect.Multiplier) > 0.01) { scheduleMult *= sEffect.Multiplier; } num2 += scheduleMult; } return(num2); }
public static Enums.eSchedule GetSchedule(Enums.eEnhance iEnh, int tSub = -1) { Enums.eSchedule eSchedule; switch (iEnh) { case Enums.eEnhance.Defense: eSchedule = Enums.eSchedule.B; break; case Enums.eEnhance.Interrupt: return(Enums.eSchedule.C); case Enums.eEnhance.Mez: return(tSub <= -1 || !(tSub == 4 | tSub == 5) ? Enums.eSchedule.A : Enums.eSchedule.D); case Enums.eEnhance.Range: return(Enums.eSchedule.B); case Enums.eEnhance.Resistance: return(Enums.eSchedule.B); case Enums.eEnhance.ToHit: return(Enums.eSchedule.B); default: eSchedule = Enums.eSchedule.A; break; } return(eSchedule); }
public static Enums.eSchedule GetSchedule(Enums.eEnhance iEnh, int tSub = -1) { Enums.eSchedule eSchedule; if (iEnh != Enums.eEnhance.Defense) { switch (iEnh) { case Enums.eEnhance.Interrupt: return(Enums.eSchedule.C); case Enums.eEnhance.JumpHeight: case Enums.eEnhance.SpeedJumping: break; case Enums.eEnhance.Mez: if (tSub <= -1) { return(Enums.eSchedule.A); } if (tSub == 4 | tSub == 5) { return(Enums.eSchedule.D); } return(Enums.eSchedule.A); case Enums.eEnhance.Range: return(Enums.eSchedule.B); default: switch (iEnh) { case Enums.eEnhance.Resistance: return(Enums.eSchedule.B); case Enums.eEnhance.ToHit: return(Enums.eSchedule.B); } break; } eSchedule = Enums.eSchedule.A; } else { eSchedule = Enums.eSchedule.B; } return(eSchedule); }
public string GetEnhancementStringLong() { string str1; if (this.Enh < 0) { str1 = string.Empty; } else { StringBuilder stringBuilder = new StringBuilder(); bool flag1 = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; bool flag5 = false; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[this.Enh]; if (enhancement.Effect.Length == 0) { str1 = enhancement.Desc; } else { foreach (Enums.sEffect sEffect in enhancement.Effect) { if (sEffect.Mode == Enums.eEffMode.FX) { flag1 = true; } if (sEffect.Mode == Enums.eEffMode.Enhancement && sEffect.Schedule != Enums.eSchedule.None) { float scheduleMult = this.GetScheduleMult(enhancement.TypeID, sEffect.Schedule); if ((double)sEffect.Multiplier > 0.0) { scheduleMult *= sEffect.Multiplier; } Enums.eEnhance id = (Enums.eEnhance)sEffect.Enhance.ID; string str2; if (id == Enums.eEnhance.Mez) { Enums.eMez subId = (Enums.eMez)sEffect.Enhance.SubID; str2 = Enum.GetName(subId.GetType(), subId); } else { str2 = Enum.GetName(id.GetType(), id); } if (sEffect.Enhance.ID == 7 || sEffect.Enhance.ID == 8 || sEffect.Enhance.ID == 17) { str2 = !flag2 ? "Heal" : string.Empty; flag2 = true; } else if (sEffect.Enhance.ID == 10 || sEffect.Enhance.ID == 11 && !flag5) { str2 = !flag3 ? "Jump" : string.Empty; flag3 = true; } else if (sEffect.Enhance.ID == 5 || sEffect.Enhance.ID == 16) { str2 = !flag4 ? "EndMod" : string.Empty; flag4 = true; } else if (((enhancement.Name.IndexOf("Slow", StringComparison.Ordinal) > -1 ? 1 : 0) & (sEffect.BuffMode != Enums.eBuffDebuff.DeBuffOnly ? 0 : (sEffect.Enhance.ID == 6 || sEffect.Enhance.ID == 11 ? 1 : (sEffect.Enhance.ID == 19 ? 1 : 0)))) != 0 || sEffect.Enhance.ID == 21) { str2 = !flag5 ? "Slow Movement" : string.Empty; flag5 = true; } if (!string.IsNullOrEmpty(str2)) { if (stringBuilder.Length > 0) { stringBuilder.Append("\n"); } stringBuilder.AppendFormat("{0} enhancement (Sched. {1}: {2}%)", str2, Enum.GetName(sEffect.Schedule.GetType(), sEffect.Schedule), (scheduleMult * 100f).ToString((IFormatProvider)NumberFormatInfo.CurrentInfo)); } } } if (!flag1) { str1 = stringBuilder.ToString(); } else { IPower power = new Power(enhancement.GetPower()); power.ApplyGrantPowerEffects(); int[] returnMask = new int[0]; for (int index1 = 0; index1 <= power.Effects.Length - 1; ++index1) { if (power.Effects[index1].EffectType == Enums.eEffectType.GrantPower) { if (stringBuilder.Length > 0) { stringBuilder.Append("\n"); } stringBuilder.Append(power.Effects[index1].BuildEffectString(true, "", false, false, false)); string empty = string.Empty; for (int idEffect = 0; idEffect <= power.Effects.Length - 1; ++idEffect) { power.Effects[idEffect].Stacking = Enums.eStacking.Yes; power.Effects[idEffect].Buffable = true; if (power.Effects[idEffect].Absorbed_EffectID == index1) { power.GetEffectStringGrouped(idEffect, ref empty, ref returnMask, false, false, false); } if (returnMask.Length > 0) { if (stringBuilder.Length > 0) { stringBuilder.Append("\n"); } stringBuilder.AppendFormat(" {0}", empty); break; } } for (int index2 = 0; index2 <= power.Effects.Length - 1; ++index2) { bool flag6 = false; for (int index3 = 0; index3 <= returnMask.Length - 1; ++index3) { if (returnMask[index3] == index2) { flag6 = true; break; } } if (power.Effects[index2].Absorbed_EffectID == index1 && !flag6) { if (stringBuilder.Length > 0) { stringBuilder.Append("\n"); } power.Effects[index2].Stacking = Enums.eStacking.Yes; power.Effects[index2].Buffable = true; stringBuilder.AppendFormat(" {0}", power.Effects[index2].BuildEffectString(false, "", false, false, false)); } } } else if (!power.Effects[index1].Absorbed_Effect && power.Effects[index1].EffectType != Enums.eEffectType.Enhancement) { if (stringBuilder.Length > 0) { stringBuilder.Append("\n"); } stringBuilder.Append(power.Effects[index1].BuildEffectString(true, "", false, false, false)); } } str1 = stringBuilder.ToString().Replace("Slf", "Self").Replace("Tgt", "Target"); } } } return(str1); }