Пример #1
0
    // Token: 0x06000E6E RID: 3694 RVA: 0x00081168 File Offset: 0x0007F368
    public static void gmBoss5TurretUpdateDispRot(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(trt_work);

        obs_OBJECT_WORK.disp_flag |= 16777216U;
        AppMain.nnMakeQuaternionMatrix(obs_OBJECT_WORK.obj_3d.user_obj_mtx_r, ref trt_work.disp_quat);
    }
 // Token: 0x06000E6D RID: 3693 RVA: 0x00081124 File Offset: 0x0007F324
 public static void gmBoss5TurretInitDispRot(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(trt_work);
     obs_OBJECT_WORK.disp_flag &= 4278190079U;
     AppMain.nnMakeUnitQuaternion(ref trt_work.disp_quat);
     AppMain.nnMakeUnitMatrix(obs_OBJECT_WORK.obj_3d.user_obj_mtx_r);
 }
 // Token: 0x06000E6C RID: 3692 RVA: 0x000810B4 File Offset: 0x0007F2B4
 public static void gmBoss5TurretGetVulcanBulletPos(AppMain.GMS_BOSS5_TURRET_WORK trt_work, ref AppMain.VecFx32 out_pos)
 {
     AppMain.VecFx32         vecFx           = new AppMain.VecFx32(0, 0, AppMain.GMD_BOSS5_TURRET_VULCAN_BULLET_OFST_FORWARD);
     AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(trt_work);
     AppMain.VecFx32         vecFx2;
     AppMain.gmBoss5TurretGetDispRotatedOfstPos(trt_work, ref vecFx, out vecFx2);
     AppMain.VEC_Set(ref out_pos, obs_OBJECT_WORK.pos.x + vecFx2.x, obs_OBJECT_WORK.pos.y + vecFx2.y, obs_OBJECT_WORK.pos.z + AppMain.GMD_BOSS5_TURRET_VULCAN_BULLET_OFST_Z);
 }
Пример #4
0
 // Token: 0x06000E7E RID: 3710 RVA: 0x000817E5 File Offset: 0x0007F9E5
 public static void gmBoss5TurretProcUpdateOpen(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (AppMain.gmBoss5TurretUpdateSlideCover(trt_work) != 0)
     {
         AppMain.gmBoss5TurretInitSlideTurret(trt_work, 0);
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateAppear;
     }
 }
Пример #5
0
 // Token: 0x06000E83 RID: 3715 RVA: 0x0008193E File Offset: 0x0007FB3E
 public static void gmBoss5TurretProcUpdateClose(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (AppMain.gmBoss5TurretUpdateSlideCover(trt_work) != 0)
     {
         AppMain.gmBoss5TurretEndPartsPose(trt_work);
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateStandby;
     }
 }
Пример #6
0
 // Token: 0x06000E72 RID: 3698 RVA: 0x0008130D File Offset: 0x0007F50D
 public static void gmBoss5TurretInitVulcanBurstShot(AppMain.GMS_BOSS5_TURRET_WORK trt_work, int shot_num)
 {
     trt_work.vul_shot_remain = shot_num;
     trt_work.vul_burst_timer = AppMain.GMD_BOSS5_TURRET_VULCAN_SHOT_INTERVAL;
     trt_work.vul_shot_angle  = trt_work.fire_dir_z;
     AppMain.gmBoss5TurretGetVulcanFirePos(trt_work, ref trt_work.vul_fire_pos);
     AppMain.gmBoss5TurretGetVulcanBulletPos(trt_work, ref trt_work.vul_bullet_pos);
 }
Пример #7
0
 public static void gmBoss5TurretProcUpdateClose(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (AppMain.gmBoss5TurretUpdateSlideCover(trt_work) == 0)
     {
         return;
     }
     AppMain.gmBoss5TurretEndPartsPose(trt_work);
     trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateStandby);
 }
Пример #8
0
 public static void gmBoss5TurretProcUpdateOpen(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (AppMain.gmBoss5TurretUpdateSlideCover(trt_work) == 0)
     {
         return;
     }
     AppMain.gmBoss5TurretInitSlideTurret(trt_work, 0);
     trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateAppear);
 }
