public Enhancement(BinaryReader reader) { RecipeIDX = -1; IsModified = false; IsNew = false; StaticIndex = reader.ReadInt32(); Name = reader.ReadString(); ShortName = reader.ReadString(); Desc = reader.ReadString(); TypeID = (Enums.eType)reader.ReadInt32(); SubTypeID = (Enums.eSubtype)reader.ReadInt32(); ClassID = new int[reader.ReadInt32() + 1]; for (var index = 0; index < ClassID.Length; ++index) { ClassID[index] = reader.ReadInt32(); } Image = reader.ReadString(); nIDSet = reader.ReadInt32(); UIDSet = reader.ReadString(); EffectChance = reader.ReadSingle(); LevelMin = reader.ReadInt32(); LevelMax = reader.ReadInt32(); Unique = reader.ReadBoolean(); MutExID = (Enums.eEnhMutex)reader.ReadInt32(); BuffMode = (Enums.eBuffDebuff)reader.ReadInt32(); if (MutExID < Enums.eEnhMutex.None) { MutExID = Enums.eEnhMutex.None; } Effect = new Enums.sEffect[reader.ReadInt32() + 1]; for (var index = 0; index <= Effect.Length - 1; ++index) { Effect[index].Mode = (Enums.eEffMode)reader.ReadInt32(); Effect[index].BuffMode = (Enums.eBuffDebuff)reader.ReadInt32(); Effect[index].Enhance.ID = reader.ReadInt32(); Effect[index].Enhance.SubID = reader.ReadInt32(); Effect[index].Schedule = (Enums.eSchedule)reader.ReadInt32(); Effect[index].Multiplier = reader.ReadSingle(); ref var local = ref Effect[index]; Effect effect; if (!reader.ReadBoolean()) { effect = null; } else { effect = new Effect(reader) { isEnhancementEffect = true } }; local.FX = effect; } UID = reader.ReadString(); RecipeName = reader.ReadString(); Superior = reader.ReadBoolean(); IsProc = reader.ReadBoolean(); }
public Enhancement(BinaryReader reader) { this.RecipeIDX = -1; this.IsModified = false; this.IsNew = false; this.StaticIndex = reader.ReadInt32(); this.Name = reader.ReadString(); this.ShortName = reader.ReadString(); this.Desc = reader.ReadString(); this.TypeID = (Enums.eType)reader.ReadInt32(); this.SubTypeID = (Enums.eSubtype)reader.ReadInt32(); this.ClassID = new int[reader.ReadInt32() + 1]; for (int index = 0; index < this.ClassID.Length; ++index) { this.ClassID[index] = reader.ReadInt32(); } this.Image = reader.ReadString(); this.nIDSet = reader.ReadInt32(); this.UIDSet = reader.ReadString(); this.EffectChance = reader.ReadSingle(); this.LevelMin = reader.ReadInt32(); this.LevelMax = reader.ReadInt32(); this.Unique = reader.ReadBoolean(); this.MutExID = (Enums.eEnhMutex)reader.ReadInt32(); this.BuffMode = (Enums.eBuffDebuff)reader.ReadInt32(); if (this.MutExID < Enums.eEnhMutex.None) { this.MutExID = Enums.eEnhMutex.None; } this.Effect = new Enums.sEffect[reader.ReadInt32() + 1]; for (int index = 0; index <= this.Effect.Length - 1; ++index) { this.Effect[index].Mode = (Enums.eEffMode)reader.ReadInt32(); this.Effect[index].BuffMode = (Enums.eBuffDebuff)reader.ReadInt32(); this.Effect[index].Enhance.ID = reader.ReadInt32(); this.Effect[index].Enhance.SubID = reader.ReadInt32(); this.Effect[index].Schedule = (Enums.eSchedule)reader.ReadInt32(); this.Effect[index].Multiplier = reader.ReadSingle(); ref Enums.sEffect local = ref this.Effect[index]; Base.Data_Classes.Effect effect; if (!reader.ReadBoolean()) { effect = null; } else { effect = new Base.Data_Classes.Effect(reader) { isEnhancementEffect = true } }; local.FX = effect; } this.UID = reader.ReadString(); this.RecipeName = reader.ReadString(); this.Superior = reader.ReadBoolean(); }
public void Assign(Enums.sEffect effect) { this.Mode = effect.Mode; this.BuffMode = effect.BuffMode; this.Enhance.ID = effect.Enhance.ID; this.Enhance.SubID = effect.Enhance.SubID; this.Schedule = effect.Schedule; this.Multiplier = effect.Multiplier; if (effect.FX != null) { this.FX = (IEffect)effect.FX.Clone(); } }
public Enhancement(IEnhancement iEnh) { StaticIndex = iEnh.StaticIndex; Name = iEnh.Name; ShortName = iEnh.ShortName; Desc = iEnh.Desc; TypeID = iEnh.TypeID; SubTypeID = iEnh.SubTypeID; Image = iEnh.Image; ImageIdx = iEnh.ImageIdx; nIDSet = iEnh.nIDSet; UIDSet = iEnh.UIDSet; EffectChance = iEnh.EffectChance; LevelMin = iEnh.LevelMin; LevelMax = iEnh.LevelMax; Unique = iEnh.Unique; MutExID = iEnh.MutExID; BuffMode = iEnh.BuffMode; _power = new Power(iEnh.GetPower()); ClassID = new int[iEnh.ClassID.Length]; for (var index = 0; index <= ClassID.Length - 1; ++index) { ClassID[index] = iEnh.ClassID[index]; } Effect = new Enums.sEffect[iEnh.Effect.Length]; for (var index = 0; index <= Effect.Length - 1; ++index) { Effect[index].Mode = iEnh.Effect[index].Mode; Effect[index].BuffMode = iEnh.Effect[index].BuffMode; Effect[index].Enhance.ID = iEnh.Effect[index].Enhance.ID; Effect[index].Enhance.SubID = iEnh.Effect[index].Enhance.SubID; Effect[index].Schedule = iEnh.Effect[index].Schedule; Effect[index].Multiplier = iEnh.Effect[index].Multiplier; if (iEnh.Effect[index].FX != null) { Effect[index].FX = iEnh.Effect[index].FX.Clone() as IEffect; } } UID = iEnh.UID; IsProc = iEnh.IsProc; RecipeName = iEnh.RecipeName; RecipeIDX = iEnh.RecipeIDX; Superior = iEnh.Superior; }
public string GetEnhancementString() { string str1; if (this.Enh < 0) { str1 = string.Empty; } else { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[this.Enh]; if (enhancement.Effect.Length == 0) { str1 = enhancement.Desc; } else { StringBuilder stringBuilder = new StringBuilder(); bool flag = false; Enums.sEffect[] effect = enhancement.Effect; int index1 = 0; if (index1 >= effect.Length) { str1 = stringBuilder.ToString(); } else { Enums.sEffect sEffect = effect[index1]; if (sEffect.Mode == Enums.eEffMode.FX) { flag = true; } string str2; 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; } if (stringBuilder.Length > 0) { stringBuilder.Append(", "); } switch (enhancement.TypeID) { case Enums.eType.Normal: string relativeString1 = Enums.GetRelativeString(this.RelativeLevel, false); if (!string.IsNullOrEmpty(relativeString1) & relativeString1 != "X") { stringBuilder.Append(relativeString1 + " " + DatabaseAPI.Database.EnhGradeStringLong[(int)this.Grade] + " - "); break; } if (relativeString1 == "X") { stringBuilder.Append("Disabled " + DatabaseAPI.Database.EnhGradeStringLong[(int)this.Grade] + " - "); break; } stringBuilder.Append(DatabaseAPI.Database.EnhGradeStringLong[(int)this.Grade] + " - "); break; case Enums.eType.SpecialO: string relativeString2 = Enums.GetRelativeString(this.RelativeLevel, false); if (!string.IsNullOrEmpty(relativeString2) & relativeString2 != "X") { stringBuilder.Append(relativeString2 + " " + enhancement.GetSpecialName() + " - "); break; } if (relativeString2 == "X") { stringBuilder.Append("Disabled " + enhancement.GetSpecialName() + " - "); break; } stringBuilder.Append(enhancement.GetSpecialName() + " - "); break; } stringBuilder.Append("Schedule: "); stringBuilder.Append(sEffect.Schedule.ToString()); stringBuilder.AppendFormat(" ({0}%)", (scheduleMult * 100f).ToString((IFormatProvider)NumberFormatInfo.CurrentInfo)); str2 = stringBuilder.ToString(); } else if (!flag) { str2 = stringBuilder.ToString(); } else { var power = enhancement.GetPower(); for (int index2 = 0; index2 <= power.Effects.Length - 1; ++index2) { if (stringBuilder.Length > 0) { stringBuilder.Append(", "); } stringBuilder.Append(power.Effects[index2].BuildEffectString(true, "", false, false, false)); } str2 = "Effect: " + stringBuilder; } str1 = str2; } } } return(str1); }