Esempio n. 1
0
        public static void CheckBattleMenuOff(BattleUnit btl)
        {
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
            BattleUnit           btl1      = null;

            foreach (BattleUnit next in ff9Battle.EnumerateBattleUnits())
            {
                if (next.PlayerIndex == CharacterIndex.Eiko)
                {
                    btl1 = next;
                }

                if (next.IsPlayer == btl.IsPlayer && (!next.IsUnderStatus(BattleStatus.BattleEnd) || (next.CurrentHp == 0 || next.IsUnderStatus(BattleStatus.Death)) && next.IsUnderStatus(BattleStatus.AutoLife) || btl_cmd.CheckSpecificCommand(next.Data, BattleCommandId.SysReraise)))
                {
                    return;
                }
            }

            if (btl1 != null && btl_cmd.CheckSpecificCommand(btl1.Data, BattleCommandId.SysLastPhoenix))
            {
                return;
            }

            UIManager.Battle.FF9BMenu_EnableMenu(false);
            btl_cmd.KillNormalCommand(ff9Battle);
            ff9Battle.btl_escape_key = 0;
        }
Esempio n. 2
0
 public static Boolean ManageBattleSong(FF9StateGlobal sys, UInt32 ticks, UInt32 song_id)
 {
     if ((sys.btl_flag & 16) == 0)
     {
         btlsnd.ff9btlsnd_song_vol_intplall((Int32)ticks, 0);
         sys.btl_flag = (Byte)(sys.btl_flag | 16);
     }
     if ((sys.btl_flag & 2) == 0)
     {
         FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
         if ((Int64)(ff9Battle.player_load_fade = (SByte)((Int32)ff9Battle.player_load_fade + 4)) < (Int64)((UInt64)ticks))
         {
             return(false);
         }
         btlsnd.ff9btlsnd_song_load((Int32)song_id);
         sys.btl_flag = (Byte)(sys.btl_flag | 2);
     }
     if (btlsnd.ff9btlsnd_sync() != 0)
     {
         return(false);
     }
     if ((sys.btl_flag & 32) == 0)
     {
         btlsnd.ff9btlsnd_song_play((Int32)song_id);
         sys.btl_flag = (Byte)(sys.btl_flag | 32);
     }
     return(true);
 }
Esempio n. 3
0
    public static void InitCommand(BTL_DATA btl)
    {
        FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;

        if (stateBattleSystem.btl_phase == 2)
        {
            btl.tar_mode = 1;
        }
        btl.sel_mode    = 0;
        btl.finger_disp = false;
        //int index1 = btl.bi.player == 0 ? 24 + (btl.bi.line_no - 4) * 3 : btl.bi.line_no * 6;
        //CMD_DATA cmdData = stateBattleSystem.cmd_buffer[index1];
        for (int index2 = 0; index2 < 6; ++index2)
        {
            if (btl.bi.player != 0 || index2 < 3)
            {
                btl.cmd[index2] = new CMD_DATA {
                    regist = btl
                };
                ClearCommand(btl.cmd[index2]);
            }
            else
            {
                btl.cmd[index2] = null;
            }
        }
        ClearReflecData(btl);
    }
Esempio n. 4
0
    private static void UpdateData()
    {
        for (BTL_DATA btl = FF9StateSystem.Battle.FF9Battle.btl_list.next; btl != null; btl = btl.next)
        {
            if (btl.bi.slave != 0 || btl.bi.disappear != 0 || btl.bi.shadow == 0)
            {
                continue;
            }

            FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;
            Int32 BoneNo = ff9btl.ff9btl_set_bone(btl.shadow_bone[0], btl.shadow_bone[1]);
            if (btl.bi.player != 0)
            {
                if ((stateBattleSystem.cmd_status & 1) == 0)
                {
                    if ((btl.escape_key ^ stateBattleSystem.btl_escape_key) != 0)
                    {
                        btl_mot.SetDefaultIdle(btl);
                    }
                    btl.escape_key = stateBattleSystem.btl_escape_key;
                }
                btlseq.FF9DrawShadowCharBattle(stateBattleSystem.map.shadowArray, btl.bi.slot_no, 0, BoneNo);
            }
            else if (btl.die_seq < 4)
            {
                btlseq.FF9DrawShadowCharBattle(stateBattleSystem.map.shadowArray, 9 + btl.bi.slot_no, 0, BoneNo);
            }
        }
    }
