public void DisplaySetIcons() { this.FillImageList(); string[] items = new string[2]; this.lvEnh.BeginUpdate(); this.lvEnh.Items.Clear(); this.FillImageList(); int num = this.mySet.Enhancements.Length - 1; for (int imageIndex = 0; imageIndex <= num; imageIndex++) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[this.mySet.Enhancements[imageIndex]]; items[0] = enhancement.Name + " (" + enhancement.ShortName + ")"; items[1] = ""; int num2 = enhancement.ClassID.Length - 1; for (int index = 0; index <= num2; index++) { string[] strArray3; int num3; string[] strArray4; IntPtr index2; if (items[1] != "") { strArray3 = items; num3 = 1; (strArray4 = strArray3)[(int)(index2 = (IntPtr)num3)] = strArray4[(int)index2] + ","; } strArray3 = items; num3 = 1; (strArray4 = strArray3)[(int)(index2 = (IntPtr)num3)] = strArray4[(int)index2] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index]].ShortName; } this.lvEnh.Items.Add(new ListViewItem(items, imageIndex)); } this.lvEnh.EndUpdate(); }
void btnClone_Click(object sender, EventArgs e) { if (lvEnh.SelectedIndices.Count <= 0) { return; } IEnhancement oldEnhancement = DatabaseAPI.Database.Enhancements[DatabaseAPI.GetEnhancementByUIDName(lvEnh.SelectedItems[0].SubItems[5].Text)]; frmEnhData frmEnhData = new frmEnhData(ref oldEnhancement, DatabaseAPI.Database.Enhancements[DatabaseAPI.Database.Enhancements.Length - 1].StaticIndex + 1); int num = (int)frmEnhData.ShowDialog(); if (frmEnhData.DialogResult != DialogResult.OK) { return; } IDatabase database = DatabaseAPI.Database; IEnhancement[] enhancementArray = (IEnhancement[])Utils.CopyArray(database.Enhancements, new IEnhancement[DatabaseAPI.Database.Enhancements.Length + 1]); database.Enhancements = enhancementArray; DatabaseAPI.Database.Enhancements[DatabaseAPI.Database.Enhancements.Length - 1] = new Enhancement(frmEnhData.myEnh) { IsNew = true, StaticIndex = -1 }; ImageUpdate(); AddListItem(DatabaseAPI.Database.Enhancements.Length - 1); }
void FullPaste() { DataFormats.Format format = DataFormats.GetFormat("mhdEffectBIN"); if (!Clipboard.ContainsData(format.Name)) { Interaction.MsgBox("No effect data on the clipboard!", MsgBoxStyle.Information, "Unable to Paste"); } else { using (MemoryStream memoryStream = new MemoryStream((byte[])Clipboard.GetDataObject()?.GetData(format.Name) ?? throw new InvalidOperationException())) using (BinaryReader reader = new BinaryReader(memoryStream)) { string powerFullName = myFX.PowerFullName; IPower power = myFX.GetPower(); IEnhancement enhancement = myFX.Enhancement; myFX = new Effect(reader) { PowerFullName = powerFullName }; myFX.SetPower(power); myFX.Enhancement = enhancement; DisplayEffectData(); } } }
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 void DisplaySetIcons() { FillImageList(); string[] items = new string[2]; lvEnh.BeginUpdate(); lvEnh.Items.Clear(); FillImageList(); int num1 = mySet.Enhancements.Length - 1; for (int imageIndex = 0; imageIndex <= num1; ++imageIndex) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[mySet.Enhancements[imageIndex]]; items[0] = enhancement.Name + " (" + enhancement.ShortName + ")"; items[1] = ""; int num2 = enhancement.ClassID.Length - 1; for (int index1 = 0; index1 <= num2; ++index1) { if (items[1] != "") { string[] strArray1 = items; int num3 = 1; string[] strArray2; IntPtr index2; (strArray2 = strArray1)[(int)(index2 = (IntPtr)num3)] = strArray2[(int)index2] + ","; } string[] strArray3 = items; int num4 = 1; string[] strArray4; IntPtr index3; (strArray4 = strArray3)[(int)(index3 = (IntPtr)num4)] = strArray4[(int)index3] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index1]].ShortName; } lvEnh.Items.Add(new ListViewItem(items, imageIndex)); } lvEnh.EndUpdate(); }
public void FillImageList() { Size imageSize1 = ilEnh.ImageSize; int width1 = imageSize1.Width; imageSize1 = ilEnh.ImageSize; int height1 = imageSize1.Height; ExtendedBitmap extendedBitmap = new ExtendedBitmap(width1, height1); ilEnh.Images.Clear(); int num = mySet.Enhancements.Length - 1; for (int index = 0; index <= num; ++index) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[mySet.Enhancements[index]]; if (enhancement.ImageIdx > -1) { Origin.Grade gfxGrade = I9Gfx.ToGfxGrade(enhancement.TypeID); extendedBitmap.Graphics.Clear(Color.White); Graphics graphics = extendedBitmap.Graphics; I9Gfx.DrawEnhancement(ref graphics, DatabaseAPI.Database.Enhancements[mySet.Enhancements[index]].ImageIdx, gfxGrade); ilEnh.Images.Add((Image)extendedBitmap.Bitmap); } else { ImageList.ImageCollection images = ilEnh.Images; Size imageSize2 = ilEnh.ImageSize; int width2 = imageSize2.Width; imageSize2 = ilEnh.ImageSize; int height2 = imageSize2.Height; Bitmap bitmap = new Bitmap(width2, height2); images.Add((Image)bitmap); } } }
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 void ApplyEnhancements_DuplicateEnhancementRequestsMade_OnlyUniqueResultsAddedToIdentity( string filePath, TvReleaseIdentity identity, TvDbEnhancement tvDbEnhancement, SubDbFileHashEnhancement subDbFileHashEnhancement, IEpisodeSubtitleDownloader downloader, IEnhancementProvider enhancementProvider ) { var expectedEnhancements = new IEnhancement[] {tvDbEnhancement, subDbFileHashEnhancement}; var downloaders = new[] {downloader}; var enhancementRequests = new IEnhancementRequest[] { new EnhancementRequest<TvDbEnhancement>(), new EnhancementRequest<TvDbEnhancement>(), new EnhancementRequest<SubDbFileHashEnhancement>() }; A.CallTo(() => downloader.EnhancementRequests).Returns(enhancementRequests); A.CallTo( () => enhancementProvider.GetEnhancement(A<Type>.That.IsEqualTo(typeof (TvDbEnhancement)), filePath, identity)) .Returns(tvDbEnhancement); A.CallTo( () => enhancementProvider.GetEnhancement(A<Type>.That.IsEqualTo(typeof (SubDbFileHashEnhancement)), filePath, identity)) .Returns(subDbFileHashEnhancement); var sut = new EnhancementApplicator(downloaders, enhancementProvider); sut.ApplyEnhancements(filePath, identity); Assert.That(identity.Enhancements, Is.EquivalentTo(expectedEnhancements)); }
void btnDelete_Click(object sender, EventArgs e) { if (lvEnh.SelectedIndices.Count <= 0 || Interaction.MsgBox(("Really delete enhancement: " + lvEnh.SelectedItems[0].Text + "?"), MsgBoxStyle.YesNo | MsgBoxStyle.Question, "Are you sure?") != MsgBoxResult.Yes) { return; } Enhancement[] enhancementArray = new Enhancement[DatabaseAPI.Database.Enhancements.Length - 1 + 1]; int selectedIndex = DatabaseAPI.GetEnhancementByUIDName(lvEnh.SelectedItems[0].SubItems[5].Text); int index1 = 0; int num1 = DatabaseAPI.Database.Enhancements.Length - 1; IEnhancement enh = DatabaseAPI.Database.Enhancements[selectedIndex]; if (enh.nIDSet > -1) { //Remove it from the enhancement set too. List <int> newEnhancementSet = new List <int>(); for (int i = 0; i < DatabaseAPI.Database.EnhancementSets[enh.nIDSet].Enhancements.Length; i++) { int staticIndex = DatabaseAPI.Database.EnhancementSets[enh.nIDSet].Enhancements[i]; if (staticIndex != enh.StaticIndex) { newEnhancementSet.Add(staticIndex); } } DatabaseAPI.Database.EnhancementSets[enh.nIDSet].Enhancements = newEnhancementSet.ToArray(); } for (int index2 = 0; index2 <= num1; ++index2) { if (index2 == selectedIndex) { continue; } enhancementArray[index1] = new Enhancement(DatabaseAPI.Database.Enhancements[index2]); ++index1; } DatabaseAPI.Database.Enhancements = new IEnhancement[DatabaseAPI.Database.Enhancements.Length - 2 + 1]; int num2 = DatabaseAPI.Database.Enhancements.Length - 1; for (int index2 = 0; index2 <= num2; ++index2) { DatabaseAPI.Database.Enhancements[index2] = new Enhancement(enhancementArray[index2]); } DisplayList(); if (lvEnh.Items.Count <= 0) { return; } if (lvEnh.Items.Count > selectedIndex) { lvEnh.Items[selectedIndex].Selected = true; lvEnh.Items[selectedIndex].EnsureVisible(); } else if (lvEnh.Items.Count == selectedIndex) { lvEnh.Items[selectedIndex - 1].Selected = true; lvEnh.Items[selectedIndex - 1].EnsureVisible(); } }
void UpdateListItem(int Index) { string[] strArray = new string[5]; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[Index]; strArray[0] = string.Concat(new string[] { enhancement.Name, " (", enhancement.ShortName, ") - ", Conversions.ToString(enhancement.StaticIndex) }); strArray[1] = Enum.GetName(enhancement.TypeID.GetType(), enhancement.TypeID); strArray[2] = Conversions.ToString(enhancement.Effect.Length); strArray[3] = ""; int num = enhancement.ClassID.Length - 1; for (int index = 0; index <= num; index++) { string[] strArray2; int num2; string[] strArray3; IntPtr index2; if (strArray[3] != "") { strArray2 = strArray; num2 = 3; (strArray3 = strArray2)[(int)(index2 = (IntPtr)num2)] = strArray3[(int)index2] + ","; } strArray2 = strArray; num2 = 3; (strArray3 = strArray2)[(int)(index2 = (IntPtr)num2)] = strArray3[(int)index2] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index]].ShortName; } if (enhancement.nIDSet > -1) { strArray[4] = DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].DisplayName; strArray[0] = strArray[4] + ": " + strArray[0]; } else { strArray[4] = ""; } int num3 = strArray.Length - 1; for (int index3 = 0; index3 <= num3; index3++) { this.lvEnh.Items[Index].SubItems[index3].Text = strArray[index3]; } this.lvEnh.Items[Index].ImageIndex = Index; this.lvEnh.Items[Index].EnsureVisible(); this.lvEnh.Refresh(); }
void UpdateListItem(int Index) { string[] strArray1 = new string[6]; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[Index]; strArray1[0] = enhancement.Name + " (" + enhancement.ShortName + ") - " + Convert.ToString(enhancement.StaticIndex); strArray1[1] = Enum.GetName(enhancement.TypeID.GetType(), enhancement.TypeID); strArray1[2] = Convert.ToString(enhancement.Effect.Length); strArray1[3] = ""; strArray1[5] = enhancement.UID; int num1 = enhancement.ClassID.Length - 1; for (int index1 = 0; index1 <= num1; ++index1) { if (strArray1[3] != "") { string[] strArray2 = strArray1; int num2 = 3; string[] strArray3; IntPtr index2; (strArray3 = strArray2)[(int)(index2 = (IntPtr)num2)] = strArray3[(int)index2] + ","; } string[] strArray4 = strArray1; int num3 = 3; string[] strArray5; IntPtr index3; (strArray5 = strArray4)[(int)(index3 = (IntPtr)num3)] = strArray5[(int)index3] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index1]].ShortName; } if (enhancement.nIDSet > -1) { strArray1[4] = DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].DisplayName; strArray1[0] = strArray1[4] + ": " + strArray1[0]; } else { strArray1[4] = ""; } int num4 = strArray1.Length - 1; for (int index = 0; index <= num4; ++index) { lvEnh.Items[Index].SubItems[index].Text = strArray1[index]; } lvEnh.Items[Index].ImageIndex = Index; lvEnh.Items[Index].EnsureVisible(); lvEnh.Refresh(); }
void AddListItem(int Index) { string[] items = new string[5]; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[Index]; items[0] = string.Concat(new string[] { enhancement.Name, " (", enhancement.ShortName, ") - ", Conversions.ToString(enhancement.StaticIndex) }); items[1] = Enum.GetName(enhancement.TypeID.GetType(), enhancement.TypeID); items[2] = Conversions.ToString(enhancement.Effect.Length); items[3] = ""; int num = enhancement.ClassID.Length - 1; for (int index = 0; index <= num; index++) { string[] strArray3; int num2; string[] strArray4; IntPtr index2; if (items[3] != "") { strArray3 = items; num2 = 3; (strArray4 = strArray3)[(int)(index2 = (IntPtr)num2)] = strArray4[(int)index2] + ","; } strArray3 = items; num2 = 3; (strArray4 = strArray3)[(int)(index2 = (IntPtr)num2)] = strArray4[(int)index2] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index]].ShortName; } if (enhancement.nIDSet > -1) { items[4] = DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].DisplayName; items[0] = items[4] + ": " + items[0]; } else { items[4] = ""; } this.lvEnh.Items.Add(new ListViewItem(items, Index)); this.lvEnh.Items[this.lvEnh.Items.Count - 1].Selected = true; this.lvEnh.Items[this.lvEnh.Items.Count - 1].EnsureVisible(); }
public Enhancement(IEnhancement iEnh) { this.IsModified = false; this.IsNew = false; this.StaticIndex = iEnh.StaticIndex; this.Name = iEnh.Name; this.ShortName = iEnh.ShortName; this.Desc = iEnh.Desc; this.TypeID = iEnh.TypeID; this.SubTypeID = iEnh.SubTypeID; this.Image = iEnh.Image; this.ImageIdx = iEnh.ImageIdx; this.nIDSet = iEnh.nIDSet; this.UIDSet = iEnh.UIDSet; this.EffectChance = iEnh.EffectChance; this.LevelMin = iEnh.LevelMin; this.LevelMax = iEnh.LevelMax; this.Unique = iEnh.Unique; this.MutExID = iEnh.MutExID; this.BuffMode = iEnh.BuffMode; this._power = new Base.Data_Classes.Power(iEnh.GetPower()); this.ClassID = new int[iEnh.ClassID.Length]; for (int index = 0; index <= this.ClassID.Length - 1; ++index) { this.ClassID[index] = iEnh.ClassID[index]; } this.Effect = new Enums.sEffect[iEnh.Effect.Length]; for (int index = 0; index <= this.Effect.Length - 1; ++index) { this.Effect[index].Mode = iEnh.Effect[index].Mode; this.Effect[index].BuffMode = iEnh.Effect[index].BuffMode; this.Effect[index].Enhance.ID = iEnh.Effect[index].Enhance.ID; this.Effect[index].Enhance.SubID = iEnh.Effect[index].Enhance.SubID; this.Effect[index].Schedule = iEnh.Effect[index].Schedule; this.Effect[index].Multiplier = iEnh.Effect[index].Multiplier; if (iEnh.Effect[index].FX != null) { this.Effect[index].FX = iEnh.Effect[index].FX.Clone() as IEffect; } } this.UID = iEnh.UID; this.RecipeName = iEnh.RecipeName; this.RecipeIDX = iEnh.RecipeIDX; this.Superior = iEnh.Superior; }
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 void ApplyEnhancements_EnhancementRequestsMade_ResultsAddedToIdentity( string filePath, TvReleaseIdentity identity, IEnumerable<IEnhancementRequest> enhancementRequests, IEnhancement[] enhancements, IEpisodeSubtitleDownloader downloader, IEnhancementProvider enhancementProvider ) { var downloaders = new[] {downloader}; A.CallTo(() => downloader.EnhancementRequests).Returns(enhancementRequests); A.CallTo(() => enhancementProvider.GetEnhancement(A<Type>._, filePath, identity)) .ReturnsNextFromSequence(enhancements); var sut = new EnhancementApplicator(downloaders, enhancementProvider); sut.ApplyEnhancements(filePath, identity); Assert.That(identity.Enhancements, Is.EquivalentTo(enhancements)); }
void btnAdd_Click(object sender, EventArgs e) { IEnhancement iEnh = (IEnhancement) new Enhancement(); frmEnhData frmEnhData = new frmEnhData(ref iEnh); int num = (int)frmEnhData.ShowDialog(); if (frmEnhData.DialogResult != DialogResult.OK) { return; } IDatabase database = DatabaseAPI.Database; IEnhancement[] enhancementArray = (IEnhancement[])Utils.CopyArray(database.Enhancements, (Array) new IEnhancement[DatabaseAPI.Database.Enhancements.Length + 1]); database.Enhancements = enhancementArray; DatabaseAPI.Database.Enhancements[DatabaseAPI.Database.Enhancements.Length - 1] = (IEnhancement) new Enhancement(frmEnhData.myEnh); DatabaseAPI.Database.Enhancements[DatabaseAPI.Database.Enhancements.Length - 1].IsNew = true; DatabaseAPI.Database.Enhancements[DatabaseAPI.Database.Enhancements.Length - 1].StaticIndex = -1; this.ImageUpdate(); this.AddListItem(DatabaseAPI.Database.Enhancements.Length - 1); }
void btnUp_Click(object sender, EventArgs e) { if (this.lvEnh.SelectedIndices.Count > 0) { int selectedIndex = this.lvEnh.SelectedIndices[0]; if (selectedIndex >= 1) { IEnhancement[] enhancementArray = new IEnhancement[] { new Enhancement(DatabaseAPI.Database.Enhancements[selectedIndex]), new Enhancement(DatabaseAPI.Database.Enhancements[selectedIndex - 1]) }; DatabaseAPI.Database.Enhancements[selectedIndex - 1] = new Enhancement(enhancementArray[0]); DatabaseAPI.Database.Enhancements[selectedIndex] = new Enhancement(enhancementArray[1]); this.DisplayList(); this.lvEnh.Items[selectedIndex - 1].Selected = true; this.lvEnh.Items[selectedIndex - 1].EnsureVisible(); } } }
void AddListItem(int Index) { string[] items = new string[6]; IEnhancement enhancement = DatabaseAPI.Database.Enhancements[Index]; items[0] = enhancement.Name + " (" + enhancement.ShortName + ") - " + Convert.ToString(enhancement.StaticIndex); items[1] = Enum.GetName(enhancement.TypeID.GetType(), enhancement.TypeID); items[2] = Convert.ToString(enhancement.Effect.Length); items[3] = ""; items[5] = enhancement.UID; int num1 = enhancement.ClassID.Length - 1; for (int index1 = 0; index1 <= num1; ++index1) { if (items[3] != "") { string[] strArray1 = items; int num2 = 3; string[] strArray2; IntPtr index2; (strArray2 = strArray1)[(int)(index2 = (IntPtr)num2)] = strArray2[(int)index2] + ","; } string[] strArray3 = items; int num3 = 3; string[] strArray4; IntPtr index3; (strArray4 = strArray3)[(int)(index3 = (IntPtr)num3)] = strArray4[(int)index3] + DatabaseAPI.Database.EnhancementClasses[enhancement.ClassID[index1]].ShortName; } if (enhancement.nIDSet > -1) { items[4] = DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].DisplayName; items[0] = items[4] + ": " + items[0]; } else { items[4] = ""; } lvEnh.Items.Add(new ListViewItem(items, Index)); lvEnh.Items[lvEnh.Items.Count - 1].Selected = true; lvEnh.Items[lvEnh.Items.Count - 1].EnsureVisible(); }
void btnDown_Click(object sender, EventArgs e) { if (this.lvEnh.SelectedIndices.Count <= 0) { return; } int selectedIndex = this.lvEnh.SelectedIndices[0]; if (selectedIndex < this.lvEnh.Items.Count - 1) { IEnhancement[] enhancementArray = new IEnhancement[2] { (IEnhancement) new Enhancement(DatabaseAPI.Database.Enhancements[selectedIndex]), (IEnhancement) new Enhancement(DatabaseAPI.Database.Enhancements[selectedIndex + 1]) }; DatabaseAPI.Database.Enhancements[selectedIndex + 1] = (IEnhancement) new Enhancement(enhancementArray[0]); DatabaseAPI.Database.Enhancements[selectedIndex] = (IEnhancement) new Enhancement(enhancementArray[1]); this.DisplayList(); this.lvEnh.Items[selectedIndex + 1].Selected = true; this.lvEnh.Items[selectedIndex + 1].EnsureVisible(); } }
void AddToImageList(int eIDX) { Size imageSize = this.ilSets.ImageSize; int width = imageSize.Width; imageSize = this.ilSets.ImageSize; int height = imageSize.Height; ExtendedBitmap extendedBitmap = new ExtendedBitmap(width, height); IEnhancement enhancement = DatabaseAPI.Database.Enhancements[eIDX]; if (enhancement.ImageIdx > -1) { extendedBitmap.Graphics.Clear(Color.White); Graphics graphics = extendedBitmap.Graphics; I9Gfx.DrawEnhancement(ref graphics, enhancement.ImageIdx, Origin.Grade.IO); this.ilSets.Images.Add((Image)extendedBitmap.Bitmap); } else { this.ilSets.Images.Add((Image) new Bitmap(this.ilSets.ImageSize.Width, this.ilSets.ImageSize.Height)); } }
public void FillImageList() { ExtendedBitmap extendedBitmap = new ExtendedBitmap(this.ilEnh.ImageSize.Width, this.ilEnh.ImageSize.Height); this.ilEnh.Images.Clear(); int num = DatabaseAPI.Database.Enhancements.Length - 1; for (int index = 0; index <= num; index++) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[index]; if (enhancement.ImageIdx > -1) { extendedBitmap.Graphics.Clear(Color.White); Graphics graphics = extendedBitmap.Graphics; I9Gfx.DrawEnhancement(ref graphics, DatabaseAPI.Database.Enhancements[index].ImageIdx, I9Gfx.ToGfxGrade(enhancement.TypeID)); this.ilEnh.Images.Add(extendedBitmap.Bitmap); } else { this.ilEnh.Images.Add(new Bitmap(this.ilEnh.ImageSize.Width, this.ilEnh.ImageSize.Height)); } } }
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); }
int BuildPowerListLong( ref int vPos, RectangleF bounds, int fontSize, Print.PrintWhat selection, PrintPageEventArgs args) { int num1; if (this._pIndex < 0) { this._endOfPage = true; this._printingProfile = false; num1 = vPos; } else { StringFormat format = new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip); SolidBrush solidBrush = new SolidBrush(Color.Black); int num2 = -1; Font font = new Font("Arial", (float)fontSize, FontStyle.Bold, GraphicsUnit.Pixel); bool flag1 = false; for (int pIndex = this._pIndex; pIndex <= MidsContext.Character.CurrentBuild.Powers.Count - 1; ++pIndex) { bool flag2 = false; switch (selection) { case Print.PrintWhat.Powers: if (MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen) { flag2 = true; break; } break; case Print.PrintWhat.Inherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { flag2 = !MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; if (flag2 && MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length < 1) { flag2 = false; } break; } break; case Print.PrintWhat.EpicInherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { flag2 = MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; break; } break; } if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen & MidsContext.Character.CurrentBuild.Powers[pIndex].SubPowers.Length > 0) { flag2 = false; } if (flag2) { string s1 = "Level " + MidsContext.Character.CurrentBuild.Powers[pIndex].Level + 1 + ":"; string s2 = MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null ? MidsContext.Character.CurrentBuild.Powers[pIndex].Power.DisplayName : "[No Power]"; string s3 = ""; if ((double)vPos - (double)bounds.Top + (double)((MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length + 1) * fontSize) * 1.25 > (double)bounds.Height) { num2 = pIndex; flag1 = true; break; } for (int index = 0; index <= MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1; ++index) { if (!string.IsNullOrEmpty(s3)) { s3 += '\n'; } string str1; if (index == 0) { str1 = s3 + "(A) "; } else { str1 = s3 + "(" + MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Level + 1 + ") "; } if (MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh > -1) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh]; switch (enhancement.TypeID) { case Enums.eType.Normal: string relativeString1 = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); string str2; if (!string.IsNullOrEmpty(relativeString1) & relativeString1 != "X") { str2 = str1 + relativeString1 + " " + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } else { str2 = !(relativeString1 == "X") ? str1 + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - " : str1 + "Disabled " + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } str1 = str2 + " "; break; case Enums.eType.SpecialO: string relativeString2 = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); string str3; if (!string.IsNullOrEmpty(relativeString2) & relativeString2 != "X") { str3 = str1 + relativeString2 + " " + enhancement.GetSpecialName() + " - "; } else { str3 = !(relativeString2 == "X") ? str1 + enhancement.GetSpecialName() + " - " : str1 + "Disabled " + enhancement.GetSpecialName() + " - "; } str1 = str3 + " "; break; } s3 = str1 + enhancement.LongName; switch (enhancement.TypeID) { case Enums.eType.InventO: s3 = s3 + " - IO:" + MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel + 1; continue; case Enums.eType.SetO: s3 = s3 + " - IO:" + MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel + 1; continue; default: continue; } } else { s3 = str1 + "[Empty]"; } } if (!string.IsNullOrEmpty(s1) || !string.IsNullOrEmpty(s2) || !string.IsNullOrEmpty(s3)) { RectangleF layoutRectangle = new RectangleF(bounds.Left + 15f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(s1, font, (Brush)solidBrush, layoutRectangle, format); layoutRectangle = new RectangleF(bounds.Left + 80f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(s2, font, (Brush)solidBrush, layoutRectangle, format); vPos += (int)((double)fontSize * 1.25); layoutRectangle = new RectangleF(bounds.Left + 90f, (float)vPos, bounds.Width, (float)(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length * fontSize) * 1.25f); args.Graphics.DrawString(s3, font, (Brush)solidBrush, layoutRectangle, format); vPos += (int)((double)fontSize * 1.25 * 1.1 + (double)fontSize * 1.25 * (double)(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1)); } } } this._pIndex = num2; if (flag1) { this._endOfPage = true; } else { this._pIndex = 0; } num1 = vPos; } return(num1); }
static void BuildPowerListShort( ref int vPos, RectangleF bounds, int fontSize, bool skipInherent, bool skipNormal, bool kheldian, PrintPageEventArgs args) { bool printIoLevels = !MidsContext.Config.I9.DisablePrintIOLevels; StringFormat format = new StringFormat(StringFormatFlags.NoClip); SolidBrush solidBrush = new SolidBrush(Color.Black); for (int index1 = 0; index1 <= MidsContext.Character.CurrentBuild.Powers.Count - 1; ++index1) { Font font = new Font("Arial", fontSize, FontStyle.Bold, GraphicsUnit.Pixel); bool isChosen = !MidsContext.Character.CurrentBuild.Powers[index1].Chosen; bool include = false; if (!skipInherent && isChosen && MidsContext.Character.CurrentBuild.Powers[index1].Power != null) { if (kheldian) { include = MidsContext.Character.CurrentBuild.Powers[index1].Power.IsEpic; } else if (MidsContext.Character.CurrentBuild.Powers[index1].Power.Requires.NPowerID.Length == 0 || !MidsContext.Character.CurrentBuild.Powers[index1].Power.Slottable) { include = true; } } if (!skipNormal && !isChosen) { include = true; } if (isChosen && MidsContext.Character.CurrentBuild.Powers[index1].PowerSet == null) { include = false; } if (isChosen & MidsContext.Character.CurrentBuild.Powers[index1].SubPowers.Length > 0) { include = false; } if (!include) { continue; } string s1 = "Level " + MidsContext.Character.CurrentBuild.Powers[index1].Level + 1 + ":"; RectangleF layoutRectangle = new RectangleF(bounds.Left + 15f, vPos, bounds.Width, fontSize * 1.25f); args.Graphics.DrawString(s1, font, solidBrush, layoutRectangle, format); string s2 = MidsContext.Character.CurrentBuild.Powers[index1].Power != null ? MidsContext.Character.CurrentBuild.Powers[index1].Power.DisplayName : "[Empty]"; layoutRectangle = new RectangleF(bounds.Left + 80f, vPos, bounds.Width, fontSize * 1.25f); args.Graphics.DrawString(s2, font, solidBrush, layoutRectangle, format); if (MidsContext.Character.CurrentBuild.Powers[index1].Slots.Length > 0) { string str1 = string.Empty; for (int index2 = 0; index2 <= MidsContext.Character.CurrentBuild.Powers[index1].Slots.Length - 1; ++index2) { if (index2 > 0) { str1 += ", "; } if (!MidsContext.Config.DisablePrintProfileEnh) { if (MidsContext.Character.CurrentBuild.Powers[index1].Slots[index2].Enhancement.Enh > -1) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[MidsContext.Character.CurrentBuild.Powers[index1].Slots[index2].Enhancement.Enh]; switch (enhancement.TypeID) { case Enums.eType.Normal: str1 += enhancement.ShortName; break; case Enums.eType.InventO: str1 = str1 + enhancement.ShortName + "-I"; if (printIoLevels) { str1 = str1 + ":" + Convert.ToString(MidsContext.Character.CurrentBuild.Powers[index1].Slots[index2].Enhancement.IOLevel + 1); } break; case Enums.eType.SpecialO: string str2 = null; switch (enhancement.SubTypeID) { case Enums.eSubtype.Hamidon: str2 = "HO:"; break; case Enums.eSubtype.Hydra: str2 = "HY:"; break; case Enums.eSubtype.Titan: str2 = "TN:"; break; case Enums.eSubtype.None: break; default: str2 = "X:"; break; } str1 = str1 + str2 + enhancement.ShortName; break; case Enums.eType.SetO: str1 = str1 + DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].ShortName + "-" + enhancement.ShortName; if (printIoLevels) { str1 = str1 + ":" + Convert.ToString(MidsContext.Character.CurrentBuild.Powers[index1].Slots[index2].Enhancement.IOLevel + 1); } break; case Enums.eType.None: break; default: throw new ArgumentOutOfRangeException(); } } else { str1 += "Empty"; } } string str3 = str1 + "("; str1 = (index2 != 0 ? str3 + (MidsContext.Character.CurrentBuild.Powers[index1].Slots[index2].Level + 1) : str3 + "A") + ")"; } layoutRectangle = new RectangleF(bounds.Left + 250f, vPos, bounds.Width, fontSize * 1.25f); layoutRectangle.Width -= layoutRectangle.Left; SizeF sizeF = args.Graphics.MeasureString(str1, font, (int)layoutRectangle.Width * 5, format); if (sizeF.Width > (double)layoutRectangle.Width) { int num = MidsContext.Character.CurrentBuild.Powers[index1].Slots.Length / 2; int length = -1; for (int index2 = 0; index2 <= num - 1; ++index2) { length = str1.IndexOf(", ", length + 1, StringComparison.Ordinal); } if (length > -1) { str1 = str1.Substring(0, length) + "..." + '\n' + "..." + str1.Substring(length + 2); layoutRectangle.Height *= 2f; vPos += (int)(fontSize * 1.25); } sizeF = args.Graphics.MeasureString(str1, font, (int)(layoutRectangle.Width * 5.0), format); float width = sizeF.Width; if (width > (double)layoutRectangle.Width) { font = new Font("Arial", Convert.ToSingle(fontSize) * (layoutRectangle.Width / width), FontStyle.Bold, GraphicsUnit.Pixel); } } args.Graphics.DrawString(str1, font, solidBrush, layoutRectangle, format); } vPos += (int)(fontSize * 1.25 * 1.1); } }
int BuildPowerListLong( ref int vPos, RectangleF bounds, int fontSize, PrintWhat selection, PrintPageEventArgs args) { if (_pIndex < 0) { _endOfPage = true; _printingProfile = false; return(vPos); } var format = new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip); var solidBrush = new SolidBrush(Color.Black); int pgIdx = -1; var font = new Font("Arial", fontSize, FontStyle.Bold, GraphicsUnit.Pixel); bool isEnd = false; int levelVar = 0; for (int pIndex = _pIndex; pIndex <= MidsContext.Character.CurrentBuild.Powers.Count - 1; ++pIndex) { bool include = false; switch (selection) { case PrintWhat.Powers: if (MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen) { include = true; } break; case PrintWhat.Inherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { include = !MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; if (include && MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length < 1) { include = false; } } break; case PrintWhat.EpicInherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { include = MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; } break; } if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen & MidsContext.Character.CurrentBuild.Powers[pIndex].SubPowers.Length > 0) { include = false; } if (!include) { continue; } levelVar = MidsContext.Character.CurrentBuild.Powers[pIndex].Level + 1; string s1 = "Level " + levelVar + ":"; string s2 = MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null ? MidsContext.Character.CurrentBuild.Powers[pIndex].Power.DisplayName : "[No Power]"; string s3 = ""; if (vPos - (double)bounds.Top + (MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length + 1) * fontSize * 1.25 > bounds.Height) { pgIdx = pIndex; isEnd = true; break; } for (int index = 0; index <= MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1; ++index) { if (!string.IsNullOrEmpty(s3)) { s3 += '\n'; } string str1; if (index == 0) { str1 = s3 + "(A) "; } else { levelVar = MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Level + 1; } str1 = s3 + "(" + levelVar + ") "; if (MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh > -1) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh]; switch (enhancement.TypeID) { case Enums.eType.Normal: string relativeString1 = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); string str2; if (!string.IsNullOrEmpty(relativeString1) & relativeString1 != "X") { str2 = str1 + relativeString1 + " " + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } else { str2 = relativeString1 != "X" ? str1 + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - " : str1 + "Disabled " + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } str1 = str2 + " "; break; case Enums.eType.SpecialO: string relativeString2 = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); string str3; if (!string.IsNullOrEmpty(relativeString2) & relativeString2 != "X") { str3 = str1 + relativeString2 + " " + enhancement.GetSpecialName() + " - "; } else { str3 = relativeString2 != "X" ? str1 + enhancement.GetSpecialName() + " - " : str1 + "Disabled " + enhancement.GetSpecialName() + " - "; } str1 = str3 + " "; break; case Enums.eType.None: break; case Enums.eType.InventO: break; case Enums.eType.SetO: break; default: throw new ArgumentOutOfRangeException(); } s3 = str1 + enhancement.LongName; switch (enhancement.TypeID) { case Enums.eType.InventO: levelVar = MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel + 1; s3 = s3 + " - IO:" + levelVar; continue; case Enums.eType.SetO: levelVar = MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel + 1; s3 = s3 + " - IO:" + levelVar; continue; case Enums.eType.None: break; case Enums.eType.Normal: break; case Enums.eType.SpecialO: //s3 = s3.Remove(0,11); break; default: continue; } } else { s3 = str1 + "[Empty]"; } } if (string.IsNullOrEmpty(s1) && string.IsNullOrEmpty(s2) && string.IsNullOrEmpty(s3)) { continue; } var layoutRectangle = new RectangleF(bounds.Left + 15f, vPos, bounds.Width, fontSize * 1.25f); args.Graphics.DrawString(s1, font, solidBrush, layoutRectangle, format); layoutRectangle = new RectangleF(bounds.Left + 80f, vPos, bounds.Width, fontSize * 1.25f); args.Graphics.DrawString(s2, font, solidBrush, layoutRectangle, format); vPos += (int)(fontSize * 1.25); layoutRectangle = new RectangleF(bounds.Left + 90f, vPos, bounds.Width, MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length * fontSize * 1.25f); args.Graphics.DrawString(s3, font, solidBrush, layoutRectangle, format); vPos += (int)((fontSize * 1.25 * 1.1) + (fontSize * 1.25 * (MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1))); } _pIndex = pgIdx; if (isEnd) { _endOfPage = true; } else { _pIndex = 0; } return(vPos); }
static void BuildPowerListShort(ref int vPos, RectangleF bounds, int fontSize, bool skipInherent, bool skipNormal, bool kheldian, PrintPageEventArgs args) { bool printIoLevels = MidsContext.Config.I9.PrintIOLevels; StringFormat format = new StringFormat(StringFormatFlags.NoClip); SolidBrush solidBrush = new SolidBrush(Color.Black); for (int index = 0; index <= MidsContext.Character.CurrentBuild.Powers.Count - 1; index++) { Font font = new Font("Arial", (float)fontSize, FontStyle.Bold, GraphicsUnit.Pixel); bool flag = !MidsContext.Character.CurrentBuild.Powers[index].Chosen; bool flag2 = false; if (!skipInherent && flag && MidsContext.Character.CurrentBuild.Powers[index].Power != null) { if (kheldian) { flag2 = MidsContext.Character.CurrentBuild.Powers[index].Power.IsEpic; } else if (MidsContext.Character.CurrentBuild.Powers[index].Power.Requires.NPowerID.Length == 0 || !MidsContext.Character.CurrentBuild.Powers[index].Power.Slottable) { flag2 = true; } } if (!skipNormal && !flag) { flag2 = true; } if (flag && MidsContext.Character.CurrentBuild.Powers[index].PowerSet == null) { flag2 = false; } if (flag & MidsContext.Character.CurrentBuild.Powers[index].SubPowers.Length > 0) { flag2 = false; } if (flag2) { string str4 = string.Concat(new object[] { "Level ", MidsContext.Character.CurrentBuild.Powers[index].Level, 1, ":" }); RectangleF layoutRectangle = new RectangleF(bounds.Left + 15f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(str4, font, solidBrush, layoutRectangle, format); str4 = ((MidsContext.Character.CurrentBuild.Powers[index].Power != null) ? MidsContext.Character.CurrentBuild.Powers[index].Power.DisplayName : "[Empty]"); layoutRectangle = new RectangleF(bounds.Left + 80f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(str4, font, solidBrush, layoutRectangle, format); if (MidsContext.Character.CurrentBuild.Powers[index].Slots.Length > 0) { string str5 = string.Empty; for (int index2 = 0; index2 <= MidsContext.Character.CurrentBuild.Powers[index].Slots.Length - 1; index2++) { if (index2 > 0) { str5 += ", "; } if (MidsContext.Config.PrintProfileEnh) { if (MidsContext.Character.CurrentBuild.Powers[index].Slots[index2].Enhancement.Enh > -1) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[MidsContext.Character.CurrentBuild.Powers[index].Slots[index2].Enhancement.Enh]; switch (enhancement.TypeID) { case Enums.eType.Normal: str5 += enhancement.ShortName; break; case Enums.eType.InventO: str5 += enhancement.ShortName; str5 += "-I"; if (printIoLevels) { str5 = str5 + ":" + Convert.ToString(MidsContext.Character.CurrentBuild.Powers[index].Slots[index2].Enhancement.IOLevel + 1); } break; case Enums.eType.SpecialO: { string str6; switch (enhancement.SubTypeID) { case Enums.eSubtype.Hamidon: str6 = "HO:"; break; case Enums.eSubtype.Hydra: str6 = "HY:"; break; case Enums.eSubtype.Titan: str6 = "TN:"; break; default: str6 = "X:"; break; } str5 = str5 + str6 + enhancement.ShortName; break; } case Enums.eType.SetO: str5 += DatabaseAPI.Database.EnhancementSets[enhancement.nIDSet].ShortName; str5 = str5 + "-" + enhancement.ShortName; if (printIoLevels) { str5 = str5 + ":" + Convert.ToString(MidsContext.Character.CurrentBuild.Powers[index].Slots[index2].Enhancement.IOLevel + 1); } break; } } else { str5 += "Empty"; } } str5 += "("; if (index2 == 0) { str5 += "A"; } else { str5 += MidsContext.Character.CurrentBuild.Powers[index].Slots[index2].Level + 1; } str5 += ")"; } str4 = str5; layoutRectangle = new RectangleF(bounds.Left + 250f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); layoutRectangle.Width -= layoutRectangle.Left; float width = args.Graphics.MeasureString(str4, font, (int)layoutRectangle.Width * 5, format).Width; if (width > layoutRectangle.Width) { int num = MidsContext.Character.CurrentBuild.Powers[index].Slots.Length / 2; int length = -1; for (int index3 = 0; index3 <= num - 1; index3++) { length = str4.IndexOf(", ", length + 1, StringComparison.Ordinal); } if (length > -1) { string text = string.Concat(new object[] { str4.Substring(0, length), "...", '\n', "...", str4.Substring(length + 2) }); str4 = text; layoutRectangle.Height *= 2f; vPos += (int)((float)fontSize * 1.25f); } width = args.Graphics.MeasureString(str4, font, (int)(layoutRectangle.Width * 5f), format).Width; if (width > layoutRectangle.Width) { font = new Font("Arial", Convert.ToSingle(fontSize) * (layoutRectangle.Width / width), FontStyle.Bold, GraphicsUnit.Pixel); } } args.Graphics.DrawString(str4, font, solidBrush, layoutRectangle, format); } vPos += (int)((double)((float)fontSize * 1.25f) * 1.1); } } }
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); }
int BuildPowerListLong(ref int vPos, RectangleF bounds, int fontSize, Print.PrintWhat selection, PrintPageEventArgs args) { int num; if (this._pIndex < 0) { this._endOfPage = true; this._printingProfile = false; num = vPos; } else { StringFormat format = new StringFormat(StringFormatFlags.NoWrap | StringFormatFlags.NoClip); SolidBrush solidBrush = new SolidBrush(Color.Black); int num2 = -1; Font font = new Font("Arial", (float)fontSize, FontStyle.Bold, GraphicsUnit.Pixel); bool flag = false; for (int pIndex = this._pIndex; pIndex <= MidsContext.Character.CurrentBuild.Powers.Count - 1; pIndex++) { bool flag2 = false; switch (selection) { case Print.PrintWhat.Powers: if (MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen) { flag2 = true; } break; case Print.PrintWhat.Inherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { flag2 = !MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; if (flag2 && MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length < 1) { flag2 = false; } } break; case Print.PrintWhat.EpicInherent: if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen && MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) { flag2 = MidsContext.Character.CurrentBuild.Powers[pIndex].Power.IsEpic; } break; } if (!MidsContext.Character.CurrentBuild.Powers[pIndex].Chosen & MidsContext.Character.CurrentBuild.Powers[pIndex].SubPowers.Length > 0) { flag2 = false; } if (flag2) { string s = string.Concat(new object[] { "Level ", MidsContext.Character.CurrentBuild.Powers[pIndex].Level, 1, ":" }); string s2 = (MidsContext.Character.CurrentBuild.Powers[pIndex].Power != null) ? MidsContext.Character.CurrentBuild.Powers[pIndex].Power.DisplayName : "[No Power]"; string s3 = ""; if ((float)vPos - bounds.Top + (float)((MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length + 1) * fontSize) * 1.25f > bounds.Height) { num2 = pIndex; flag = true; break; } for (int index = 0; index <= MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1; index++) { if (!string.IsNullOrEmpty(s3)) { s3 += '\n'; } if (index == 0) { s3 += "(A) "; } else { object obj = s3; s3 = string.Concat(new object[] { obj, "(", MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Level, 1, ") " }); } if (MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh > -1) { IEnhancement enhancement = DatabaseAPI.Database.Enhancements[MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Enh]; switch (enhancement.TypeID) { case Enums.eType.Normal: { string relativeString = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); if (!string.IsNullOrEmpty(relativeString) & relativeString != "X") { string text = s3; s3 = string.Concat(new string[] { text, relativeString, " ", DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade], " - " }); } else if (relativeString == "X") { s3 = s3 + "Disabled " + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } else { s3 = s3 + DatabaseAPI.Database.EnhGradeStringLong[(int)MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.Grade] + " - "; } s3 += " "; break; } case Enums.eType.SpecialO: { string relativeString2 = Enums.GetRelativeString(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.RelativeLevel, false); if (!string.IsNullOrEmpty(relativeString2) & relativeString2 != "X") { string text2 = s3; s3 = string.Concat(new string[] { text2, relativeString2, " ", enhancement.GetSpecialName(), " - " }); } else if (relativeString2 == "X") { s3 = s3 + "Disabled " + enhancement.GetSpecialName() + " - "; } else { s3 = s3 + enhancement.GetSpecialName() + " - "; } s3 += " "; break; } } s3 += enhancement.LongName; switch (enhancement.TypeID) { case Enums.eType.InventO: { object obj2 = s3; s3 = string.Concat(new object[] { obj2, " - IO:", MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel, 1 }); break; } case Enums.eType.SetO: { object obj3 = s3; s3 = string.Concat(new object[] { obj3, " - IO:", MidsContext.Character.CurrentBuild.Powers[pIndex].Slots[index].Enhancement.IOLevel, 1 }); break; } } } else { s3 += "[Empty]"; } } if (!string.IsNullOrEmpty(s) || !string.IsNullOrEmpty(s2) || !string.IsNullOrEmpty(s3)) { RectangleF layoutRectangle = new RectangleF(bounds.Left + 15f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(s, font, solidBrush, layoutRectangle, format); layoutRectangle = new RectangleF(bounds.Left + 80f, (float)vPos, bounds.Width, (float)fontSize * 1.25f); args.Graphics.DrawString(s2, font, solidBrush, layoutRectangle, format); vPos += (int)((float)fontSize * 1.25f); layoutRectangle = new RectangleF(bounds.Left + 90f, (float)vPos, bounds.Width, (float)(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length * fontSize) * 1.25f); args.Graphics.DrawString(s3, font, solidBrush, layoutRectangle, format); vPos += (int)((double)((float)fontSize * 1.25f) * 1.1 + (double)((float)fontSize * 1.25f * (float)(MidsContext.Character.CurrentBuild.Powers[pIndex].Slots.Length - 1))); } } } this._pIndex = num2; if (flag) { this._endOfPage = true; } else { this._pIndex = 0; } num = vPos; } return(num); }