private static PA_DATA[] LoadCharacterAbilities(CharacterPresetId presetId) { try { String inputPath = DataResources.GetCsvCharacterAbilitiesPath(presetId); if (!File.Exists(inputPath)) { throw new FileNotFoundException($"File with {presetId}'s abilities not found: [{inputPath}]"); } CharacterAbility[] abilities = CsvReader.Read <CharacterAbility>(inputPath); if (abilities.Length != 48) { throw new NotSupportedException($"You must set 48 abilities, but there {abilities.Length}. Any number of abilities will be available after a game stabilization."); // TODO Json, Player, SettingsState, EqupUI, ff9feqp } PA_DATA[] result = new PA_DATA[abilities.Length]; for (Int32 i = 0; i < abilities.Length; i++) { CharacterAbility source = abilities[i]; result[i] = new PA_DATA(source.Id, source.Ap); } return(result); } catch (Exception ex) { throw new FileLoadException($"Failed to load {presetId}'s learnable abilities.", ex); } }
public static CharacterId FF9Play_GetCharID(CharacterPresetId presetId) { if (presetId >= 0 && presetId < 9) { Int32 id = presetId; return(id); } if (presetId == CharacterPresetId.Marcus1 || presetId == CharacterPresetId.Marcus2 || presetId == CharacterPresetId.StageMarcus) { return(CharacterId.Marcus); } if (presetId == CharacterPresetId.Blank1 || presetId == CharacterPresetId.Blank2 || presetId == CharacterPresetId.StageBlank) { return(CharacterId.Blank); } if (presetId == CharacterPresetId.Cinna1 || presetId == CharacterPresetId.Cinna2 || presetId == CharacterPresetId.StageCinna) { return(CharacterId.Cinna); } if (presetId == CharacterPresetId.Beatrix1 || presetId == CharacterPresetId.Beatrix2) { return(CharacterId.Beatrix); } if (presetId == CharacterPresetId.StageZidane || presetId == CharacterPresetId.Zidane) { return(CharacterId.Zidane); } throw new NotSupportedException(presetId.ToString()); }
private static PA_DATA[][] LoadCharacterAbilities() { try { if (!Directory.Exists(DataResources.CharacterAbilitiesDirectory)) { throw new DirectoryNotFoundException($"[ff9abil] Cannot load character abilities because a directory does not exist: [{DataResources.CharacterAbilitiesDirectory}]."); } CharacterPresetId[] presetIds = (CharacterPresetId[])Enum.GetValues(typeof(CharacterPresetId)); PA_DATA[][] result = new PA_DATA[presetIds.Length][]; for (Int32 id = 0; id < result.Length; id++) { CharacterPresetId presetId = presetIds[id]; result[id] = LoadCharacterAbilities(presetId); } return(result); } catch (Exception ex) { Log.Error(ex, "[ff9abil] Load character abilities failed."); UIManager.Input.ConfirmQuit(); return(null); } }
private void GetDefaultName(out String mainName, out String altName) { CharacterPresetId presetId = PresetId; if (presetId == CharacterPresetId.Cinna1 || presetId == CharacterPresetId.Cinna2 || presetId == CharacterPresetId.StageCinna) { mainName = FF9TextTool.CharacterDefaultName(CharacterPresetId.Quina); altName = FF9TextTool.CharacterDefaultName(info.menu_type); return; } if (presetId == CharacterPresetId.Marcus1 || presetId == CharacterPresetId.Marcus2 || presetId == CharacterPresetId.StageMarcus) { mainName = FF9TextTool.CharacterDefaultName(CharacterPresetId.Eiko); altName = FF9TextTool.CharacterDefaultName(info.menu_type); return; } if (presetId == CharacterPresetId.Blank1 || presetId == CharacterPresetId.Blank2 || presetId == CharacterPresetId.StageBlank) { mainName = FF9TextTool.CharacterDefaultName(CharacterPresetId.Amarant); altName = FF9TextTool.CharacterDefaultName(info.menu_type); return; } mainName = FF9TextTool.CharacterDefaultName(info.menu_type); altName = FF9TextTool.CharacterDefaultName(info.menu_type); }
private static void TryHackPlayer(PLAYER player, Byte category) { CharacterPresetId presetId = player.PresetId; if (presetId == CharacterPresetId.StageZidane) { player.PresetId = presetId = CharacterPresetId.Zidane; } else if (presetId == CharacterPresetId.Cinna1 || presetId == CharacterPresetId.StageCinna) { player.PresetId = presetId = CharacterPresetId.Cinna2; } else if (presetId == CharacterPresetId.Marcus1 || presetId == CharacterPresetId.StageMarcus) { player.PresetId = presetId = CharacterPresetId.Marcus2; } else if (presetId == CharacterPresetId.Blank1 || presetId == CharacterPresetId.StageBlank) { player.PresetId = presetId = CharacterPresetId.Blank2; } if (player.category == category) { return; } player.category = category; if (presetId == CharacterPresetId.Quina) { player.PresetId = CharacterPresetId.Cinna2; } else if (presetId == CharacterPresetId.Eiko) { player.PresetId = CharacterPresetId.Marcus2; } else if (presetId == CharacterPresetId.Amarant) { player.PresetId = CharacterPresetId.Blank2; } else if (presetId == CharacterPresetId.Cinna2) { player.PresetId = CharacterPresetId.Quina; } else if (presetId == CharacterPresetId.Marcus2) { player.PresetId = CharacterPresetId.Eiko; } else if (presetId == CharacterPresetId.Blank2) { player.PresetId = CharacterPresetId.Amarant; } CharacterId equipId = ff9play.FF9Play_GetCharID2(player.Index, player.IsSubCharacter); ff9play.FF9Play_Change(player.info.slot_no, true, equipId); }
private static CharacterAbility[] LoadCharacterAbilities(CharacterPresetId presetId) { try { String inputPath = DataResources.Characters.Abilities.GetPresetAbilitiesPath(presetId); if (!File.Exists(inputPath)) { throw new FileNotFoundException($"File with {presetId}'s abilities not found: [{inputPath}]"); } CharacterAbility[] abilities = CsvReader.Read <CharacterAbility>(inputPath); if (abilities.Length != 48) { throw new NotSupportedException($"You must set 48 abilities, but there {abilities.Length}. Any number of abilities will be available after a game stabilization."); // TODO Json, Player, SettingsState, EqupUI, ff9feqp } return(abilities); } catch (Exception ex) { throw new FileLoadException($"Failed to load {presetId}'s learnable abilities.", ex); } }
private static BattleCommandId GetCommandFromCommandIndex(CommandMenu commandIndex, Int32 playerIndex) { BattleUnit player = FF9StateSystem.Battle.FF9Battle.GetUnit(playerIndex); CharacterPresetId presetId = FF9StateSystem.Common.FF9.party.GetCharacter(player.Position).PresetId; switch (commandIndex) { case CommandMenu.Attack: return(BattleCommandId.Attack); case CommandMenu.Defend: return(BattleCommandId.Defend); case CommandMenu.Ability1: { CharacterCommandSet commandSet = CharacterCommands.CommandSets[presetId]; Boolean underTrance = player.IsUnderStatus(BattleStatus.Trance); return(commandSet.Get(underTrance, 0)); } case CommandMenu.Ability2: { CharacterCommandSet commandSet = CharacterCommands.CommandSets[presetId]; Boolean underTrance = player.IsUnderStatus(BattleStatus.Trance); return(commandSet.Get(underTrance, 1)); } case CommandMenu.Item: return(BattleCommandId.Item); case CommandMenu.Change: return(BattleCommandId.Change); default: return(BattleCommandId.None); } }
public static String GetCsvCharacterAbilitiesPath(CharacterPresetId presetId) { return(CharacterAbilitiesDirectory + presetId + ".csv"); }
public static Boolean FF9Abil_SetMaster(CharacterPresetId presetId, Int32 abilityId) { return(FF9Abil_SetMaster((Int32)presetId, abilityId)); }