Esempio n. 5
0
 public static void InitCommandSystem(FF9StateBattleSystem btlsys)
 {
     btlsys.cur_cmd          = null;
     btlsys.cmd_mode         = 0;
     btlsys.cmd_status       = 2;
     btlsys.cmd_queue.regist = btlsys.cmd_escape.regist = null;
     ClearCommand(btlsys.cmd_queue);
     ClearCommand(btlsys.cmd_escape);
 }
Esempio n. 6
0
    public static void InitSelectCursor(FF9StateBattleSystem btlsys)
    {
        uint           num1         = (uint)((FF9StateSystem.Battle.FF9Battle.btl_cnt & 15) << 8);
        List <Vector3> vector3List1 = new List <Vector3>();
        List <Vector3> vector3List2 = new List <Vector3>();
        List <Color32> color32List  = new List <Color32>();
        List <int>     intList      = new List <int>();
        Vector3        vector3_1    = new Vector3(0.0f, 0.0f, 0.0f);

        vector3List1.Add(vector3_1);
        int num2 = 0;

        while (num2 < 3)
        {
            float   f         = (float)(num1 / 4096.0 * 360.0);
            Vector3 vector3_2 = new Vector3(vector3_1.x - (int)(68.0 * Mathf.Cos(f)), vector3_1.y - 133f, vector3_1.z - (int)(68.0 * Mathf.Sin(f)));
            vector3_2.y *= -1f;
            vector3List1.Add(vector3_2);
            ++num2;
            num1 = (num1 + 1265U) % 4096U;
        }
        vector3List2.Add(vector3List1[0]);
        vector3List2.Add(vector3List1[2]);
        vector3List2.Add(vector3List1[1]);
        vector3List2.Add(vector3List1[0]);
        vector3List2.Add(vector3List1[3]);
        vector3List2.Add(vector3List1[2]);
        vector3List2.Add(vector3List1[0]);
        vector3List2.Add(vector3List1[1]);
        vector3List2.Add(vector3List1[3]);
        vector3List2.Add(vector3List1[1]);
        vector3List2.Add(vector3List1[2]);
        vector3List2.Add(vector3List1[3]);
        for (int index = 0; index < vector3List2.Count; ++index)
        {
            byte num3 = (byte)Mathf.Floor(index / 3f);
            byte num4 = index >= 9 ? (byte)160 : (byte)(188 - 60 * num3);
            color32List.Add(new Color32(num4, num4, 0, byte.MaxValue));
            intList.Add(index);
        }
        Mesh mesh = new Mesh
        {
            vertices  = vector3List2.ToArray(),
            triangles = intList.ToArray(),
            colors32  = color32List.ToArray()
        };

        mesh.RecalculateNormals();
        GameObject   gameObject   = btlsys.s_cur = new GameObject("selectCursor");
        MeshRenderer meshRenderer = gameObject.AddComponent <MeshRenderer>();

        gameObject.AddComponent <MeshFilter>().mesh = mesh;
        Material material = new Material(Shader.Find("PSX/BattleMap_SelectCursor_Abr_1"));

        meshRenderer.material = material;
        gameObject.SetActive(false);
    }
Esempio n. 7
0
    public static void DispSelectCursor(FF9StateGlobal sys, FF9StateBattleSystem btlsys, BTL_DATA btl)
    {
        GameObject gameObject    = btlsys.s_cur;
        Vector3    localPosition = btl.gameObject.transform.localPosition;
        Vector3    eulerAngles   = gameObject.transform.localRotation.eulerAngles;

        gameObject.transform.localPosition = new Vector3(localPosition.x, localPosition.y + btl.height, localPosition.z);
        float num = (float)((((btlsys.btl_cnt & 15) << 8) + 1265) % 4096 / 4096.0 * 360.0);

        gameObject.transform.localRotation = Quaternion.Euler(eulerAngles.x, -num, eulerAngles.z);
    }
Esempio n. 8
0
        public static void SetEnemyDieSound(BTL_DATA btl, UInt16 snd_no)
        {
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

            if (ff9Battle.enemy_die == 0 && btl.bi.die_snd_f == 0)
            {
                ff9Battle.enemy_die = 8;
                btl_util.SetBattleSfx(btl, snd_no, 127);
                btl.bi.die_snd_f = 1;
            }
        }
