private GameStructs.AwakenedSkill[] GetWeaponAwakenedSkills(Int64 BaseAddress) { GameStructs.AwakenedSkill[] AwakenedSkills = new GameStructs.AwakenedSkill[5]; // Awakened skills slots are determined by their index, their value is a short that // holds their awakened skill ID for (int AwakIndex = 0; AwakIndex < 5; AwakIndex++) { GameStructs.AwakenedSkill dummy = new GameStructs.AwakenedSkill() { ID = Scanner.READ_SHORT(BaseAddress + 0x8C + (AwakIndex * sizeof(short))) }; AwakenedSkills[AwakIndex] = dummy; } return(AwakenedSkills); }
static string BuildAwakeningSkillsStructure(GameStructs.AwakenedSkill[] AwakenedSkills) { StringBuilder[] Structure = new StringBuilder[5]; for (int AwakIndex = 0; AwakIndex < 5; AwakIndex++) { GameStructs.AwakenedSkill awakened = AwakenedSkills[AwakIndex]; if (Structure[AwakIndex] == null) { Structure[AwakIndex] = new StringBuilder(); } Structure[AwakIndex].Append(HoneyGearData.SelectSingleNode($"//Honey/Weapons/Awakening/Skill[@ID='{awakened.ID}']/@HoneyID")?.Value); } StringBuilder JoinedResult = new StringBuilder(); foreach (StringBuilder SubBuilder in Structure) { JoinedResult.Append(SubBuilder?.ToString() + ";"); } JoinedResult.Remove(JoinedResult.Length - 1, 1); return(JoinedResult.ToString()); }