├── OneStar ├── icon.ico ├── Resources │ ├── map.png │ ├── map2_1.png │ ├── map2_2.png │ ├── map2_3.png │ ├── map3_1.png │ ├── map3_2.png │ ├── map3_3.png │ └── point.png ├── deps │ └── PKHeX_Raid_Plugin.dll ├── TextBoxEx.cs ├── App.config ├── packages.config ├── Properties │ ├── Settings.settings │ ├── Settings.Designer.cs │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── FlagExtensions.cs ├── Program.cs ├── PersonalInfoProvider.cs ├── Xoroshiro.cs ├── Messages.cs ├── EventDenList.cs ├── PokemonFormUtility.cs ├── Preferences.cs ├── ListGenerator.cs ├── OneStar.csproj ├── RaidData.cs └── AdditionalNestIdTable.cs ├── OneStarCalculatorLib ├── Const.h ├── Data.cpp ├── Type.h ├── Calculator.cpp ├── CudaProcess.cu ├── CudaProcess.cuh ├── CudaProcess5.cu ├── CudaProcess6.cu ├── CudaCalculator.cpp ├── CudaProcess5.cuh ├── CudaProcess6.cuh ├── SixivCalculator.cpp ├── Calculator.h ├── SixivCalculator.h ├── Data.h ├── XoroshiroState.h ├── CudaCalculator.h ├── Util.h ├── OneStarCalculatorLib.vcxproj.filters └── OneStarCalculatorLib.vcxproj ├── DenListConverter ├── packages.config ├── obj │ └── Debug │ │ ├── DenListConverter.csprojAssemblyReference.cache │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ └── .NETFramework,Version=v4.7.2.AssemblyAttributes.cs ├── App.config ├── DenSet.cs ├── Properties │ └── AssemblyInfo.cs ├── DenListConverter.csproj ├── Nest.cs ├── Entry.cs └── Program.cs ├── IVCalcNetFramework ├── packages.config ├── App.config ├── Extensions.cs ├── Properties │ └── AssemblyInfo.cs └── IVCalcNetFramework.csproj ├── OneStarCUI ├── App.config ├── Properties │ └── AssemblyInfo.cs ├── Program.cs └── OneStarCUI.csproj ├── README.md ├── OneStarCalculator ├── Properties │ └── AssemblyInfo.cs ├── OneStarCalculator.csproj └── SeedSearcher.cs ├── .gitignore ├── OneStar.sln └── Data ├── LanguageJp.json └── LanguageZh.json /OneStar/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/icon.ico -------------------------------------------------------------------------------- /OneStar/Resources/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map.png -------------------------------------------------------------------------------- /OneStar/Resources/map2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map2_1.png -------------------------------------------------------------------------------- /OneStar/Resources/map2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map2_2.png -------------------------------------------------------------------------------- /OneStar/Resources/map2_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map2_3.png -------------------------------------------------------------------------------- /OneStar/Resources/map3_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map3_1.png -------------------------------------------------------------------------------- /OneStar/Resources/map3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map3_2.png -------------------------------------------------------------------------------- /OneStar/Resources/map3_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/map3_3.png -------------------------------------------------------------------------------- /OneStar/Resources/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/Resources/point.png -------------------------------------------------------------------------------- /OneStarCalculatorLib/Const.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/Const.h -------------------------------------------------------------------------------- /OneStarCalculatorLib/Data.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/Data.cpp -------------------------------------------------------------------------------- /OneStarCalculatorLib/Type.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef unsigned long long _u64; 4 | typedef unsigned long _u32; 5 | -------------------------------------------------------------------------------- /OneStar/deps/PKHeX_Raid_Plugin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStar/deps/PKHeX_Raid_Plugin.dll -------------------------------------------------------------------------------- /OneStar/TextBoxEx.cs: -------------------------------------------------------------------------------- 1 | namespace OneStar 2 | { 3 | public class TextBoxEx : System.Windows.Forms.TextBox 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/Calculator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/Calculator.cpp -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess.cu -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess.cuh -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess5.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess5.cu -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess6.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess6.cu -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaCalculator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaCalculator.cpp -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess5.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess5.cuh -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaProcess6.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/CudaProcess6.cuh -------------------------------------------------------------------------------- /OneStarCalculatorLib/SixivCalculator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/OneStarCalculatorLib/SixivCalculator.cpp -------------------------------------------------------------------------------- /DenListConverter/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IVCalcNetFramework/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /DenListConverter/obj/Debug/DenListConverter.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/DenListConverter/obj/Debug/DenListConverter.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /DenListConverter/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rusted-coil/OneStar/HEAD/DenListConverter/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /OneStar/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /OneStarCUI/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /DenListConverter/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /IVCalcNetFramework/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /OneStar/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /OneStar/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DenListConverter/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System; 3 | using System.Reflection; 4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OneStar 2 | ソードシールド乱数調整ツール 3 | 4 | ### Untranslated Messages 5 | Please edit Data/Language**.json and give a pull request. 6 | * English: Data/LanguageEn.json 7 | * Please translate any unsuitable messages. 8 | 9 | 10 | -------------------------------------------------------------------------------- /IVCalcNetFramework/Extensions.cs: -------------------------------------------------------------------------------- 1 | namespace IVCalcNetFramework 2 | { 3 | public static class Extensions 4 | { 5 | public static decimal ToDecimal(this string text) 6 | { 7 | return decimal.Parse(text, new System.Globalization.CultureInfo("en-US")); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /OneStar/FlagExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace OneStar 8 | { 9 | public static class FlagExtensions 10 | { 11 | public static bool TestBit(this int flag, int bit) 12 | { 13 | return (flag & (1 << bit)) > 0; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/Calculator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | 4 | extern "C" 5 | { 6 | __declspec(dllexport) void Prepare(int rerolls); 7 | __declspec(dllexport) void Set12Condition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool isNoGender, int abilityFlag, int flawlessIvs); 8 | __declspec(dllexport) _u64 Search(_u64); 9 | } 10 | -------------------------------------------------------------------------------- /OneStar/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace OneStar 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// アプリケーションのメイン エントリ ポイントです。 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | MainForm mainForm = new MainForm(); 20 | if (mainForm.IsInitialized) 21 | { 22 | Application.Run(mainForm); 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/SixivCalculator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | 4 | extern "C" 5 | { 6 | __declspec(dllexport) void PrepareSix(int ivOffset); 7 | __declspec(dllexport) void Set35Condition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool isNoGender, int abilityFlag, int flawlessIvs); 8 | __declspec(dllexport) void SetTargetCondition6(int iv1, int iv2, int iv3, int iv4, int iv5, int iv6); 9 | __declspec(dllexport) void SetTargetCondition5(int iv1, int iv2, int iv3, int iv4, int iv5); 10 | __declspec(dllexport) _u64 SearchSix(_u64); 11 | } 12 | -------------------------------------------------------------------------------- /OneStar/PersonalInfoProvider.cs: -------------------------------------------------------------------------------- 1 | using PKHeX.Core; 2 | 3 | namespace OneStar 4 | { 5 | public static class PersonalInfoProvider 6 | { 7 | public static PersonalInfo GetPersonalInfo(RaidData.Pokemon pokemon) 8 | { 9 | // ルガルガン(たそがれ)のみ別で処理 10 | if (pokemon.DisplaySpecies == 745.2m) 11 | { 12 | int dataSpecies = PersonalTable.USUM[745].FormeIndex(745, 2); 13 | return PersonalTable.USUM[dataSpecies]; 14 | } 15 | 16 | // 剣盾にデータが無いものはUSUMから取ってくる 17 | if (pokemon.IsDataSWSH) 18 | { 19 | return PersonalTable.SWSH[pokemon.DataSpecies]; 20 | } 21 | else 22 | { 23 | return PersonalTable.USUM[pokemon.DataSpecies]; 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/Data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | #include "Util.h" 4 | 5 | extern NatureTable c_NatureTable[3]; 6 | 7 | extern _u64 g_TempMatrix[256]; 8 | extern _u64 g_InputMatrix[64]; 9 | extern _u64 g_ConstantTermVector; 10 | extern _u64 g_Coefficient[64]; 11 | extern _u64 g_AnswerFlag[64]; 12 | extern _u64 g_CoefficientData[0x4000]; 13 | extern _u64 g_SearchPattern[0x4000]; 14 | extern int g_FreeBit[64]; 15 | extern int g_FreeId[64]; 16 | 17 | void InitializeTransformationMatrix(); 18 | void ProceedTransformationMatrix(); 19 | _u64 GetMatrixMultiplier(int index); 20 | short GetMatrixConst(int index); 21 | 22 | void CalculateInverseMatrix(int length); 23 | void CalculateCoefficientData(int length); 24 | 25 | extern "C" 26 | { 27 | __declspec(dllexport) void InitializeConstData(); 28 | } 29 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/XoroshiroState.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | 4 | inline _u64 RotateLeft(_u64 value, int amount) 5 | { 6 | return (value << amount) | (value >> (64 - amount)); 7 | } 8 | 9 | struct XoroshiroState 10 | { 11 | _u64 m_S0; 12 | _u64 m_S1; 13 | 14 | void SetSeed(_u64 seed) 15 | { 16 | m_S0 = seed; 17 | m_S1 = 0x82a2b175229d6a5bull; 18 | } 19 | 20 | void Copy(XoroshiroState* src) 21 | { 22 | m_S0 = src->m_S0; 23 | m_S1 = src->m_S1; 24 | } 25 | 26 | unsigned int Next(unsigned int mask) 27 | { 28 | unsigned int value = (m_S0 + m_S1) & mask; 29 | m_S1 = m_S0 ^ m_S1; 30 | m_S0 = RotateLeft(m_S0, 24) ^ m_S1 ^ (m_S1 << 16); 31 | m_S1 = RotateLeft(m_S1, 37); 32 | return value; 33 | } 34 | void Next() 35 | { 36 | m_S1 = m_S0 ^ m_S1; 37 | m_S0 = RotateLeft(m_S0, 24) ^ m_S1 ^ (m_S1 << 16); 38 | m_S1 = RotateLeft(m_S1, 37); 39 | } 40 | }; 41 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/CudaCalculator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | 4 | extern "C" 5 | { 6 | __declspec(dllexport) int GetCudaDeviceCount(); 7 | __declspec(dllexport) void CudaInitialize(); 8 | __declspec(dllexport) void SetCudaCondition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool isNoGender, int abilityFlag, int flawlessIvs); 9 | __declspec(dllexport) void SetCudaTargetCondition6(int iv1, int iv2, int iv3, int iv4, int iv5, int iv6); 10 | __declspec(dllexport) void SetCudaTargetCondition5(int iv1, int iv2, int iv3, int iv4, int iv5); 11 | __declspec(dllexport) void CudaCalcInitialize(); 12 | __declspec(dllexport) void PrepareCuda(int ivOffset); 13 | __declspec(dllexport) void SearchCuda(_u32, int); 14 | __declspec(dllexport) int GetResultCount(); 15 | __declspec(dllexport) _u64 GetResult(int index); 16 | __declspec(dllexport) void CudaCalcFinalize(); 17 | } 18 | -------------------------------------------------------------------------------- /OneStar/Xoroshiro.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace OneStar 8 | { 9 | public class Xoroshiro 10 | { 11 | UInt64 s0, s1; 12 | 13 | public int GetRaw(int index, UInt32 mask) 14 | { 15 | if (index == 0) 16 | { 17 | return (int)(s0 & mask); 18 | } 19 | return (int)(s1 & mask); 20 | } 21 | 22 | public Xoroshiro(UInt64 seed) 23 | { 24 | s0 = seed; 25 | s1 = 0x82a2b175229d6a5bul; 26 | } 27 | 28 | UInt64 RotateLeft(UInt64 value, int amount) 29 | { 30 | UInt64 left = (value << amount); 31 | UInt64 right = (value >> (64 - amount)); 32 | return left | right; 33 | } 34 | 35 | public UInt32 Next(UInt32 mask) 36 | { 37 | UInt32 value = (UInt32)(s0 + s1) & mask; 38 | 39 | s1 = s0 ^ s1; 40 | s0 = RotateLeft(s0, 24) ^ s1 ^ (s1 << 16); 41 | s1 = RotateLeft(s1, 37); 42 | 43 | return value; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/Util.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "Type.h" 3 | 4 | inline _u64 GetSignature(_u64 value) 5 | { 6 | unsigned int a = (unsigned int)(value ^ (value >> 32)); 7 | a = a ^ (a >> 16); 8 | a = a ^ (a >> 8); 9 | a = a ^ (a >> 4); 10 | a = a ^ (a >> 2); 11 | return (a ^ (a >> 1)) & 1; 12 | } 13 | 14 | struct PokemonData 15 | { 16 | int ivs[6]; 17 | int ability; 18 | int nature; 19 | int natureTableId; 20 | int characteristic; 21 | bool isNoGender; 22 | int abilityFlag; 23 | int flawlessIvs; 24 | 25 | bool IsCharacterized(int index) // H A B "S" C D 26 | { 27 | switch (index) 28 | { 29 | case 0: return (ivs[0] == 31); 30 | case 1: return (ivs[1] == 31); 31 | case 2: return (ivs[2] == 31); 32 | case 3: return (ivs[5] == 31); 33 | case 4: return (ivs[3] == 31); 34 | case 5: return (ivs[4] == 31); 35 | default: return true; 36 | } 37 | } 38 | }; 39 | 40 | struct NatureTable 41 | { 42 | _u32 randMax; 43 | _u32 patternCount; 44 | _u32 natureId[25]; 45 | }; 46 | -------------------------------------------------------------------------------- /OneStar/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // このコードはツールによって生成されました。 4 | // ランタイム バージョン:4.0.30319.42000 5 | // 6 | // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 7 | // コードが再生成されるときに損失したりします。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace OneStar.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /OneStar/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 6 | // アセンブリに関連付けられている情報を変更するには、 7 | // これらの属性値を変更してください。 8 | [assembly: AssemblyTitle("OneStar")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("OneStar")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから 18 | // 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、 19 | // その型の ComVisible 属性を true に設定してください。 20 | [assembly: ComVisible(false)] 21 | 22 | // このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります 23 | [assembly: Guid("f78e6705-c8f8-4817-81ef-49121d2d0005")] 24 | 25 | // アセンブリのバージョン情報は次の 4 つの値で構成されています: 26 | // 27 | // メジャー バージョン 28 | // マイナー バージョン 29 | // ビルド番号 30 | // Revision 31 | // 32 | // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます 33 | // 既定値にすることができます: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /OneStarCUI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 6 | // アセンブリに関連付けられている情報を変更するには、 7 | // これらの属性値を変更してください。 8 | [assembly: AssemblyTitle("OneStarCUI")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("OneStarCUI")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから 18 | // 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、 19 | // その型の ComVisible 属性を true に設定してください。 20 | [assembly: ComVisible(false)] 21 | 22 | // このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります 23 | [assembly: Guid("01e97797-02b9-460d-a6c8-b90e55b7064b")] 24 | 25 | // アセンブリのバージョン情報は次の 4 つの値で構成されています: 26 | // 27 | // メジャー バージョン 28 | // マイナー バージョン 29 | // ビルド番号 30 | // Revision 31 | // 32 | // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます 33 | // 既定値にすることができます: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /DenListConverter/DenSet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace DenListConverter 9 | { 10 | public class DenSet 11 | { 12 | public Dictionary NestDictionary { get; } = new Dictionary(); 13 | 14 | public void Load(string path) 15 | { 16 | using (StreamReader sr = new StreamReader(path)) 17 | { 18 | string line; 19 | Nest nest = null; 20 | List nestLines = new List(); 21 | 22 | while ((line = sr.ReadLine()) != null) 23 | { 24 | // NestID定義 25 | if (line.IndexOf("Nest ID:") == 0) 26 | { 27 | if (nest != null) 28 | { 29 | nest.Load(nestLines); 30 | NestDictionary.Add(nest.Id, nest); 31 | nestLines.Clear(); 32 | } 33 | 34 | string[] elements = line.Split(' '); 35 | string id = elements[2]; 36 | nest = new Nest(id); 37 | 38 | continue; 39 | } 40 | nestLines.Add(line); 41 | } 42 | if (nest != null) 43 | { 44 | nest.Load(nestLines); 45 | NestDictionary.Add(nest.Id, nest); 46 | } 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /OneStarCalculator/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 6 | // アセンブリに関連付けられている情報を変更するには、 7 | // これらの属性値を変更してください。 8 | [assembly: AssemblyTitle("OneStarCalculator")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("OneStarCalculator")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから 18 | // 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、 19 | // その型の ComVisible 属性を true に設定してください。 20 | [assembly: ComVisible(false)] 21 | 22 | // このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります 23 | [assembly: Guid("4a5adb06-7773-4e21-9336-d46a44b92cc2")] 24 | 25 | // アセンブリのバージョン情報は次の 4 つの値で構成されています: 26 | // 27 | // メジャー バージョン 28 | // マイナー バージョン 29 | // ビルド番号 30 | // Revision 31 | // 32 | // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます 33 | // 以下のように '*' を使用します: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /DenListConverter/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 6 | // 制御されます。アセンブリに関連付けられている情報を変更するには、 7 | // これらの属性値を変更します。 8 | [assembly: AssemblyTitle("DenListConverter")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("DenListConverter")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから 18 | // 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、 19 | // その型の ComVisible 属性を true に設定します。 20 | [assembly: ComVisible(false)] 21 | 22 | // このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります 23 | [assembly: Guid("3d0d9d95-e953-4eba-9559-6dfbfc6c74f9")] 24 | 25 | // アセンブリのバージョン情報は次の 4 つの値で構成されています: 26 | // 27 | // メジャー バージョン 28 | // マイナー バージョン 29 | // ビルド番号 30 | // リビジョン 31 | // 32 | // すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます 33 | // 既定値にすることができます: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /.idea 3 | /Debug 4 | /OneStar/bin 5 | /OneStar/obj 6 | /IVCalcNetFramework/bin 7 | /IVCalcNetFramework/bin/Debug 8 | /IVCalcNetFramework/bin/Release 9 | /IVCalcNetFramework/obj 10 | *.exp 11 | *.iobj 12 | *.ipdb 13 | /Release 14 | /x64 15 | /OneStarCalculatorLib/x64 16 | /OneStarCUI/bin 17 | /OneStarCUI/obj 18 | *.user 19 | /OneStarCalculator/bin 20 | /OneStarCalculator/obj 21 | /OneStarCalculatorLib/Release 22 | /packages/Newtonsoft.Json.12.0.3 23 | IVCalcNetFramework/bin/Debug/IVCalcNetFramework.pdb 24 | IVCalcNetFramework/bin/Release/IVCalcNetFramework.dll 25 | IVCalcNetFramework/bin/Release/IVCalcNetFramework.pdb 26 | IVCalcNetFramework/obj/Debug/IVCalcNetFramework.csproj.CoreCompileInputs.cache 27 | IVCalcNetFramework/obj/Debug/IVCalcNetFramework.csproj.FileListAbsolute.txt 28 | IVCalcNetFramework/obj/Debug/IVCalcNetFramework.csprojAssemblyReference.cache 29 | IVCalcNetFramework/obj/Debug/IVCalcNetFramework.pdb 30 | IVCalcNetFramework/obj/Release/IVCalcNetFramework.csproj.CoreCompileInputs.cache 31 | IVCalcNetFramework/obj/Release/IVCalcNetFramework.csproj.FileListAbsolute.txt 32 | IVCalcNetFramework/obj/Release/IVCalcNetFramework.csprojAssemblyReference.cache 33 | IVCalcNetFramework/obj/Release/IVCalcNetFramework.dll 34 | IVCalcNetFramework/obj/Release/IVCalcNetFramework.pdb 35 | /packages/PKHeX.Core.20.1.26 36 | /packages/PKHeX.Core.20.2.9 37 | /OneStarCalculatorLib/Debug 38 | -------------------------------------------------------------------------------- /IVCalcNetFramework/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("IVCalcNetFramework")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("IVCalcNetFramework")] 13 | [assembly: AssemblyCopyright("Copyright © 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("ee1d9696-545c-495d-9f6d-680038688f85")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /OneStar/Messages.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using Newtonsoft.Json; 5 | 6 | namespace OneStar 7 | { 8 | public class Messages 9 | { 10 | // データ 11 | public string LangCode; 12 | public Dictionary Nature; 13 | public Dictionary Characteristic; 14 | public List Gender; 15 | public List Ability; 16 | public List Status; 17 | public List RankPrefix; 18 | public List IvsInfo; 19 | public Dictionary SystemLabel; 20 | public List CheckIvsResult; 21 | public Dictionary ErrorMessage; 22 | public Dictionary SystemMessage; 23 | public Dictionary ListLabel; 24 | public Dictionary Pokemon; 25 | public Dictionary Den; 26 | public List Version; 27 | public List DenRarity; 28 | 29 | [JsonIgnore] public static Messages Instance { get; private set; } 30 | [JsonIgnore] public static string ErrorText { get; private set; } 31 | 32 | // 言語を指定して初期化 33 | public static bool Initialize(Language language) 34 | { 35 | string fileName = ""; 36 | string str = ""; 37 | switch (language) 38 | { 39 | case Language.Japanese: fileName = "LanguageJp.json"; break; 40 | case Language.English: fileName = "LanguageEn.json"; break; 41 | case Language.ChineseZh: fileName = "LanguageZh.json"; break; 42 | case Language.ChineseZh_TW: fileName = "LanguageZh_TW.json"; break; 43 | } 44 | try 45 | { 46 | using (StreamReader sr = new StreamReader("data/" + fileName)) 47 | { 48 | str = sr.ReadToEnd(); 49 | } 50 | } 51 | catch (Exception e) 52 | { 53 | // エラー 54 | ErrorText = e.ToString(); 55 | Instance = null; 56 | return false; 57 | } 58 | 59 | try 60 | { 61 | Instance = JsonConvert.DeserializeObject(str); 62 | } 63 | catch (Exception e) 64 | { 65 | // エラー 66 | ErrorText = e.ToString(); 67 | Instance = null; 68 | return false; 69 | } 70 | 71 | return Instance != null; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /OneStar/EventDenList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using Newtonsoft.Json; 5 | using PKHeX_Raid_Plugin; 6 | 7 | namespace OneStar 8 | { 9 | public class EventDenList 10 | { 11 | public class EventDen 12 | { 13 | public class Data 14 | { 15 | public int Species; 16 | public int[] Probabilities; 17 | public int FlawlessIvs; 18 | public int MinRank; 19 | public int MaxRank; 20 | public int AltForm; 21 | public int Ability; 22 | public int Gender; 23 | public bool Gigantamax; 24 | public int ShinyType; 25 | 26 | public Data() 27 | { 28 | Probabilities = new int[5]; 29 | } 30 | } 31 | 32 | public List Entries; 33 | 34 | public EventDen() 35 | { 36 | Entries = new List(); 37 | Entries.Add(new Data()); 38 | Entries.Add(new Data()); 39 | Entries.Add(new Data()); 40 | } 41 | 42 | // RaidPlugin互換のデータを取得 43 | [JsonIgnore] 44 | public RaidTemplate[] RaidEntries { 45 | get { 46 | RaidTemplate[] list = new RaidTemplate[Entries.Count]; 47 | for (int i = 0; i < list.Length; ++i) 48 | { 49 | list[i] = new RaidTemplate( Entries[i].Species, 50 | Entries[i].Probabilities, 51 | Entries[i].FlawlessIvs, 52 | Entries[i].MinRank, 53 | Entries[i].MaxRank, 54 | Entries[i].AltForm, 55 | Entries[i].Ability, 56 | Entries[i].Gender, 57 | Entries[i].Gigantamax, 58 | Entries[i].ShinyType ); 59 | } 60 | return list; 61 | } 62 | } 63 | } 64 | 65 | [JsonIgnore] 66 | public bool IsValid = false; 67 | public Dictionary EventList; 68 | 69 | public void Load(string path) 70 | { 71 | string str; 72 | try 73 | { 74 | using (StreamReader sr = new StreamReader(path)) 75 | { 76 | str = sr.ReadToEnd(); 77 | } 78 | } 79 | catch (Exception) 80 | { 81 | // エラー 82 | return; 83 | } 84 | 85 | EventDenList tmp = null; 86 | try 87 | { 88 | tmp = JsonConvert.DeserializeObject(str); 89 | } 90 | catch (Exception) 91 | { 92 | // エラー 93 | return; 94 | } 95 | 96 | if (tmp != null) 97 | { 98 | EventList = new Dictionary(tmp.EventList); 99 | 100 | IsValid = true; 101 | } 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/OneStarCalculatorLib.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | ソース ファイル 20 | 21 | 22 | ソース ファイル 23 | 24 | 25 | ソース ファイル 26 | 27 | 28 | ソース ファイル 29 | 30 | 31 | 32 | 33 | ヘッダー ファイル 34 | 35 | 36 | ヘッダー ファイル 37 | 38 | 39 | ヘッダー ファイル 40 | 41 | 42 | ヘッダー ファイル 43 | 44 | 45 | ヘッダー ファイル 46 | 47 | 48 | ヘッダー ファイル 49 | 50 | 51 | ヘッダー ファイル 52 | 53 | 54 | ヘッダー ファイル 55 | 56 | 57 | ヘッダー ファイル 58 | 59 | 60 | ヘッダー ファイル 61 | 62 | 63 | ヘッダー ファイル 64 | 65 | 66 | 67 | 68 | ソース ファイル 69 | 70 | 71 | ソース ファイル 72 | 73 | 74 | ソース ファイル 75 | 76 | 77 | -------------------------------------------------------------------------------- /OneStarCUI/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using OneStarCalculator; 3 | 4 | namespace OneStarCUI 5 | { 6 | class Program 7 | { 8 | static void Main(string[] args) 9 | { 10 | // 適当に計算したりするテスト用コンソールです 11 | // 0x123イベントレイド 12 | // マホミル★3 13 | // 4匹目3V 31 28 31 4 31 11 うっかりや 夢 ♀固定 個性1 うたれづよい 14 | // マホミル★4 15 | // 4匹目4V 31 10 31 31 31 27 ひかえめ 特性1 ♀固定 個性1 うたれづよい 16 | // マホミル★3 17 | // 5匹目3V 27 21 31 31 18 31 のうてんき 特性1 ♀固定 個性2 うたれづよい 18 | // マホミル★3 19 | // 6匹目3V 31 31 3 17 31 6 さみしがり 特性1 ♀固定 個性3 みえっぱり 20 | /* 21 | SeedSearcher searcher = new SeedSearcher(SeedSearcher.Mode.Cuda35); 22 | SeedSearcher.CudaInitialize(); 23 | SeedSearcher.SetCudaCondition(0, 31, 28, 31, 4, 31, 11, 2, 19, 0, 2, true, 4, 3); 24 | SeedSearcher.SetCudaCondition(1, 31, 10, 31, 31, 31, 27, 0, 15, 0, 2, true, 4, 4); 25 | SeedSearcher.SetCudaCondition(2, 27, 21, 31, 31, 18, 31, 0, 9, 0, 2, true, 4, 3); 26 | SeedSearcher.SetCudaCondition(3, 31, 31, 3, 17, 31, 6, 0, 1, 0, 5, true, 4, 3); 27 | SeedSearcher.SetCudaTargetCondition5(28, 4, 11, 10, 27); 28 | */ 29 | // 0x123イベントレイド 30 | // ストリンダー(ハイ)★3 31 | // 4匹目3V 31 28 31 4 31 11 わんぱく 夢 ♂♀ 個性1 うたれづよい 32 | // ストリンダー(ハイ)★4 33 | // 4匹目4V 31 10 31 31 31 27 なまいき 特性1 ♂♀ 個性1 うたれづよい 34 | // ストリンダー(ハイ)★3 35 | // 5匹目3V 27 21 31 31 18 31 ゆうかん 特性1 ♂♀ 個性2 うたれづよい 36 | /* 37 | SeedSearcher searcher = new SeedSearcher(SeedSearcher.Mode.Cuda35); 38 | SeedSearcher.CudaInitialize(); 39 | SeedSearcher.SetCudaCondition(0, 31, 28, 31, 4, 31, 11, 2, 8, 1, 2, false, 4, 3); 40 | SeedSearcher.SetCudaCondition(1, 31, 10, 31, 31, 31, 27, 0, 22, 1, 2, false, 4, 4); 41 | SeedSearcher.SetCudaCondition(2, 27, 21, 31, 31, 18, 31, 0, 2, 1, 2, false, 4, 3); 42 | SeedSearcher.SetCudaTargetCondition5(28, 4, 11, 10, 27); 43 | */ 44 | // 0x123イベントレイド 45 | // ストリンダー(ロー)★3 46 | // 4匹目3V 31 28 31 4 31 11 おくびょう 夢 ♂♀ 個性1 うたれづよい 47 | // ストリンダー(ロー)★4 48 | // 4匹目4V 31 10 31 31 31 27 おっとり 特性1 ♂♀ 個性1 うたれづよい 49 | // ストリンダー(ロー)★3 50 | // 5匹目3V 27 21 31 31 18 31 のんき 特性1 ♂♀ 個性2 うたれづよい 51 | SeedSearcher searcher = new SeedSearcher(SeedSearcher.Mode.Cuda35); 52 | SeedSearcher.CudaInitialize(); 53 | SeedSearcher.SetCudaCondition(0, 31, 28, 31, 4, 31, 11, 2, 10, 2, 2, false, 4, 3); 54 | SeedSearcher.SetCudaCondition(1, 31, 10, 31, 31, 31, 27, 0, 16, 2, 2, false, 4, 4); 55 | SeedSearcher.SetCudaCondition(2, 27, 21, 31, 31, 18, 31, 0, 7, 2, 2, false, 4, 3); 56 | SeedSearcher.SetCudaTargetCondition5(28, 4, 11, 10, 27); 57 | 58 | searcher.CudaLoopPartition = 0; 59 | 60 | Console.WriteLine("計算中..."); 61 | 62 | // 時間計測 63 | var sw = new System.Diagnostics.Stopwatch(); 64 | sw.Start(); 65 | 66 | // 計算 67 | searcher.Calculate(false, 0, 0, null); 68 | 69 | sw.Stop(); 70 | 71 | Console.WriteLine($"{searcher.Result.Count} results"); 72 | foreach (ulong result in searcher.Result) 73 | { 74 | Console.WriteLine($"0x{result:X}"); 75 | } 76 | Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]"); 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /DenListConverter/DenListConverter.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9} 8 | Exe 9 | DenListConverter 10 | DenListConverter 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | 16 | 17 | AnyCPU 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | 26 | 27 | AnyCPU 28 | pdbonly 29 | true 30 | bin\Release\ 31 | TRACE 32 | prompt 33 | 4 34 | 35 | 36 | 37 | ..\packages\PKHeX.Core.20.10.11\lib\net46\PKHeX.Core.dll 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | {f78e6705-c8f8-4817-81ef-49121d2d0005} 62 | OneStar 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /OneStar/PokemonFormUtility.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows.Forms; 3 | using OneStarCalculator; 4 | 5 | namespace OneStar 6 | { 7 | class PokemonFormUtility 8 | { 9 | // 特性コンボボックスアイテムクラス 10 | public class AbilityItem 11 | { 12 | public int Type { get; private set; } 13 | public int Id { get; private set; } 14 | public string Name { get; private set; } 15 | 16 | public override string ToString() { return Name; } 17 | 18 | public AbilityItem(int type, int id, string name) 19 | { 20 | Type = type; 21 | Id = id; 22 | Name = name; 23 | } 24 | } 25 | 26 | // 性格リストをコンボボックスにセット 27 | public static void SetNatureComboBox(ComboBox comboBox) 28 | { 29 | foreach (var key in Messages.Instance.Nature.Keys) 30 | { 31 | comboBox.Items.Add(key); 32 | } 33 | comboBox.SelectedIndex = 0; 34 | } 35 | 36 | // 性格IDのものを選択 37 | public static void SelectNatureComboBox(ComboBox comboBox, int nature) 38 | { 39 | string str = GetNatureString(nature); 40 | foreach (var item in comboBox.Items) 41 | { 42 | if (item.ToString() == str) 43 | { 44 | comboBox.SelectedItem = item; 45 | } 46 | } 47 | } 48 | 49 | // 個性リストをコンボボックスにセット 50 | public static void SetCharacteristicComboBox(ComboBox comboBox) 51 | { 52 | foreach (var key in Messages.Instance.Characteristic.Keys) 53 | { 54 | comboBox.Items.Add(key); 55 | } 56 | comboBox.SelectedIndex = 0; 57 | } 58 | 59 | // 個性IDのものを選択 60 | public static void SelectCharacteristicComboBox(ComboBox comboBox, int characteristic) 61 | { 62 | string str = GetCharacteristicString(characteristic); 63 | foreach (var item in comboBox.Items) 64 | { 65 | if (item.ToString() == str) 66 | { 67 | comboBox.SelectedItem = item; 68 | } 69 | } 70 | } 71 | 72 | // 特性リストをコンボボックスにセット 73 | public static void SetAbilityComboBox(ComboBox comboBox, int count, int initialIndex = 0) 74 | { 75 | for (int i = 0; i < count; ++i) 76 | { 77 | comboBox.Items.Add(Messages.Instance.Ability[i]); 78 | } 79 | comboBox.SelectedIndex = initialIndex; 80 | } 81 | 82 | public static string GetNatureString(int nature) 83 | { 84 | foreach (var pair in Messages.Instance.Nature) 85 | { 86 | if (pair.Value == nature) 87 | { 88 | return pair.Key; 89 | } 90 | } 91 | return ""; 92 | } 93 | 94 | public static string GetCharacteristicString(int characteristic) 95 | { 96 | foreach (var pair in Messages.Instance.Characteristic) 97 | { 98 | if (pair.Value == characteristic) 99 | { 100 | return pair.Key; 101 | } 102 | } 103 | return ""; 104 | } 105 | 106 | // 性格テーブル 107 | public class NatureTable 108 | { 109 | public uint Max { get; set; } 110 | public uint Pattern { get; set; } 111 | public int[] List { get; set; } 112 | } 113 | public static NatureTable[] NatureTableList = { 114 | new NatureTable{ Max = 0x1F, Pattern = 25, List = new int[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ,17, 18, 19, 20, 21, 22, 23, 24 } }, 115 | new NatureTable{ Max = 0xF, Pattern = 13, List = new int[]{ 3, 4, 2, 8, 9, 19, 22, 11, 13, 14, 0, 6, 24 } }, 116 | new NatureTable{ Max = 0xF, Pattern = 12, List = new int[]{ 1, 5, 7, 10, 12, 15, 16, 17, 18, 20, 21, 23 } }, 117 | }; 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /DenListConverter/Nest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace DenListConverter 9 | { 10 | public class Nest 11 | { 12 | public string Id { get; } 13 | public List Entries { get; } = new List(); 14 | 15 | public Nest(string id) 16 | { 17 | Id = id; 18 | } 19 | 20 | public void Load(List lines) 21 | { 22 | Entry entry = null; 23 | List entryLines = new List(); 24 | foreach (var line in lines) 25 | { 26 | if (line.Length > 2) 27 | { 28 | // 最初の行 29 | if (line[0] == '\t' && line[1] != '\t') 30 | { 31 | if (entry != null) 32 | { 33 | entry.Load(entryLines); 34 | Entries.Add(entry); 35 | entryLines.Clear(); 36 | } 37 | 38 | int index = line.IndexOf(' '); 39 | string first = line.Substring(1, index - 1); 40 | string second = line.Substring(index + 1); 41 | int star = 0; 42 | if (first == "1-Star") 43 | { 44 | star = 1; 45 | } 46 | else if (first == "2-Star") 47 | { 48 | star = 2; 49 | } 50 | else if (first == "3-Star") 51 | { 52 | star = 3; 53 | } 54 | else if (first == "4-Star") 55 | { 56 | star = 4; 57 | } 58 | else if (first == "5-Star") 59 | { 60 | star = 5; 61 | } 62 | else if (first == "0-Star") 63 | { 64 | star = 0; 65 | } 66 | else 67 | { 68 | ; 69 | } 70 | 71 | bool gigantamax = false; 72 | if (second.IndexOf("Gigantamax") == 0) 73 | { 74 | second = second.Substring(11); 75 | gigantamax = true; 76 | } 77 | 78 | string name = second; 79 | int altform = 0; 80 | if (second[second.Length - 2] == '-' && second != "Jangmo-o" && second != "Hakamo-o" && second != "Kommo-o") 81 | { 82 | name = second.Substring(0, second.Length - 2); 83 | altform = int.Parse(second.Substring(second.Length - 1)); 84 | } 85 | 86 | if (star > 0) 87 | { 88 | entry = new Entry(star, name, altform, gigantamax); 89 | } 90 | else 91 | { 92 | entry = null; 93 | } 94 | 95 | continue; 96 | } 97 | entryLines.Add(line); 98 | } 99 | } 100 | if (entry != null) 101 | { 102 | entry.Load(entryLines); 103 | Entries.Add(entry); 104 | } 105 | } 106 | 107 | public void Output(StreamWriter sw, string suffix) 108 | { 109 | sw.WriteLine($" \"{Id + suffix}\":{{"); 110 | sw.WriteLine(" \"Entries\":["); 111 | 112 | for (int i = 1; i <= 5; ++i) 113 | { 114 | foreach (var entry in Entries) 115 | { 116 | if (entry.Star == i) 117 | { 118 | entry.Output(sw); 119 | } 120 | } 121 | } 122 | 123 | sw.WriteLine(" ]},"); 124 | } 125 | 126 | public void Intermediate(StreamWriter sw, string suffix) 127 | { 128 | sw.WriteLine($"====={Id + suffix}"); 129 | 130 | for (int i = 0; i < 5; ++i) 131 | { 132 | foreach (var entry in Entries) 133 | { 134 | if (entry.Probability[i] > 0) 135 | { 136 | int species = -1; 137 | string name = entry.Name; 138 | { 139 | var list = PKHeX.Core.Util.GetSpeciesList("en"); 140 | for (int a = 0; a < list.Length; ++a) 141 | { 142 | if (name == list[a]) 143 | { 144 | species = a; 145 | break; 146 | } 147 | } 148 | } 149 | // 日本語ポケモン名検索 150 | if(species != -1) 151 | { 152 | name = PKHeX.Core.Util.GetSpeciesList("ja")[species]; 153 | } 154 | 155 | string output = $"★{i + 1}: {name}"; 156 | if (entry.Gigantamax) 157 | { 158 | output += "(キョダイ)"; 159 | } 160 | if (entry.Ability == 2) 161 | { 162 | output += "[HA]"; 163 | } 164 | 165 | sw.WriteLine(output); 166 | } 167 | } 168 | } 169 | } 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /OneStarCalculator/OneStarCalculator.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2} 8 | Library 9 | Properties 10 | OneStarCalculator 11 | OneStarCalculator 12 | v4.8 13 | 512 14 | true 15 | 16 | 17 | 18 | true 19 | full 20 | false 21 | bin\Debug\ 22 | DEBUG;TRACE 23 | prompt 24 | 4 25 | x64 26 | 27 | 28 | pdbonly 29 | true 30 | bin\Release\x64\ 31 | TRACE 32 | prompt 33 | 4 34 | x64 35 | 36 | 37 | true 38 | bin\Debug\x64\ 39 | DEBUG;TRACE 40 | full 41 | x64 42 | prompt 43 | MinimumRecommendedRules.ruleset 44 | 45 | 46 | bin\Release\x64\ 47 | TRACE 48 | true 49 | pdbonly 50 | x64 51 | prompt 52 | MinimumRecommendedRules.ruleset 53 | 54 | 55 | true 56 | bin\x86\Debug\ 57 | DEBUG;TRACE 58 | full 59 | x86 60 | prompt 61 | MinimumRecommendedRules.ruleset 62 | 63 | 64 | bin\Release\x86\ 65 | TRACE 66 | true 67 | pdbonly 68 | x86 69 | prompt 70 | MinimumRecommendedRules.ruleset 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /IVCalcNetFramework/IVCalcNetFramework.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {EE1D9696-545C-495D-9F6D-680038688F85} 8 | Library 9 | IVCalcNetFramework 10 | IVCalcNetFramework 11 | v4.8 12 | 512 13 | true 14 | true 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | 39 | 40 | true 41 | bin\x64\Debug\ 42 | DEBUG;TRACE 43 | full 44 | x64 45 | prompt 46 | MinimumRecommendedRules.ruleset 47 | 48 | 49 | bin\x64\Release\ 50 | TRACE 51 | true 52 | pdbonly 53 | x64 54 | prompt 55 | MinimumRecommendedRules.ruleset 56 | 57 | 58 | true 59 | bin\x86\Debug\ 60 | DEBUG;TRACE 61 | full 62 | x86 63 | prompt 64 | MinimumRecommendedRules.ruleset 65 | 66 | 67 | bin\x86\Release\ 68 | TRACE 69 | true 70 | pdbonly 71 | x86 72 | prompt 73 | MinimumRecommendedRules.ruleset 74 | 75 | 76 | 77 | ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll 78 | 79 | 80 | ..\packages\PKHeX.Core.20.2.9\lib\net46\PKHeX.Core.dll 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /OneStar/Preferences.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using Newtonsoft.Json; 5 | 6 | namespace OneStar 7 | { 8 | public class Preferences 9 | { 10 | // 言語設定 11 | [JsonProperty] Language m_Language = Language.Japanese; 12 | 13 | // バージョン 14 | [JsonProperty] int m_GameVersion = 0; 15 | 16 | // イベントレイド 17 | [JsonProperty] string m_EventId = "20201102"; 18 | 19 | // GPU使用 20 | [JsonProperty] bool m_isUseGpu = false; 21 | 22 | // GPU設定 23 | [JsonProperty] int m_GpuLoop = 0; 24 | 25 | // 検索設定 26 | [JsonProperty] bool m_SearchShowDuration = false; 27 | [JsonProperty] bool m_SearchStop = true; 28 | 29 | // リスト設定 30 | [JsonProperty] int m_ListMaxFrame = 5000; 31 | [JsonProperty] bool m_ListOnlyShiny = false; 32 | [JsonProperty] bool m_ListShowSeed = false; 33 | [JsonProperty] bool m_ListShowEC = false; 34 | [JsonProperty] bool m_ListShowAbilityName = false; 35 | 36 | #region 取得 37 | [JsonIgnore] 38 | public Language Language { 39 | get { return m_Language; } 40 | set { 41 | m_Language = value; 42 | Serialize(); 43 | } 44 | } 45 | [JsonIgnore] 46 | public int GameVersion { 47 | get { return m_GameVersion; } 48 | set { 49 | m_GameVersion = value; 50 | Serialize(); 51 | } 52 | } 53 | [JsonIgnore] 54 | public string EventId { 55 | get { return m_EventId; } 56 | set { 57 | m_EventId = value; 58 | Serialize(); 59 | } 60 | } 61 | [JsonIgnore] 62 | public bool IsUseGpu { 63 | get { return m_isUseGpu; } 64 | set { 65 | m_isUseGpu = value; 66 | Serialize(); 67 | } 68 | } 69 | [JsonIgnore] 70 | public int GpuLoop { 71 | get { return m_GpuLoop; } 72 | set { 73 | m_GpuLoop = value; 74 | Serialize(); 75 | } 76 | } 77 | [JsonIgnore] 78 | public bool SearchShowDuration 79 | { 80 | get { return m_SearchShowDuration; } 81 | set 82 | { 83 | m_SearchShowDuration = value; 84 | Serialize(); 85 | } 86 | } 87 | [JsonIgnore] 88 | public bool SearchStop 89 | { 90 | get { return m_SearchStop; } 91 | set 92 | { 93 | m_SearchStop = value; 94 | Serialize(); 95 | } 96 | } 97 | [JsonIgnore] 98 | public int ListMaxFrame { 99 | get { return m_ListMaxFrame; } 100 | set { 101 | m_ListMaxFrame = value; 102 | Serialize(); 103 | } 104 | } 105 | [JsonIgnore] 106 | public bool ListOnlyShiny 107 | { 108 | get { return m_ListOnlyShiny; } 109 | set 110 | { 111 | m_ListOnlyShiny = value; 112 | Serialize(); 113 | } 114 | } 115 | [JsonIgnore] 116 | public bool ListShowSeed 117 | { 118 | get { return m_ListShowSeed; } 119 | set 120 | { 121 | m_ListShowSeed = value; 122 | Serialize(); 123 | } 124 | } 125 | [JsonIgnore] 126 | public bool ListShowEC 127 | { 128 | get { return m_ListShowEC; } 129 | set 130 | { 131 | m_ListShowEC = value; 132 | Serialize(); 133 | } 134 | } 135 | [JsonIgnore] 136 | public bool ListShowAbilityName 137 | { 138 | get { return m_ListShowAbilityName; } 139 | set 140 | { 141 | m_ListShowAbilityName = value; 142 | Serialize(); 143 | } 144 | } 145 | #endregion 146 | 147 | // 初期設定 148 | public void Initialize() 149 | { 150 | m_Language = Language.Japanese; 151 | m_GameVersion = 0; 152 | m_EventId = "20201102"; 153 | m_isUseGpu = false; 154 | m_GpuLoop = 0; 155 | m_SearchShowDuration = false; 156 | m_SearchStop = true; 157 | m_ListMaxFrame = 5000; 158 | m_ListOnlyShiny = false; 159 | m_ListShowSeed = false; 160 | m_ListShowEC = false; 161 | m_ListShowAbilityName = false; 162 | } 163 | 164 | // コピー 165 | void Copy(Preferences src) 166 | { 167 | m_Language = src.m_Language; 168 | m_GameVersion = src.m_GameVersion; 169 | m_EventId = src.m_EventId; 170 | m_isUseGpu = src.m_isUseGpu; 171 | m_GpuLoop = src.m_GpuLoop; 172 | m_SearchShowDuration = src.m_SearchShowDuration; 173 | m_SearchStop = src.m_SearchStop; 174 | m_ListMaxFrame = src.m_ListMaxFrame; 175 | m_ListOnlyShiny = src.m_ListOnlyShiny; 176 | m_ListShowSeed = src.m_ListShowSeed; 177 | m_ListShowEC = src.m_ListShowEC; 178 | m_ListShowAbilityName = src.m_ListShowAbilityName; 179 | } 180 | 181 | // 設定をファイルに保存 182 | public void Serialize() 183 | { 184 | try 185 | { 186 | using (StreamWriter sw = new StreamWriter("data/config.json")) 187 | { 188 | string str = JsonConvert.SerializeObject(this); 189 | sw.Write(str); 190 | } 191 | } 192 | catch (Exception) 193 | { 194 | } 195 | } 196 | 197 | // ファイルから設定を読み込み 198 | public bool Deserialize() 199 | { 200 | string str; 201 | try 202 | { 203 | using (StreamReader sr = new StreamReader("data/config.json")) 204 | { 205 | str = sr.ReadToEnd(); 206 | } 207 | } 208 | catch (Exception) 209 | { 210 | // エラー 211 | return false; 212 | } 213 | 214 | Preferences tmp = null; 215 | try 216 | { 217 | tmp = JsonConvert.DeserializeObject(str); 218 | } 219 | catch (Exception) 220 | { 221 | // エラー 222 | return false; 223 | } 224 | 225 | if (tmp != null) 226 | { 227 | Copy(tmp); 228 | 229 | return true; 230 | } 231 | return false; 232 | } 233 | } 234 | } 235 | -------------------------------------------------------------------------------- /OneStar/ListGenerator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Diagnostics; 4 | using PKHeX.Core; 5 | 6 | namespace OneStar 7 | { 8 | public class ListGenerator 9 | { 10 | UInt64 m_DenSeed; 11 | int m_MaxCount; 12 | RaidData.Pokemon m_Pokemon; 13 | bool m_isShinyCheck; 14 | bool m_isShowSeed; 15 | bool m_isShowEc; 16 | bool m_isShowAbilityName; 17 | 18 | public ListGenerator(UInt64 denSeed, int maxCount, RaidData.Pokemon pokemon, bool isShinyCheck, bool isShowSeed, bool isShowEc, bool isShowAbilityName) 19 | { 20 | m_DenSeed = denSeed; 21 | m_MaxCount = maxCount; 22 | m_Pokemon = pokemon; 23 | m_isShinyCheck = isShinyCheck; 24 | m_isShowSeed = isShowSeed; 25 | m_isShowEc = isShowEc; 26 | m_isShowAbilityName = isShowAbilityName; 27 | } 28 | 29 | public void Generate() 30 | { 31 | PersonalInfo personalInfo = PersonalInfoProvider.GetPersonalInfo(m_Pokemon); 32 | var abilityList = PKHeX.Core.Util.GetAbilitiesList(Messages.Instance.LangCode); 33 | 34 | UInt64 seed = m_DenSeed; // 消費数0のDen Seed 35 | 36 | UInt32 ec, otid, pid; 37 | int[] ivs = new int[6]; 38 | UInt32 fixedIndex; 39 | UInt32 ability; 40 | UInt32 gender = 0; 41 | UInt32 nature; 42 | 43 | using (StreamWriter sw = new StreamWriter("list.txt")) 44 | { 45 | sw.Write($"{Messages.Instance.ListLabel["Frame"]},"); 46 | if (m_isShowSeed) 47 | { 48 | sw.Write("Seed,"); 49 | } 50 | if (m_isShowEc) 51 | { 52 | sw.Write("EC,"); 53 | } 54 | for (int i = 0; i < 6; ++i) 55 | { 56 | sw.Write($"{Messages.Instance.Status[i]},"); 57 | } 58 | if (!m_Pokemon.IsFixedGender) 59 | { 60 | sw.Write($"{Messages.Instance.SystemLabel["Gender"]},"); 61 | } 62 | sw.Write($"{Messages.Instance.ListLabel["Ability"]},"); 63 | sw.Write($"{Messages.Instance.ListLabel["Nature"]},"); 64 | sw.WriteLine($"{Messages.Instance.ListLabel["Shiny"]}"); 65 | 66 | for (int frame = 0; frame <= m_MaxCount; ++frame) 67 | { 68 | Xoroshiro xoroshiro = new Xoroshiro(seed); 69 | 70 | // seedを進める 71 | ec = xoroshiro.Next(0xFFFFFFFFu); 72 | otid = xoroshiro.Next(0xFFFFFFFFu); 73 | pid = xoroshiro.Next(0xFFFFFFFFu); 74 | 75 | bool isShiny = ((((otid ^ (otid >> 16)) >> 4) & 0xFFF) == (((pid ^ (pid >> 16)) >> 4) & 0xFFF)); 76 | bool isSquare = (((otid ^ (otid >> 16)) & 0xFFFF) == ((pid ^ (pid >> 16)) & 0xFFFF)); 77 | 78 | if (m_isShinyCheck && ! isShiny) 79 | { 80 | seed = seed + 0x82a2b175229d6a5bul; 81 | continue; 82 | } 83 | 84 | // V箇所決定 85 | for (int i = 0; i < 6; ++i) 86 | { 87 | ivs[i] = -1; 88 | } 89 | 90 | int fixedCount = 0; 91 | do 92 | { 93 | fixedIndex = 0; 94 | do 95 | { 96 | fixedIndex = xoroshiro.Next(7); // V箇所 97 | } while (fixedIndex >= 6); 98 | 99 | if (ivs[fixedIndex] == -1) 100 | { 101 | ivs[fixedIndex] = 31; 102 | ++fixedCount; 103 | } 104 | } while (fixedCount < m_Pokemon.FlawlessIvs); 105 | 106 | // 個体値を埋める 107 | for (int i = 0; i < 6; ++i) 108 | { 109 | if (ivs[i] == -1) 110 | { 111 | ivs[i] = (int)xoroshiro.Next(0x1F); 112 | } 113 | } 114 | 115 | // 特性 116 | if (m_Pokemon.Ability == 2) 117 | { 118 | ability = 2; 119 | } 120 | else if(m_Pokemon.Ability == 4) 121 | { 122 | do 123 | { 124 | ability = xoroshiro.Next(3); 125 | } while (ability >= 3); 126 | } 127 | else 128 | { 129 | ability = xoroshiro.Next(1); 130 | } 131 | 132 | // 性別値 133 | if (!m_Pokemon.IsFixedGender) 134 | { 135 | do 136 | { 137 | gender = xoroshiro.Next(0xFF); 138 | } while (gender >= 253); 139 | } 140 | 141 | // 性格 142 | do 143 | { 144 | nature = xoroshiro.Next(PokemonFormUtility.NatureTableList[m_Pokemon.NatureTableId].Max); 145 | } while (nature >= PokemonFormUtility.NatureTableList[m_Pokemon.NatureTableId].Pattern); 146 | 147 | // 出力 148 | sw.Write($"{frame},"); 149 | if (m_isShowSeed) 150 | { 151 | sw.Write($"{seed:X16},"); 152 | } 153 | if (m_isShowEc) 154 | { 155 | sw.Write($"{ec:X8},"); 156 | } 157 | sw.Write($"{ivs[0]},{ivs[1]},{ivs[2]},{ivs[3]},{ivs[4]},{ivs[5]},"); 158 | if (!m_Pokemon.IsFixedGender) 159 | { 160 | if (gender + 1 < personalInfo.Gender) 161 | { 162 | sw.Write($"{Messages.Instance.Gender[1]},"); 163 | } 164 | else 165 | { 166 | sw.Write($"{Messages.Instance.Gender[0]},"); 167 | } 168 | } 169 | if (m_isShowAbilityName) 170 | { 171 | sw.Write($"{abilityList[personalInfo.Abilities[(int)ability]]},"); 172 | } 173 | else 174 | { 175 | sw.Write(ability == 2 ? $"{Messages.Instance.ListLabel["HiddenAbility"]}," : $"{ability + 1},"); 176 | } 177 | sw.Write($"{PokemonFormUtility.GetNatureString(PokemonFormUtility.NatureTableList[m_Pokemon.NatureTableId].List[nature])},"); 178 | if (isShiny) 179 | { 180 | sw.WriteLine(isSquare ? Messages.Instance.ListLabel["SquareShiny"] : Messages.Instance.ListLabel["StarShiny"]); 181 | } 182 | else if(!m_isShinyCheck) 183 | { 184 | sw.WriteLine(""); 185 | } 186 | 187 | seed = seed + 0x82a2b175229d6a5bul; 188 | } 189 | } 190 | 191 | Process ps = new Process(); 192 | ps.StartInfo.FileName = "list.txt"; 193 | ps.Start(); 194 | } 195 | } 196 | } 197 | -------------------------------------------------------------------------------- /OneStar/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // このコードはツールによって生成されました。 4 | // ランタイム バージョン:4.0.30319.42000 5 | // 6 | // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 7 | // コードが再生成されるときに損失したりします。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace OneStar.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 17 | /// 18 | // このクラスは StronglyTypedResourceBuilder クラスが ResGen 19 | // または Visual Studio のようなツールを使用して自動生成されました。 20 | // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に 21 | // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OneStar.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします 51 | /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 65 | /// 66 | internal static System.Drawing.Bitmap map { 67 | get { 68 | object obj = ResourceManager.GetObject("map", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 75 | /// 76 | internal static System.Drawing.Bitmap map2_1 { 77 | get { 78 | object obj = ResourceManager.GetObject("map2_1", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 85 | /// 86 | internal static System.Drawing.Bitmap map2_2 { 87 | get { 88 | object obj = ResourceManager.GetObject("map2_2", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 95 | /// 96 | internal static System.Drawing.Bitmap map2_3 { 97 | get { 98 | object obj = ResourceManager.GetObject("map2_3", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 105 | /// 106 | internal static System.Drawing.Bitmap map3_1 { 107 | get { 108 | object obj = ResourceManager.GetObject("map3_1", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 115 | /// 116 | internal static System.Drawing.Bitmap map3_2 { 117 | get { 118 | object obj = ResourceManager.GetObject("map3_2", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 125 | /// 126 | internal static System.Drawing.Bitmap map3_3 { 127 | get { 128 | object obj = ResourceManager.GetObject("map3_3", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 135 | /// 136 | internal static System.Drawing.Bitmap point { 137 | get { 138 | object obj = ResourceManager.GetObject("point", resourceCulture); 139 | return ((System.Drawing.Bitmap)(obj)); 140 | } 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /OneStarCUI/OneStarCUI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {01E97797-02B9-460D-A6C8-B90E55B7064B} 8 | Exe 9 | OneStarCUI 10 | OneStarCUI 11 | v4.8 12 | 512 13 | true 14 | true 15 | publish\ 16 | true 17 | Disk 18 | false 19 | Foreground 20 | 7 21 | Days 22 | false 23 | false 24 | true 25 | 0 26 | 1.0.0.%2a 27 | false 28 | false 29 | true 30 | 31 | 32 | 33 | AnyCPU 34 | true 35 | full 36 | false 37 | bin\Debug\ 38 | DEBUG;TRACE 39 | prompt 40 | 4 41 | false 42 | 43 | 44 | x64 45 | pdbonly 46 | true 47 | ..\OneStar\bin\Release\x64\ 48 | TRACE 49 | prompt 50 | 4 51 | false 52 | 53 | 54 | true 55 | ..\OneStar\bin\Debug\x64\ 56 | DEBUG;TRACE 57 | full 58 | x64 59 | prompt 60 | MinimumRecommendedRules.ruleset 61 | 62 | 63 | ..\OneStar\bin\Release\x64\ 64 | TRACE 65 | true 66 | pdbonly 67 | x64 68 | prompt 69 | MinimumRecommendedRules.ruleset 70 | 71 | 72 | true 73 | ..\OneStar\bin\Debug\x86\ 74 | DEBUG;TRACE 75 | full 76 | x86 77 | prompt 78 | MinimumRecommendedRules.ruleset 79 | 80 | 81 | ..\OneStar\bin\Release\x86\ 82 | TRACE 83 | true 84 | pdbonly 85 | x86 86 | prompt 87 | MinimumRecommendedRules.ruleset 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | {4a5adb06-7773-4e21-9336-d46a44b92cc2} 109 | OneStarCalculator 110 | 111 | 112 | 113 | 114 | False 115 | Microsoft .NET Framework 4.6.1 %28x86 および x64%29 116 | true 117 | 118 | 119 | False 120 | .NET Framework 3.5 SP1 121 | false 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /DenListConverter/Entry.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace DenListConverter 9 | { 10 | public class Entry 11 | { 12 | public int Star { get; } 13 | public string Name { get; } 14 | public int AltForm { get; } 15 | public bool Gigantamax { get; } 16 | public int Gender { get; private set; } 17 | public int Ability { get; private set; } 18 | public int[] Probability { get; } 19 | 20 | public Entry(int star, string name, int altform, bool gigantamax) 21 | { 22 | Star = star; 23 | Name = name; 24 | AltForm = altform; 25 | Gigantamax = gigantamax; 26 | Probability = new int[5]; 27 | for (int i = 0; i < 5; ++i) 28 | { 29 | Probability[i] = 0; 30 | } 31 | } 32 | 33 | public void Load(List lines) 34 | { 35 | foreach (var line in lines) 36 | { 37 | // 性別 38 | if (line.IndexOf("\t\tGender: ") == 0) 39 | { 40 | string gender = line.Substring(10); 41 | if (gender == "Random") 42 | { 43 | Gender = 0; 44 | } 45 | else if (gender == "Female") 46 | { 47 | Gender = 1; 48 | } 49 | else if (gender == "Male") 50 | { 51 | Gender = 2; 52 | } 53 | else 54 | { 55 | ; 56 | } 57 | } 58 | 59 | // 特性 60 | else if (line.IndexOf("\t\tAbility: ") == 0) 61 | { 62 | string ability = line.Substring(11); 63 | if (ability == "A2") 64 | { 65 | Ability = 2; 66 | } 67 | else if (ability == "A3") 68 | { 69 | Ability = 3; 70 | } 71 | else if (ability == "A4") 72 | { 73 | Ability = 4; 74 | } 75 | else 76 | { 77 | ; 78 | } 79 | } 80 | 81 | // 確率 82 | if (line.IndexOf("\t\t\t1-Star Desired: ") == 0) 83 | { 84 | string[] elements = line.Split(' '); 85 | string percentage = elements[elements.Length - 1]; 86 | string num = percentage.Substring(0, percentage.Length - 1); 87 | int probability = int.Parse(num); 88 | Probability[0] += probability; 89 | } 90 | else if (line.IndexOf("\t\t\t2-Star Desired: ") == 0) 91 | { 92 | string[] elements = line.Split(' '); 93 | string percentage = elements[elements.Length - 1]; 94 | string num = percentage.Substring(0, percentage.Length - 1); 95 | int probability = int.Parse(num); 96 | Probability[1] += probability; 97 | } 98 | else if (line.IndexOf("\t\t\t3-Star Desired: ") == 0) 99 | { 100 | string[] elements = line.Split(' '); 101 | string percentage = elements[elements.Length - 1]; 102 | string num = percentage.Substring(0, percentage.Length - 1); 103 | int probability = int.Parse(num); 104 | Probability[2] += probability; 105 | } 106 | else if (line.IndexOf("\t\t\t4-Star Desired: ") == 0) 107 | { 108 | string[] elements = line.Split(' '); 109 | string percentage = elements[elements.Length - 1]; 110 | string num = percentage.Substring(0, percentage.Length - 1); 111 | int probability = int.Parse(num); 112 | Probability[3] += probability; 113 | } 114 | else if (line.IndexOf("\t\t\t5-Star Desired: ") == 0) 115 | { 116 | string[] elements = line.Split(' '); 117 | string percentage = elements[elements.Length - 1]; 118 | string num = percentage.Substring(0, percentage.Length - 1); 119 | int probability = int.Parse(num); 120 | Probability[4] += probability; 121 | } 122 | } 123 | } 124 | 125 | public void Output(StreamWriter sw) 126 | { 127 | string output = " {\"Species\":"; 128 | 129 | int species = -1; 130 | 131 | // 日本語ポケモン名検索 132 | { 133 | var list = PKHeX.Core.Util.GetSpeciesList("ja"); 134 | for (int i = 0; i < list.Length; ++i) 135 | { 136 | if (Name == list[i]) 137 | { 138 | species = i; 139 | break; 140 | } 141 | } 142 | } 143 | // 英語ポケモン名検索 144 | if (species == -1) 145 | { 146 | var list = PKHeX.Core.Util.GetSpeciesList("en"); 147 | for (int i = 0; i < list.Length; ++i) 148 | { 149 | if (Name == list[i]) 150 | { 151 | species = i; 152 | break; 153 | } 154 | } 155 | } 156 | 157 | output += $"{species,3},"; 158 | 159 | output += "\"Probabilities\":["; 160 | 161 | int min = -1; 162 | int max = -1; 163 | for (int i = 0; i < 5; ++i) 164 | { 165 | if (Probability[i] > 0) 166 | { 167 | if (min == -1) 168 | { 169 | min = i; 170 | } 171 | max = i; 172 | } 173 | 174 | if (i > 0) 175 | { 176 | output += ","; 177 | } 178 | output += $"{Probability[i],3}"; 179 | } 180 | 181 | output += "],"; 182 | 183 | int flawlessIVs = 0; 184 | 185 | if (Ability == 3) // レア判定 186 | { 187 | if (max == 4) 188 | { 189 | flawlessIVs = 5; 190 | } 191 | else if (min == 0) 192 | { 193 | flawlessIVs = 2; 194 | } 195 | else if (min == 1) 196 | { 197 | flawlessIVs = 3; 198 | } 199 | else if (min == 2) 200 | { 201 | flawlessIVs = 4; 202 | } 203 | else if (min == 3) 204 | { 205 | // ? 206 | flawlessIVs = 4; 207 | } 208 | } 209 | else 210 | { 211 | // 鎧の孤島、冠の雪原ノーマル 212 | if (max == 4) 213 | { 214 | flawlessIVs = 4; 215 | } 216 | else if (min == 0) 217 | { 218 | flawlessIVs = 1; 219 | } 220 | else if (min == 1) 221 | { 222 | flawlessIVs = 2; 223 | } 224 | else if (min == 2) 225 | { 226 | flawlessIVs = 3; 227 | } 228 | else if (min == 3) 229 | { 230 | // ? 231 | flawlessIVs = 3; 232 | } 233 | } 234 | 235 | output += $"\"FlawlessIvs\":{flawlessIVs},"; 236 | output += $"\"MinRank\":{min},\"MaxRank\":{max},"; 237 | output += $"\"AltForm\":{AltForm},"; 238 | output += $"\"Ability\":{Ability},"; 239 | output += $"\"Gender\":{Gender},"; 240 | if (Gigantamax) 241 | { 242 | output += $"\"Gigantamax\":true,"; 243 | } 244 | else 245 | { 246 | output += $"\"Gigantamax\":false,"; 247 | } 248 | output += $"\"ShinyType\":0"; 249 | 250 | output += "},"; 251 | 252 | sw.WriteLine(output); 253 | } 254 | } 255 | } 256 | -------------------------------------------------------------------------------- /DenListConverter/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using PKHeX.Core; 7 | using System.IO; 8 | 9 | namespace DenListConverter 10 | { 11 | class Program 12 | { 13 | static void Main(string[] args) 14 | { 15 | // イベントレイド向け 16 | string inputPath = "input.csv"; 17 | string outputPath = "output.json"; 18 | 19 | using (StreamReader sr = new StreamReader(inputPath, Encoding.GetEncoding("shift-jis"))) 20 | { 21 | using (StreamWriter sw = new StreamWriter(outputPath)) 22 | { 23 | // ヘッダ出力 24 | sw.WriteLine("{"); 25 | sw.WriteLine(" \"EventList\":{"); 26 | 27 | int tableCount = 0; 28 | 29 | sr.ReadLine(); // 1行目は飛ばす 30 | for (int c = 2; ; ++c) 31 | { 32 | string line = sr.ReadLine(); 33 | if (line == null || line == "") 34 | { 35 | break; 36 | } 37 | 38 | string[] elements = line.Split(','); 39 | 40 | if (elements.Length != 12) 41 | { 42 | Console.WriteLine($"{c}行目が不正です。スキップします。"); 43 | continue; 44 | } 45 | 46 | // ID定義行 47 | if (elements[3].Length == 0) 48 | { 49 | if (tableCount > 0) 50 | { 51 | // 前の〆 52 | sw.WriteLine(" ]},"); 53 | } 54 | 55 | string id = elements[0]; 56 | string version = elements[1]; 57 | string type = elements[2]; 58 | 59 | string tableId = id; 60 | if (version == "ソード") 61 | { 62 | tableId += "_Sw"; 63 | } 64 | else if(version == "シールド") 65 | { 66 | tableId += "_Sh"; 67 | } 68 | if (type == "通常") 69 | { 70 | tableId += "_n"; 71 | } 72 | else if(type == "レア") 73 | { 74 | tableId += "_r"; 75 | } 76 | 77 | sw.WriteLine($" \"{tableId}\":{{"); 78 | sw.WriteLine(" \"Entries\":["); 79 | 80 | ++tableCount; 81 | continue; 82 | } 83 | 84 | // ポケモン名 85 | string name = elements[0]; 86 | 87 | // 確率 88 | int[] probability = new int[5]; 89 | for (int i = 0; i < 5; ++i) 90 | { 91 | probability[i] = int.Parse(elements[i + 1]); 92 | } 93 | 94 | // V数 95 | int flawlessIVs = int.Parse(elements[6]); 96 | 97 | // その他のパラメータ 98 | int altForm = int.Parse(elements[7]); 99 | int ability = int.Parse(elements[8]); 100 | int gender = int.Parse(elements[9]); 101 | 102 | bool gigantamax = (elements[10].Length != 0); 103 | bool shiny = (elements[11].Length != 0); 104 | 105 | string output = " {\"Species\":"; 106 | 107 | int species = -1; 108 | 109 | // 日本語ポケモン名検索 110 | { 111 | var list = PKHeX.Core.Util.GetSpeciesList("ja"); 112 | for (int i = 0; i < list.Length; ++i) 113 | { 114 | if (name == list[i]) 115 | { 116 | species = i; 117 | break; 118 | } 119 | } 120 | } 121 | // 英語ポケモン名検索 122 | if (species == -1) 123 | { 124 | var list = PKHeX.Core.Util.GetSpeciesList("en"); 125 | for (int i = 0; i < list.Length; ++i) 126 | { 127 | if (name == list[i]) 128 | { 129 | species = i; 130 | break; 131 | } 132 | } 133 | } 134 | 135 | output += $"{species,3},"; 136 | 137 | output += "\"Probabilities\":["; 138 | 139 | int min = -1; 140 | int max = -1; 141 | for (int i = 0; i < 5; ++i) 142 | { 143 | if (probability[i] > 0) 144 | { 145 | if (min == -1) 146 | { 147 | min = i; 148 | } 149 | max = i; 150 | } 151 | 152 | if (i > 0) 153 | { 154 | output += ","; 155 | } 156 | output += $"{probability[i],3}"; 157 | } 158 | 159 | output += "],"; 160 | 161 | output += $"\"FlawlessIvs\":{flawlessIVs},"; 162 | output += $"\"MinRank\":{min},\"MaxRank\":{max},"; 163 | output += $"\"AltForm\":{altForm},"; 164 | output += $"\"Ability\":{ability},"; 165 | output += $"\"Gender\":{gender},"; 166 | if (gigantamax) 167 | { 168 | output += $"\"Gigantamax\":true,"; 169 | } 170 | else 171 | { 172 | output += $"\"Gigantamax\":false,"; 173 | } 174 | if (shiny) 175 | { 176 | output += $"\"ShinyType\":1"; 177 | } 178 | else 179 | { 180 | output += $"\"ShinyType\":0"; 181 | } 182 | output += "},"; 183 | 184 | sw.WriteLine(output); 185 | } 186 | 187 | // フッタ出力 188 | sw.WriteLine(" ]},"); 189 | sw.WriteLine(" }"); 190 | sw.WriteLine("}"); 191 | } 192 | } 193 | /* 194 | DenSet shieldDen = new DenSet(); 195 | DenSet swordDen = new DenSet(); 196 | 197 | shieldDen.Load("ShieldDen.txt"); 198 | swordDen.Load("SwordDen.txt"); 199 | 200 | string outputPath = "output.json"; 201 | 202 | using (StreamWriter sw = new StreamWriter(outputPath)) 203 | { 204 | // ヘッダ出力 205 | sw.WriteLine("{"); 206 | sw.WriteLine(" \"EventList\":{"); 207 | 208 | foreach (var pair in swordDen.NestDictionary) 209 | { 210 | Nest swordNest = pair.Value; 211 | Nest shieldNest = shieldDen.NestDictionary[pair.Key]; 212 | swordNest.Output(sw, "_Sw"); 213 | shieldNest.Output(sw, "_Sh"); 214 | } 215 | 216 | // フッタ出力 217 | sw.WriteLine(" }"); 218 | sw.WriteLine("}"); 219 | } 220 | 221 | using (StreamWriter sw = new StreamWriter("intermediate.txt", false, Encoding.GetEncoding("shift-jis"))) 222 | { 223 | int rareCountSw = 0; 224 | int rareCountSh = 0; 225 | foreach (var pair in swordDen.NestDictionary) 226 | { 227 | Nest swordNest = pair.Value; 228 | Nest shieldNest = shieldDen.NestDictionary[pair.Key]; 229 | swordNest.Intermediate(sw, "_Sw"); 230 | shieldNest.Intermediate(sw, "_Sh"); 231 | 232 | foreach (var entry in swordNest.Entries) 233 | { 234 | if (entry.Ability == 2) 235 | { 236 | rareCountSw++; 237 | break; 238 | } 239 | } 240 | } 241 | ; 242 | } 243 | */ 244 | } 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /OneStar.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30128.74 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneStarCalculator", "OneStarCalculator\OneStarCalculator.csproj", "{4A5ADB06-7773-4E21-9336-D46A44B92CC2}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneStarCUI", "OneStarCUI\OneStarCUI.csproj", "{01E97797-02B9-460D-A6C8-B90E55B7064B}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OneStarCalculatorLib", "OneStarCalculatorLib\OneStarCalculatorLib.vcxproj", "{FC9F2AF9-AB51-4382-8028-A36AEA296863}" 11 | EndProject 12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OneStar", "OneStar\OneStar.csproj", "{F78E6705-C8F8-4817-81EF-49121D2D0005}" 13 | EndProject 14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IVCalcNetFramework", "IVCalcNetFramework\IVCalcNetFramework.csproj", "{EE1D9696-545C-495D-9F6D-680038688F85}" 15 | EndProject 16 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DenListConverter", "DenListConverter\DenListConverter.csproj", "{3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}" 17 | EndProject 18 | Global 19 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 20 | Debug|Any CPU = Debug|Any CPU 21 | Debug|x64 = Debug|x64 22 | Debug|x86 = Debug|x86 23 | Release|Any CPU = Release|Any CPU 24 | Release|x64 = Release|x64 25 | Release|x86 = Release|x86 26 | EndGlobalSection 27 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 28 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|Any CPU.ActiveCfg = Debug|x64 29 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|Any CPU.Build.0 = Debug|x64 30 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|x64.ActiveCfg = Debug|x64 31 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|x64.Build.0 = Debug|x64 32 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|x86.ActiveCfg = Debug|x86 33 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Debug|x86.Build.0 = Debug|x86 34 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|Any CPU.ActiveCfg = Release|x64 35 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|Any CPU.Build.0 = Release|x64 36 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|x64.ActiveCfg = Release|x64 37 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|x64.Build.0 = Release|x64 38 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|x86.ActiveCfg = Release|x86 39 | {4A5ADB06-7773-4E21-9336-D46A44B92CC2}.Release|x86.Build.0 = Release|x86 40 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|Any CPU.ActiveCfg = Debug|x64 41 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|Any CPU.Build.0 = Debug|x64 42 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|x64.ActiveCfg = Debug|x64 43 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|x64.Build.0 = Debug|x64 44 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|x86.ActiveCfg = Debug|x86 45 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Debug|x86.Build.0 = Debug|x86 46 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|Any CPU.ActiveCfg = Release|x64 47 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|Any CPU.Build.0 = Release|x64 48 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|x64.ActiveCfg = Release|x64 49 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|x64.Build.0 = Release|x64 50 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|x86.ActiveCfg = Release|x86 51 | {01E97797-02B9-460D-A6C8-B90E55B7064B}.Release|x86.Build.0 = Release|x86 52 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|Any CPU.ActiveCfg = Debug|x64 53 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|Any CPU.Build.0 = Debug|x64 54 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|x64.ActiveCfg = Debug|x64 55 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|x64.Build.0 = Debug|x64 56 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|x86.ActiveCfg = Debug|Win32 57 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Debug|x86.Build.0 = Debug|Win32 58 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|Any CPU.ActiveCfg = Release|x64 59 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|Any CPU.Build.0 = Release|x64 60 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|x64.ActiveCfg = Release|x64 61 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|x64.Build.0 = Release|x64 62 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|x86.ActiveCfg = Release|Win32 63 | {FC9F2AF9-AB51-4382-8028-A36AEA296863}.Release|x86.Build.0 = Release|Win32 64 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|Any CPU.ActiveCfg = Debug|x64 65 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|Any CPU.Build.0 = Debug|x64 66 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|x64.ActiveCfg = Debug|x64 67 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|x64.Build.0 = Debug|x64 68 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|x86.ActiveCfg = Debug|x86 69 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Debug|x86.Build.0 = Debug|x86 70 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|Any CPU.ActiveCfg = Release|x64 71 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|Any CPU.Build.0 = Release|x64 72 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|x64.ActiveCfg = Release|x64 73 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|x64.Build.0 = Release|x64 74 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|x86.ActiveCfg = Release|x86 75 | {F78E6705-C8F8-4817-81EF-49121D2D0005}.Release|x86.Build.0 = Release|x86 76 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 77 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|Any CPU.Build.0 = Debug|Any CPU 78 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|x64.ActiveCfg = Debug|x64 79 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|x64.Build.0 = Debug|x64 80 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|x86.ActiveCfg = Debug|x86 81 | {EE1D9696-545C-495D-9F6D-680038688F85}.Debug|x86.Build.0 = Debug|x86 82 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|Any CPU.ActiveCfg = Release|Any CPU 83 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|Any CPU.Build.0 = Release|Any CPU 84 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|x64.ActiveCfg = Release|x64 85 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|x64.Build.0 = Release|x64 86 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|x86.ActiveCfg = Release|x86 87 | {EE1D9696-545C-495D-9F6D-680038688F85}.Release|x86.Build.0 = Release|x86 88 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 89 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|Any CPU.Build.0 = Debug|Any CPU 90 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|x64.ActiveCfg = Debug|Any CPU 91 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|x64.Build.0 = Debug|Any CPU 92 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|x86.ActiveCfg = Debug|Any CPU 93 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Debug|x86.Build.0 = Debug|Any CPU 94 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|Any CPU.ActiveCfg = Release|Any CPU 95 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|Any CPU.Build.0 = Release|Any CPU 96 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|x64.ActiveCfg = Release|Any CPU 97 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|x64.Build.0 = Release|Any CPU 98 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|x86.ActiveCfg = Release|Any CPU 99 | {3D0D9D95-E953-4EBA-9559-6DFBFC6C74F9}.Release|x86.Build.0 = Release|Any CPU 100 | EndGlobalSection 101 | GlobalSection(SolutionProperties) = preSolution 102 | HideSolutionNode = FALSE 103 | EndGlobalSection 104 | GlobalSection(ExtensibilityGlobals) = postSolution 105 | SolutionGuid = {3EC9C4A2-64BF-4327-9C3B-C90E999FB71A} 106 | EndGlobalSection 107 | EndGlobal 108 | -------------------------------------------------------------------------------- /OneStar/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\point.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\map.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\map2_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\map2_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | ..\Resources\map2_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | 137 | ..\Resources\map3_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 138 | 139 | 140 | ..\Resources\map3_2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 141 | 142 | 143 | ..\Resources\map3_3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 144 | 145 | -------------------------------------------------------------------------------- /OneStar/OneStar.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {F78E6705-C8F8-4817-81EF-49121D2D0005} 8 | WinExe 9 | OneStar 10 | OneStar 11 | v4.8 12 | 512 13 | true 14 | true 15 | 16 | 17 | 18 | x64 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | false 27 | 28 | 29 | x64 30 | pdbonly 31 | true 32 | bin\Release\x64\ 33 | TRACE 34 | prompt 35 | 4 36 | false 37 | 38 | 39 | icon.ico 40 | 41 | 42 | true 43 | bin\Debug\x64\ 44 | TRACE;DEBUG;_X64 45 | full 46 | x64 47 | prompt 48 | MinimumRecommendedRules.ruleset 49 | 50 | 51 | bin\Release\x64\ 52 | TRACE;_X64 53 | true 54 | pdbonly 55 | x64 56 | prompt 57 | MinimumRecommendedRules.ruleset 58 | 59 | 60 | true 61 | bin\x86\Debug\ 62 | TRACE;DEBUG;_X86 63 | full 64 | x86 65 | prompt 66 | MinimumRecommendedRules.ruleset 67 | 68 | 69 | bin\Release\x86\ 70 | TRACE;_X86 71 | true 72 | pdbonly 73 | x86 74 | prompt 75 | MinimumRecommendedRules.ruleset 76 | 77 | 78 | 79 | ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll 80 | 81 | 82 | ..\packages\PKHeX.Core.20.10.11\lib\net46\PKHeX.Core.dll 83 | 84 | 85 | deps\PKHeX_Raid_Plugin.dll 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | Form 106 | 107 | 108 | Form1.cs 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | Component 119 | 120 | 121 | 122 | Form1.cs 123 | 124 | 125 | ResXFileCodeGenerator 126 | Resources.Designer.cs 127 | Designer 128 | 129 | 130 | True 131 | Resources.resx 132 | True 133 | 134 | 135 | 136 | SettingsSingleFileGenerator 137 | Settings.Designer.cs 138 | 139 | 140 | True 141 | Settings.settings 142 | True 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | {ee1d9696-545c-495d-9f6d-680038688f85} 151 | IVCalcNetFramework 152 | 153 | 154 | {4a5adb06-7773-4e21-9336-d46a44b92cc2} 155 | OneStarCalculator 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | cd $(SolutionDir)Data 172 | mkdir $(TargetDir)data 173 | copy /Y *.json $(TargetDir)data\ 174 | 175 | -------------------------------------------------------------------------------- /OneStarCalculator/SeedSearcher.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | using System.Runtime.InteropServices; 5 | 6 | namespace OneStarCalculator 7 | { 8 | public class SeedSearcher 9 | { 10 | // モード 11 | public enum Mode { 12 | Star12, 13 | Star35_5, 14 | Star35_6, 15 | Cuda35, 16 | }; 17 | Mode m_Mode; 18 | 19 | // 結果 20 | public List Result { get; } = new List(); 21 | 22 | // 共通 23 | [DllImport("OneStarCalculatorLib.dll")] 24 | static extern void InitializeConstData(); 25 | 26 | #region ★1~2検索設定 27 | [DllImport("OneStarCalculatorLib.dll")] 28 | static extern void Prepare(int rerolls); 29 | 30 | [DllImport("OneStarCalculatorLib.dll")] 31 | public static extern void Set12Condition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool noGender, int abilityFlag, int flawlessIvs); 32 | 33 | [DllImport("OneStarCalculatorLib.dll")] 34 | static extern ulong Search(ulong ivs); 35 | #endregion 36 | 37 | #region ★3~5検索設定 38 | [DllImport("OneStarCalculatorLib.dll")] 39 | static extern void PrepareSix(int ivOffset); 40 | 41 | [DllImport("OneStarCalculatorLib.dll")] 42 | public static extern void Set35Condition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool noGender, int abilityFlag, int flawlessIvs); 43 | 44 | [DllImport("OneStarCalculatorLib.dll")] 45 | public static extern void SetTargetCondition6(int iv1, int iv2, int iv3, int iv4, int iv5, int iv6); 46 | 47 | [DllImport("OneStarCalculatorLib.dll")] 48 | public static extern void SetTargetCondition5(int iv1, int iv2, int iv3, int iv4, int iv5); 49 | 50 | [DllImport("OneStarCalculatorLib.dll")] 51 | static extern ulong SearchSix(ulong ivs); 52 | #endregion 53 | 54 | #region CUDA計算設定 55 | [DllImport("OneStarCalculatorLib.dll")] 56 | public static extern int GetCudaDeviceCount(); 57 | 58 | [DllImport("OneStarCalculatorLib.dll")] 59 | public static extern void CudaInitialize(); 60 | 61 | [DllImport("OneStarCalculatorLib.dll")] 62 | public static extern void SetCudaCondition(int index, int iv0, int iv1, int iv2, int iv3, int iv4, int iv5, int ability, int nature, int natureTableId, int characteristic, bool noGender, int abilityFlag, int flawlessIvs); 63 | 64 | [DllImport("OneStarCalculatorLib.dll")] 65 | public static extern void SetCudaTargetCondition6(int iv1, int iv2, int iv3, int iv4, int iv5, int iv6); 66 | 67 | [DllImport("OneStarCalculatorLib.dll")] 68 | public static extern void SetCudaTargetCondition5(int iv1, int iv2, int iv3, int iv4, int iv5); 69 | 70 | [DllImport("OneStarCalculatorLib.dll")] 71 | static extern void CudaCalcInitialize(); 72 | 73 | [DllImport("OneStarCalculatorLib.dll")] 74 | static extern void PrepareCuda(int ivOffset); 75 | 76 | [DllImport("OneStarCalculatorLib.dll")] 77 | static extern void SearchCuda(uint ivs, int partitionBit); 78 | 79 | [DllImport("OneStarCalculatorLib.dll")] 80 | static extern int GetResultCount(); 81 | 82 | [DllImport("OneStarCalculatorLib.dll")] 83 | static extern ulong GetResult(int index); 84 | 85 | [DllImport("OneStarCalculatorLib.dll")] 86 | static extern void CudaCalcFinalize(); 87 | 88 | [DllImport("OneStarCalculatorLib.dll")] 89 | public static extern void CudaFinalize(); 90 | 91 | public int CudaLoopPartition { get; set; } = 0; 92 | #endregion 93 | 94 | public SeedSearcher(Mode mode) 95 | { 96 | m_Mode = mode; 97 | InitializeConstData(); 98 | } 99 | 100 | private readonly object lockObj = new object(); 101 | public void Calculate(bool isEnableStop, int minRerolls, int maxRerolls, System.IProgress p) 102 | { 103 | Result.Clear(); 104 | 105 | if (m_Mode == Mode.Cuda35) 106 | { 107 | // 分割bit数 108 | int partitionBit = CudaLoopPartition; 109 | 110 | // 探索範囲 111 | int searchLower = 0; 112 | int searchUpper = (1 << partitionBit) - 1; 113 | 114 | // 途中経過 115 | int progress = 0; 116 | int progressMax = (1 << partitionBit) * (maxRerolls - minRerolls + 1); 117 | 118 | p?.Report(0); 119 | 120 | // 計算前のCUDA初期化 121 | CudaCalcInitialize(); 122 | 123 | for (int i = minRerolls; i <= maxRerolls; ++i) 124 | { 125 | // C++ライブラリ側の事前計算 126 | PrepareCuda(i); 127 | 128 | for (int ivs = searchLower; ivs <= searchUpper; ++ivs) 129 | { 130 | SearchCuda((uint)ivs, partitionBit); 131 | int resultCount = GetResultCount(); 132 | if (resultCount > 0) 133 | { 134 | for (int a = 0; a < resultCount; ++a) 135 | { 136 | Result.Add(GetResult(a)); 137 | if (isEnableStop) 138 | { 139 | break; 140 | } 141 | } 142 | if (Result.Count > 0 && isEnableStop) 143 | { 144 | break; 145 | } 146 | } 147 | ++progress; 148 | p?.Report(progress * 1000 / progressMax); 149 | } 150 | 151 | if (Result.Count > 0 && isEnableStop) 152 | { 153 | break; 154 | } 155 | } 156 | 157 | // 計算が終わったのでCUDA終了 158 | CudaCalcFinalize(); 159 | 160 | // 結果を加工([-3]にする) 161 | for (int i = 0; i < Result.Count; ++i) 162 | { 163 | for (int a = 0; a < 3; ++a) 164 | { 165 | Result[i] = Result[i] + 0x7d5d4e8add6295a5ul; 166 | } 167 | } 168 | } 169 | else if (m_Mode == Mode.Star12) 170 | { 171 | // 探索範囲 172 | int searchLower = 0; 173 | int searchUpper = 0x10000000; 174 | 175 | // 途中経過 176 | int chunkPart = 16; 177 | 178 | int progress = 0; 179 | int chunkSize = searchUpper / chunkPart; 180 | int chunkMax = chunkPart * (maxRerolls - minRerolls + 1); 181 | int chunkCount = 1; 182 | 183 | p?.Report(0); 184 | 185 | for (int i = minRerolls; i <= maxRerolls; ++i) 186 | { 187 | int chunkOffset = (i - minRerolls) * chunkPart; 188 | 189 | progress = 0; 190 | chunkCount = 0; 191 | 192 | // C++ライブラリ側の事前計算 193 | Prepare(i); 194 | 195 | // 並列探索 196 | if (isEnableStop) 197 | { 198 | // 中断あり 199 | Parallel.For(searchLower, searchUpper, (ivs, state) => 200 | { 201 | ulong result = Search((ulong)ivs); 202 | if (result != 0) 203 | { 204 | Result.Add(result); 205 | state.Stop(); 206 | } 207 | Interlocked.Increment(ref progress); 208 | if (progress >= chunkCount * chunkSize) 209 | { 210 | lock (lockObj) 211 | { 212 | if (progress >= chunkCount * chunkSize) 213 | { 214 | p?.Report((chunkCount + chunkOffset) * 1000 / chunkMax); 215 | ++chunkCount; 216 | } 217 | } 218 | } 219 | }); 220 | if (Result.Count > 0) 221 | { 222 | break; 223 | } 224 | } 225 | else 226 | { 227 | // 中断なし 228 | Parallel.For(searchLower, searchUpper, (ivs) => 229 | { 230 | ulong result = Search((ulong)ivs); 231 | if (result != 0) 232 | { 233 | Result.Add(result); 234 | } 235 | Interlocked.Increment(ref progress); 236 | if (progress >= chunkCount * chunkSize) 237 | { 238 | lock (lockObj) 239 | { 240 | if (progress >= chunkCount * chunkSize) 241 | { 242 | p?.Report((chunkCount + chunkOffset) * 1000 / chunkMax); 243 | ++chunkCount; 244 | } 245 | } 246 | } 247 | }); 248 | } 249 | } 250 | } 251 | else if (m_Mode == Mode.Star35_5 || m_Mode == Mode.Star35_6) 252 | { 253 | // 探索範囲 254 | int searchLower = 0; 255 | int searchUpper = (m_Mode == Mode.Star35_5 ? 0x2000000 : 0x40000000); 256 | 257 | // 途中経過 258 | int chunkPart = 32; 259 | 260 | int progress = 0; 261 | int chunkSize = searchUpper / chunkPart; 262 | int chunkMax = chunkPart * (maxRerolls - minRerolls + 1); 263 | int chunkCount = 1; 264 | 265 | p?.Report(0); 266 | 267 | for (int i = minRerolls; i <= maxRerolls; ++i) 268 | { 269 | int chunkOffset = (i - minRerolls) * chunkPart; 270 | 271 | progress = 0; 272 | chunkCount = 0; 273 | 274 | // C++ライブラリ側の事前計算 275 | PrepareSix(i); 276 | 277 | // 並列探索 278 | if (isEnableStop) 279 | { 280 | // 中断あり 281 | Parallel.For(searchLower, searchUpper, (ivs, state) => 282 | { 283 | ulong result = SearchSix((ulong)ivs); 284 | if (result != 0) 285 | { 286 | Result.Add(result); 287 | state.Stop(); 288 | } 289 | Interlocked.Increment(ref progress); 290 | if (progress >= chunkCount * chunkSize) 291 | { 292 | lock (lockObj) 293 | { 294 | if (progress >= chunkCount * chunkSize) 295 | { 296 | p?.Report((chunkCount + chunkOffset) * 1000 / chunkMax); 297 | ++chunkCount; 298 | } 299 | } 300 | } 301 | }); 302 | if (Result.Count > 0) 303 | { 304 | break; 305 | } 306 | } 307 | else 308 | { 309 | // 中断なし 310 | Parallel.For(searchLower, searchUpper, (ivs) => 311 | { 312 | ulong result = SearchSix((ulong)ivs); 313 | if (result != 0) 314 | { 315 | Result.Add(result); 316 | } 317 | Interlocked.Increment(ref progress); 318 | if (progress >= chunkCount * chunkSize) 319 | { 320 | lock (lockObj) 321 | { 322 | if (progress >= chunkCount * chunkSize) 323 | { 324 | p?.Report((chunkCount + chunkOffset) * 1000 / chunkMax); 325 | ++chunkCount; 326 | } 327 | } 328 | } 329 | }); 330 | } 331 | } 332 | 333 | // 結果を加工([-3]にする) 334 | for (int i = 0; i < Result.Count; ++i) 335 | { 336 | for (int a = 0; a < 3; ++a) 337 | { 338 | Result[i] = Result[i] + 0x7d5d4e8add6295a5ul; 339 | } 340 | } 341 | } 342 | } 343 | } 344 | } 345 | -------------------------------------------------------------------------------- /OneStar/RaidData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using PKHeX_Raid_Plugin; 4 | using PKHeX.Core; 5 | using System.Runtime.CompilerServices; 6 | 7 | namespace OneStar 8 | { 9 | public class RaidData 10 | { 11 | // 巣穴データ(Raid_Pluginより) 12 | readonly RaidTables c_RaidTables = new RaidTables(); 13 | 14 | // イベントレイドデータ 15 | EventDenList m_EventDenList; 16 | 17 | // DLCレイドデータ 18 | EventDenList m_AdditionalDenList; 19 | 20 | // マップスケール 21 | readonly float c_MapScale = 250.0f / 458.0f; // ビュー上の幅/画像の幅 22 | 23 | // ガラルポケモン 24 | static readonly Dictionary c_GalarForms = new Dictionary{ 25 | { 562, 562.1m }, // デスマス 26 | { 618, 618.1m }, // マッギョ 27 | { 77, 77.1m }, // ポニータ 28 | { 78, 78.1m }, // ギャロップ 29 | { 122, 122.1m }, // バリヤード 30 | { 222, 222.1m }, // サニーゴ 31 | { 263, 263.1m }, // ジグザグマ 32 | { 264, 264.1m }, // マッスグマ 33 | { 52, 52.2m }, // ニャース 34 | { 83, 83.1m }, // カモネギ 35 | { 110, 110.1m }, // マタドガス 36 | { 554, 993m }, // ダルマッカ 37 | { 555, 555.2m }, // ヒヒダルマ 38 | }; 39 | 40 | // ♂のみ:バルキー系、エルレイド、ナゲキ、ダゲキ、ウォーグル系、オーロンゲ系 41 | // ♀のみ:ビークイン、ユキメノコ、バルジーナ系、アマージョ系、ブリムオン系、マホイップ系 42 | // 性別不明:メタモン、ヌケニン、ネンドール系、ドータクン系、ロトム、ギギギアル系、ゴルーグ系、シルヴァディ系、ダダリン、ポットデス系、タイレーツ、化石、伝説 43 | static readonly Dictionary c_FixedGender = new Dictionary { 44 | { 236, 1 }, // バルキー 45 | { 106, 1 }, // サワムラー 46 | { 107, 1 }, // エビワラー 47 | { 237, 1 }, // カポエラー 48 | { 475, 1 }, // エルレイド 49 | { 538, 1 }, // ナゲキ 50 | { 539, 1 }, // ダゲキ 51 | { 627, 1 }, // ワシボン 52 | { 628, 1 }, // ウォーグル 53 | { 859, 1 }, // ベロバー 54 | { 860, 1 }, // ギモー 55 | { 861, 1 }, // オーロンゲ 56 | { 416, 2 }, // ビークイン 57 | { 478, 2 }, // ユキメノコ 58 | { 629, 2 }, // バルチャイ 59 | { 630, 2 }, // バルジーナ 60 | { 761, 2 }, // アマカジ 61 | { 762, 2 }, // アママイコ 62 | { 763, 2 }, // アマージョ 63 | { 856, 2 }, // ミブリム 64 | { 857, 2 }, // テブリム 65 | { 858, 2 }, // ブリムオン 66 | { 868, 2 }, // マホミル 67 | { 869, 2 }, // マホイップ 68 | { 132, 3 }, // メタモン 69 | { 292, 3 }, // ヌケニン 70 | { 343, 3 }, // ヤジロン 71 | { 344, 3 }, // ネンドール 72 | { 436, 3 }, // ドーミラー 73 | { 437, 3 }, // ドータクン 74 | { 479, 3 }, // ロトム 75 | { 599, 3 }, // ギアル 76 | { 600, 3 }, // ギギアル 77 | { 601, 3 }, // ギギギアル 78 | { 622, 3 }, // ゴビット 79 | { 623, 3 }, // ゴルーグ 80 | { 772, 3 }, // タイプ:ヌル 81 | { 773, 3 }, // シルヴァディ 82 | { 781, 3 }, // ダダリン 83 | { 854, 3 }, // ヤバチャ 84 | { 855, 3 }, // ポットデス 85 | { 870, 3 }, // タイレーツ 86 | { 880, 3 }, // パッチラゴン 87 | { 881, 3 }, // パッチルドン 88 | { 882, 3 }, // ウオノラゴン 89 | { 883, 3 }, // ウオチルドン 90 | { 888, 3 }, // ザシアン 91 | { 889, 3 }, // ザマゼンタ 92 | { 890, 3 }, // ムゲンダイナ 93 | }; 94 | 95 | public RaidData() 96 | { 97 | m_EventDenList = new EventDenList(); 98 | m_EventDenList.Load("data/EventDen.json"); 99 | 100 | // DLCレイドデータ読み込み 101 | m_AdditionalDenList = new EventDenList(); 102 | m_AdditionalDenList.Load("data/AdditionalDen.json"); 103 | } 104 | 105 | // 恒常レイド 106 | public RaidTemplate[] GetRaidEntries(int raidIndex, int version, int rarity) 107 | { 108 | // イベントレイド 109 | if (raidIndex == -1) 110 | { 111 | RaidTemplateTable[] raidTables = (version == 0 ? c_RaidTables.SwordNestsEvent : c_RaidTables.ShieldNestsEvent); 112 | return Array.Find(raidTables, table => table.TableID == NestLocations.EventHash).Entries; 113 | } 114 | // 本編レイド 115 | else if(raidIndex < NestLocations.Nests.Length) 116 | { 117 | var detail = NestLocations.Nests[raidIndex]; 118 | RaidTemplateTable[] raidTables = (version == 0 ? c_RaidTables.SwordNests : c_RaidTables.ShieldNests); 119 | if (rarity == 0) 120 | { 121 | return Array.Find(raidTables, table => table.TableID == detail.CommonHash).Entries; 122 | } 123 | else 124 | { 125 | return Array.Find(raidTables, table => table.TableID == detail.RareHash).Entries; 126 | } 127 | } 128 | // DLCレイド 129 | else 130 | { 131 | return GetAdditionalRaidEntries(raidIndex, version, rarity); 132 | } 133 | } 134 | public int GetRaidMap(int raidIndex) 135 | { 136 | if (raidIndex >= NestLocations.Nests.Length) 137 | { 138 | return AdditionalNestIdTable.c_DLC1Table[raidIndex].MapIndex; 139 | } 140 | return 0; 141 | } 142 | public System.Drawing.Point GetRaidLocation(int raidIndex) 143 | { 144 | if (raidIndex >= 0 && raidIndex < NestLocations.Nests.Length) 145 | { 146 | var detail = NestLocations.Nests[raidIndex]; 147 | return new System.Drawing.Point((int)(detail.MapX * c_MapScale), (int)(detail.MapY * c_MapScale)); 148 | } 149 | else if (raidIndex >= NestLocations.Nests.Length) 150 | { 151 | return new System.Drawing.Point(AdditionalNestIdTable.c_DLC1Table[raidIndex].PosX, AdditionalNestIdTable.c_DLC1Table[raidIndex].PosY); 152 | } 153 | else 154 | { 155 | return System.Drawing.Point.Empty; 156 | } 157 | } 158 | RaidTemplate[] GetAdditionalRaidEntries(int raidIndex, int version, int rarity) 159 | { 160 | string id = (rarity == 0 ? AdditionalNestIdTable.c_DLC1Table[raidIndex].IdNormal : AdditionalNestIdTable.c_DLC1Table[raidIndex].IdRare); 161 | if (version == 0) 162 | { 163 | id += "_Sw"; 164 | } 165 | else 166 | { 167 | id += "_Sh"; 168 | } 169 | 170 | if (m_AdditionalDenList.EventList.ContainsKey(id)) 171 | { 172 | return m_AdditionalDenList.EventList[id].RaidEntries; 173 | } 174 | else 175 | { 176 | return GetRaidEntries(-1, version, 0); 177 | } 178 | } 179 | 180 | // イベントレイド 181 | public RaidTemplate[] GetEventRaidEntries(string id, int version) 182 | { 183 | if (version == 0) 184 | { 185 | id += "_Sw"; 186 | } 187 | else 188 | { 189 | id += "_Sh"; 190 | } 191 | 192 | if (m_EventDenList.EventList.ContainsKey(id)) 193 | { 194 | return m_EventDenList.EventList[id].RaidEntries; 195 | } 196 | else 197 | { 198 | return GetRaidEntries(-1, version, 0); 199 | } 200 | } 201 | 202 | public List GetEventRaidIdList() 203 | { 204 | List list = new List(); 205 | HashSet existId = new HashSet(); 206 | foreach (string key in m_EventDenList.EventList.Keys) 207 | { 208 | // 末尾のバージョンを削除 209 | string id = key.Substring(0, key.Length - 3); 210 | if (!existId.Contains(id)) 211 | { 212 | list.Add(id); 213 | existId.Add(id); 214 | } 215 | } 216 | list.Sort(); 217 | list.Reverse(); 218 | return list; 219 | } 220 | public void LoadEventRaidData() 221 | { 222 | m_EventDenList.Load("data/EventDen.json"); 223 | } 224 | 225 | // 1ランク1ポケモンごとに対応するデータ 226 | public class Pokemon 227 | { 228 | public string Key { get; private set; } 229 | public int Rank { get; private set; } 230 | 231 | public decimal DisplaySpecies { get; private set; } // 名前表示上の種族 232 | public int DataSpecies { get; private set; } // PKHeXデータ上のインデックス 233 | public bool IsDataSWSH { get; private set; } 234 | 235 | public int FlawlessIvs { get; private set; } 236 | public bool IsGigantamax { get; private set; } 237 | public int Ability { get; private set; } 238 | public bool IsFixedGender { get; private set; } 239 | 240 | public override string ToString() { return Key; } 241 | 242 | // データ取得 243 | public int NatureTableId { 244 | get { 245 | // ストリンダー対応 246 | if (DisplaySpecies == 849) 247 | { 248 | return 1; // ハイ 249 | } 250 | if (DisplaySpecies == 1154) 251 | { 252 | return 2; // ロー 253 | } 254 | return 0; 255 | } 256 | } 257 | 258 | public Pokemon(RaidTemplate entry, int rank) 259 | { 260 | Rank = rank; 261 | 262 | int rawSpecies = entry.Species; 263 | decimal altForm = entry.AltForm; 264 | 265 | DisplaySpecies = rawSpecies; 266 | IsDataSWSH = true; 267 | 268 | // マホイップ、カラナクシ、トリトドンは無視 269 | if (rawSpecies == 869 || rawSpecies == 422 || rawSpecies == 423) 270 | { 271 | altForm = 0; 272 | } 273 | // FCロトムは全て1に 274 | else if (rawSpecies == 479) 275 | { 276 | if (altForm != 0) 277 | { 278 | altForm = 1; 279 | } 280 | } 281 | 282 | // ストリンダー(ロー) 283 | if (rawSpecies == 849 && altForm == 1) 284 | { 285 | DisplaySpecies = 1154; 286 | } 287 | else 288 | { 289 | DisplaySpecies = rawSpecies + altForm / 10m; 290 | } 291 | 292 | // PKHeX上のindexを取得 293 | if (altForm != 0) 294 | { 295 | DataSpecies = PersonalTable.SWSH[rawSpecies].FormeIndex(rawSpecies, entry.AltForm); 296 | // 存在しないものは以前のデータを使う 297 | if (DataSpecies == rawSpecies) 298 | { 299 | PersonalInfo tempInfo = PersonalTable.SWSH[DataSpecies]; 300 | if (tempInfo.ATK == 0) 301 | { 302 | DataSpecies = PersonalTable.USUM[rawSpecies].FormeIndex(rawSpecies, entry.AltForm); 303 | IsDataSWSH = false; 304 | } 305 | } 306 | } 307 | else 308 | { 309 | DataSpecies = rawSpecies; 310 | } 311 | 312 | FlawlessIvs = entry.FlawlessIVs; 313 | IsGigantamax = entry.IsGigantamax; 314 | 315 | // 特性 316 | Ability = entry.Ability; 317 | 318 | PersonalInfo info = PersonalTable.SWSH[DataSpecies]; 319 | if (info.ATK == 0) 320 | { 321 | info = PersonalTable.USUM[DataSpecies]; 322 | IsDataSWSH = false; 323 | } 324 | 325 | // レイドデータで固定されているのはイエッサン、ニャオニクス、エンニュートのみ 326 | // ♂のみ:バルキー系、エルレイド、ナゲキ、ダゲキ、ウォーグル系、オーロンゲ系 327 | // ♀のみ:ビークイン、ユキメノコ、バルジーナ系、アマージョ系、ブリムオン系、マホイップ系 328 | if(info.Genderless || info.OnlyFemale || info.OnlyMale) 329 | { 330 | IsFixedGender = true; 331 | } 332 | else 333 | { 334 | IsFixedGender = (entry.Gender != 0); 335 | } 336 | 337 | RefreshKey(); 338 | } 339 | 340 | public void RefreshKey() 341 | { 342 | // キーを作成 343 | string key = Messages.Instance.RankPrefix[Rank]; 344 | bool isExist = false; 345 | foreach (var pokemon in Messages.Instance.Pokemon) 346 | { 347 | if (pokemon.Value == DisplaySpecies) 348 | { 349 | key += pokemon.Key; 350 | isExist = true; 351 | break; 352 | } 353 | } 354 | // 存在しない場合はPKHeXから取ってくる 355 | if (!isExist) 356 | { 357 | var list = PKHeX.Core.Util.GetSpeciesList(Messages.Instance.LangCode); 358 | int listId = (int)DisplaySpecies; 359 | if (listId < list.Length) 360 | { 361 | key += list[listId]; 362 | } 363 | } 364 | 365 | if (IsGigantamax) 366 | { 367 | key += Messages.Instance.SystemLabel["Gigantamax"]; 368 | } 369 | 370 | // V固定数のkeyを付与 371 | key += $" [{Messages.Instance.IvsInfo[FlawlessIvs]} / "; 372 | 373 | // 特性のkeyを付与 374 | if (Ability == 2) 375 | { 376 | key += $"{Messages.Instance.SystemLabel["HiddenFixed"]}]"; 377 | } 378 | else if (Ability == 3) 379 | { 380 | key += $"{Messages.Instance.SystemLabel["NoHidden"]}]"; 381 | } 382 | else if (Ability == 4) 383 | { 384 | key += $"{Messages.Instance.SystemLabel["HiddenPossible"]}]"; 385 | } 386 | else 387 | { 388 | key += $"]"; 389 | } 390 | 391 | Key = key; 392 | } 393 | } 394 | } 395 | } 396 | -------------------------------------------------------------------------------- /OneStarCalculatorLib/OneStarCalculatorLib.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 15.0 23 | {FC9F2AF9-AB51-4382-8028-A36AEA296863} 24 | OneStarCalculatorLib 25 | 10.0 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v142 32 | MultiByte 33 | 34 | 35 | DynamicLibrary 36 | false 37 | v142 38 | true 39 | MultiByte 40 | 41 | 42 | DynamicLibrary 43 | true 44 | v142 45 | MultiByte 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v142 51 | true 52 | MultiByte 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | $(SolutionDir)OneStar\bin\$(Configuration)\x64\ 75 | $(VC_IncludePath);$(WindowsSDK_IncludePath);$(CUDA_INC_PATH); 76 | 77 | 78 | $(SolutionDir)OneStar\bin\$(Configuration)\x64\ 79 | $(VC_IncludePath);$(WindowsSDK_IncludePath);$(CUDA_INC_PATH); 80 | 81 | 82 | $(SolutionDir)OneStar\bin\$(Configuration)\x86\ 83 | $(VC_IncludePath);$(WindowsSDK_IncludePath);$(CUDA_INC_PATH); 84 | 85 | 86 | $(VC_IncludePath);$(WindowsSDK_IncludePath);$(CUDA_INC_PATH); 87 | 88 | 89 | 90 | Level3 91 | MaxSpeed 92 | true 93 | true 94 | true 95 | true 96 | 97 | 98 | true 99 | true 100 | cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 101 | 102 | 103 | 104 | 105 | Level3 106 | Disabled 107 | true 108 | true 109 | 110 | 111 | cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 112 | 113 | 114 | 115 | 116 | Level3 117 | Disabled 118 | true 119 | true 120 | 121 | 122 | cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 123 | 124 | 125 | 126 | 127 | Level3 128 | MaxSpeed 129 | true 130 | true 131 | true 132 | true 133 | 134 | 135 | true 136 | true 137 | cudart.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) 138 | 139 | 140 | 141 | 142 | 143 | true 144 | true 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | true 154 | true 155 | 156 | 157 | true 158 | true 159 | 160 | 161 | true 162 | true 163 | 164 | 165 | true 166 | true 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | true 177 | true 178 | 179 | 180 | true 181 | true 182 | 183 | 184 | true 185 | true 186 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /OneStar/AdditionalNestIdTable.cs: -------------------------------------------------------------------------------- 1 | using PKHeX.Core; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace OneStar 9 | { 10 | class AdditionalNestIdTable 11 | { 12 | public class Data 13 | { 14 | public string IdNormal { get; } 15 | public string IdRare { get; } 16 | public int MapIndex { get; } 17 | public int PosX { get; } 18 | public int PosY { get; } 19 | 20 | public Data(string idNormal, string idRare, int mapIndex, int posX, int posY) 21 | { 22 | IdNormal = idNormal; 23 | IdRare = idRare; 24 | MapIndex = mapIndex; 25 | PosX = posX; 26 | PosY = posY; 27 | } 28 | } 29 | public static readonly Dictionary c_DLC1Table = new Dictionary 30 | { 31 | // 一礼野原 32 | { 100, new Data( "6589539950519384197", "3561902408726248099", 3, 117, 377)}, 33 | { 101, new Data( "13563999851587423716", "502513031628180988", 3, 88, 389)}, 34 | { 102, new Data( "4780541378243794326", "18345017229883237822", 3, 106, 389)}, 35 | { 103, new Data( "2997411918588892139", "12562706121429926817", 2, 178, 385)}, 36 | { 104, new Data( "4780539179220537904", "18345015030859981400", 3, 39, 393)}, 37 | { 105, new Data( "7956530560371257544", "2024757571205803752", 2, 183, 402)}, 38 | { 106, new Data( "7854659797556875545", "5999950843982638879", 3, 35, 414)}, 39 | { 107, new Data( "16341001078884806474", "9913932150092391706", 3, 56, 405)}, 40 | { 108, new Data( "8769170721942624824", "14477537978666912344", 2, 167, 414)}, 41 | { 109, new Data( "2447364886159768926", "15632276665898509590", 2, 184, 426)}, 42 | // 清涼湿原 43 | { 110, new Data( "13305292637317525948", "16069264858016261892", 2, 160, 305)}, 44 | { 111, new Data( "2447363786648140715", "15632275566386881379", 2, 181, 304)}, 45 | { 112, new Data( "14284833672245134656", "7704513452465554544", 2, 214, 311)}, 46 | { 113, new Data( "16341001078884806474", "9913932150092391706", 2, 191, 318)}, 47 | { 114, new Data( "4780541378243794326", "18345017229883237822", 2, 117, 284)}, 48 | { 115, new Data( "6672704941776910536", "17951961757311600360", 2, 142, 295)}, 49 | { 116, new Data( "4780540278732166115", "18345016130371609611", 2, 171, 341)}, 50 | { 117, new Data( "2997411918588892139", "12562706121429926817", 2, 218, 341)}, 51 | { 118, new Data( "2447364886159768926", "15632276665898509590", 2, 143, 334)}, 52 | // ファイトケイブ 53 | { 119, new Data( "5830741396702654597", "17953607996949684899", 3, 162, 249)}, 54 | // チャレンジロード 55 | { 120, new Data( "14284833672245134656", "7704513452465554544", 3, 125, 158)}, 56 | { 121, new Data( "11635283243122928556", "17629394089387610164", 3, 139, 192)}, 57 | { 122, new Data( "6162140483756004486", "6162171270081594394", 3, 143, 206)}, // ルガルガン 58 | { 123, new Data( "13563999851587423716", "502513031628180988", 3, 139, 225)}, 59 | // 集中の森 60 | { 124, new Data( "6672704941776910536", "17951961757311600360", 2, 161, 237)}, 61 | { 125, new Data( "16341001078884806474", "9913932150092391706", 2, 126, 250)}, 62 | { 126, new Data( "7956530560371257544", "2024757571205803752", 2, 156, 256)}, 63 | { 127, new Data( "7854659797556875545", "5999950843982638879", 2, 104, 258)}, 64 | { 128, new Data( "4780540278732166115", "18345016130371609611", 2, 114, 258)}, 65 | { 129, new Data( "15818376695778914966", "5701088864462885848", 2, 188, 263)}, // キョダイフシギバナ 66 | // 鍛錬平原 67 | { 130, new Data( "8769170721942624824", "14477537978666912344", 2, 178, 152)}, 68 | { 131, new Data( "2997411918588892139", "12562706121429926817", 3, 52, 154)}, 69 | { 132, new Data( "2447363786648140715", "15632275566386881379", 3, 31, 178)}, 70 | { 133, new Data( "15818376695778914966", "5701088864462885848", 3, 92, 185)}, // キョダイフシギバナ 71 | { 134, new Data( "7854659797556875545", "5701093262509398692", 2, 178, 185)}, // キョダイイオルブ 72 | { 135, new Data( "6672704941776910536", "17951961757311600360", 3, 24, 199)}, 73 | { 136, new Data( "13305292637317525948", "16069264858016261892", 2, 135, 206)}, 74 | // 鍋底砂漠 75 | { 137, new Data( "6984833918694526192", "5701096561044283325", 3, 117, 100)}, // キョダイサダイジャ 76 | { 138, new Data( "6589539950519384197", "3561902408726248099", 3, 67, 89)}, 77 | { 139, new Data( "8769170721942624824", "14477537978666912344", 2, 173, 102)}, 78 | // ハニカームの海 79 | { 140, new Data( "4780546875801935381", "18345022727441378877", 2, 205, 24)}, 80 | { 141, new Data( "14284833672245134656", "7704513452465554544", 2, 178, 41)}, 81 | { 142, new Data( "7956530560371257544", "2024757571205803752", 2, 138, 32)}, 82 | { 143, new Data( "13563999851587423716", "502513031628180988", 2, 137, 68)}, 83 | { 144, new Data( "12738905581603037598", "4426791916416848726", 2, 75, 213)}, 84 | // ハニカーム島 85 | { 145, new Data( "16882931869395424672", "4515385547978135952", 2, 38, 57)}, 86 | { 146, new Data( "16882931869395424672", "4515385547978135952", 2, 68, 57)}, 87 | { 147, new Data( "16882931869395424672", "4515385547978135952", 2, 23, 82)}, 88 | { 148, new Data( "16882931869395424672", "4515385547978135952", 2, 82, 82)}, 89 | { 149, new Data( "16882931869395424672", "4515385547978135952", 2, 39, 104)}, 90 | { 150, new Data( "16882931869395424672", "4515385547978135952", 2, 68, 104)}, 91 | // チャレンジビーチ 92 | { 151, new Data( "4780539179220537904", "18345015030859981400", 1, 159, 256)}, 93 | { 152, new Data( "6589539950519384197", "3561902408726248099", 2, 79, 233)}, 94 | { 153, new Data( "4780540278732166115", "18345016130371609611", 2, 80,278)}, 95 | { 154, new Data( "6984833918694526192", "14413583907274219616", 2, 60, 281)}, 96 | { 155, new Data( "342604449375897784", "8253110425161551320", 2, 38, 281)}, 97 | { 156, new Data( "7956530560371257544", "2024757571205803752", 2, 69, 295)}, 98 | { 157, new Data( "13305292637317525948", "16069264858016261892", 2, 53, 301)}, 99 | { 158, new Data( "13563999851587423716", "502513031628180988", 2, 53, 325)}, 100 | // 離れ島海域 101 | { 159, new Data( "4780539179220537904", "5701091063486142270", 1, 137, 122)}, // キョダイキングラー 102 | { 160, new Data( "4780546875801935381", "18345022727441378877", 1, 122, 132)}, 103 | { 161, new Data( "2997411918588892139", "12562706121429926817", 1, 92, 136)}, 104 | { 162, new Data( "2447364886159768926", "15632276665898509590", 1, 104, 164)}, 105 | { 163, new Data( "16341001078884806474", "9913932150092391706", 1, 150, 168)}, 106 | // 並ぶ島の海 107 | { 164, new Data( "6672704941776910536", "17951961757311600360", 1, 55, 258)}, 108 | { 165, new Data( "7725829814153603264", "5701092162997770481", 1, 49, 273)}, // キョダイカメックス 109 | { 166, new Data( "5830741396702654597", "17953607996949684899", 1, 136, 281)}, 110 | { 167, new Data( "13305292637317525948", "16069264858016261892", 1, 28, 325)}, 111 | { 168, new Data( "2447364886159768926", "15632276665898509590", 1, 121, 325)}, 112 | { 169, new Data( "11635283243122928556", "17629394089387610164", 1, 74, 390)}, 113 | { 170, new Data( "6984833918694526192", "14413583907274219616", 1, 56, 405)}, 114 | { 171, new Data( "4780546875801935381", "18345022727441378877", 1, 84, 413)}, 115 | { 172, new Data( "342604449375897784", "8253110425161551320", 1, 80, 442)}, 116 | // 闘心の洞窟 117 | { 173, new Data( "4780540278732166115", "5701094362021026903", 2, 139, 359)}, // キョダイカジリガメ 118 | { 174, new Data( "5830741396702654597", "17953607996949684899", 2, 128, 352)}, 119 | { 175, new Data( "342604449375897784", "8253110425161551320", 2, 128, 364)}, 120 | { 176, new Data( "6984833918694526192", "14413583907274219616", 2, 100, 325)}, 121 | { 177, new Data( "2447363786648140715", "15632275566386881379", 2, 100, 348)}, 122 | { 178, new Data( "4780541378243794326", "18345017229883237822", 2, 153, 373)}, 123 | // 円環の入り江 124 | { 179, new Data( "12738905581603037598", "5701095461532655114", 1, 221, 401)}, // キョダイアップリュー 125 | { 180, new Data( "11635283243122928556", "17629394089387610164", 1, 164, 401)}, 126 | { 181, new Data( "6589539950519384197", "3561902408726248099", 1, 211, 413)}, 127 | { 182, new Data( "4780539179220537904", "18345015030859981400", 1, 189, 433)}, 128 | // ワークアウトの海 129 | { 183, new Data( "7725829814153603264", "5701092162997770481", 1, 161, 514)}, // キョダイカメックス 130 | { 184, new Data( "12738905581603037598", "4426791916416848726", 2, 97, 510)}, 131 | { 185, new Data( "11635283243122928556", "17629394089387610164", 2, 135, 556)}, 132 | { 186, new Data( "4780546875801935381", "18345022727441378877", 3, 65, 487)}, 133 | { 187, new Data( "7854659797556875545", "5999950843982638879", 3, 60, 524)}, 134 | { 188, new Data( "14284833672245134656", "7704513452465554544", 3, 169, 348)}, 135 | { 189, new Data( "4665094036540599430", "11519945754184084270", 3, 205, 377)}, // メタモン 136 | 137 | // 滑り出し雪原 138 | { 190, new Data( "CT001_N", "CT001_R", 4, 18, 220 )}, // キョダイバタフリー 139 | { 191, new Data( "CT003_N", "CT003_R", 4, 50, 218 )}, 140 | { 192, new Data( "CT002_N", "CT002_R", 4, 57, 215 )}, // ソードのみキョダイセキタンザン 141 | { 193, new Data( "CT003_N", "CT003_R", 4, 75, 230 )}, 142 | { 194, new Data( "CT004_N", "CT004_R", 4, 85, 244 )}, // キョダイカビゴン 143 | { 195, new Data( "CT005_N", "CT005_R", 4, 100, 240 )}, // シールドのみキョダイゲンガー 144 | // 氷点雪原 145 | { 196, new Data( "CT006_N", "CT006_R", 4, 10, 291 )}, // キョダイブリムオン 146 | { 197, new Data( "CT007_N", "CT007_R", 4, 19, 285 )}, // キョダイアーマーガア 147 | { 198, new Data( "CT009_N", "CT009_R", 4, 20, 299 )}, // ソードのみキョダイカイリキー 148 | { 199, new Data( "CT008_N", "CT008_R", 4, 38, 299 )}, // キョダイオーロンゲ 149 | { 200, new Data( "CT010_N", "CT010_R", 4, 66, 303 )}, // キョダイストリンダー 150 | // 巨人の寝床 151 | { 201, new Data( "CT011_N", "CT011_R", 4, 14, 359 )}, // キョダイダイオウドウ 152 | { 202, new Data( "CT012_N", "CT012_R", 4, 50, 359 )}, // キョダイマルヤクデ 153 | { 203, new Data( "CT002_N", "CT002_R", 4, 81, 351 )}, // ソードのみキョダイセキタンザン 154 | { 204, new Data( "CT014_N", "CT014_R", 4, 140, 317 )}, // ヤバチャ、キョダイマホイップ 155 | { 205, new Data( "CT013_N", "CT013_R", 4, 138, 344 )}, // キョダイダストダス 156 | { 206, new Data( "CT004_N", "CT004_R", 4, 175, 325 )}, // キョダイカビゴン 157 | { 207, new Data( "CT015_N", "CT015_R", 4, 164, 344 )}, // キョダイキングラー 158 | { 208, new Data( "CT017_N", "CT017_R", 4, 191, 322 )}, // シールドのみキョダイラプラス 159 | { 209, new Data( "CT016_N", "CT016_R", 4, 199, 316 )}, // キョダイジュラルドン 160 | { 210, new Data( "CT009_N", "CT009_R", 4, 229, 317 )}, // ソードのみキョダイカイリキー 161 | { 211, new Data( "CT001_N", "CT001_R", 5, 134, 332 )}, // キョダイバタフリー 162 | { 212, new Data( "CT013_N", "CT013_R", 4, 92, 399 )}, // キョダイダストダス 163 | { 213, new Data( "CT008_N", "CT008_R", 4, 121, 358 )}, // キョダイオーロンゲ 164 | { 214, new Data( "CT012_N", "CT012_R", 5, 86, 364 )}, // キョダイマルヤクデ 165 | { 215, new Data( "CT010_N", "CT010_R", 5, 78, 402 )}, // キョダイストリンダー 166 | { 216, new Data( "CT018_N", "CT018_R", 5, 105, 371 )}, 167 | { 217, new Data( "CT006_N", "CT006_R", 5, 95, 391 )}, // キョダイブリムオン 168 | { 218, new Data( "CT007_N", "CT007_R", 5, 126, 420 )}, // キョダイアーマーガア 169 | { 219, new Data( "CT002_N", "CT002_R", 5, 155, 386 )}, // ソードのみキョダイセキタンザン 170 | { 220, new Data( "CT017_N", "CT017_R", 4, 130, 431 )}, // シールドのみキョダイラプラス 171 | { 221, new Data( "CT015_N", "CT015_R", 4, 193, 431 )}, // キョダイキングラー 172 | // いにしえの墓地 173 | { 222, new Data( "CT005_N", "CT005_R", 4, 153, 376 )}, // シールドのみキョダイゲンガー 174 | { 223, new Data( "CT014_N", "CT014_R", 4, 191, 374 )}, // ヤバチャ、キョダイマホイップ 175 | // 雪中渓谷 176 | { 224, new Data( "CT018_N", "CT018_R", 5, 48, 164 )}, 177 | { 225, new Data( "CT012_N", "CT012_R", 5, 71, 164 )}, // キョダイマルヤクデ 178 | { 226, new Data( "CT008_N", "CT008_R", 5, 32, 243 )}, // キョダイオーロンゲ 179 | { 227, new Data( "CT006_N", "CT006_R", 5, 18, 210 )}, // キョダイブリムオン 180 | { 228, new Data( "CT003_N", "CT003_R", 5, 54, 205 )}, 181 | { 229, new Data( "CT011_N", "CT011_R", 5, 87, 193 )}, // キョダイダイオウドウ 182 | { 230, new Data( "CT019_N", "CT019_R", 5, 125, 174 )}, // 化石 183 | { 231, new Data( "CT009_N", "CT009_R", 5, 99, 263 )}, // ソードのみキョダイカイリキー 184 | { 232, new Data( "CT002_N", "CT002_R", 5, 139, 295 )}, // ソードのみキョダイセキタンザン 185 | // 頂への雪道 186 | { 233, new Data( "CT018_N", "CT018_R", 5, 79, 69 )}, 187 | { 234, new Data( "CT011_N", "CT011_R", 5, 93, 69 )}, // キョダイジュラルドン 188 | { 235, new Data( "CT016_N", "CT016_R", 5, 103, 80 )}, // キョダイダイオウドウ 189 | // カンムリ神殿 190 | { 236, new Data( "CT001_N", "CT001_R", 5, 53, 46 )}, // キョダイバタフリー 191 | // 巨人の靴底 192 | { 237, new Data( "CT004_N", "CT004_R", 5, 147, 348 )}, // キョダイカビゴン 193 | { 238, new Data( "CT015_N", "CT015_R", 5, 157, 347 )}, // キョダイキングラー 194 | { 239, new Data( "CT001_N", "CT001_R", 5, 164, 326 )}, // キョダイバタフリー 195 | { 240, new Data( "CT005_N", "CT005_R", 5, 183, 342 )}, // シールドのみキョダイゲンガー 196 | { 241, new Data( "CT008_N", "CT008_R", 5, 186, 354 )}, // キョダイオーロンゲ 197 | // 凍てつきの海 198 | { 242, new Data( "CT016_N", "CT016_R", 6, 90, 222 )}, // キョダイジュラルドン 199 | { 243, new Data( "CT007_N", "CT007_R", 6, 171, 187 )}, // キョダイアーマーガア 200 | { 244, new Data( "CT010_N", "CT010_R", 6, 229, 179 )}, // キョダイストリンダー 201 | { 245, new Data( "CT017_N", "CT017_R", 6, 92, 276 )}, // シールドのみキョダイラプラス 202 | { 246, new Data( "CT006_N", "CT006_R", 6, 187, 211 )}, // キョダイブリムオン 203 | { 247, new Data( "CT015_N", "CT015_R", 6, 199, 193 )}, // キョダイキングラー 204 | { 248, new Data( "CT017_N", "CT017_R", 6, 224, 205 )}, // シールドのみキョダイラプラス 205 | { 249, new Data( "CT005_N", "CT005_R", 6, 235, 192 )}, // シールドのみキョダイゲンガー 206 | { 250, new Data( "CT003_N", "CT003_R", 6, 246, 223 )}, 207 | { 251, new Data( "CT008_N", "CT008_R", 6, 179, 241 )}, // キョダイオーロンゲ 208 | { 252, new Data( "CT011_N", "CT011_R", 6, 217, 239 )}, // キョダイダイオウドウ 209 | { 253, new Data( "CT009_N", "CT009_R", 6, 217, 271 )}, // ソードのみキョダイカイリキー 210 | { 254, new Data( "CT013_N", "CT013_R", 6, 177, 277 )}, // キョダイダストダス 211 | { 255, new Data( "CT017_N", "CT017_R", 6, 225, 295 )}, // シールドのみキョダイラプラス 212 | // 三つまたヶ原 213 | { 256, new Data( "CT016_N", "CT016_R", 6, 121, 302 )}, // キョダイジュラルドン 214 | { 257, new Data( "CT010_N", "CT010_R", 6, 130, 313 )}, // キョダイストリンダー 215 | // ボールレイクの湖畔 216 | { 258, new Data( "CT004_N", "CT004_R", 4, 158, 443 )}, // キョダイカビゴン 217 | { 259, new Data( "CT013_N", "CT013_R", 5, 65, 478 )}, // キョダイダストダス 218 | { 260, new Data( "CT002_N", "CT002_R", 5, 101, 478 )}, // ソードのみキョダイセキタンザン 219 | { 261, new Data( "CT007_N", "CT007_R", 5, 29, 480 )}, // キョダイアーマーガア 220 | { 262, new Data( "CT012_N", "CT012_R", 5, 117, 475 )}, // キョダイマルヤクデ 221 | { 263, new Data( "CT005_N", "CT005_R", 5, 41, 494 )}, // シールドのみキョダイゲンガー 222 | { 264, new Data( "CT016_N", "CT016_R", 5, 99, 500 )}, // キョダイジュラルドン 223 | { 265, new Data( "CT015_N", "CT015_R", 5, 99, 539 )}, // キョダイキングラー 224 | { 266, new Data( "CT018_N", "CT018_R", 5, 51, 550 )}, 225 | { 267, new Data( "CT013_N", "CT013_R", 5, 89, 562 )}, // キョダイダストダス 226 | { 268, new Data( "CT001_N", "CT001_R", 5, 172, 520 )}, // キョダイバタフリー 227 | { 269, new Data( "CT006_N", "CT006_R", 4, 125, 538 )}, // キョダイブリムオン 228 | { 270, new Data( "CT010_N", "CT010_R", 5, 71, 570 )}, // キョダイストリンダー 229 | { 271, new Data( "CT012_N", "CT012_R", 5, 145, 564 )}, // キョダイマルヤクデ 230 | { 272, new Data( "CT014_N", "CT014_R", 4, 121, 557 )}, // ヤバチャ、キョダイマホイップ 231 | { 273, new Data( "CT009_N", "CT009_R", 4, 138, 571 )}, // ソードのみキョダイカイリキー 232 | { 274, new Data( "CT020_N", "CT020_R", 4, 94, 562 )}, // ブイズ 233 | // ダイ木の丘 234 | { 275, new Data( "CT007_N", "CT007_R", 4, 199, 534 )}, // キョダイアーマーガア 235 | }; 236 | } 237 | } 238 | -------------------------------------------------------------------------------- /Data/LanguageJp.json: -------------------------------------------------------------------------------- 1 | { 2 | "LangCode": "ja", 3 | "Nature": { 4 | "がんばりや" :"0", 5 | "さみしがり" :"1", 6 | "ゆうかん" :"2", 7 | "いじっぱり" :"3", 8 | "やんちゃ" :"4", 9 | "ずぶとい" :"5", 10 | "すなお" :"6", 11 | "のんき" :"7", 12 | "わんぱく" :"8", 13 | "のうてんき" :"9", 14 | "おくびょう" :"10", 15 | "せっかち" :"11", 16 | "まじめ" :"12", 17 | "ようき" :"13", 18 | "むじゃき" :"14", 19 | "ひかえめ" :"15", 20 | "おっとり" :"16", 21 | "れいせい" :"17", 22 | "てれや" :"18", 23 | "うっかりや" :"19", 24 | "おだやか" :"20", 25 | "おとなしい" :"21", 26 | "なまいき" :"22", 27 | "しんちょう" :"23", 28 | "きまぐれ" :"24", 29 | }, 30 | "Characteristic": { 31 | "ひるねをよくする" :"0", 32 | "あばれることがすき" :"1", 33 | "うたれづよい" :"2", 34 | "ものおとにびんかん" :"3", 35 | "イタズラがすき" :"4", 36 | "ちょっぴりみえっぱり" :"5", 37 | }, 38 | "Gender": [ 39 | "♂", 40 | "♀", 41 | "不明", 42 | ], 43 | "Ability": [ 44 | "特性1", 45 | "特性2", 46 | "通常特性", 47 | "夢特性", 48 | ], 49 | "Status": [ 50 | "H", 51 | "A", 52 | "B", 53 | "C", 54 | "D", 55 | "S", 56 | "Lv", 57 | ], 58 | "RankPrefix": [ 59 | "★1 ", 60 | "★2 ", 61 | "★3 ", 62 | "★4 ", 63 | "★5 ", 64 | ], 65 | "IvsInfo": [ 66 | "0V", 67 | "1V", 68 | "2V", 69 | "3V", 70 | "4V", 71 | "5V", 72 | "6V", 73 | ], 74 | "SystemLabel": { 75 | "Tab35": "★3~5", 76 | "Tab12": "★1~2", 77 | "TabList": "リスト出力", 78 | "Ivs": "個体値:", 79 | "NoHidden": "通常特性のみ", 80 | "HiddenPossible": "夢特性あり", 81 | "HiddenFixed": "夢特性固定", 82 | "GenderFixed": "性別固定/不明", 83 | "Pokemon35_1_2V": "4匹目-2Vから検索", 84 | "Pokemon35_1_3V": "4匹目-3Vから検索", 85 | "Pokemon35_2": "4匹目-3V~4V", 86 | "Pokemon35_3": "5匹目", 87 | "Pokemon12_1": "1匹目", 88 | "Pokemon12_2": "2匹目", 89 | "Pokemon12_3": "3匹目", 90 | "CheckIvsButton": "個体値チェック", 91 | "CheckIvsResultTitle": "結果:", 92 | "ListVCount": "V固定数:", 93 | "MaxFrame": "最大消費数:", 94 | "OnlyShiny": "色違いのみ", 95 | "ShowSeed": "Seedの値を表示する", 96 | "ShowEC": "ECを表示する", 97 | "ShowAbilityName": "特性を名前で表示する", 98 | "ListButton": "リスト出力", 99 | "ShowDuration": "計算時間を表示", 100 | "StartSearch": "検索開始", 101 | "Searching": "検索中", 102 | "Rerolls": "V箇所再抽選考慮回数", 103 | "Range": "~", 104 | "SearchStop": "1つ見つけたら終了", 105 | "Pokemon": "ポケモン:", 106 | "CalculateIVs": "<- 計算", 107 | "Status": "ステータス:", 108 | "EventDen": "イベントレイド", 109 | "Gigantamax": "(キョダイ)", 110 | "Information": "情報", 111 | "Language": "言語", 112 | "WindowSize": "ウィンドウサイズ", 113 | "WindowSizeNormal": "標準", 114 | "WindowSizeSmall": "小", 115 | "Den": "巣穴", 116 | "GameVersion": "バージョン", 117 | "DenType": "柱の種類", 118 | "Attribute": "ステータス", 119 | "UpdateEventDen": "データ更新", 120 | "GpuSettings": "GPU設定", 121 | "UseGpu": "GPUを計算に使用する", 122 | "ThreadSetting": "スレッド数", 123 | "GpuCheck": "テストを実行", 124 | "Gender": "性別", 125 | "GenderNone": "性別不明", 126 | "GenderMale": "♂のみ", 127 | "GenderFemale": "♀のみ", 128 | "GenderMF71": "♂:♀=7:1", 129 | "GenderMF31": "♂:♀=3:1", 130 | "GenderMF11": "♂:♀=1:1", 131 | "GenderMF13": "♂:♀=1:3", 132 | "GenderMF17": "♂:♀=1:7", 133 | }, 134 | "CheckIvsResult": [ 135 | "NG!", 136 | "OK! Next -> 3V", 137 | "OK! Next -> 4V", 138 | "OK! Next -> 3V or 4V", 139 | ], 140 | "ErrorMessage": { 141 | "DialogTitle": "エラー", 142 | "IvsFormat": "個体値の入力が不正です。\n(0~31の半角数字)", 143 | "IvsStrict1": "1匹目のポケモンは個体値31が1箇所でなければいけません。", 144 | "IvsStrict351_3V": "4匹目-3Vのポケモンは個体値31が3箇所でなければいけません。", 145 | "IvsStrict351_2V": "4匹目-2Vのポケモンは個体値31が2箇所でなければいけません。", 146 | "IvsStrict": "個体値31の箇所がレイドによる確定数に足りません。", 147 | "NotSearchTab": "検索したいレイドによって\n★3~5か★1~2のタブを開いてください。", 148 | "NotFound": "Den Seedが見つかりませんでした。\n「V箇所再抽選考慮回数」の範囲を変えると見つかる可能性があります。", 149 | "DenSeedFormat": "Den Seedの入力が不正です。", 150 | "MaxFrameFormat": "最大消費数の入力が不正です。", 151 | "VCountFormat": "V固定数の入力が不正です。", 152 | "VFormat": "レベルまたはステータスの入力が不正です。\n(1以上の半角数字)", 153 | "LevelRange": "レベルの値が不正です。(1~100)", 154 | "CouldNotCalculateIVs": "個体値の候補がありません。\nレベル、ステータス、性格、個性の入力を確認してください。", 155 | "StatError": "ステータスに問題があります:", 156 | "StatErrorTitle": "ステータスエラー", 157 | "InvalidPokemon": "ポケモン名の入力が不正です。", 158 | "UpdateEventDenFailed": "データの取得に失敗しました。", 159 | "GpuCheckFailed": "テストに失敗しました。GPU計算が正しく機能していません。\n(スレッド数を変更すると動くかもしれません。)", 160 | "NoCudaDevice": "CUDA GPU計算が使用可能なデバイスがありません。", 161 | "GpuError32bit": "GPU計算機能は32bit版では使用できません。", 162 | }, 163 | "SystemMessage": { 164 | "ResultDialogTitle": "結果", 165 | "FindManySeeds": "複数のDen Seedが見つかりました。\n全ての候補はseeds.txtをご確認ください。", 166 | "FindManyIvs": "個体値を絞り込めなかったステータスがあります。\n他のレベルで計算してみてください。", 167 | "EncounterInfoDialogTitle": "レイド情報", 168 | "UpdateEventDenSuccessed": "イベントレイドのデータを更新しました。", 169 | "GpuCheckSuccessed": "テストに成功しました。GPU計算が使用できます。\nベンチマーク:", 170 | }, 171 | "ListLabel": { 172 | "Frame": "消費数", 173 | "Ability": "特性", 174 | "HiddenAbility": "夢", 175 | "Nature": "性格", 176 | "Shiny": "色違い", 177 | "StarShiny": "★", 178 | "SquareShiny": "◆", 179 | }, 180 | "Pokemon": { 181 | "ユキノオー": "460", 182 | "アギルダー": "617", 183 | "ギルガルド": "681", 184 | "マホイップ": "869", 185 | "タルップル": "842", 186 | "カジッチュ": "840", 187 | "オニシズクモ": "752", 188 | "ウインディ": "59", 189 | "ウオチルドン": "883", 190 | "パッチルドン": "881", 191 | "フレフワン": "683", 192 | "サシカマス": "846", 193 | "クレベース": "713", 194 | "キバゴ": "610", 195 | "ヤジロン": "343", 196 | "ガメノデス": "689", 197 | "ドジョッチ": "339", 198 | "カマスジョー": "847", 199 | "バスラオ青": "550.1", 200 | "バスラオ赤": "550", 201 | "ツンベアー": "614", 202 | "オーベム": "606", 203 | "キレイハナ": "182", 204 | "カチコール": "712", 205 | "キテルグマ": "760", 206 | "カメテテ": "688", 207 | "キリキザン": "625", 208 | "サッチムシ": "824", 209 | "ガントル": "525", 210 | "パルスワン": "836", 211 | "ウソハチ": "438", 212 | "アマカジ": "761", 213 | "ウォーグル": "628", 214 | "ドータクン": "437", 215 | "ドーミラー": "436", 216 | "スボミー": "406", 217 | "フシギダネ": "1", 218 | "ホルビー": "659", 219 | "バタフリー": "12", 220 | "トロッゴン": "838", 221 | "キャタピー": "10", 222 | "マルヤクデ": "851", 223 | "シャンデラ": "609", 224 | "リザードン": "6", 225 | "デンヂムシ": "737", 226 | "ヒトカゲ": "4", 227 | "リザード": "5", 228 | "チェリム": "421", 229 | "チェリンボ": "420", 230 | "カムカメ": "833", 231 | "チョンチー": "170", 232 | "チラチーノ": "573", 233 | "エースバーン": "815", 234 | "ネンドール": "344", 235 | "ピクシー": "36", 236 | "ピッピ": "35", 237 | "ピィ": "173", 238 | "タタッコ": "852", 239 | "パルシェン": "91", 240 | "セキタンザン": "839", 241 | "デスカーン": "563", 242 | "ミツハニー": "415", 243 | "ローブシン": "534", 244 | "ダイオウドウ": "879", 245 | "ヘイガニ": "341", 246 | "サニーゴ (ガラル)": "222.1", 247 | "アーマーガア": "823", 248 | "アオガラス": "822", 249 | "モンメン": "546", 250 | "ウッウ": "845", 251 | "シザリガー": "342", 252 | "グレッグル": "453", 253 | "イワパレス": "558", 254 | "クマシュン": "613", 255 | "ゾウドウ": "878", 256 | "サニゴーン": "864", 257 | "アブリー": "742", 258 | "ヒヒダルマ (ガラル)": "555.2", 259 | "フクスロー": "723", 260 | "ダルマッカ (ガラル)": "993", 261 | "ジュナイパー": "724", 262 | "モノズ": "633", 263 | "デリバード": "225", 264 | "シズクモ": "751", 265 | "ダダリン": "781", 266 | "ホルード": "660", 267 | "ディグダ": "50", 268 | "メタモン": "132", 269 | "レドームシ": "825", 270 | "ニダンギル": "680", 271 | "ウオノラゴン": "882", 272 | "パッチラゴン": "880", 273 | "ドラパルト": "887", 274 | "ドロンチ": "886", 275 | "ジジーロン": "780", 276 | "ドラピオン": "452", 277 | "カジリガメ": "834", 278 | "ドラメシヤ": "885", 279 | "フワライド": "426", 280 | "フワンテ": "425", 281 | "モグリュー": "529", 282 | "ジメレオン": "817", 283 | "バイウールー": "832", 284 | "ダグトリオ": "51", 285 | "ダブラン": "578", 286 | "ジュラルドン": "884", 287 | "アイアント": "632", 288 | "サマヨール": "356", 289 | "ヨノワール": "477", 290 | "ヨマワル": "355", 291 | "イシズマイ": "557", 292 | "イーブイ": "133", 293 | "コオリッポ": "875", 294 | "ワタシラガ": "830", 295 | "ラクライ": "309", 296 | "リグレー": "605", 297 | "シュバルゴ": "589", 298 | "エーフィ": "196", 299 | "ニャスパー": "677", 300 | "ムゲンダイナ": "890", 301 | "ドリュウズ": "530", 302 | "タイレーツ": "870", 303 | "カモネギ (ガラル)": "83.1", 304 | "ヒンバス": "349", 305 | "テッシード": "597", 306 | "ナットレイ": "598", 307 | "アップリュー": "841", 308 | "ブースター": "136", 309 | "フライゴン": "330", 310 | "オノンド": "611", 311 | "プルリル": "592", 312 | "ユキメノコ": "478", 313 | "モスノウ": "873", 314 | "エルレイド": "475", 315 | "デンチュラ": "596", 316 | "ダストダス": "569", 317 | "サーナイト": "282", 318 | "ゴース": "92", 319 | "トリトドン": "423", 320 | "ゲンガー": "94", 321 | "ギガイアス": "526", 322 | "グレイシア": "471", 323 | "オニゴーリ": "362", 324 | "クサイハナ": "44", 325 | "トサキント": "118", 326 | "ゴビット": "622", 327 | "グソクムシャ": "768", 328 | "ゴルーグ": "623", 329 | "ヌメルゴン": "706", 330 | "ヌメラ": "704", 331 | "ヒメンカ": "829", 332 | "ゴチム": "574", 333 | "ゴチルゼル": "576", 334 | "ゴチミル": "575", 335 | "パンプジン (小)": "711.1", 336 | "パンプジン (大)": "711.2", 337 | "パンプジン (特大)": "711.3", 338 | "パンプジン (通常)": "711", 339 | "オトスパス": "853", 340 | "ヨクバリス": "820", 341 | "オーロンゲ": "861", 342 | "サルノリ": "810", 343 | "ガーディ": "58", 344 | "アゴジムシ": "736", 345 | "ドテッコツ": "533", 346 | "ギャラドス": "130", 347 | "ジャランゴ": "783", 348 | "ミブリム": "856", 349 | "ブリムオン": "858", 350 | "テブリム": "857", 351 | "ゴースト": "93", 352 | "ルチャブル": "701", 353 | "オノノクス": "612", 354 | "クイタラン": "631", 355 | "エレザード": "695", 356 | "エリキテル": "694", 357 | "ヒポポタス": "449", 358 | "カバルドン": "450", 359 | "エビワラー": "107", 360 | "サワムラー": "106", 361 | "カポエラー": "237", 362 | "ヒトツキ": "679", 363 | "ホーホー": "163", 364 | "サザンドラ": "635", 365 | "ベロバー": "859", 366 | "ガオガエン": "727", 367 | "イエッサン♀": "876.1", 368 | "イエッサン♂": "876", 369 | "マーイーカ": "686", 370 | "インテレオン": "818", 371 | "ジャラコ": "782", 372 | "ブルンゲル": "593", 373 | "サンダース": "135", 374 | "バチュル": "595", 375 | "カブルモ": "588", 376 | "キングラー": "99", 377 | "キルリア": "281", 378 | "ギギアル": "600", 379 | "ギアル": "599", 380 | "ギギギアル": "601", 381 | "ドガース": "109", 382 | "ジャラランガ": "784", 383 | "クラブ": "98", 384 | "ランプラー": "608", 385 | "ランターン": "171", 386 | "ラプラス": "131", 387 | "ヨーギラス": "246", 388 | "リーフィア": "470", 389 | "レパルダス": "510", 390 | "マッスグマ (ガラル)": "264.1", 391 | "ヒトモシ": "607", 392 | "ハスブレロ": "271", 393 | "ハスボー": "270", 394 | "ルカリオ": "448", 395 | "ルンパッパ": "272", 396 | "ルナトーン": "337", 397 | "カイリキー": "68", 398 | "ゴーリキー": "67", 399 | "ワンリキー": "66", 400 | "コイキング": "129", 401 | "カラマネロ": "687", 402 | "マンムー": "473", 403 | "バルジーナ": "630", 404 | "ライボルト": "310", 405 | "マンタイン": "226", 406 | "タマンタ": "458", 407 | "マラカッチ": "556", 408 | "ヒドイデ": "747", 409 | "クチート": "303", 410 | "ニャオニクス♀": "678.1", 411 | "ニャオニクス♂": "678", 412 | "ニャース (ガラル)": "52.2", 413 | "ニャース": "52", 414 | "トランセル": "11", 415 | "ミュウ": "151", 416 | "マホミル": "868", 417 | "ミロカロス": "350", 418 | "マネネ": "439", 419 | "ミミッキュ": "778", 420 | "チラーミィ": "572", 421 | "ネマシュ": "755", 422 | "ギモー": "860", 423 | "モルペコ": "877", 424 | "バリヤード (ガラル)": "122.1", 425 | "バリヤード": "122", 426 | "バリコオル": "866", 427 | "ドロバンコ": "749", 428 | "バンバドロ": "750", 429 | "ゴンベ": "446", 430 | "ムンナ": "517", 431 | "ムシャーナ": "518", 432 | "ネイティ": "177", 433 | "クスネ": "827", 434 | "ツチニン": "290", 435 | "キュウコン": "38", 436 | "テッカニン": "291", 437 | "ヨルノズク": "164", 438 | "オンバット": "714", 439 | "オンバーン": "715", 440 | "コノハナ": "274", 441 | "タチフサグマ": "862", 442 | "オクタン": "224", 443 | "ナゾノクサ": "43", 444 | "イワーク": "95", 445 | "ヤレユータン": "765", 446 | "イオルブ": "826", 447 | "ガマガル": "536", 448 | "ヤンチャム": "674", 449 | "ゴロンダ": "675", 450 | "ナゲツケサル": "766", 451 | "コマタナ": "624", 452 | "ペリッパー": "279", 453 | "ニャイキング": "863", 454 | "ペルシアン": "53", 455 | "ボクレー": "708", 456 | "ピチュー": "172", 457 | "マメパト": "519", 458 | "ピカチュウ": "25", 459 | "イノムー": "221", 460 | "バチンウニ": "871", 461 | "ポットデス": "855", 462 | "ポニータ (ガラル)": "77.1", 463 | "バケッチャ (小)": "710.1", 464 | "バケッチャ (大)": "710.2", 465 | "バケッチャ (特大)": "710.3", 466 | "バケッチャ (通常)": "710", 467 | "サナギラス": "247", 468 | "チョロネコ": "509", 469 | "ナマコブシ": "771", 470 | "ヌオー": "195", 471 | "ハリーセン": "211", 472 | "ラビフット": "814", 473 | "ライチュウ": "26", 474 | "ラルトス": "280", 475 | "ギャロップ (ガラル)": "78.1", 476 | "テッポウオ": "223", 477 | "ランクルス": "579", 478 | "サイドン": "112", 479 | "サイホーン": "111", 480 | "ドサイドン": "464", 481 | "アブリボン": "743", 482 | "ゴリランダー": "812", 483 | "リオル": "447", 484 | "ダンゴロ": "524", 485 | "タンドン": "837", 486 | "ココガラ": "821", 487 | "ロゼリア": "315", 488 | "ロズレイド": "407", 489 | "ロトム (FC)": "479.1", 490 | "ロトム": "479", 491 | "モクロー": "722", 492 | "ワシボン": "627", 493 | "デスバーン": "867", 494 | "ヤミラミ": "302", 495 | "ヤトウモリ": "757", 496 | "エンニュート": "758", 497 | "サダイジャ": "844", 498 | "ダゲキ": "539", 499 | "ヒバニー": "813", 500 | "ズルズキン": "560", 501 | "ズルッグ": "559", 502 | "アズマオウ": "119", 503 | "タネボー": "273", 504 | "ガマゲロゲ": "537", 505 | "ヌケニン": "292", 506 | "シェルダー": "90", 507 | "カラナクシ": "422", 508 | "チョボマキ": "616", 509 | "ダーテング": "275", 510 | "マシェード": "756", 511 | "ツボツボ": "213", 512 | "シンボラー": "561", 513 | "スナヘビ": "843", 514 | "シルヴァディ": "773", 515 | "ヤバチャ": "854", 516 | "ネギガナイト": "865", 517 | "ヤクデ": "850", 518 | "スコルピ": "451", 519 | "スカタンク": "435", 520 | "ホシガリス": "819", 521 | "ヌメイル": "705", 522 | "ペロリーム": "685", 523 | "ニューラ": "215", 524 | "ユキハミ": "872", 525 | "カビゴン": "143", 526 | "ユキワラシ": "361", 527 | "ユキカブリ": "459", 528 | "メッソン": "816", 529 | "ユニラン": "577", 530 | "ソルロック": "338", 531 | "シュシュプ": "682", 532 | "ハガネール": "208", 533 | "アママイコ": "762", 534 | "イシヘンジン": "874", 535 | "ヌイコグマ": "759", 536 | "マッギョ (ガラル)": "618.1", 537 | "スカンプー": "434", 538 | "ウソッキー": "185", 539 | "ウリムー": "220", 540 | "ペロッパフ": "684", 541 | "ココロモリ": "528", 542 | "ニンフィア": "700", 543 | "フォクスライ": "828", 544 | "ナゲキ": "538", 545 | "バチンキー": "811", 546 | "ドッコラー": "532", 547 | "トゲデマル": "777", 548 | "トゲキッス": "468", 549 | "トゲピー": "175", 550 | "トゲチック": "176", 551 | "コータス": "324", 552 | "ドヒドイデ": "748", 553 | "エレズン": "848", 554 | "ドクロッグ": "454", 555 | "ストリンダー (ロー)": "1154", 556 | "ストリンダー (ハイ)": "849", 557 | "ハトーボー": "520", 558 | "ナックラー": "328", 559 | "オーロット": "709", 560 | "ヤブクロン": "568", 561 | "アマージョ": "763", 562 | "バクガメス": "776", 563 | "オタマロ": "535", 564 | "タイプ:ヌル": "772", 565 | "バンギラス": "248", 566 | "バルキー": "236", 567 | "ブラッキー": "197", 568 | "ケンホロウ": "521", 569 | "バニリッチ": "583", 570 | "バニプッチ": "582", 571 | "バイバニラ": "584", 572 | "シャワーズ": "134", 573 | "ビークイン": "416", 574 | "ビブラーバ": "329", 575 | "クワガノン": "738", 576 | "ラフレシア": "45", 577 | "バルチャイ": "629", 578 | "ロコン": "37", 579 | "ホエルコ": "320", 580 | "ホエルオー": "321", 581 | "マニューラ": "461", 582 | "マタドガス (ガラル)": "110.1", 583 | "エルフーン": "547", 584 | "ナマズン": "340", 585 | "コソクムシ": "767", 586 | "キャモメ": "278", 587 | "ヨワシ": "746", 588 | "ソーナンス": "202", 589 | "コロモリ": "527", 590 | "ウールー": "831", 591 | "ウパー": "194", 592 | "ソーナノ": "360", 593 | "ネイティオ": "178", 594 | "デスマス (ガラル)": "562.1", 595 | "デスマス": "562", 596 | "ワンパチ": "835", 597 | "ザシアン": "888", 598 | "ザマゼンタ": "889", 599 | "ジグザグマ (ガラル)": "263.1", 600 | "ジヘッド": "634", 601 | "ポニータ": "77", 602 | "ギャロップ": "78", 603 | "カモネギ": "83", 604 | "マタドガス": "110", 605 | "サニーゴ": "222", 606 | "ジグザグマ": "263", 607 | "マッスグマ": "264", 608 | "マッギョ": "618", 609 | "ダルマッカ": "554", 610 | "ヒヒダルマ": "555", 611 | "イワンコ(マイペース)": "744.1", 612 | "ルガルガン(まひる)": "745", 613 | "ルガルガン(まよなか)": "745.1", 614 | "ルガルガン(たそがれ)": "745.2", 615 | "コラッタ(アローラ)": "19.1", 616 | "ラッタ(アローラ)": "20.1", 617 | "ライチュウ(アローラ)": "26.1", 618 | "サンド(アローラ)": "27.1", 619 | "サンドパン(アローラ)": "28.1", 620 | "ロコン(アローラ)": "37.1", 621 | "キュウコン(アローラ)": "38.1", 622 | "ディグダ(アローラ)": "50.1", 623 | "ダグトリオ(アローラ)": "51.1", 624 | "ニャース(アローラ)": "52.1", 625 | "ペルシアン(アローラ)": "53.1", 626 | "イシツブテ(アローラ)": "74.1", 627 | "ゴローン(アローラ)": "75.1", 628 | "ゴローニャ(アローラ)": "76.1", 629 | "ベトベター(アローラ)": "88.1", 630 | "ベトベトン(アローラ)": "89.1", 631 | "ナッシー(アローラ)": "103.1", 632 | "ガラガラ(アローラ)": "105.1", 633 | }, 634 | "Den": { 635 | "イベントレイド": "-1", 636 | "うららか草原 D": "0", 637 | "うららか草原 G": "1", 638 | "うららか草原 A": "2", 639 | "うららか草原 H": "3", 640 | "うららか草原 F": "4", 641 | "うららか草原 I": "5", 642 | "うららか草原 E": "6", 643 | "うららか草原 B": "7", 644 | "うららか草原 C": "8", 645 | "こもれび林 E": "9", 646 | "こもれび林 B": "10", 647 | "こもれび林 A": "11", 648 | "こもれび林 D": "12", 649 | "こもれび林 C": "13", 650 | "見張り塔跡地 C": "14", 651 | "見張り塔跡地 A": "15", 652 | "キバ湖・東 E": "17", 653 | "キバ湖・東 A": "18", 654 | "キバ湖・東 C": "19", 655 | "キバ湖・東 D": "20", 656 | "キバ湖・西 D": "21", 657 | "キバ湖・西 C": "22", 658 | "キバ湖・西 F": "23", 659 | "キバ湖・西 E": "24", 660 | "キバ湖・西 B": "25", 661 | "キバ湖・西 A": "26", 662 | "キバ湖の瞳 A": "27", 663 | "ミロカロ湖・南 C": "28", 664 | "ミロカロ湖・南 D": "29", 665 | "ミロカロ湖・南 E": "30", 666 | "ミロカロ湖・南 A": "31", 667 | "ミロカロ湖・南 B": "32", 668 | "巨人の腰かけ E": "33", 669 | "巨人の腰かけ B": "34", 670 | "巨人の腰かけ C": "35", 671 | "巨人の腰かけ D": "36", 672 | "巨人の腰かけ A": "37", 673 | "ミロカロ湖・北 E": "38", 674 | "ミロカロ湖・北 D": "39", 675 | "ミロカロ湖・北 B": "40", 676 | "ミロカロ湖・北 C": "41", 677 | "ミロカロ湖・北 A": "42", 678 | "キバ湖・東 B": "43", 679 | "ミロカロ湖・北 F": "44", 680 | "エンジンリバーサイド B": "45", 681 | "エンジンリバーサイド A": "46", 682 | "エンジンリバーサイド C": "47", 683 | "エンジンリバーサイド D": "48", 684 | "ハシノマ原っぱ A": "49", 685 | "ハシノマ原っぱ F": "50", 686 | "ハシノマ原っぱ H": "51", 687 | "ハシノマ原っぱ I": "52", 688 | "ハシノマ原っぱ B": "53", 689 | "ハシノマ原っぱ E": "54", 690 | "ハシノマ原っぱ C": "55", 691 | "ハシノマ原っぱ D": "56", 692 | "ハシノマ原っぱ G": "57", 693 | "ストーンズ原野 L": "58", 694 | "ストーンズ原野 E": "59", 695 | "ストーンズ原野 G": "60", 696 | "ストーンズ原野 D": "61", 697 | "ストーンズ原野 F": "62", 698 | "ストーンズ原野 B": "63", 699 | "ストーンズ原野 A": "64", 700 | "ストーンズ原野 H": "65", 701 | "ストーンズ原野 I": "66", 702 | "ストーンズ原野 J": "67", 703 | "ストーンズ原野 K": "68", 704 | "ストーンズ原野 C": "69", 705 | "砂塵の窪地 H": "70", 706 | "砂塵の窪地 D": "71", 707 | "砂塵の窪地 E": "72", 708 | "砂塵の窪地 A": "73", 709 | "砂塵の窪地 B": "74", 710 | "砂塵の窪地 G": "75", 711 | "砂塵の窪地 C": "76", 712 | "砂塵の窪地 I": "77", 713 | "巨人の鏡池 E": "78", 714 | "砂塵の窪地 F": "79", 715 | "巨人の鏡池 D": "80", 716 | "巨人の鏡池 B": "81", 717 | "巨人の鏡池 A": "82", 718 | "巨人の鏡池 C": "83", 719 | "ナックル丘陵 B": "84", 720 | "ナックル丘陵 F": "85", 721 | "ナックル丘陵 A": "86", 722 | "ナックル丘陵 E": "87", 723 | "ナックル丘陵 C": "88", 724 | "ナックル丘陵 D": "89", 725 | "ナックル丘陵 G": "90", 726 | "巨人の帽子 E": "91", 727 | "巨人の帽子 C": "92", 728 | "巨人の帽子 D": "93", 729 | "巨人の帽子 A": "94", 730 | "巨人の帽子 B": "95", 731 | "げきりんの湖 D": "96", 732 | "げきりんの湖 A": "97", 733 | "げきりんの湖 C": "98", 734 | "げきりんの湖 B": "99", 735 | "[鎧] 一礼野原 A": "100", 736 | "[鎧] 一礼野原 B": "101", 737 | "[鎧] 一礼野原 C": "102", 738 | "[鎧] 一礼野原 D": "103", 739 | "[鎧] 一礼野原 E": "104", 740 | "[鎧] 一礼野原 F": "105", 741 | "[鎧] 一礼野原 G": "106", 742 | "[鎧] 一礼野原 H": "107", 743 | "[鎧] 一礼野原 I": "108", 744 | "[鎧] 一礼野原 J": "109", 745 | "[鎧] 清涼湿原 A": "110", 746 | "[鎧] 清涼湿原 B": "111", 747 | "[鎧] 清涼湿原 C": "112", 748 | "[鎧] 清涼湿原 D": "113", 749 | "[鎧] 清涼湿原 E": "114", 750 | "[鎧] 清涼湿原 F": "115", 751 | "[鎧] 清涼湿原 G": "116", 752 | "[鎧] 清涼湿原 H": "117", 753 | "[鎧] 清涼湿原 I": "118", 754 | "[鎧] ファイトケイブ A": "119", 755 | "[鎧] チャレンジロード A": "120", 756 | "[鎧] チャレンジロード B": "121", 757 | "[鎧] チャレンジロード C": "122", 758 | "[鎧] チャレンジロード D": "123", 759 | "[鎧] 集中の森 A": "124", 760 | "[鎧] 集中の森 B": "125", 761 | "[鎧] 集中の森 C": "126", 762 | "[鎧] 集中の森 D": "127", 763 | "[鎧] 集中の森 E": "128", 764 | "[鎧] 集中の森 F": "129", 765 | "[鎧] 鍛錬平原 A": "130", 766 | "[鎧] 鍛錬平原 B": "131", 767 | "[鎧] 鍛錬平原 C": "132", 768 | "[鎧] 鍛錬平原 D": "133", 769 | "[鎧] 鍛錬平原 E": "134", 770 | "[鎧] 鍛錬平原 F": "135", 771 | "[鎧] 鍛錬平原 G": "136", 772 | "[鎧] 鍋底砂漠 A": "137", 773 | "[鎧] 鍋底砂漠 B": "138", 774 | "[鎧] 鍋底砂漠 C": "139", 775 | "[鎧] ハニカームの海 A": "140", 776 | "[鎧] ハニカームの海 B": "141", 777 | "[鎧] ハニカームの海 C": "142", 778 | "[鎧] ハニカームの海 D": "143", 779 | "[鎧] ハニカームの海 E": "144", 780 | "[鎧] ハニカーム島 A": "145", 781 | "[鎧] ハニカーム島 B": "146", 782 | "[鎧] ハニカーム島 C": "147", 783 | "[鎧] ハニカーム島 D": "148", 784 | "[鎧] ハニカーム島 E": "149", 785 | "[鎧] ハニカーム島 F": "150", 786 | "[鎧] チャレンジビーチ A": "151", 787 | "[鎧] チャレンジビーチ B": "152", 788 | "[鎧] チャレンジビーチ C": "153", 789 | "[鎧] チャレンジビーチ D": "154", 790 | "[鎧] チャレンジビーチ E": "155", 791 | "[鎧] チャレンジビーチ F": "156", 792 | "[鎧] チャレンジビーチ G": "157", 793 | "[鎧] チャレンジビーチ H": "158", 794 | "[鎧] 離れ島海域 A": "159", 795 | "[鎧] 離れ島海域 B": "160", 796 | "[鎧] 離れ島海域 C": "161", 797 | "[鎧] 離れ島海域 D": "162", 798 | "[鎧] 離れ島海域 E": "163", 799 | "[鎧] 並ぶ島の海 A": "164", 800 | "[鎧] 並ぶ島の海 B": "165", 801 | "[鎧] 並ぶ島の海 C": "166", 802 | "[鎧] 並ぶ島の海 D": "167", 803 | "[鎧] 並ぶ島の海 E": "168", 804 | "[鎧] 並ぶ島の海 F": "169", 805 | "[鎧] 並ぶ島の海 G": "170", 806 | "[鎧] 並ぶ島の海 H": "171", 807 | "[鎧] 並ぶ島の海 I": "172", 808 | "[鎧] 闘心の洞窟 A": "173", 809 | "[鎧] 闘心の洞窟 B": "174", 810 | "[鎧] 闘心の洞窟 C": "175", 811 | "[鎧] 闘心の洞窟 D": "176", 812 | "[鎧] 闘心の洞窟 E": "177", 813 | "[鎧] 闘心の洞窟 F": "178", 814 | "[鎧] 円環の入り江 A": "179", 815 | "[鎧] 円環の入り江 B": "180", 816 | "[鎧] 円環の入り江 C": "181", 817 | "[鎧] 円環の入り江 D": "182", 818 | "[鎧] ワークアウトの海 A": "183", 819 | "[鎧] ワークアウトの海 B": "184", 820 | "[鎧] ワークアウトの海 C": "185", 821 | "[鎧] ワークアウトの海 D": "186", 822 | "[鎧] ワークアウトの海 E": "187", 823 | "[鎧] ワークアウトの海 F": "188", 824 | "[鎧] ワークアウトの海 G": "189", 825 | "[冠] 滑り出し雪原 A": "190", 826 | "[冠] 滑り出し雪原 B": "191", 827 | "[冠] 滑り出し雪原 C": "192", 828 | "[冠] 滑り出し雪原 D": "193", 829 | "[冠] 滑り出し雪原 E": "194", 830 | "[冠] 滑り出し雪原 F": "195", 831 | "[冠] 氷点雪原 A": "196", 832 | "[冠] 氷点雪原 B": "197", 833 | "[冠] 氷点雪原 C": "198", 834 | "[冠] 氷点雪原 D": "199", 835 | "[冠] 氷点雪原 E": "200", 836 | "[冠] 巨人の寝床 A": "201", 837 | "[冠] 巨人の寝床 B": "202", 838 | "[冠] 巨人の寝床 C": "203", 839 | "[冠] 巨人の寝床 D": "204", 840 | "[冠] 巨人の寝床 E": "205", 841 | "[冠] 巨人の寝床 F": "206", 842 | "[冠] 巨人の寝床 G": "207", 843 | "[冠] 巨人の寝床 H": "208", 844 | "[冠] 巨人の寝床 I": "209", 845 | "[冠] 巨人の寝床 K": "210", 846 | "[冠] 巨人の寝床 L": "211", 847 | "[冠] 巨人の寝床 M": "212", 848 | "[冠] 巨人の寝床 N": "213", 849 | "[冠] 巨人の寝床 O": "214", 850 | "[冠] 巨人の寝床 P": "215", 851 | "[冠] 巨人の寝床 Q": "216", 852 | "[冠] 巨人の寝床 R": "217", 853 | "[冠] 巨人の寝床 S": "218", 854 | "[冠] 巨人の寝床 T": "219", 855 | "[冠] 巨人の寝床 U": "220", 856 | "[冠] 巨人の寝床 V": "221", 857 | "[冠] いにしえの墓地 A": "222", 858 | "[冠] いにしえの墓地 B": "223", 859 | "[冠] 雪中渓谷 A": "224", 860 | "[冠] 雪中渓谷 B": "225", 861 | "[冠] 雪中渓谷 C": "226", 862 | "[冠] 雪中渓谷 D": "227", 863 | "[冠] 雪中渓谷 E": "228", 864 | "[冠] 雪中渓谷 F": "229", 865 | "[冠] 雪中渓谷 G": "230", 866 | "[冠] 雪中渓谷 H": "231", 867 | "[冠] 雪中渓谷 I": "232", 868 | "[冠] 頂への雪道 A": "233", 869 | "[冠] 頂への雪道 B": "234", 870 | "[冠] 頂への雪道 C": "235", 871 | "[冠] カンムリ神殿 A": "236", 872 | "[冠] 巨人の靴底 A": "237", 873 | "[冠] 巨人の靴底 B": "238", 874 | "[冠] 巨人の靴底 C": "239", 875 | "[冠] 巨人の靴底 D": "240", 876 | "[冠] 巨人の靴底 E": "241", 877 | "[冠] 凍てつきの海 A": "242", 878 | "[冠] 凍てつきの海 B": "243", 879 | "[冠] 凍てつきの海 C": "244", 880 | "[冠] 凍てつきの海 D": "245", 881 | "[冠] 凍てつきの海 E": "246", 882 | "[冠] 凍てつきの海 F": "247", 883 | "[冠] 凍てつきの海 G": "248", 884 | "[冠] 凍てつきの海 H": "249", 885 | "[冠] 凍てつきの海 I": "250", 886 | "[冠] 凍てつきの海 J": "251", 887 | "[冠] 凍てつきの海 K": "252", 888 | "[冠] 凍てつきの海 L": "253", 889 | "[冠] 凍てつきの海 M": "254", 890 | "[冠] 凍てつきの海 N": "255", 891 | "[冠] 三つまたヶ原 A": "256", 892 | "[冠] 三つまたヶ原 B": "257", 893 | "[冠] ボールレイクの湖畔 A": "258", 894 | "[冠] ボールレイクの湖畔 B": "259", 895 | "[冠] ボールレイクの湖畔 C": "260", 896 | "[冠] ボールレイクの湖畔 D": "261", 897 | "[冠] ボールレイクの湖畔 E": "262", 898 | "[冠] ボールレイクの湖畔 F": "263", 899 | "[冠] ボールレイクの湖畔 G": "264", 900 | "[冠] ボールレイクの湖畔 H": "265", 901 | "[冠] ボールレイクの湖畔 I": "266", 902 | "[冠] ボールレイクの湖畔 J": "267", 903 | "[冠] ボールレイクの湖畔 K": "268", 904 | "[冠] ボールレイクの湖畔 L": "269", 905 | "[冠] ボールレイクの湖畔 M": "270", 906 | "[冠] ボールレイクの湖畔 N": "271", 907 | "[冠] ボールレイクの湖畔 O": "272", 908 | "[冠] ボールレイクの湖畔 P": "273", 909 | "[冠] ボールレイクの湖畔 Q": "274", 910 | "[冠] ダイ木の丘 A": "275", 911 | }, 912 | "Version": [ 913 | "ソード", 914 | "シールド", 915 | ], 916 | "DenRarity": [ 917 | "通常", 918 | "レア", 919 | ], 920 | } 921 | -------------------------------------------------------------------------------- /Data/LanguageZh.json: -------------------------------------------------------------------------------- 1 | { 2 | "LangCode": "zh", 3 | "Nature": { 4 | "勤奋": "0", 5 | "怕寂寞": "1", 6 | "勇敢": "2", 7 | "固执": "3", 8 | "顽皮": "4", 9 | "大胆": "5", 10 | "坦率": "6", 11 | "悠闲": "7", 12 | "淘气": "8", 13 | "乐天": "9", 14 | "胆小": "10", 15 | "急躁": "11", 16 | "认真": "12", 17 | "爽朗": "13", 18 | "天真": "14", 19 | "内敛": "15", 20 | "慢吞吞": "16", 21 | "冷静": "17", 22 | "害羞": "18", 23 | "马虎": "19", 24 | "温和": "20", 25 | "温顺": "21", 26 | "自大": "22", 27 | "慎重": "23", 28 | "浮躁": "24", 29 | }, 30 | "Characteristic": { 31 | "经常睡午觉": "0", 32 | "喜欢胡闹": "1", 33 | "抗打能力强": "2", 34 | "对声音敏感": "3", 35 | "喜欢恶作剧": "4", 36 | "有一点点爱慕虚荣": "5", 37 | }, 38 | "Gender": [ 39 | "♂", 40 | "♀", 41 | "无性别", 42 | ], 43 | "Ability": [ 44 | "特性1", 45 | "特性2", 46 | "普通特性", 47 | "隐藏特性", 48 | ], 49 | "Status": [ 50 | "生命", 51 | "攻击", 52 | "防御", 53 | "特攻", 54 | "特防", 55 | "速度", 56 | "等级", 57 | ], 58 | "RankPrefix": [ 59 | "1★ ", 60 | "2★ ", 61 | "3★ ", 62 | "4★ ", 63 | "5★ ", 64 | ], 65 | "IvsInfo": [ 66 | "0V", 67 | "1V", 68 | "2V", 69 | "3V", 70 | "4V", 71 | "5V", 72 | "6V", 73 | ], 74 | "SystemLabel": { 75 | "Tab35": "3★-5★", 76 | "Tab12": "1★-2★", 77 | "TabList": "列表", 78 | "Ivs": "个体值:", 79 | "NoHidden": "仅普通特性", 80 | "HiddenPossible": "可能出隐藏特性", 81 | "HiddenFixed": "固定隐藏特性", 82 | "GenderFixed": "性别固定", 83 | "Pokemon35_1_2V": "第4帧-2V模式", 84 | "Pokemon35_1_3V": "第4帧-3V模式", 85 | "Pokemon35_2": "第4帧-3或4V", 86 | "Pokemon35_3": "第5帧", 87 | "Pokemon12_1": "第1帧", 88 | "Pokemon12_2": "第2帧", 89 | "Pokemon12_3": "第3帧", 90 | "CheckIvsButton": "检查个体值", 91 | "CheckIvsResultTitle": "结果", 92 | "ListVCount": "固定V数", 93 | "MaxFrame": "最大帧数", 94 | "OnlyShiny": "仅列出异色", 95 | "ShowSeed": "显示种子", 96 | "ShowEC": "显示EC", 97 | "ShowAbilityName": "显示特性名称", 98 | "ListButton": "生成列表", 99 | "ShowDuration": "显示计算时间", 100 | "StartSearch": "开始搜索", 101 | "Searching": "搜索中", 102 | "Rerolls": "允许个体值误差", 103 | "Range": "-", 104 | "SearchStop": "找到一个种子时停止", 105 | "Pokemon": "宝可梦", 106 | "CalculateIVs": "< 计算", 107 | "Status": "能力", 108 | "EventDen": "活动日期", 109 | "Gigantamax": " 【超极巨】", 110 | "Information": "信息", 111 | "Language": "语言/Language", 112 | "WindowSize": "窗口大小", 113 | "WindowSizeNormal": "正常", 114 | "WindowSizeSmall": "小", 115 | "Den": "旷野巢穴", 116 | "GameVersion": "游戏版本", 117 | "DenType": "光柱类型", 118 | "Attribute": "属性", 119 | "UpdateEventDen": "更新活动", 120 | "GpuSettings": "GPU设置", 121 | "UseGpu": "使用GPU计算", 122 | "ThreadSetting": "线程数", 123 | "GpuCheck": "运行测试", 124 | "Gender": "性别", 125 | "GenderNone": "无性别", 126 | "GenderMale": "只有♂", 127 | "GenderFemale": "只有♀", 128 | "GenderMF71": "♂:♀=7:1", 129 | "GenderMF31": "♂:♀=3:1", 130 | "GenderMF11": "♂:♀=1:1", 131 | "GenderMF13": "♂:♀=1:3", 132 | "GenderMF17": "♂:♀=1:7", 133 | }, 134 | "CheckIvsResult": [ 135 | "失败!", 136 | "成功! 下一个 -> 3V", 137 | "成功! 下一个 -> 4V", 138 | "成功! 下一个 -> 3V或4V皆可", 139 | ], 140 | "ErrorMessage": { 141 | "DialogTitle": "错误", 142 | "IvsFormat": "个体值必须在0到31之间", 143 | "IvsStrict1": "第一只怪至少1V", 144 | "IvsStrict351_3V": "第4帧-3V搜索模式下,第一个框的怪必须固定3V", 145 | "IvsStrict351_2V": "第4帧-2V搜索模式下,第一个框的怪必须固定2V", 146 | "IvsStrict": "V数不正确", 147 | "NotSearchTab": "请打开搜索界面再点击搜索", 148 | "NotFound": "计算失败! 请尝试调整个体值误差范围", 149 | "DenSeedFormat": "种子格式错误", 150 | "MaxFrameFormat": "最大帧数必须为整数", 151 | "VCountFormat": "固定V数格式错误", 152 | "VFormat": "能力值必须为整数", 153 | "LevelRange": "等级(Lv)必须在1到100之间", 154 | "CouldNotCalculateIVs": "个体计算失败!请检查数据", 155 | "StatError": "可能有问题的能力值: ", 156 | "StatErrorTitle": "能力值错误", 157 | "InvalidPokemon": "请选择一个宝可梦", 158 | "UpdateEventDenFailed": "更新活动巢穴数据失败", 159 | "GpuCheckFailed": "测试失败", 160 | "NoCudaDevice": "无可用CUDA设备", 161 | "GpuError32bit": "GPU加速仅适用64位版本", 162 | }, 163 | "SystemMessage": { 164 | "ResultDialogTitle": "结果", 165 | "FindManySeeds": "找到了多个种子,详见seeds.txt", 166 | "FindManyIvs": "个体值存在误差,请尝试提升等级(Lv)", 167 | "EncounterInfoDialogTitle": "遇敌信息", 168 | "UpdateEventDenSuccessed": "更新完成,请重启软件", 169 | "GpuCheckSuccessed": "测试成功\n耗时:", 170 | }, 171 | "ListLabel": { 172 | "Frame": "帧数", 173 | "Ability": "特性", 174 | "HiddenAbility": "梦特", 175 | "Nature": "性格", 176 | "Shiny": "异色", 177 | "StarShiny": "★", 178 | "SquareShiny": "◆", 179 | }, 180 | "Pokemon": { 181 | "暴雪王": "460", 182 | "敏捷虫": "617", 183 | "坚盾剑怪 (刀剑形态)": "681.1", 184 | "坚盾剑怪": "681", 185 | "霜奶仙": "869", 186 | "丰蜜龙": "842", 187 | "啃果虫": "840", 188 | "滴蛛霸": "752", 189 | "风速狗": "59", 190 | "鳃鱼海兽": "883", 191 | "雷鸟海兽": "881", 192 | "芳香精": "683", 193 | "刺梭鱼": "846", 194 | "冰岩怪": "713", 195 | "牙牙": "610", 196 | "天秤偶": "343", 197 | "龟足巨铠": "689", 198 | "泥泥鳅": "339", 199 | "戽斗尖梭": "847", 200 | "野蛮鲈鱼 (蓝条纹的样子)": "550.1", 201 | "野蛮鲈鱼": "550", 202 | "冻原熊": "614", 203 | "大宇怪": "606", 204 | "美丽花": "182", 205 | "冰宝": "712", 206 | "穿着熊": "760", 207 | "龟脚脚": "688", 208 | "劈斩司令": "625", 209 | "水箭龟": "9", 210 | "索侦虫": "824", 211 | "地幔岩": "525", 212 | "逐电犬": "836", 213 | "盆才怪": "438", 214 | "甜竹竹": "761", 215 | "勇士雄鹰": "628", 216 | "花漾海狮": "729", 217 | "青铜钟": "437", 218 | "铜镜怪": "436", 219 | "含羞苞": "406", 220 | "妙蛙种子": "1", 221 | "掘掘兔": "659", 222 | "巴大蝶": "12", 223 | "大炭车": "838", 224 | "绿毛虫": "10", 225 | "时拉比": "251", 226 | "焚焰蚣": "851", 227 | "水晶灯火灵": "609", 228 | "喷火龙": "6", 229 | "虫电宝": "737", 230 | "小火龙": "4", 231 | "火恐龙": "5", 232 | "樱花儿": "421", 233 | "樱花宝": "420", 234 | "咬咬龟": "833", 235 | "灯笼鱼": "170", 236 | "奇诺栗鼠": "573", 237 | "闪焰王牌": "815", 238 | "念力土偶": "344", 239 | "皮可西": "36", 240 | "皮皮": "35", 241 | "皮宝宝": "173", 242 | "拳拳蛸": "852", 243 | "刺甲贝": "91", 244 | "巨炭山": "839", 245 | "勾帕路翁": "638", 246 | "死神棺": "563", 247 | "三蜜蜂": "415", 248 | "修建老匠": "534", 249 | "大王铜象": "879", 250 | "龙虾小兵": "341", 251 | "太阳珊瑚 (伽勒尔的样子)": "222.1", 252 | "太阳珊瑚": "222", 253 | "钢铠鸦": "823", 254 | "蓝鸦": "822", 255 | "科斯莫姆": "790", 256 | "科斯莫古": "789", 257 | "木棉球": "546", 258 | "古月鸟": "845", 259 | "铁螯龙虾": "342", 260 | "不良蛙": "453", 261 | "岩殿居蟹": "558", 262 | "喷嚏熊": "613", 263 | "铜象": "878", 264 | "魔灵珊瑚": "864", 265 | "萌虻": "742", 266 | "达摩狒狒 (达摩模式)": "555.1", 267 | "达摩狒狒 (伽勒尔的样子)": "555.2", 268 | "达摩狒狒 (伽勒尔 达摩)": "555.3", 269 | "达摩狒狒": "555", 270 | "投羽枭": "723", 271 | "火红不倒翁 1": "993", 272 | "火红不倒翁": "554", 273 | "狙射树枭": "724", 274 | "单首龙": "633", 275 | "信使鸟": "225", 276 | "滴蛛": "751", 277 | "破破舵轮": "781", 278 | "掘地兔": "660", 279 | "地鼠 (阿罗拉的样子)": "50.1", 280 | "地鼠": "50", 281 | "百变怪": "132", 282 | "天罩虫": "825", 283 | "双剑鞘": "680", 284 | "鳃鱼龙": "882", 285 | "雷鸟龙": "880", 286 | "多龙巴鲁托": "887", 287 | "多龙奇": "886", 288 | "老翁龙": "780", 289 | "龙王蝎": "452", 290 | "暴噬龟": "834", 291 | "多龙梅西亚": "885", 292 | "随风球": "426", 293 | "飘飘球": "425", 294 | "螺钉地鼠": "529", 295 | "变涩蜥": "817", 296 | "毛毛角羊": "832", 297 | "三地鼠 (阿罗拉的样子)": "51.1", 298 | "三地鼠": "51", 299 | "双卵细胞球": "578", 300 | "铝钢龙": "884", 301 | "铁蚁": "632", 302 | "彷徨夜灵": "356", 303 | "黑夜魔灵": "477", 304 | "夜巡灵": "355", 305 | "石居蟹": "557", 306 | "伊布": "133", 307 | "冰砌鹅 (解冻头)": "875.1", 308 | "冰砌鹅": "875", 309 | "白蓬蓬": "830", 310 | "落雷兽": "309", 311 | "小灰怪": "605", 312 | "骑士蜗牛": "589", 313 | "太阳伊布": "196", 314 | "妙喵": "677", 315 | "无极汰那": "890", 316 | "龙头地鼠": "530", 317 | "列阵兵": "870", 318 | "大葱鸭 (伽勒尔的样子)": "83.1", 319 | "大葱鸭": "83", 320 | "丑丑鱼": "349", 321 | "种子铁球": "597", 322 | "坚果哑铃": "598", 323 | "苹裹龙": "841", 324 | "火伊布": "136", 325 | "沙漠蜻蜓": "330", 326 | "斧牙龙": "611", 327 | "轻飘飘": "592", 328 | "雪妖女": "478", 329 | "雪绒蛾": "873", 330 | "艾路雷朵": "475", 331 | "电蜘蛛": "596", 332 | "灰尘山": "569", 333 | "沙奈朵": "282", 334 | "鬼斯": "92", 335 | "海兔兽 (东海)": "423.2", 336 | "海兔兽": "423", 337 | "耿鬼": "94", 338 | "庞岩怪": "526", 339 | "冰伊布": "471", 340 | "冰鬼护": "362", 341 | "臭臭花": "44", 342 | "角金鱼": "118", 343 | "泥偶小人": "622", 344 | "具甲武者": "768", 345 | "泥偶巨人": "623", 346 | "黏美龙": "706", 347 | "黏黏宝": "704", 348 | "幼棉棉": "829", 349 | "哥德宝宝": "574", 350 | "哥德小姐": "576", 351 | "哥德小童": "575", 352 | "南瓜怪人 (小尺寸)": "711.1", 353 | "南瓜怪人 (大尺寸)": "711.2", 354 | "南瓜怪人 (特大尺寸)": "711.3", 355 | "南瓜怪人": "711", 356 | "八爪武师": "853", 357 | "藏饱栗鼠": "820", 358 | "长毛巨魔": "861", 359 | "敲音猴": "810", 360 | "卡蒂狗": "58", 361 | "强颚鸡母虫": "736", 362 | "铁骨土人": "533", 363 | "暴鲤龙": "130", 364 | "鳞甲龙": "783", 365 | "迷布莉姆": "856", 366 | "布莉姆温": "858", 367 | "提布莉姆": "857", 368 | "鬼斯通": "93", 369 | "摔角鹰人": "701", 370 | "双斧战龙": "612", 371 | "熔蚁兽": "631", 372 | "光电伞蜥": "695", 373 | "伞电蜥": "694", 374 | "沙河马": "449", 375 | "河马兽": "450", 376 | "快拳郎": "107", 377 | "飞腿郎": "106", 378 | "战舞郎": "237", 379 | "独剑鞘": "679", 380 | "咕咕": "163", 381 | "三首恶龙": "635", 382 | "捣蛋小妖": "859", 383 | "炽焰咆哮虎": "727", 384 | "爱管侍 (雌性的样子)": "876.1", 385 | "爱管侍": "876", 386 | "好啦鱿": "686", 387 | "千面避役": "818", 388 | "妙蛙草": "2", 389 | "心鳞宝": "782", 390 | "胖嘟嘟": "593", 391 | "基拉祈": "385", 392 | "雷伊布": "135", 393 | "电电虫": "595", 394 | "盖盖虫": "588", 395 | "凯路迪欧": "647", 396 | "巨钳蟹": "99", 397 | "奇鲁莉安": "281", 398 | "齿轮组": "600", 399 | "齿轮儿": "599", 400 | "齿轮怪": "601", 401 | "瓦斯弹": "109", 402 | "杖尾鳞甲龙": "784", 403 | "大钳蟹": "98", 404 | "酋雷姆 (焰白酋雷姆)": "646.1", 405 | "酋雷姆 (暗黑酋雷姆)": "646.2", 406 | "酋雷姆": "646", 407 | "灯火幽灵": "608", 408 | "电灯怪": "171", 409 | "拉普拉斯": "131", 410 | "幼基拉斯": "246", 411 | "叶伊布": "470", 412 | "酷豹": "510", 413 | "直冲熊 (伽勒尔的样子)": "264.1", 414 | "直冲熊": "264", 415 | "火斑喵": "725", 416 | "烛光灵": "607", 417 | "莲帽小童": "271", 418 | "莲叶童子": "270", 419 | "路卡利欧": "448", 420 | "乐天河童": "272", 421 | "露奈雅拉": "792", 422 | "月石": "337", 423 | "怪力": "68", 424 | "豪力": "67", 425 | "腕力": "66", 426 | "鲤鱼王": "129", 427 | "乌贼王": "687", 428 | "象牙猪": "473", 429 | "秃鹰娜": "630", 430 | "雷电兽": "310", 431 | "巨翅飞鱼": "226", 432 | "小球飞鱼": "458", 433 | "沙铃仙人掌": "556", 434 | "好坏星": "747", 435 | "玛夏多": "802", 436 | "大嘴娃": "303", 437 | "美录梅塔": "809", 438 | "美录坦": "808", 439 | "超能妙喵 (雌性的样子)": "678.1", 440 | "超能妙喵": "678", 441 | "喵喵 (阿罗拉的样子)": "52.1", 442 | "喵喵 (伽勒尔的样子)": "52.2", 443 | "喵喵": "52", 444 | "铁甲蛹": "11", 445 | "梦幻": "151", 446 | "超梦": "150", 447 | "小仙奶": "868", 448 | "美纳斯": "350", 449 | "魔尼尼": "439", 450 | "谜拟Q (现形的样子)": "778.1", 451 | "谜拟Q": "778", 452 | "泡沫栗鼠": "572", 453 | "睡睡菇": "755", 454 | "诈唬魔": "860", 455 | "莫鲁贝可 (空腹花纹)": "877.1", 456 | "莫鲁贝可": "877", 457 | "魔墙人偶 (伽勒尔的样子)": "122.1", 458 | "魔墙人偶": "122", 459 | "踏冰人偶": "866", 460 | "泥驴仔": "749", 461 | "重泥挽马": "750", 462 | "小卡比兽": "446", 463 | "食梦梦": "517", 464 | "梦梦蚀": "518", 465 | "天然雀": "177", 466 | "奈克洛兹玛 (黄昏之鬃)": "800.1", 467 | "奈克洛兹玛 (拂晓之翼)": "800.2", 468 | "奈克洛兹玛": "800", 469 | "偷儿狐": "827", 470 | "土居忍士": "290", 471 | "九尾 (阿罗拉的样子)": "38.1", 472 | "九尾": "38", 473 | "铁面忍者": "291", 474 | "猫头夜鹰": "164", 475 | "嗡蝠": "714", 476 | "音波龙": "715", 477 | "长鼻叶": "274", 478 | "堵拦熊": "862", 479 | "章鱼桶": "224", 480 | "走路草": "43", 481 | "大岩蛇": "95", 482 | "智挥猩": "765", 483 | "以欧路普": "826", 484 | "蓝蟾蜍": "536", 485 | "顽皮熊猫": "674", 486 | "流氓熊猫": "675", 487 | "投掷猴": "766", 488 | "驹刀小兵": "624", 489 | "大嘴鸥": "279", 490 | "喵头目": "863", 491 | "猫老大 (阿罗拉的样子)": "53.1", 492 | "猫老大": "53", 493 | "小木灵": "708", 494 | "皮丘": "172", 495 | "豆豆鸽": "519", 496 | "皮卡丘": "25", 497 | "长毛猪": "221", 498 | "啪嚓海胆": "871", 499 | "怖思壶": "855", 500 | "小火马 (伽勒尔的样子)": "77.1", 501 | "小火马": "77", 502 | "球球海狮": "728", 503 | "西狮海壬": "730", 504 | "南瓜精 (小尺寸)": "710.1", 505 | "南瓜精 (大尺寸)": "710.2", 506 | "南瓜精 (特大尺寸)": "710.3", 507 | "南瓜精": "710", 508 | "沙基拉斯": "247", 509 | "扒手猫": "509", 510 | "拳海参": "771", 511 | "沼王": "195", 512 | "千针鱼": "211", 513 | "腾蹴小将": "814", 514 | "雷丘 (阿罗拉的样子)": "26.1", 515 | "雷丘": "26", 516 | "拉鲁拉丝": "280", 517 | "烈焰马 (伽勒尔的样子)": "78.1", 518 | "烈焰马": "78", 519 | "铁炮鱼": "223", 520 | "莱希拉姆": "643", 521 | "人造细胞卵": "579", 522 | "钻角犀兽": "112", 523 | "独角犀牛": "111", 524 | "超甲狂犀": "464", 525 | "蝶结萌虻": "743", 526 | "轰擂金刚猩": "812", 527 | "利欧路": "447", 528 | "石丸子": "524", 529 | "小炭仔": "837", 530 | "稚山雀": "821", 531 | "毒蔷薇": "315", 532 | "罗丝雷朵": "407", 533 | "洛托姆 (加热洛托姆)": "479.1", 534 | "洛托姆 (结冰洛托姆)": "479.2", 535 | "洛托姆 (清洗洛托姆)": "479.3", 536 | "洛托姆 (旋转洛托姆)": "479.4", 537 | "洛托姆 (切割洛托姆)": "479.5", 538 | "洛托姆": "479", 539 | "木木枭": "722", 540 | "毛头小鹰": "627", 541 | "死神板": "867", 542 | "勾魂眼": "302", 543 | "夜盗火蜥": "757", 544 | "焰后蜥": "758", 545 | "沙螺蟒": "844", 546 | "打击鬼": "539", 547 | "炎兔儿": "813", 548 | "头巾混混": "560", 549 | "滑滑小子": "559", 550 | "金鱼王": "119", 551 | "橡实果": "273", 552 | "蟾蜍王": "537", 553 | "脱壳忍者": "292", 554 | "大舌贝": "90", 555 | "无壳海兔 (东海)": "422.1", 556 | "无壳海兔": "422", 557 | "小嘴蜗": "616", 558 | "狡猾天狗": "275", 559 | "灯罩夜菇": "756", 560 | "壶壶": "213", 561 | "象征鸟": "561", 562 | "沙包蛇": "843", 563 | "银伴战兽": "773", 564 | "来悲茶": "854", 565 | "葱游兵": "865", 566 | "烧火蚣": "850", 567 | "钳尾蝎": "451", 568 | "坦克臭鼬": "435", 569 | "贪心栗鼠": "819", 570 | "黏美儿": "705", 571 | "胖甜妮": "685", 572 | "狃拉": "215", 573 | "雪吞虫": "872", 574 | "卡比兽": "143", 575 | "雪童子": "361", 576 | "雪笠怪": "459", 577 | "泪眼蜥": "816", 578 | "索尔迦雷欧": "791", 579 | "单卵细胞球": "577", 580 | "太阳岩": "338", 581 | "粉香香": "682", 582 | "杰尼龟": "7", 583 | "大钢蛇": "208", 584 | "甜舞妮": "762", 585 | "巨石丁": "874", 586 | "童偶熊": "759", 587 | "泥巴鱼 (伽勒尔的样子)": "618.1", 588 | "泥巴鱼": "618", 589 | "臭鼬噗": "434", 590 | "树才怪": "185", 591 | "小山猪": "220", 592 | "绵绵泡芙": "684", 593 | "心蝙蝠": "528", 594 | "仙子伊布": "700", 595 | "代拉基翁": "639", 596 | "狐大盗": "828", 597 | "投摔鬼": "538", 598 | "啪咚猴": "811", 599 | "搬运小匠": "532", 600 | "托戈德玛尔": "777", 601 | "波克基斯": "468", 602 | "波克比": "175", 603 | "波克基古": "176", 604 | "煤炭龟": "324", 605 | "炎热喵": "726", 606 | "超坏星": "748", 607 | "毒电婴": "848", 608 | "毒骷蛙": "454", 609 | "颤弦蝾螈 (低调的样子)": "1154", 610 | "颤弦蝾螈": "849", 611 | "咕咕鸽": "520", 612 | "大颚蚁": "328", 613 | "朽木妖": "709", 614 | "破破袋": "568", 615 | "甜冷美后": "763", 616 | "爆焰龟兽": "776", 617 | "圆蝌蚪": "535", 618 | "属性:空": "772", 619 | "班基拉斯": "248", 620 | "无畏小子": "236", 621 | "月亮伊布": "197", 622 | "高傲雉鸡": "521", 623 | "多多冰": "583", 624 | "迷你冰": "582", 625 | "双倍多多冰": "584", 626 | "水伊布": "134", 627 | "妙蛙花": "3", 628 | "蜂女王": "416", 629 | "超音波幼虫": "329", 630 | "锹农炮虫": "738", 631 | "霸王花": "45", 632 | "毕力吉翁": "640", 633 | "秃鹰丫头": "629", 634 | "六尾 (阿罗拉的样子)": "37.1", 635 | "六尾": "37", 636 | "吼吼鲸": "320", 637 | "吼鲸王": "321", 638 | "卡咪龟": "8", 639 | "玛狃拉": "461", 640 | "双弹瓦斯 (伽勒尔的样子)": "110.1", 641 | "双弹瓦斯": "110", 642 | "风妖精": "547", 643 | "鲶鱼王": "340", 644 | "胆小虫": "767", 645 | "长翅鸥": "278", 646 | "弱丁鱼 (鱼群的样子)": "746.1", 647 | "弱丁鱼": "746", 648 | "果然翁": "202", 649 | "滚滚蝙蝠": "527", 650 | "毛辫羊": "831", 651 | "乌波": "194", 652 | "小果然": "360", 653 | "天然鸟": "178", 654 | "哭哭面具 (伽勒尔的样子)": "562.1", 655 | "哭哭面具": "562", 656 | "来电汪": "835", 657 | "苍响 (剑之王)": "888.1", 658 | "苍响": "888", 659 | "藏玛然特 (盾之王)": "889.1", 660 | "藏玛然特": "889", 661 | "捷克罗姆": "644", 662 | "捷拉奥拉": "807", 663 | "蛇纹熊 (伽勒尔的样子)": "263.1", 664 | "蛇纹熊": "263", 665 | "双首暴龙": "634", 666 | "岩狗狗 (我行我素)": "744.1", 667 | "鬃岩狼人 (白昼的样子)": "745", 668 | "鬃岩狼人 (黑夜的样子)": "745.1", 669 | "鬃岩狼人 (黄昏的样子)": "745.2", 670 | }, 671 | "Den": { 672 | " 0:活动巢穴":"-1", 673 | " 1:煦丽草原 D":"0", 674 | " 2:煦丽草原 C":"1", 675 | " 3:煦丽草原 B":"2", 676 | " 4:煦丽草原 H":"3", 677 | " 5:煦丽草原 G":"4", 678 | " 6:煦丽草原 I":"5", 679 | " 7:煦丽草原 E":"6", 680 | " 8:煦丽草原 A":"7", 681 | " 9:煦丽草原 F":"8", 682 | " 10:沐光森林 E":"9", 683 | " 11:沐光森林 A":"10", 684 | " 12:沐光森林 B":"11", 685 | " 13:沐光森林 D":"12", 686 | " 14:沐光森林 C":"13", 687 | " 15:瞭望塔旧址 C":"14", 688 | " 16:瞭望塔旧址 A":"15", 689 | " 17:瞭望塔旧址 B [无用]":"15", 690 | " 18:牙牙湖东岸 E":"17", 691 | " 19:牙牙湖东岸 B":"18", 692 | " 20:牙牙湖东岸 C":"19", 693 | " 21:牙牙湖东岸 D":"20", 694 | " 22:牙牙湖西岸 D":"21", 695 | " 23:牙牙湖西岸 B":"22", 696 | " 24:牙牙湖西岸 E":"23", 697 | " 25:牙牙湖西岸 F":"24", 698 | " 26:牙牙湖西岸 C":"25", 699 | " 27:牙牙湖西岸 A":"26", 700 | " 28:牙牙湖之眼 A":"27", 701 | " 29:美纳斯湖南岸 C":"28", 702 | " 30:美纳斯湖南岸 D":"29", 703 | " 31:美纳斯湖南岸 E":"30", 704 | " 32:美纳斯湖南岸 B":"31", 705 | " 33:美纳斯湖南岸 A":"32", 706 | " 34:巨人凳岩 D":"33", 707 | " 35:巨人凳岩 C":"34", 708 | " 36:巨人凳岩 B":"35", 709 | " 37:巨人凳岩 E":"36", 710 | " 38:巨人凳岩 A":"37", 711 | " 39:美纳斯湖北岸 C":"38", 712 | " 40:美纳斯湖北岸 F":"39", 713 | " 41:美纳斯湖北岸 B":"40", 714 | " 42:美纳斯湖北岸 E":"41", 715 | " 43:美纳斯湖北岸 A":"42", 716 | " 44:牙牙湖东岸 A":"43", 717 | " 45:美纳斯湖北岸 D":"44", 718 | " 46:机擎河岸 B":"45", 719 | " 47:机擎河岸 A":"46", 720 | " 48:机擎河岸 C":"47", 721 | " 49:机擎河岸 D":"48", 722 | " 50:桥间空地 E":"49", 723 | " 51:桥间空地 H":"50", 724 | " 52:桥间空地 F":"51", 725 | " 53:桥间空地 I":"52", 726 | " 54:桥间空地 B":"53", 727 | " 55:桥间空地 D":"54", 728 | " 56:桥间空地 A":"55", 729 | " 57:桥间空地 C":"56", 730 | " 58:桥间空地 G":"57", 731 | " 59:巨石原野 J":"58", 732 | " 60:巨石原野 C":"59", 733 | " 61:巨石原野 L":"60", 734 | " 62:巨石原野 A":"61", 735 | " 63:巨石原野 B":"62", 736 | " 64:巨石原野 D":"63", 737 | " 65:巨石原野 F":"64", 738 | " 66:巨石原野 K":"65", 739 | " 67:巨石原野 H":"66", 740 | " 68:巨石原野 I":"67", 741 | " 69:巨石原野 G":"68", 742 | " 70:巨石原野 E":"69", 743 | " 71:沙尘洼地 G":"70", 744 | " 72:沙尘洼地 C":"71", 745 | " 73:沙尘洼地 A":"72", 746 | " 74:沙尘洼地 B":"73", 747 | " 75:沙尘洼地 D":"74", 748 | " 76:沙尘洼地 I":"75", 749 | " 77:沙尘洼地 E":"76", 750 | " 78:沙尘洼地 F":"77", 751 | " 79:巨人镜池 E":"78", 752 | " 80:沙尘洼地 H":"79", 753 | " 81:巨人镜池 D":"80", 754 | " 82:巨人镜池 B":"81", 755 | " 83:巨人镜池 A":"82", 756 | " 84:巨人镜池 C":"83", 757 | " 85:拳关丘陵 F":"84", 758 | " 86:拳关丘陵 E":"85", 759 | " 87:拳关丘陵 B":"86", 760 | " 88:拳关丘陵 D":"87", 761 | " 89:拳关丘陵 A":"88", 762 | " 90:拳关丘陵 C":"89", 763 | " 91:拳关丘陵 G":"90", 764 | " 92:巨人帽岩 E":"91", 765 | " 93:巨人帽岩 C":"92", 766 | " 94:巨人帽岩 D":"93", 767 | " 95:巨人帽岩 A":"94", 768 | " 96:巨人帽岩 B":"95", 769 | " 97:逆鳞湖 D":"96", 770 | " 98:逆鳞湖 A":"97", 771 | " 99:逆鳞湖 C":"98", 772 | "100:逆鳞湖 B":"99", 773 | "[铠岛] 揖礼原野 1": "100", 774 | "[铠岛] 揖礼原野 2": "101", 775 | "[铠岛] 揖礼原野 3": "102", 776 | "[铠岛] 揖礼原野 4": "103", 777 | "[铠岛] 揖礼原野 5": "104", 778 | "[铠岛] 揖礼原野 6": "105", 779 | "[铠岛] 揖礼原野 7": "106", 780 | "[铠岛] 揖礼原野 8": "107", 781 | "[铠岛] 揖礼原野 9": "108", 782 | "[铠岛] 揖礼原野 10": "109", 783 | "[铠岛] 清凉湿原 1": "110", 784 | "[铠岛] 清凉湿原 2": "111", 785 | "[铠岛] 清凉湿原 3": "112", 786 | "[铠岛] 清凉湿原 4": "113", 787 | "[铠岛] 清凉湿原 5": "114", 788 | "[铠岛] 清凉湿原 6": "115", 789 | "[铠岛] 清凉湿原 7": "116", 790 | "[铠岛] 清凉湿原 8": "117", 791 | "[铠岛] 清凉湿原 9": "118", 792 | "[铠岛] 战斗洞窟 1": "119", 793 | "[铠岛] 挑战之路 1": "120", 794 | "[铠岛] 挑战之路 2": "121", 795 | "[铠岛] 挑战之路 3": "122", 796 | "[铠岛] 挑战之路 4": "123", 797 | "[铠岛] 专注森林 1": "124", 798 | "[铠岛] 专注森林 2": "125", 799 | "[铠岛] 专注森林 3": "126", 800 | "[铠岛] 专注森林 4": "127", 801 | "[铠岛] 专注森林 5": "128", 802 | "[铠岛] 专注森林 6": "129", 803 | "[铠岛] 锻炼平原 1": "130", 804 | "[铠岛] 锻炼平原 2": "131", 805 | "[铠岛] 锻炼平原 3": "132", 806 | "[铠岛] 锻炼平原 4": "133", 807 | "[铠岛] 锻炼平原 5": "134", 808 | "[铠岛] 锻炼平原 6": "135", 809 | "[铠岛] 锻炼平原 7": "136", 810 | "[铠岛] 锅底沙漠 1": "137", 811 | "[铠岛] 锅底沙漠 2": "138", 812 | "[铠岛] 锅底沙漠 3": "139", 813 | "[铠岛] 蜂巢海 1": "140", 814 | "[铠岛] 蜂巢海 2": "141", 815 | "[铠岛] 蜂巢海 3": "142", 816 | "[铠岛] 蜂巢海 4": "143", 817 | "[铠岛] 蜂巢海 5": "144", 818 | "[铠岛] 蜂巢岛 1": "145", 819 | "[铠岛] 蜂巢岛 2": "146", 820 | "[铠岛] 蜂巢岛 3": "147", 821 | "[铠岛] 蜂巢岛 4": "148", 822 | "[铠岛] 蜂巢岛 5": "149", 823 | "[铠岛] 蜂巢岛 6": "150", 824 | "[铠岛] 挑战海滩 1": "151", 825 | "[铠岛] 挑战海滩 2": "152", 826 | "[铠岛] 挑战海滩 3": "153", 827 | "[铠岛] 挑战海滩 4": "154", 828 | "[铠岛] 挑战海滩 5": "155", 829 | "[铠岛] 挑战海滩 6": "156", 830 | "[铠岛] 挑战海滩 7": "157", 831 | "[铠岛] 挑战海滩 8": "158", 832 | "[铠岛] 离岛海域 1": "159", 833 | "[铠岛] 离岛海域 2": "160", 834 | "[铠岛] 离岛海域 3": "161", 835 | "[铠岛] 离岛海域 4": "162", 836 | "[铠岛] 离岛海域 5": "163", 837 | "[铠岛] 列岛海域 1": "164", 838 | "[铠岛] 列岛海域 2": "165", 839 | "[铠岛] 列岛海域 3": "166", 840 | "[铠岛] 列岛海域 4": "167", 841 | "[铠岛] 列岛海域 5": "168", 842 | "[铠岛] 列岛海域 6": "169", 843 | "[铠岛] 列岛海域 7": "170", 844 | "[铠岛] 列岛海域 8": "171", 845 | "[铠岛] 列岛海域 9": "172", 846 | "[铠岛] 斗志洞窟 1": "173", 847 | "[铠岛] 斗志洞窟 2": "174", 848 | "[铠岛] 斗志洞窟 3": "175", 849 | "[铠岛] 斗志洞窟 4": "176", 850 | "[铠岛] 斗志洞窟 5": "177", 851 | "[铠岛] 斗志洞窟 6": "178", 852 | "[铠岛] 圆环海湾 1": "179", 853 | "[铠岛] 圆环海湾 2": "180", 854 | "[铠岛] 圆环海湾 3": "181", 855 | "[铠岛] 圆环海湾 4": "182", 856 | "[铠岛] 健身之海 1": "183", 857 | "[铠岛] 健身之海 2": "184", 858 | "[铠岛] 健身之海 3": "185", 859 | "[铠岛] 健身之海 4": "186", 860 | "[铠岛] 健身之海 5": "187", 861 | "[铠岛] 健身之海 6": "188", 862 | "[铠岛] 健身之海 7": "189", 863 | "[CT] Slippery Slope 1": "190", 864 | "[CT] Slippery Slope 2": "191", 865 | "[CT] Slippery Slope 3": "192", 866 | "[CT] Slippery Slope 4": "193", 867 | "[CT] Slippery Slope 5": "194", 868 | "[CT] Slippery Slope 6": "195", 869 | "[CT] Frostpoint Field 1": "196", 870 | "[CT] Frostpoint Field 2": "197", 871 | "[CT] Frostpoint Field 3": "198", 872 | "[CT] Frostpoint Field 4": "199", 873 | "[CT] Frostpoint Field 5": "200", 874 | "[CT] Giant\'s Bed 1": "201", 875 | "[CT] Giant\'s Bed 2": "202", 876 | "[CT] Giant\'s Bed 3": "203", 877 | "[CT] Giant\'s Bed 4": "204", 878 | "[CT] Giant\'s Bed 5": "205", 879 | "[CT] Giant\'s Bed 6": "206", 880 | "[CT] Giant\'s Bed 7": "207", 881 | "[CT] Giant\'s Bed 8": "208", 882 | "[CT] Giant\'s Bed 9": "209", 883 | "[CT] Giant\'s Bed 10": "210", 884 | "[CT] Giant\'s Bed 11": "211", 885 | "[CT] Giant\'s Bed 12": "212", 886 | "[CT] Giant\'s Bed 13": "213", 887 | "[CT] Giant\'s Bed 14": "214", 888 | "[CT] Giant\'s Bed 15": "215", 889 | "[CT] Giant\'s Bed 16": "216", 890 | "[CT] Giant\'s Bed 17": "217", 891 | "[CT] Giant\'s Bed 18": "218", 892 | "[CT] Giant\'s Bed 19": "219", 893 | "[CT] Giant\'s Bed 20": "220", 894 | "[CT] Giant\'s Bed 21": "221", 895 | "[CT] Old Cemetery 1": "222", 896 | "[CT] Old Cemetery 2": "223", 897 | "[CT] Snowslide Slope 1": "224", 898 | "[CT] Snowslide Slope 2": "225", 899 | "[CT] Snowslide Slope 3": "226", 900 | "[CT] Snowslide Slope 4": "227", 901 | "[CT] Snowslide Slope 5": "228", 902 | "[CT] Snowslide Slope 6": "229", 903 | "[CT] Snowslide Slope 7": "230", 904 | "[CT] Snowslide Slope 8": "231", 905 | "[CT] Snowslide Slope 9": "232", 906 | "[CT] Path to the Peak 1": "233", 907 | "[CT] Path to the Peak 2": "234", 908 | "[CT] Path to the Peak 3": "235", 909 | "[CT] Crown Shrine 1": "236", 910 | "[CT] Giant\'s Foot 1": "237", 911 | "[CT] Giant\'s Foot 2": "238", 912 | "[CT] Giant\'s Foot 3": "239", 913 | "[CT] Giant\'s Foot 4": "240", 914 | "[CT] Giant\'s Foot 5": "241", 915 | "[CT] Frigid Sea 1": "242", 916 | "[CT] Frigid Sea 2": "243", 917 | "[CT] Frigid Sea 3": "244", 918 | "[CT] Frigid Sea 4": "245", 919 | "[CT] Frigid Sea 5": "246", 920 | "[CT] Frigid Sea 6": "247", 921 | "[CT] Frigid Sea 7": "248", 922 | "[CT] Frigid Sea 8": "249", 923 | "[CT] Frigid Sea 9": "250", 924 | "[CT] Frigid Sea 10": "251", 925 | "[CT] Frigid Sea 11": "252", 926 | "[CT] Frigid Sea 12": "253", 927 | "[CT] Frigid Sea 13": "254", 928 | "[CT] Frigid Sea 14": "255", 929 | "[CT] Three-Point Pass 1": "256", 930 | "[CT] Three-Point Pass 2": "257", 931 | "[CT] Ballimere Lake 1": "258", 932 | "[CT] Ballimere Lake 2": "259", 933 | "[CT] Ballimere Lake 3": "260", 934 | "[CT] Ballimere Lake 4": "261", 935 | "[CT] Ballimere Lake 5": "262", 936 | "[CT] Ballimere Lake 6": "263", 937 | "[CT] Ballimere Lake 7": "264", 938 | "[CT] Ballimere Lake 8": "265", 939 | "[CT] Ballimere Lake 9": "266", 940 | "[CT] Ballimere Lake 10": "267", 941 | "[CT] Ballimere Lake 11": "268", 942 | "[CT] Ballimere Lake 12": "269", 943 | "[CT] Ballimere Lake 13": "270", 944 | "[CT] Ballimere Lake 14": "271", 945 | "[CT] Ballimere Lake 15": "272", 946 | "[CT] Ballimere Lake 16": "273", 947 | "[CT] Ballimere Lake 17": "274", 948 | "[CT] Dyna Tree Hill 1": "275", 949 | }, 950 | "Version": [ 951 | "宝可梦-剑", 952 | "宝可梦-盾", 953 | ], 954 | "DenRarity": [ 955 | "红光", 956 | "紫光", 957 | ], 958 | } 959 | --------------------------------------------------------------------------------