public FF8String GetName(Faces.ID id, Saves.Data d = null) { if (d == null) { d = Memory.State; } switch (id) { case Faces.ID.Squall_Leonhart: return(d.Squallsname ?? Read(FileID.MNGRP, 2, 92)); case Faces.ID.Rinoa_Heartilly: return(d.Rinoasname ?? Read(FileID.MNGRP, 2, 93)); case Faces.ID.Angelo: return(d.Angelosname ?? Read(FileID.MNGRP, 2, 94)); case Faces.ID.Boko: return(d.Bokosname ?? Read(FileID.MNGRP, 2, 135)); case Faces.ID.Zell_Dincht: case Faces.ID.Irvine_Kinneas: case Faces.ID.Quistis_Trepe: case Faces.ID.Selphie_Tilmitt: case Faces.ID.Seifer_Almasy: case Faces.ID.Edea_Kramer: case Faces.ID.Laguna_Loire: case Faces.ID.Kiros_Seagill: case Faces.ID.Ward_Zabac: return(Read(FileID.KERNEL, 6, (int)id)); case Faces.ID.Quezacotl: case Faces.ID.Shiva: case Faces.ID.Ifrit: case Faces.ID.Siren: case Faces.ID.Brothers: case Faces.ID.Diablos: case Faces.ID.Carbuncle: case Faces.ID.Leviathan: case Faces.ID.Pandemona: case Faces.ID.Cerberus: case Faces.ID.Alexander: case Faces.ID.Doomtrain: case Faces.ID.Bahamut: case Faces.ID.Cactuar: case Faces.ID.Tonberry: case Faces.ID.Eden: return(d.GFs[id.ToGFs()].Name ?? Read(FileID.MNGRP, 2, 95 + (int)(id.ToGFs()))); case Faces.ID.Griever: return(d.Grieversname ?? Read(FileID.MNGRP, 2, 135)); case Faces.ID.MiniMog: return(Read(FileID.KERNEL, 0, 72)); // also in KERNEL, 12, 36 default: return(new FF8String()); } }
private Damageable GetDamagable(Faces.ID id) { GFs gf = id.ToGFs(); Characters c = id.ToCharacters(); if (c == OpenVIII.Characters.Blank) { return(GetDamagable(gf)); } else { return(GetDamagable(c)); } }
//public Damageable this[Damageable damageable] /// <summary> /// return -1 on error /// </summary> /// <param name="id"></param> /// <param name="character"></param> /// <param name="gf"></param> /// <returns></returns> public int CurrentHP(Faces.ID id = Faces.ID.Blank, Characters character = OpenVIII.Characters.Blank, GFs gf = OpenVIII.GFs.Blank) { if (character == OpenVIII.Characters.Blank) { character = id.ToCharacters(); } if (gf == OpenVIII.GFs.Blank) { gf = id.ToGFs(); } int hp = (Characters.ContainsKey(character) ? Characters[character].CurrentHP() : -1); hp = (hp < 0 && GFs.ContainsKey(gf) ? GFs[gf].CurrentHP() : hp); return(hp); }
private void Fill(Faces.ID e) { if ((e == Faces.ID.Blank && Target != Faces.ID.Blank) || All) { Target = e; foreach (IGMDataItem i in ITEM) { i?.Hide(); } } else { if (Target == Faces.ID.Blank) { foreach (IGMDataItem i in ITEM) { i?.Show(); } } Target = e; Characters character = e.ToCharacters(); GFs gf = e.ToGFs(); if (character != Characters.Blank || (gf != GFs.Blank && gf != GFs.All)) { ITEM[0, 0] = new IGMDataItem_String(Misc[Items.LV], new Rectangle(SIZE[0].X, SIZE[0].Y, 0, 0)); ITEM[1, 0] = new IGMDataItem_String(Misc[Items.HP], new Rectangle(SIZE[1].X, SIZE[1].Y, 0, 0)); ITEM[1, 2] = new IGMDataItem_String(Misc[Items.ForwardSlash], new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0)); } if (Memory.State.Characters != null && character != Characters.Blank) { ITEM[0, 1] = new IGMDataItem_Int(Memory.State.Characters[character].Level, new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6); ITEM[0, 2] = Memory.State.Party != null && Memory.State.Party.Contains(character) ? new IGMDataItem_Icon(Icons.ID.InParty, new Rectangle(SIZE[0].X + 155, SIZE[0].Y, 0, 0), 6) : null; ITEM[1, 1] = new IGMDataItem_Int(Memory.State.Characters[character].CurrentHP(character), new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6); ITEM[1, 3] = new IGMDataItem_Int(Memory.State.Characters[character].MaxHP(character), new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 5); } if (Memory.State.GFs != null && (gf != GFs.Blank && gf != GFs.All)) { ITEM[0, 1] = new IGMDataItem_Int(Memory.State.GFs[gf].Level, new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6); ITEM[0, 2] = null; ITEM[1, 1] = new IGMDataItem_Int(Memory.State.GFs[gf].CurrentHP(), new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 6); ITEM[1, 3] = new IGMDataItem_Int(Memory.State.GFs[gf].MaxHP(), new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), 13, numtype: Icons.NumType.sysFntBig, padding: 1, spaces: 5); } } }
private void Fill(Faces.ID e) { if ((e == Faces.ID.Blank && _target != Faces.ID.Blank) || All) { _target = e; foreach (var i in ITEM) { i?.Hide(); } } else { if (_target == Faces.ID.Blank) { foreach (var i in ITEM) { i?.Show(); } } _target = e; var character = e.ToCharacters(); var gf = e.ToGFs(); if (character != Characters.Blank || (gf != GFs.Blank && gf != GFs.All)) { ITEM[0, 0] = new IGMDataItem.Text { Data = Strings.Name.LV, Pos = new Rectangle(SIZE[0].X, SIZE[0].Y, 0, 0) }; ITEM[1, 0] = new IGMDataItem.Text { Data = Strings.Name.HP, Pos = new Rectangle(SIZE[1].X, SIZE[1].Y, 0, 0) }; ITEM[1, 2] = new IGMDataItem.Text { Data = Strings.Name.ForwardSlash, Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0) }; } if (Memory.State.Characters && character != Characters.Blank) { ITEM[0, 1] = new IGMDataItem.Integer { Data = Memory.State[character].Level, Pos = new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6 }; ITEM[0, 2] = Memory.State.Party != null && Memory.State.Party.Contains(character) ? new IGMDataItem.Icon { Data = Icons.ID.InParty, Pos = new Rectangle(SIZE[0].X + 155, SIZE[0].Y, 0, 0), Palette = 6 } : null; ITEM[1, 1] = new IGMDataItem.Integer { Data = Memory.State[character].CurrentHP(character), Pos = new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6 }; ITEM[1, 3] = new IGMDataItem.Integer { Data = Memory.State[character].MaxHP(character), Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 5 }; } if (Memory.State.GFs == null || (gf == GFs.Blank || gf == GFs.All)) { return; } ITEM[0, 1] = new IGMDataItem.Integer { Data = Memory.State.GFs[gf].Level, Pos = new Rectangle(SIZE[0].X + 35, SIZE[0].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6 }; ITEM[0, 2] = null; ITEM[1, 1] = new IGMDataItem.Integer { Data = Memory.State.GFs[gf].CurrentHP(), Pos = new Rectangle(SIZE[1].X + 35, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 6 }; ITEM[1, 3] = new IGMDataItem.Integer { Data = Memory.State.GFs[gf].MaxHP(), Pos = new Rectangle(SIZE[1].X + 155, SIZE[1].Y, 0, 0), Palette = 13, NumType = Icons.NumType.SysFntBig, Padding = 1, Spaces = 5 }; } }
public FF8String GetName(Faces.ID id, Saves.Data d = null) { if (d == null) { d = Memory.State; } switch (id) { case Faces.ID.Squall_Leonhart: return(d.SquallName ?? Read(FileID.MenuGroup, 2, 92)); case Faces.ID.Rinoa_Heartilly: return(d.RinoaName ?? Read(FileID.MenuGroup, 2, 93)); case Faces.ID.Angelo: return(d.AngeloName ?? Read(FileID.MenuGroup, 2, 94)); case Faces.ID.Boko: return(d.BokoName ?? Read(FileID.MenuGroup, 2, 135)); case Faces.ID.Zell_Dincht: case Faces.ID.Irvine_Kinneas: case Faces.ID.Quistis_Trepe: case Faces.ID.Selphie_Tilmitt: case Faces.ID.Seifer_Almasy: case Faces.ID.Edea_Kramer: case Faces.ID.Laguna_Loire: case Faces.ID.Kiros_Seagill: case Faces.ID.Ward_Zabac: return(Read(FileID.Kernel, 6, (int)id)); case Faces.ID.Quezacotl: case Faces.ID.Shiva: case Faces.ID.Ifrit: case Faces.ID.Siren: case Faces.ID.Brothers: case Faces.ID.Diablos: case Faces.ID.Carbuncle: case Faces.ID.Leviathan: case Faces.ID.Pandemona: case Faces.ID.Cerberus: case Faces.ID.Alexander: case Faces.ID.Doomtrain: case Faces.ID.Bahamut: case Faces.ID.Cactuar: case Faces.ID.Tonberry: case Faces.ID.Eden: if (d.GFs != null && d.GFs.TryGetValue(id.ToGFs(), out var value) && value.Name != null && value.Name.Length > 0) { return(value.Name); } return(Read(FileID.MenuGroup, 2, 95 + (int)(id.ToGFs()))); case Faces.ID.Griever: return(d.GrieverName ?? Read(FileID.MenuGroup, 2, 135)); case Faces.ID.MiniMog: return(Read(FileID.Kernel, 0, 72)); // also in KERNEL, 12, 36 case Faces.ID.Blank: return(new FF8String()); default: throw new ArgumentOutOfRangeException(nameof(id), id, null); } }