Exemple #1
0
 private static AppMain.OBS_OBJECT_WORK GmBoss4Init(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.UNREFERENCED_PARAMETER((object)type);
     AppMain.OBS_OBJECT_WORK    work            = AppMain.GMM_BOSS4_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS4_MGR_WORK()), "Boss4_MGR");
     AppMain.GMS_BOSS4_MGR_WORK gmsBosS4MgrWork = (AppMain.GMS_BOSS4_MGR_WORK)work;
     AppMain.gm_boss4_mgr_work = gmsBosS4MgrWork;
     work.flag           |= 16U;
     work.disp_flag      |= 32U;
     work.move_flag      |= 8448U;
     gmsBosS4MgrWork.life = AppMain.GMD_BOSS4_LIFE;
     work.pos.x           = pos_x;
     work.pos.y           = pos_y;
     work.ppFunc          = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss4MgrWaitLoad);
     AppMain.GmBoss4ScrollOff();
     AppMain.gm_boss4_is_2nd = false;
     if (AppMain.g_gs_main_sys_info.stage_id != (ushort)16)
     {
         AppMain.GmMapSetAddMapScrlScaleMagX(2, 1);
         AppMain.GmMapSetAddMapScrlScaleMagX(3, 1);
         AppMain.GmMapSetAddMapScrlScaleMagX(4, 1);
         AppMain.GmMapSetAddMapXLoop();
         AppMain.GmMapEnableAddMapUserScrlX();
     }
     AppMain.gm_boss4_n_scroll_start = AppMain.GMD_BOSS4_SCROLL_START_X;
     AppMain.gm_boss4_n_scroll_end   = AppMain.GMD_BOSS4_SCROLL_END_X;
     return(work);
 }
Exemple #2
0
    private static void gmBoss4MgrWaitLoad(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_BOSS4_MGR_WORK gmsBosS4MgrWork = (AppMain.GMS_BOSS4_MGR_WORK)obj_work;
        bool flag = false;
        int  x    = obj_work.pos.x;
        int  y    = obj_work.pos.y;

        if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0)
        {
            if (AppMain.GmMainDatLoadBossBattleLoadCheck(3))
            {
                flag = true;
            }
        }
        else
        {
            flag = true;
        }
        if (flag)
        {
            AppMain.OBS_OBJECT_WORK obsObjectWork1 = AppMain.GmEventMgrLocalEventBirth((ushort)321, x, y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0);
            AppMain.GmBoss4IncObjCreateCount();
            AppMain.OBS_OBJECT_WORK obsObjectWork2 = AppMain.GmEventMgrLocalEventBirth((ushort)322, x, y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0);
            AppMain.GmBoss4IncObjCreateCount();
            AppMain.GmBoss4CapsuleClear();
            for (int index = 0; index < 6; ++index)
            {
                AppMain.GmEventMgrLocalEventBirth((ushort)323, x, y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0).parent_obj = obsObjectWork1;
                AppMain.GmBoss4IncObjCreateCount();
            }
            AppMain.GMS_BOSS4_BODY_WORK gmsBosS4BodyWork = (AppMain.GMS_BOSS4_BODY_WORK)obsObjectWork1;
            gmsBosS4MgrWork.body_work      = gmsBosS4BodyWork;
            gmsBosS4BodyWork.mgr_work      = gmsBosS4MgrWork;
            obsObjectWork1.parent_obj      = obj_work;
            obsObjectWork2.parent_obj      = obsObjectWork1;
            gmsBosS4BodyWork.parts_objs[0] = obsObjectWork1;
            gmsBosS4BodyWork.parts_objs[1] = obsObjectWork2;
        }
        if (!flag)
        {
            return;
        }
        gmsBosS4MgrWork.flag |= 1U;
        obj_work.ppFunc       = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss4MgrMain);
    }
