public void CanBuildMessageBin() { // Arrange var messageBin = new MessageBinEntry(); messageBin.AddString("first", "Grookey"); messageBin.AddString("second", "Scorbunny"); messageBin.AddString("third", "Sobble"); // Act var data = messageBin.ToByteArray(); // Assert var rebuiltDb = new MessageBinEntry(data); rebuiltDb.GetStringByHash((int)Crc32Hasher.Crc32Hash("first")).Should().Be("Grookey"); rebuiltDb.GetStringByHash((int)Crc32Hasher.Crc32Hash("second")).Should().Be("Scorbunny"); rebuiltDb.GetStringByHash((int)Crc32Hasher.Crc32Hash("third")).Should().Be("Sobble"); }
public CommonStrings(MessageBinEntry common) { this.common = common ?? throw new ArgumentNullException(nameof(common)); Pokemon = new Dictionary <CreatureIndex, string>(); var creatures = Enum.GetValues(typeof(CreatureIndex)).Cast <CreatureIndex>().ToArray(); foreach (CreatureIndex creature in creatures) { if (creature == default) { continue; } var name = GetPokemonNameByInternalName(creature.ToString("f")); Pokemon.Add(creature, name ?? ""); } Moves = new Dictionary <WazaIndex, string>(); var moves = Enum.GetValues(typeof(WazaIndex)).Cast <WazaIndex>().ToArray(); foreach (WazaIndex waza in moves) { if (waza == default) { continue; } var nameHash = TextIdValues.GetValueOrDefault("WAZA_NAME__WAZA_" + waza.ToString("f")); var name = common.GetStringByHash(nameHash); Moves.Add(waza, name ?? ""); } Dungeons = new Dictionary <DungeonIndex, string>(); var dungeons = Enum.GetValues(typeof(DungeonIndex)).Cast <DungeonIndex>().ToArray(); foreach (DungeonIndex dungeon in dungeons) { if (dungeon == default) { continue; } var name = GetDungeonNameByInternalName(dungeon.ToString("f")); Dungeons.Add(dungeon, name ?? ""); } }
/// <summary> /// Gets the name of a Pokemon by the internal Japanese name. /// </summary> /// <param name="internalName">Internal Japanese name such as "FUSHIGIDANE"</param> /// <returns>User-facing name such as "Bulbasaur", or null if the internal name could not be found</returns> public string?GetPokemonNameByInternalName(string internalName) { var nameHash = TextIdValues.GetValueOrDefault("POKEMON_NAME__POKEMON_" + internalName.ToUpper()); return(common.GetStringByHash(nameHash)); }