Пример #9
0
 // Token: 0x06000E82 RID: 3714 RVA: 0x0008190F File Offset: 0x0007FB0F
 public static void gmBoss5TurretProcUpdateDisappear(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (AppMain.gmBoss5TurretUpdateSlideTurret(trt_work) != 0)
     {
         trt_work.wait_timer = AppMain.gmBoss5TurretSeqGetVulcanWaitTime(trt_work);
         AppMain.gmBoss5TurretInitSlideCover(trt_work, 1);
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateClose;
     }
 }
Пример #10
0
 // Token: 0x06000E7F RID: 3711 RVA: 0x00081808 File Offset: 0x0007FA08
 public static void gmBoss5TurretProcUpdateAppear(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.gmBoss5TurretUpdateDirFacePly(trt_work);
     if (AppMain.gmBoss5TurretUpdateSlideTurret(trt_work) != 0)
     {
         trt_work.wait_timer  = AppMain.GMD_BOSS5_TURRET_FACE_TIME;
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateFace;
     }
 }
    // Token: 0x06000E70 RID: 3696 RVA: 0x0008125C File Offset: 0x0007F45C
    public static void gmBoss5TurretSetRoundFaceRot(AppMain.GMS_BOSS5_TURRET_WORK trt_work, int dir_z_angle, int tilt_near_angle)
    {
        int rz = (int)(65535L & (long)(-(long)dir_z_angle));

        AppMain.nnMakeRotateXZYQuaternion(out trt_work.disp_quat, AppMain.AKM_DEGtoA32(90), -tilt_near_angle, AppMain.AKM_DEGtoA32(90));
        AppMain.NNS_QUATERNION nns_QUATERNION;
        AppMain.nnMakeRotateXYZQuaternion(out nns_QUATERNION, 0, 0, rz);
        AppMain.nnMultiplyQuaternion(ref trt_work.disp_quat, ref nns_QUATERNION, ref trt_work.disp_quat);
    }
Пример #12
0
 // Token: 0x06000E77 RID: 3703 RVA: 0x000814E2 File Offset: 0x0007F6E2
 public static void gmBoss5TurretInitSlideTurret(AppMain.GMS_BOSS5_TURRET_WORK trt_work, int slide_type)
 {
     trt_work.trt_slide_type = slide_type;
     if (slide_type == 0)
     {
         trt_work.trt_slide_length = 0f;
         return;
     }
     trt_work.trt_slide_length = AppMain.GMD_BOSS5_TURRET_SLIDE_LENGTH_MAX;
 }
Пример #13
0
 // Token: 0x06000E79 RID: 3705 RVA: 0x000815CB File Offset: 0x0007F7CB
 public static void gmBoss5TurretInitSlideCover(AppMain.GMS_BOSS5_TURRET_WORK trt_work, int slide_type)
 {
     trt_work.cvr_slide_type = slide_type;
     if (slide_type == 0)
     {
         trt_work.cvr_slide_ratio = 0f;
         return;
     }
     trt_work.cvr_slide_ratio = 1f;
 }
Пример #14
0
 public static void gmBoss5TurretProcUpdateAppear(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.gmBoss5TurretUpdateDirFacePly(trt_work);
     if (AppMain.gmBoss5TurretUpdateSlideTurret(trt_work) == 0)
     {
         return;
     }
     trt_work.wait_timer  = AppMain.GMD_BOSS5_TURRET_FACE_TIME;
     trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateFace);
 }
Пример #15
0
 // Token: 0x06000E81 RID: 3713 RVA: 0x000818BC File Offset: 0x0007FABC
 public static void gmBoss5TurretProcUpdateFire(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
     if (AppMain.gmBoss5TurretUpdateVulcanBurstShot(trt_work) != 0 || (gms_BOSS5_BODY_WORK.flag & 512U) != 0U)
     {
         AppMain.gmBoss5TurretClearVulcanBurstShot(trt_work);
         AppMain.gmBoss5TurretInitSlideTurret(trt_work, 1);
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateDisappear;
     }
 }
Пример #16
0
 public static void gmBoss5TurretGetVulcanBulletPos(
     AppMain.GMS_BOSS5_TURRET_WORK trt_work,
     ref AppMain.VecFx32 out_pos)
 {
     AppMain.VecFx32         src_ofst_pos  = new AppMain.VecFx32(0, 0, AppMain.GMD_BOSS5_TURRET_VULCAN_BULLET_OFST_FORWARD);
     AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)trt_work);
     AppMain.VecFx32         dest_ofst_pos;
     AppMain.gmBoss5TurretGetDispRotatedOfstPos(trt_work, ref src_ofst_pos, out dest_ofst_pos);
     AppMain.VEC_Set(ref out_pos, obsObjectWork.pos.x + dest_ofst_pos.x, obsObjectWork.pos.y + dest_ofst_pos.y, obsObjectWork.pos.z + AppMain.GMD_BOSS5_TURRET_VULCAN_BULLET_OFST_Z);
 }