Esempio n. 9
0
    public static void SetDefaultShader(BTL_DATA btl)
    {
        BBGINFO bbgInfoPtr             = battlebg.nf_GetBbgInfoPtr();
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        if ((ff9Battle.btl_load_status & 4) == 0 || (ff9Battle.btl_load_status & 32) == 0 || FF9StateSystem.Battle.isFade)
        {
            return;
        }
        btl_util.GeoSetABR(btl.gameObject, "PSX/BattleMap_StatusEffect");
        btl_util.GeoSetColor2DrawPacket(btl.gameObject, bbgInfoPtr.chr_r, bbgInfoPtr.chr_g, bbgInfoPtr.chr_b, Byte.MaxValue);
    }
Esempio n. 10
0
 private static void BattleSubSystem(FF9StateGlobal sys, FF9StateBattleSystem btlsys)
 {
     if (btlsys.enemy_die != 0)
     {
         --btlsys.enemy_die;
     }
     btlseq.Sequencer();
     battlebg.nf_BattleBG();
     SFX.UpdatePlugin();
     btl2d.Btl2dMain();
     HonoluluBattleMain.battleSPS.GenerateSPS();
 }
Esempio n. 11
0
    public static void Btl2dInit()
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        ff9Battle.btl2d_work_set.NewID        = 0;
        ff9Battle.btl2d_work_set.Timer        = 0;
        ff9Battle.btl2d_work_set.OldDisappear = Byte.MaxValue;
        BTL2D_ENT[] entry = ff9Battle.btl2d_work_set.Entry;
        for (Int16 num = 0; num < 16; num = (Int16)(num + 1))
        {
            entry[num].BtlPtr = null;
        }
    }
Esempio n. 12
0
    public static BattleUnit FindBattleUnitUnlimited(UInt16 btl_id)
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        for (Int32 i = 0; i < 8; i++)
        {
            if (ff9Battle.btl_data[i].btl_id == btl_id)
            {
                return(new BattleUnit(ff9Battle.btl_data[i]));
            }
        }
        return(null);
    }
Esempio n. 13
0
    private void PauseBattle()
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        ff9Battle.attr |= 256;
        for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
        {
            if (next.animation != null)
            {
                next.animation.enabled = false;
            }
        }
    }
Esempio n. 14
0
    public static void ClearSysPhantom(BTL_DATA btl)
    {
        if (btl.bi.player == 0 || btl.bi.slot_no != 2)
        {
            return;
        }
        FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;

        KillSpecificCommand(btl, 57);
        stateBattleSystem.cmd_status &= 65523;
        stateBattleSystem.phantom_no  = 0;
        stateBattleSystem.phantom_cnt = 0;
    }
Esempio n. 15
0
    private void Update()
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
        {
            if (!Status.checkCurStat(next, BattleStatus.Jump))
            {
                this.CheckRenderTexture(next.texanimptr);
                this.CheckRenderTexture(next.tranceTexanimptr);
            }
        }
    }
Esempio n. 16
0
    private void ResumeBattle()
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        ff9Battle.attr &= 65279;
        for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
        {
            if (next.animation != null)
            {
                next.animation.enabled = true;
            }
        }
    }
Esempio n. 17
0
    private static BTL_DATA SeqSubGetTarget(UInt16 pTarID)
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
        BTL_DATA             next;

        for (next = ff9Battle.btl_list.next; next != null; next = next.next)
        {
            if ((next.btl_id & pTarID) != 0)
            {
                break;
            }
        }
        return(next);
    }
Esempio n. 18
0
        public static void CheckForecastMenuOff(BTL_DATA btl)
        {
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

            for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
            {
                if (next.bi.player == 0 && !Status.checkCurStat(next, BattleStatus.Death))
                {
                    return;
                }
            }
            UIManager.Battle.FF9BMenu_EnableMenu(false);
            btl_cmd.KillNormalCommand(ff9Battle);
            ff9Battle.btl_escape_key = 0;
        }
Esempio n. 19
0
    public static void KillNormalCommand(FF9StateBattleSystem btlsys)
    {
        CMD_DATA cp = btlsys.cmd_queue;

        while (cp != null)
        {
            CMD_DATA ncp = cp.next;
            if (ncp != null && ncp.cmd_no != 54 && ncp.cmd_no < 58)
            {
                ManageDequeueCommand(cp, ncp);
            }
            else
            {
                cp = ncp;
            }
        }
    }