Exemple #3
0
    private static void gmBoss4MgrMain(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(0);
        if (obsCamera == null)
        {
            return;
        }
        AppMain.GMS_BOSS4_MGR_WORK gmsBosS4MgrWork = (AppMain.GMS_BOSS4_MGR_WORK)obj_work;
        if (((int)gmsBosS4MgrWork.flag & 2) != 0)
        {
            if (gmsBosS4MgrWork.body_work != null)
            {
                AppMain.GMM_BS_OBJ((object)gmsBosS4MgrWork.body_work).flag |= 8U;
                gmsBosS4MgrWork.body_work = (AppMain.GMS_BOSS4_BODY_WORK)null;
            }
            if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0)
            {
                obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss4MgrWaitRelease);
            }
        }
        AppMain.GmBoss4CapsuleUpdateRol(AppMain.GMD_BOSS4_CAP_ROTATE_SPD);
        obsCamera.flag &= 4294967294U;
        float move_size = obsCamera.disp_pos.x - obsCamera.prev_disp_pos.x;

        if ((double)move_size < -((double)AppMain.GMD_BOSS4_SCROLL_SPD_MAX + 8.0))
        {
            move_size = AppMain.gmBoss4MgrMainStatics.xold;
        }
        if ((double)move_size > (double)AppMain.GMD_BOSS4_SCROLL_SPD_MAX + 8.0)
        {
            move_size = AppMain.gmBoss4MgrMainStatics.xold;
        }
        if (AppMain.g_gs_main_sys_info.stage_id != (ushort)16)
        {
            AppMain.GmMapSetAddMapUserScrlXAddSize(move_size);
        }
        AppMain.gmBoss4MgrMainStatics.xold = move_size;
        AppMain.OBS_OBJECT_WORK playerObj     = AppMain.GmBsCmnGetPlayerObj();
        AppMain.GMS_PLAYER_WORK gmsPlayerWork = (AppMain.GMS_PLAYER_WORK)playerObj;
        if (AppMain.gm_boss4_n_scroll == 0 && (double)AppMain.gm_boss4_f_scroll_spd <= 0.0)
        {
            return;
        }
        int left  = AppMain.g_gm_main_system.map_fcol.left;
        int right = AppMain.g_gm_main_system.map_fcol.right;

        AppMain.NNS_VECTOR offset = new AppMain.NNS_VECTOR(AppMain.FX_FX32_TO_F32(AppMain.GmBoss4GetScrollOffset()), 0.0f, 0.0f);
        if ((double)offset.x < 0.0)
        {
            AppMain.amTrailEFOffsetPos((ushort)1, offset);
        }
        playerObj.pos.x += AppMain.GmBoss4GetScrollOffset();
        int num1 = (int)AppMain.gm_boss4_f_scroll_spd * 4096;

        if (((int)gmsPlayerWork.player_flag & 1024) != 0)
        {
            num1 = 0;
        }
        if (gmsPlayerWork.seq_state == 17 && gmsPlayerWork.obj_work.spd.x < AppMain.FX_F32_TO_FX32(2f))
        {
            num1 /= 4;
        }
        if (gmsPlayerWork.seq_state == 20 && gmsPlayerWork.obj_work.spd.x < AppMain.FX_F32_TO_FX32(3f))
        {
            num1 /= 4;
        }
        playerObj.pos.x -= num1;
        int num2 = playerObj.pos.x / 4096;

        if (left + 48 > num2)
        {
            playerObj.pos.x = (left + 48) * 4096;
        }
        if (right < num2)
        {
            playerObj.pos.x = (right - 2) * 4096;
        }
        AppMain.GMS_BOSS4_BODY_WORK bodyWork      = gmsBosS4MgrWork.body_work;
        AppMain.OBS_OBJECT_WORK     obsObjectWork = (AppMain.OBS_OBJECT_WORK)bodyWork;
        if (obsObjectWork != null)
        {
            obsObjectWork.pos.x += AppMain.GmBoss4GetScrollOffset();
            obsObjectWork.pos.x -= AppMain.FX_F32_TO_FX32(AppMain.gm_boss4_f_scroll_spd);
            if (AppMain.gm_boss4_n_scroll == 1)
            {
                obsObjectWork.pos.x += AppMain.FX_F32_TO_FX32(AppMain.GMD_BOSS4_SCROLL_SPD_BOSS);
            }
            else
            {
                obsObjectWork.pos.x += AppMain.FX_F32_TO_FX32(AppMain.GMD_BOSS4_SCROLL_SPD_BOSS_BROKEN);
            }
            int f32_1 = (int)AppMain.FX_FX32_TO_F32(obsObjectWork.pos.x);
            if (left > f32_1)
            {
                obsObjectWork.pos.x = AppMain.FX_F32_TO_FX32((float)left);
            }
            if (AppMain.gm_boss4_n_scroll == 1)
            {
                int f32_2 = (int)AppMain.FX_FX32_TO_F32(obsObjectWork.pos.x);
                if ((double)right - 50.0 > (double)f32_2)
                {
                    obsObjectWork.pos.x = AppMain.FX_F32_TO_FX32((float)right - 50f);
                }
            }
        }
        if (obsObjectWork == null)
        {
            return;
        }
        AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)bodyWork;
        if (Math.Abs(obsObjectWork.pos.x - playerObj.pos.x) > AppMain.FX_F32_TO_FX32(140f))
        {
            gmsEnemy3DWork.ene_com.enemy_flag |= 32768U;
        }
        else
        {
            gmsEnemy3DWork.ene_com.enemy_flag &= 4294934527U;
        }
    }