Пример #17
0
 public static void gmBoss5TurretProcUpdateFire(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.GMS_BOSS5_BODY_WORK parentObj = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)trt_work).parent_obj;
     if (AppMain.gmBoss5TurretUpdateVulcanBurstShot(trt_work) == 0 && ((int)parentObj.flag & 512) == 0)
     {
         return;
     }
     AppMain.gmBoss5TurretClearVulcanBurstShot(trt_work);
     AppMain.gmBoss5TurretInitSlideTurret(trt_work, 1);
     trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateDisappear);
 }
Пример #18
0
    public static void gmBoss5TurretSetRoundFaceRot(
        AppMain.GMS_BOSS5_TURRET_WORK trt_work,
        int dir_z_angle,
        int tilt_near_angle)
    {
        int rz = (int)((long)ushort.MaxValue & (long)-dir_z_angle);

        AppMain.nnMakeRotateXZYQuaternion(out trt_work.disp_quat, AppMain.AKM_DEGtoA32(90), -tilt_near_angle, AppMain.AKM_DEGtoA32(90));
        AppMain.NNS_QUATERNION dst;
        AppMain.nnMakeRotateXYZQuaternion(out dst, 0, 0, rz);
        AppMain.nnMultiplyQuaternion(ref trt_work.disp_quat, ref dst, ref trt_work.disp_quat);
    }
 // Token: 0x06000E7B RID: 3707 RVA: 0x000816D4 File Offset: 0x0007F8D4
 public static void gmBoss5TurretMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS5_TURRET_WORK gms_BOSS5_TURRET_WORK = (AppMain.GMS_BOSS5_TURRET_WORK)obj_work;
     AppMain.GMS_BOSS5_BODY_WORK   gms_BOSS5_BODY_WORK   = (AppMain.GMS_BOSS5_BODY_WORK)obj_work.parent_obj;
     AppMain.NNS_MATRIX            nns_MATRIX            = AppMain.gmBoss5TurretMain_trt_ofst;
     if (gms_BOSS5_TURRET_WORK.proc_update != null)
     {
         gms_BOSS5_TURRET_WORK.proc_update(gms_BOSS5_TURRET_WORK);
     }
     AppMain.nnMakeTranslateMatrix(nns_MATRIX, 0f, gms_BOSS5_TURRET_WORK.trt_slide_length, 0f);
     AppMain.GmBsCmnUpdateObject3DNNStuckWithNodeRelative(obj_work, gms_BOSS5_BODY_WORK.snm_work, gms_BOSS5_BODY_WORK.pole_snm_reg_id, 0, obj_work.parent_obj.pos, gms_BOSS5_BODY_WORK.pivot_prev_pos, nns_MATRIX);
     AppMain.gmBoss5TurretUpdateDispRot(gms_BOSS5_TURRET_WORK);
 }
    // Token: 0x06000E71 RID: 3697 RVA: 0x000812B0 File Offset: 0x0007F4B0
    public static void gmBoss5TurretUpdateDirFacePly(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GmBsCmnGetPlayerObj();
        AppMain.gmBoss5TurretUpdateDirFollowingPos(trt_work, ref obs_OBJECT_WORK.pos, AppMain.GMD_BOSS5_TURRET_FACE_PLY_SPD_DEG);
        float num = AppMain.nnSin(trt_work.fire_dir_z);

        if (num < 0f)
        {
            num = 0f;
        }
        int tilt_near_angle = (int)(num * (float)(65535L & (long)AppMain.GMD_BOSS5_TURRET_TILT_NEAR_ANGLE));

        AppMain.gmBoss5TurretSetRoundFaceRot(trt_work, trt_work.fire_dir_z, tilt_near_angle);
    }