Esempio n. 20
0
    public static void InitBattleMap()
    {
        FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

        battlebg.nf_InitBattleBG(ff9Battle.map.btlBGInfoPtr, ff9Battle.map.btlBGTexAnimPtr);
        ff9Battle.btl_load_status |= 1;
        btl_cmd.InitCommandSystem(ff9Battle);
        btl_cmd.InitSelectCursor(ff9Battle);
        btlseq.SetupBattleScene();
        battle.btl_bonus.Event = ff9Battle.btl_scene.Info.AfterEvent != 0;
        if (!FF9StateSystem.Battle.isDebug)
        {
            PersistenSingleton <EventEngine> .Instance.ServiceEvents();
        }
        SceneDirector.FF9Wipe_FadeInEx(32);
        ff9Battle.btl_phase = 2;
    }
Esempio n. 21
0
    private static bool CheckTargetCondition(FF9StateBattleSystem btlsys, CMD_DATA cmd)
    {
        ushort num1 = 0;

        if (cmd.tar_id == 0)
        {
            return(false);
        }
        ushort num2;

        switch (cmd.cmd_no)
        {
        case 14:
        case 51:
            num2 = ff9item._FF9Item_Info[btl_util.btlItemNum(cmd.sub_no)].info.dead;
            break;

        case 59:
            return(true);

        default:
            num2 = cmd.aa.Info.dead;
            break;
        }
        for (BTL_DATA btl = btlsys.btl_list.next; btl != null; btl = btl.next)
        {
            if (btl.bi.target != 0 && (btl.btl_id & cmd.tar_id) != 0 && (num2 != 0 && btl.bi.player != 0 || !Status.checkCurStat(btl, 256U)))
            {
                num1 |= btl.btl_id;
            }
        }
        if (num1 != 0)
        {
            cmd.tar_id = num1;
            return(true);
        }
        if (cmd.info.cursor == 0 && num2 == 0)
        {
            cmd.tar_id = btl_util.GetRandomBtlID(cmd.tar_id & 15U);
            if (cmd.tar_id != 0)
            {
                return(true);
            }
        }
        return(false);
    }
Esempio n. 22
0
    public static Int32 SeqExecRunCamera(SEQ_WORK pSeqWork, BTL_DATA pMe)
    {
        btlseq.BattleLog("SeqExecRunCamera");
        FF9StateBattleSystem ff9Battle    = FF9StateSystem.Battle.FF9Battle;
        SEQ_WORK_SET         seq_WORK_SET = ff9Battle.seq_work_set;

        if (btlseq.wSeqCode != 32)
        {
            if (pSeqWork.CmdPtr.aa.Info.DefaultCamera == false)
            {
                if (FF9StateSystem.Settings.cfg.camera == 1UL)
                {
                    goto IL_16C;
                }
                UInt32 num = pMe.stat.cur;
                for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
                {
                    if ((next.btl_id & pSeqWork.CmdPtr.tar_id) != 0)
                    {
                        num |= next.stat.cur;
                    }
                }
                if ((num & 335544320u) != 0u)
                {
                    goto IL_16C;
                }
                if (Comn.random8() >= 128)
                {
                    goto IL_16C;
                }
            }
        }
        Int16[] array = new Int16[3];
        btlseq.SeqSubTargetAveragePos(pSeqWork.CmdPtr.tar_id, out array[0], out array[2]);
        array[1] = 0;
        seq_WORK_SET.CamTrgCPos = new Vector3((Single)array[0], (Single)array[1], (Single)array[2]);
        seq_WORK_SET.CamExe     = pMe;
        seq_WORK_SET.CamTrg     = btlseq.SeqSubGetTarget(pSeqWork.CmdPtr.tar_id);
        SFX.SetCameraTarget(seq_WORK_SET.CamTrgCPos, seq_WORK_SET.CamExe, seq_WORK_SET.CamTrg);
        ff9Battle.seq_work_set.CameraNo = btlseq.sequenceReader.ReadByte();
        SFX.SetEnemyCamera(pMe);
IL_16C:
        pSeqWork.CurPtr += 2;
        return(1);
    }
