Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
    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());
    }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
    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);
        }
    }
Exemplo n.º 8
0
 public static String GetCsvCharacterAbilitiesPath(CharacterPresetId presetId)
 {
     return(CharacterAbilitiesDirectory + presetId + ".csv");
 }
Exemplo n.º 9
0
 public static Boolean FF9Abil_SetMaster(CharacterPresetId presetId, Int32 abilityId)
 {
     return(FF9Abil_SetMaster((Int32)presetId, abilityId));
 }