Пример #21
0
    public static void gmBoss5TurretUpdateDirFacePly(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.OBS_OBJECT_WORK playerObj = AppMain.GmBsCmnGetPlayerObj();
        AppMain.gmBoss5TurretUpdateDirFollowingPos(trt_work, ref playerObj.pos, AppMain.GMD_BOSS5_TURRET_FACE_PLY_SPD_DEG);
        float num = AppMain.nnSin(trt_work.fire_dir_z);

        if ((double)num < 0.0)
        {
            num = 0.0f;
        }
        int tilt_near_angle = (int)((double)num * (double)((long)ushort.MaxValue & (long)AppMain.GMD_BOSS5_TURRET_TILT_NEAR_ANGLE));

        AppMain.gmBoss5TurretSetRoundFaceRot(trt_work, trt_work.fire_dir_z, tilt_near_angle);
    }
Пример #22
0
    // Token: 0x06000E6A RID: 3690 RVA: 0x00080FB4 File Offset: 0x0007F1B4
    public static void gmBoss5TurretGetDispRotatedOfstPos(AppMain.GMS_BOSS5_TURRET_WORK trt_work, ref AppMain.VecFx32 src_ofst_pos, out AppMain.VecFx32 dest_ofst_pos)
    {
        NNS_VECTOR nns_VECTOR = GlobalPool <NNS_VECTOR> .Alloc();

        NNS_MATRIX nns_MATRIX = GlobalPool <NNS_MATRIX> .Alloc();

        AppMain.amVectorSet(nns_VECTOR, AppMain.FX_FX32_TO_F32(src_ofst_pos.x), AppMain.FX_FX32_TO_F32(-src_ofst_pos.y), AppMain.FX_FX32_TO_F32(src_ofst_pos.z));
        AppMain.nnMakeQuaternionMatrix(nns_MATRIX, ref trt_work.disp_quat);
        AppMain.nnTransformVector(nns_VECTOR, nns_MATRIX, nns_VECTOR);
        dest_ofst_pos = new AppMain.VecFx32(AppMain.FX_F32_TO_FX32(nns_VECTOR.x), AppMain.FX_F32_TO_FX32(-nns_VECTOR.y), AppMain.FX_F32_TO_FX32(nns_VECTOR.z));
        GlobalPool <NNS_VECTOR> .Release(nns_VECTOR);

        GlobalPool <NNS_MATRIX> .Release(nns_MATRIX);
    }
Пример #23
0
    public static void gmBoss5TurretEndPartsPose(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.GMS_BOSS5_BODY_WORK parentObj = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)trt_work).parent_obj;
        int[] numArray = new int[2]
        {
            parentObj.pole_cnm_reg_id,
            parentObj.cover_cnm_reg_id
        };
        int num = 2;

        for (int index = 0; index < num; ++index)
        {
            AppMain.GmBsCmnEnableCNMMtxNode(parentObj.cnm_mgr_work, numArray[index], 0);
        }
    }
Пример #24
0
    public static int gmBoss5TurretSeqGetVulcanShotNum(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        int life = ((AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)trt_work).parent_obj).mgr_work.life;

        AppMain.GMS_BOSS5_TURRET_SEQ_VUL_SHOT_INFO turretSeqVulShotInfo = (AppMain.GMS_BOSS5_TURRET_SEQ_VUL_SHOT_INFO)null;
        for (int index = 0; index < 5; ++index)
        {
            if (life <= AppMain.gm_boss5_trt_seq_vul_shot_info_tbl[index].life_threshold)
            {
                turretSeqVulShotInfo = AppMain.gm_boss5_trt_seq_vul_shot_info_tbl[index];
                break;
            }
        }
        return(turretSeqVulShotInfo == null ? 0 : turretSeqVulShotInfo.shot_num);
    }
Пример #25
0
    // Token: 0x06000E76 RID: 3702 RVA: 0x00081488 File Offset: 0x0007F688
    public static void gmBoss5TurretEndPartsPose(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
        int[] array = new int[]
        {
            gms_BOSS5_BODY_WORK.pole_cnm_reg_id,
            gms_BOSS5_BODY_WORK.cover_cnm_reg_id
        };
        int num = 2;

        for (int i = 0; i < num; i++)
        {
            AppMain.GmBsCmnEnableCNMMtxNode(gms_BOSS5_BODY_WORK.cnm_mgr_work, array[i], 0);
        }
    }