Esempio n. 23
0
    public static void KillAllCommand(FF9StateBattleSystem btlsys)
    {
        CMD_DATA cp = btlsys.cmd_queue;

        while (cp != null)
        {
            CMD_DATA ncp = cp.next;
            if (ncp != null && ncp.cmd_no < 59)
            {
                ManageDequeueCommand(cp, ncp);
            }
            else
            {
                cp = ncp;
            }
        }
        btlsys.cmd_status &= 65523;
        btlsys.phantom_no  = (byte)(btlsys.phantom_cnt = 0);
    }
Esempio n. 24
0
    private static Boolean BattleIdleLoop(FF9StateGlobal sys, FF9StateBattleSystem btlsys)
    {
        //uint id = sys.id;
        Boolean flag = true;

        foreach (BattleUnit next in FF9StateSystem.Battle.FF9Battle.EnumerateBattleUnits())
        {
            BTL_DATA data = next.Data;
            if (data.bi.disappear == 0)
            {
                btlseq.DispCharacter(data);
                if (btlsys.btl_phase == 3)
                {
                    data.bi.stop_anim = 0;
                    if (data.evt.animFrame >= GeoAnim.geoAnimGetNumFrames(data))
                    {
                        if (!next.IsUnderStatus(BattleStatus.Death))
                        {
                            btl_mot.setMotion(next, data.bi.def_idle);
                        }
                        data.evt.animFrame = 0;
                    }
                    if (!next.IsUnderStatus(BattleStatus.Petrify) && !btl_mot.checkMotion(data, data.bi.def_idle) && !btl_mot.checkMotion(data, 4))
                    {
                        flag = false;
                    }
                }
                else if (btlsys.btl_phase == 6 && next.IsPlayer && !next.IsUnderStatus((BattleStatus)4355U) && btlsys.btl_scene.Info.WinPose != 0 && (next.Player.Data.info.win_pose != 0 && data.evt.animFrame >= GeoAnim.geoAnimGetNumFrames(data)))
                {
                    btl_mot.setMotion(next, 19);
                    data.evt.animFrame = 0;
                }
                btl_stat.SetStatusVfx(next);
            }
            btl_mot.DieSequence(data);
        }
        if (btlsys.btl_phase == 7 && btlsys.btl_scene.Info.NoGameOver == 0 && !btl_util.ManageBattleSong(sys, 30U, 6U))
        {
            flag = false;
        }
        battle.BattleSubSystem(sys, btlsys);
        return(flag);
    }
Esempio n. 25
0
    private static Boolean BattleIdleLoop(FF9StateGlobal sys, FF9StateBattleSystem btlsys)
    {
        //uint id = sys.id;
        Boolean flag = true;

        for (BTL_DATA next = btlsys.btl_list.next; next != null; next = next.next)
        {
            if (next.bi.disappear == 0)
            {
                btlseq.DispCharacter(next);
                if (btlsys.btl_phase == 3)
                {
                    next.bi.stop_anim = 0;
                    if (next.evt.animFrame >= GeoAnim.geoAnimGetNumFrames(next))
                    {
                        if (!Status.checkCurStat(next, 256U))
                        {
                            btl_mot.setMotion(next, next.bi.def_idle);
                        }
                        next.evt.animFrame = 0;
                    }
                    if (!Status.checkCurStat(next, 1U) && !btl_mot.checkMotion(next, next.bi.def_idle) && !btl_mot.checkMotion(next, 4))
                    {
                        flag = false;
                    }
                }
                else if (btlsys.btl_phase == 6 && next.bi.player != 0 && (!Status.checkCurStat(next, 4355U) && btlsys.btl_scene.Info.WinPose != 0) && (btl_util.getPlayerPtr(next).info.win_pose != 0 && next.evt.animFrame >= GeoAnim.geoAnimGetNumFrames(next)))
                {
                    btl_mot.setMotion(next, 19);
                    next.evt.animFrame = 0;
                }
                btl_stat.SetStatusVfx(next);
            }
            btl_mot.DieSequence(next);
        }
        if (btlsys.btl_phase == 7 && btlsys.btl_scene.Info.NoGameOver == 0 && !btl_util.ManageBattleSong(sys, 30U, 6U))
        {
            flag = false;
        }
        battle.BattleSubSystem(sys, btlsys);
        return(flag);
    }