Пример #26
0
 // Token: 0x06000E7D RID: 3709 RVA: 0x00081764 File Offset: 0x0007F964
 public static void gmBoss5TurretProcUpdateStandby(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
     if ((gms_BOSS5_BODY_WORK.flag & 512U) != 0U || AppMain.gmBoss5TurretSeqGetVulcanShotNum(trt_work) <= 0)
     {
         return;
     }
     if (trt_work.wait_timer != 0U)
     {
         trt_work.wait_timer -= 1U;
         return;
     }
     AppMain.gmBoss5TurretInitPartsPose(trt_work);
     AppMain.gmBoss5TurretInitSlideCover(trt_work, 0);
     AppMain.gmBoss5TurretUpdateDirFollowingPos(trt_work, ref AppMain.GmBsCmnGetPlayerObj().pos, 360f);
     trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateOpen;
 }
Пример #27
0
 public static void gmBoss5TurretProcUpdateStandby(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     if (((int)((AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)trt_work).parent_obj).flag & 512) != 0 || AppMain.gmBoss5TurretSeqGetVulcanShotNum(trt_work) <= 0)
     {
         return;
     }
     if (trt_work.wait_timer != 0U)
     {
         --trt_work.wait_timer;
     }
     else
     {
         AppMain.gmBoss5TurretInitPartsPose(trt_work);
         AppMain.gmBoss5TurretInitSlideCover(trt_work, 0);
         AppMain.gmBoss5TurretUpdateDirFollowingPos(trt_work, ref AppMain.GmBsCmnGetPlayerObj().pos, 360f);
         trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateOpen);
     }
 }
Пример #28
0
 // Token: 0x06000E80 RID: 3712 RVA: 0x00081838 File Offset: 0x0007FA38
 public static void gmBoss5TurretProcUpdateFace(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
     AppMain.gmBoss5TurretUpdateDirFacePly(trt_work);
     if ((gms_BOSS5_BODY_WORK.flag & 512U) != 0U)
     {
         trt_work.wait_timer  = 0U;
         trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateDisappear;
         return;
     }
     if (trt_work.wait_timer != 0U)
     {
         trt_work.wait_timer -= 1U;
         return;
     }
     AppMain.gmBoss5TurretInitVulcanBurstShot(trt_work, AppMain.gmBoss5TurretSeqGetVulcanShotNum(trt_work));
     trt_work.proc_update = AppMain.gmBoss5TurretProcUpdateFire;
 }
Пример #29
0
 public static void gmBoss5TurretProcUpdateFace(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
 {
     AppMain.GMS_BOSS5_BODY_WORK parentObj = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ((object)trt_work).parent_obj;
     AppMain.gmBoss5TurretUpdateDirFacePly(trt_work);
     if (((int)parentObj.flag & 512) != 0)
     {
         trt_work.wait_timer  = 0U;
         trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateDisappear);
     }
     else if (trt_work.wait_timer != 0U)
     {
         --trt_work.wait_timer;
     }
     else
     {
         AppMain.gmBoss5TurretInitVulcanBurstShot(trt_work, AppMain.gmBoss5TurretSeqGetVulcanShotNum(trt_work));
         trt_work.proc_update = new AppMain.MPP_VOID_GMS_BOSS5_TURRET_WORK(AppMain.gmBoss5TurretProcUpdateFire);
     }
 }
Пример #30
0
    // Token: 0x06000E85 RID: 3717 RVA: 0x000819BC File Offset: 0x0007FBBC
    public static int gmBoss5TurretSeqGetVulcanShotNum(AppMain.GMS_BOSS5_TURRET_WORK trt_work)
    {
        AppMain.GMS_BOSS5_BODY_WORK gms_BOSS5_BODY_WORK = (AppMain.GMS_BOSS5_BODY_WORK)AppMain.GMM_BS_OBJ(trt_work).parent_obj;
        int life = gms_BOSS5_BODY_WORK.mgr_work.life;

        AppMain.GMS_BOSS5_TURRET_SEQ_VUL_SHOT_INFO gms_BOSS5_TURRET_SEQ_VUL_SHOT_INFO = null;
        for (int i = 0; i < 5; i++)
        {
            if (life <= AppMain.gm_boss5_trt_seq_vul_shot_info_tbl[i].life_threshold)
            {
                gms_BOSS5_TURRET_SEQ_VUL_SHOT_INFO = AppMain.gm_boss5_trt_seq_vul_shot_info_tbl[i];
                break;
            }
        }
        if (gms_BOSS5_TURRET_SEQ_VUL_SHOT_INFO == null)
        {
            return(0);
        }
        return(gms_BOSS5_TURRET_SEQ_VUL_SHOT_INFO.shot_num);
    }