Esempio n. 26
0
        public static void InitBattleSystem()
        {
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

            ff9Battle.btl_list.next      = null;
            ff9Battle.btl_cnt            = 0;
            ff9Battle.btl_phase          = 0;
            ff9Battle.btl_seq            = 0;
            ff9Battle.btl_fade_time      = 0;
            ff9Battle.btl_escape_key     = 0;
            ff9Battle.btl_escape_fade    = 32;
            ff9Battle.btl_load_status    = 0;
            ff9Battle.player_load_fade   = 0;
            ff9Battle.enemy_load_fade    = 0;
            ff9Battle.phantom_no         = 0;
            ff9Battle.phantom_cnt        = 0;
            ff9Battle.enemy_die          = 0;
            battle.btl_bonus.member_flag = 0;
            ClearBattleBonus();
        }
Esempio n. 27
0
    public static void ReqFinishCommand()
    {
        FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;
        CMD_DATA             cmd = stateBattleSystem.cur_cmd;

        if (cmd.info.reflec == 2)
        {
            cmd.tar_id = MargeReflecTargetID(cmd.regist.reflec);
            btl_vfx.SetBattleVfx(cmd, (uint)cmd.aa.Info.vfx_no, null);
            stateBattleSystem.cmd_mode = 2;
        }
        else
        {
            if (Status.checkCurStat(cmd.regist, 8192U) && cmd.cmd_no == 60 && !btl_mot.checkMotion(cmd.regist, 4))
            {
                return;
            }
            stateBattleSystem.cmd_mode = 4;
        }
    }
Esempio n. 28
0
    private static void BattleMainLoop(FF9StateGlobal sys, FF9StateBattleSystem btlsys)
    {
        //uint id = sys.id;
        FF9StateSystem.Settings.SetTranceFull();
        Boolean flag = false;

        for (BTL_DATA next = btlsys.btl_list.next; next != null; next = next.next)
        {
            if (next.bi.disappear == 0)
            {
                btlseq.DispCharacter(next);
            }
            if (!FF9StateSystem.Battle.isDebug && UIManager.Battle.CurrentPlayerIndex != -1 && (next.btl_id == 1 << UIManager.Battle.CurrentPlayerIndex && (btlsys.cmd_status & 2) != 0) && (next.flags & geo.GEO_FLAGS_CLIP) == 0)
            {
                flag = true;
                btl_cmd.DispSelectCursor(sys, btlsys, next);
            }

            btl_para.CheckPointData(next);

            // ============ Warning ============
            if (Configuration.Battle.Speed == 0 || next.sel_mode != 0 || next.sel_menu != 0 || next.cur.hp == 0 || next.bi.atb == 0)
            {
                btl_stat.CheckStatusLoop(next, false);
            }
            // =================================
        }
        if (flag)
        {
            if (!btlsys.s_cur.activeSelf)
            {
                btlsys.s_cur.SetActive(true);
            }
        }
        else
        {
            btlsys.s_cur.SetActive(false);
        }
        btl_cmd.CommandEngine(btlsys);
        battle.BattleSubSystem(sys, btlsys);
    }
Esempio n. 29
0
        public Boolean CanEscape()
        {
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;

            if (ff9Battle.btl_scene.Info.Runaway == 0)
            {
                return(false);
            }

            for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
            {
                BattleUnit         unit   = new BattleUnit(next);
                const BattleStatus status = BattleStatus.Stone | BattleStatus.Poison | BattleStatus.Zombie | BattleStatus.Disable | BattleStatus.Stop | BattleStatus.Sleep | BattleStatus.Freeze | BattleStatus.Jump;
                if (next.bi.player != 0 && !unit.IsUnderStatus(status))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 30
0
    private void FF9ChangeMap(Int32 MapNo)
    {
        FF9StateFieldSystem  stateFieldSystem  = FF9StateSystem.Field.FF9Field;
        FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;
        FF9StateWorldSystem  stateWorldSystem  = FF9StateSystem.World.FF9World;

        switch (this._ff9Sys.mode)
        {
        case 1:
            stateFieldSystem.loc.map.nextMapNo = (Int16)MapNo;
            break;

        case 2:
            stateBattleSystem.map.nextMapNo = (Int16)MapNo;
            break;

        case 3:
            stateWorldSystem.map.nextMapNo = (Int16)MapNo;
            break;
        }
    }