Example #1
0
 // Token: 0x060008E3 RID: 2275 RVA: 0x0005104C File Offset: 0x0004F24C
 public static void gmGmkBreakObjStart(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)obj_work;
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.obj    = obj_work;
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.width  = ( ushort )AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][0];
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.height = ( ushort )AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][1];
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_x = AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][2];
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_y = AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][3];
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.dir    = 0;
     gms_GMK_BOBJ_WORK.breakrect_left  = ( short )(gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_x - 4);
     gms_GMK_BOBJ_WORK.breakrect_right = ( short )(gms_GMK_BOBJ_WORK.breakrect_left + ( short )gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.width + 4);
     gms_GMK_BOBJ_WORK.breakrect_top   = ( short )(gms_GMK_BOBJ_WORK.gmk_work.ene_com.col_work.obj_col.ofst_y - 4);
     gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[1].flag &= 4294967291U;
     AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[0];
     obs_RECT_WORK.ppDef = AppMain.gmGmkBreakObjHit;
     obs_RECT_WORK.ppHit = null;
     AppMain.ObjRectAtkSet(obs_RECT_WORK, 0, 0);
     AppMain.ObjRectDefSet(obs_RECT_WORK, 65534, 0);
     AppMain.ObjRectWorkSet(obs_RECT_WORK, AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][4], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][5], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][6], AppMain.tbl_gm_gmk_bobj_col_rect[gms_GMK_BOBJ_WORK.zone_type][7]);
     obs_RECT_WORK       = gms_GMK_BOBJ_WORK.gmk_work.ene_com.rect_work[2];
     obs_RECT_WORK.ppDef = null;
     obs_RECT_WORK.ppHit = null;
     AppMain.ObjRectAtkSet(obs_RECT_WORK, 0, 0);
     AppMain.ObjRectDefSet(obs_RECT_WORK, 65534, 0);
     AppMain.ObjRectWorkSet(obs_RECT_WORK, gms_GMK_BOBJ_WORK.breakrect_left, gms_GMK_BOBJ_WORK.breakrect_top, gms_GMK_BOBJ_WORK.breakrect_right, 0);
     gms_GMK_BOBJ_WORK.hitpass  = false;
     gms_GMK_BOBJ_WORK.hitcheck = 0;
     obj_work.ppFunc            = AppMain.gmGmkBreakObjStay;
 }
Example #2
0
 public static void gmGmkBreakObjStart(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)obj_work;
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.obj    = obj_work;
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.width  = (ushort)AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][0];
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.height = (ushort)AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][1];
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_x = AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][2];
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_y = AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][3];
     gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.dir    = (ushort)0;
     gmsGmkBobjWork.breakrect_left  = (short)((int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_x - 4);
     gmsGmkBobjWork.breakrect_right = (short)((int)gmsGmkBobjWork.breakrect_left + (int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.width + 4);
     gmsGmkBobjWork.breakrect_top   = (short)((int)gmsGmkBobjWork.gmk_work.ene_com.col_work.obj_col.ofst_y - 4);
     gmsGmkBobjWork.gmk_work.ene_com.rect_work[1].flag &= 4294967291U;
     AppMain.OBS_RECT_WORK pRec1 = gmsGmkBobjWork.gmk_work.ene_com.rect_work[0];
     pRec1.ppDef = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmGmkBreakObjHit);
     pRec1.ppHit = (AppMain.OBS_RECT_WORK_Delegate1)null;
     AppMain.ObjRectAtkSet(pRec1, (ushort)0, (short)0);
     AppMain.ObjRectDefSet(pRec1, (ushort)65534, (short)0);
     AppMain.ObjRectWorkSet(pRec1, AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][4], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][5], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][6], AppMain.tbl_gm_gmk_bobj_col_rect[gmsGmkBobjWork.zone_type][7]);
     AppMain.OBS_RECT_WORK pRec2 = gmsGmkBobjWork.gmk_work.ene_com.rect_work[2];
     pRec2.ppDef = (AppMain.OBS_RECT_WORK_Delegate1)null;
     pRec2.ppHit = (AppMain.OBS_RECT_WORK_Delegate1)null;
     AppMain.ObjRectAtkSet(pRec2, (ushort)0, (short)0);
     AppMain.ObjRectDefSet(pRec2, (ushort)65534, (short)0);
     AppMain.ObjRectWorkSet(pRec2, gmsGmkBobjWork.breakrect_left, gmsGmkBobjWork.breakrect_top, gmsGmkBobjWork.breakrect_right, (short)0);
     gmsGmkBobjWork.hitpass  = false;
     gmsGmkBobjWork.hitcheck = (short)0;
     obj_work.ppFunc         = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkBreakObjStay);
 }
Example #3
0
 // Token: 0x060008E4 RID: 2276 RVA: 0x000512B8 File Offset: 0x0004F4B8
 public static void gmGmkBreakObjStay(OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)obj_work;
     if (!gms_GMK_BOBJ_WORK.hitpass && gms_GMK_BOBJ_WORK.hitcheck != 0)
     {
         AppMain.gmGmkBreakObjStart(obj_work);
     }
     gms_GMK_BOBJ_WORK.hitpass = false;
 }
Example #4
0
 public static void gmGmkBreakObjStay(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_GMK_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)obj_work;
     if (!gmsGmkBobjWork.hitpass && gmsGmkBobjWork.hitcheck != (short)0)
     {
         AppMain.gmGmkBreakObjStart(obj_work);
     }
     gmsGmkBobjWork.hitpass = false;
 }
 // Token: 0x060008E0 RID: 2272 RVA: 0x00050F40 File Offset: 0x0004F140
 private static AppMain.OBS_OBJECT_WORK GmGmkBreakObjInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
 {
     AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_GMK_BOBJ_WORK(), "GMK_BREAK_LAND_MAIN");
     AppMain.OBS_OBJECT_WORK   obs_OBJECT_WORK   = (AppMain.OBS_OBJECT_WORK)gms_GMK_BOBJ_WORK;
     AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)gms_GMK_BOBJ_WORK;
     AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_gmk_breakobj_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
     obs_OBJECT_WORK.pos.z       = -4096;
     obs_OBJECT_WORK.move_flag  |= 8448U;
     obs_OBJECT_WORK.disp_flag  |= 4194304U;
     gms_GMK_BOBJ_WORK.zone_type = AppMain.g_gm_gamedat_zone_type_tbl[( int )AppMain.g_gs_main_sys_info.stage_id];
     AppMain.gmGmkBreakObjStart(obs_OBJECT_WORK);
     return(obs_OBJECT_WORK);
 }
Example #6
0
 private static AppMain.OBS_OBJECT_WORK GmGmkBreakObjInit(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.GMS_GMK_BOBJ_WORK work           = (AppMain.GMS_GMK_BOBJ_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_BOBJ_WORK()), "GMK_BREAK_LAND_MAIN");
     AppMain.OBS_OBJECT_WORK   obj_work       = (AppMain.OBS_OBJECT_WORK)work;
     AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work;
     AppMain.ObjObjectCopyAction3dNNModel(obj_work, AppMain.gm_gmk_breakobj_obj_3d_list[0], gmsEnemy3DWork.obj_3d);
     obj_work.pos.z      = -4096;
     obj_work.move_flag |= 8448U;
     obj_work.disp_flag |= 4194304U;
     work.zone_type      = AppMain.g_gm_gamedat_zone_type_tbl[(int)AppMain.g_gs_main_sys_info.stage_id];
     AppMain.gmGmkBreakObjStart(obj_work);
     return(obj_work);
 }
Example #7
0
    // Token: 0x060008E5 RID: 2277 RVA: 0x000512EC File Offset: 0x0004F4EC
    private static void gmGmkBreakObjHit(AppMain.OBS_RECT_WORK mine_rect, AppMain.OBS_RECT_WORK match_rect)
    {
        OBS_OBJECT_WORK parent_obj      = mine_rect.parent_obj;
        GMS_PLAYER_WORK gms_PLAYER_WORK = (GMS_PLAYER_WORK)match_rect.parent_obj;

        if (gms_PLAYER_WORK == AppMain.g_gm_main_system.ply_work[( int )(( UIntPtr )0)])
        {
            AppMain.GMS_GMK_BOBJ_WORK gms_GMK_BOBJ_WORK = (AppMain.GMS_GMK_BOBJ_WORK)parent_obj;
            AppMain.OBS_RECT_WORK     obs_RECT_WORK     = gms_GMK_BOBJ_WORK.gmk_work.ene_com.obj_work.rect_work[0];
            if (gms_PLAYER_WORK.act_state == 39 || gms_PLAYER_WORK.act_state == 31 || (gms_PLAYER_WORK.player_flag & 262144U) != 0U)
            {
                short  num3;
                short  num2;
                short  num  = num2 = (num3 = 0);
                ushort vect = 0;
                if (parent_obj.pos.x >= gms_PLAYER_WORK.obj_work.pos.x)
                {
                    num2 = ( short )((parent_obj.pos.x >> 12) + ( int )obs_RECT_WORK.rect.left - ( int )match_rect.rect.right);
                    num2 = ( short )((gms_PLAYER_WORK.obj_work.pos.x >> 12) - ( int )num2);
                    gms_GMK_BOBJ_WORK.hitcheck = 1;
                }
                else
                {
                    num = ( short )((parent_obj.pos.x >> 12) + ( int )obs_RECT_WORK.rect.right - ( int )match_rect.rect.left - (gms_PLAYER_WORK.obj_work.pos.x >> 12));
                    gms_GMK_BOBJ_WORK.hitcheck = 1;
                    vect = 32768;
                }
                if (parent_obj.pos.y >= gms_PLAYER_WORK.obj_work.pos.y)
                {
                    num3 = ( short )((parent_obj.pos.y >> 12) + ( int )obs_RECT_WORK.rect.top - ( int )match_rect.rect.bottom);
                    num3 = ( short )((gms_PLAYER_WORK.obj_work.pos.y >> 12) - ( int )num3);
                    gms_GMK_BOBJ_WORK.hitcheck = 1;
                }
                if (obs_RECT_WORK.rect.right > gms_GMK_BOBJ_WORK.breakrect_right)
                {
                    AppMain.OBS_RECT rect = obs_RECT_WORK.rect;
                    rect.right -= num;
                    if (obs_RECT_WORK.rect.right < gms_GMK_BOBJ_WORK.breakrect_right)
                    {
                        obs_RECT_WORK.rect.right = gms_GMK_BOBJ_WORK.breakrect_right;
                    }
                }
                if (obs_RECT_WORK.rect.left < gms_GMK_BOBJ_WORK.breakrect_left)
                {
                    AppMain.OBS_RECT rect2 = obs_RECT_WORK.rect;
                    rect2.left += num2;
                    if (obs_RECT_WORK.rect.left > gms_GMK_BOBJ_WORK.breakrect_left)
                    {
                        obs_RECT_WORK.rect.left = gms_GMK_BOBJ_WORK.breakrect_left;
                    }
                }
                if (obs_RECT_WORK.rect.top < gms_GMK_BOBJ_WORK.breakrect_top)
                {
                    AppMain.OBS_RECT rect3 = obs_RECT_WORK.rect;
                    rect3.top += num3;
                    if (obs_RECT_WORK.rect.top > gms_GMK_BOBJ_WORK.breakrect_top)
                    {
                        obs_RECT_WORK.rect.top = gms_GMK_BOBJ_WORK.breakrect_top;
                    }
                }
                gms_GMK_BOBJ_WORK.hitpass = true;
                short num4 = (short)(gms_PLAYER_WORK.obj_work.spd.x >> 12);
                short num5 = (short)(gms_PLAYER_WORK.obj_work.spd.y >> 12);
                if ((obs_RECT_WORK.rect.right + num4 <= gms_GMK_BOBJ_WORK.breakrect_right || obs_RECT_WORK.rect.left + num4 >= gms_GMK_BOBJ_WORK.breakrect_left) && obs_RECT_WORK.rect.top + num5 >= gms_GMK_BOBJ_WORK.breakrect_top)
                {
                    ushort efct_zone_idx = AppMain.tbl_gmk_breakobj_effect[gms_GMK_BOBJ_WORK.zone_type];
                    switch (gms_GMK_BOBJ_WORK.zone_type)
                    {
                    case 0:
                        if (AppMain.g_gs_main_sys_info.stage_id == 2)
                        {
                            efct_zone_idx = 3;
                        }
                        break;

                    case 2:
                        if (AppMain.g_gm_main_system.water_level != 65535 && ( int )AppMain.g_gm_main_system.water_level < (parent_obj.pos.y >> 12) + ( int )gms_GMK_BOBJ_WORK.breakrect_top)
                        {
                            efct_zone_idx = 11;
                        }
                        break;
                    }
                    OBS_OBJECT_WORK obs_OBJECT_WORK = (OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate(null, gms_GMK_BOBJ_WORK.zone_type, (int)efct_zone_idx);
                    obs_OBJECT_WORK.pos.x = parent_obj.pos.x;
                    obs_OBJECT_WORK.pos.y = parent_obj.pos.y;
                    obs_OBJECT_WORK.pos.z = parent_obj.pos.z;
                    AppMain.gmGmkBreakObj_CreateParts(parent_obj, gms_GMK_BOBJ_WORK.zone_type, vect);
                    gms_GMK_BOBJ_WORK.gmk_work.ene_com.obj_work.col_work.obj_col.obj = null;
                    AppMain.GmEnemyDefaultDefFunc(mine_rect, match_rect);
                    GmSound.PlaySE("BreakOBJ");
                    GmPlayer.AddScore(gms_PLAYER_WORK, 100, parent_obj.pos.x, parent_obj.pos.y);
                }
            }
        }
    }
Example #8
0
    private static void gmGmkBreakObjHit(
        AppMain.OBS_RECT_WORK mine_rect,
        AppMain.OBS_RECT_WORK match_rect)
    {
        AppMain.OBS_OBJECT_WORK parentObj1 = mine_rect.parent_obj;
        AppMain.GMS_PLAYER_WORK parentObj2 = (AppMain.GMS_PLAYER_WORK)match_rect.parent_obj;
        if (parentObj2 != AppMain.g_gm_main_system.ply_work[0])
        {
            return;
        }
        AppMain.GMS_GMK_BOBJ_WORK gmsGmkBobjWork = (AppMain.GMS_GMK_BOBJ_WORK)parentObj1;
        AppMain.OBS_RECT_WORK     obsRectWork    = gmsGmkBobjWork.gmk_work.ene_com.obj_work.rect_work[0];
        if (parentObj2.act_state != 39 && parentObj2.act_state != 31 && ((int)parentObj2.player_flag & 262144) == 0)
        {
            return;
        }
        int    num1;
        short  num2 = (short)(num1 = 0);
        short  num3 = (short)num1;
        short  num4 = (short)num1;
        ushort vect = 0;

        if (parentObj1.pos.x >= parentObj2.obj_work.pos.x)
        {
            short num5 = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.left - (int)match_rect.rect.right);
            num4 = (short)((parentObj2.obj_work.pos.x >> 12) - (int)num5);
            gmsGmkBobjWork.hitcheck = (short)1;
        }
        else
        {
            num3 = (short)((parentObj1.pos.x >> 12) + (int)obsRectWork.rect.right - (int)match_rect.rect.left - (parentObj2.obj_work.pos.x >> 12));
            gmsGmkBobjWork.hitcheck = (short)1;
            vect = (ushort)32768;
        }
        if (parentObj1.pos.y >= parentObj2.obj_work.pos.y)
        {
            short num5 = (short)((parentObj1.pos.y >> 12) + (int)obsRectWork.rect.top - (int)match_rect.rect.bottom);
            num2 = (short)((parentObj2.obj_work.pos.y >> 12) - (int)num5);
            gmsGmkBobjWork.hitcheck = (short)1;
        }
        if ((int)obsRectWork.rect.right > (int)gmsGmkBobjWork.breakrect_right)
        {
            obsRectWork.rect.right -= num3;
            if ((int)obsRectWork.rect.right < (int)gmsGmkBobjWork.breakrect_right)
            {
                obsRectWork.rect.right = gmsGmkBobjWork.breakrect_right;
            }
        }
        if ((int)obsRectWork.rect.left < (int)gmsGmkBobjWork.breakrect_left)
        {
            obsRectWork.rect.left += num4;
            if ((int)obsRectWork.rect.left > (int)gmsGmkBobjWork.breakrect_left)
            {
                obsRectWork.rect.left = gmsGmkBobjWork.breakrect_left;
            }
        }
        if ((int)obsRectWork.rect.top < (int)gmsGmkBobjWork.breakrect_top)
        {
            obsRectWork.rect.top += num2;
            if ((int)obsRectWork.rect.top > (int)gmsGmkBobjWork.breakrect_top)
            {
                obsRectWork.rect.top = gmsGmkBobjWork.breakrect_top;
            }
        }
        gmsGmkBobjWork.hitpass = true;
        short num6 = (short)(parentObj2.obj_work.spd.x >> 12);
        short num7 = (short)(parentObj2.obj_work.spd.y >> 12);

        if ((int)obsRectWork.rect.right + (int)num6 > (int)gmsGmkBobjWork.breakrect_right && (int)obsRectWork.rect.left + (int)num6 < (int)gmsGmkBobjWork.breakrect_left || (int)obsRectWork.rect.top + (int)num7 < (int)gmsGmkBobjWork.breakrect_top)
        {
            return;
        }
        ushort num8 = AppMain.tbl_gmk_breakobj_effect[gmsGmkBobjWork.zone_type];

        switch (gmsGmkBobjWork.zone_type)
        {
        case 0:
            if (AppMain.g_gs_main_sys_info.stage_id == (ushort)2)
            {
                num8 = (ushort)3;
                break;
            }
            break;

        case 2:
            if (AppMain.g_gm_main_system.water_level != ushort.MaxValue && (int)AppMain.g_gm_main_system.water_level < (parentObj1.pos.y >> 12) + (int)gmsGmkBobjWork.breakrect_top)
            {
                num8 = (ushort)11;
                break;
            }
            break;
        }
        AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)AppMain.GmEfctZoneEsCreate((AppMain.OBS_OBJECT_WORK)null, gmsGmkBobjWork.zone_type, (int)num8);
        obsObjectWork.pos.x = parentObj1.pos.x;
        obsObjectWork.pos.y = parentObj1.pos.y;
        obsObjectWork.pos.z = parentObj1.pos.z;
        AppMain.gmGmkBreakObj_CreateParts(parentObj1, gmsGmkBobjWork.zone_type, vect);
        gmsGmkBobjWork.gmk_work.ene_com.obj_work.col_work.obj_col.obj = (AppMain.OBS_OBJECT_WORK)null;
        AppMain.GmEnemyDefaultDefFunc(mine_rect, match_rect);
        AppMain.GmSoundPlaySE("BreakOBJ");
        AppMain.GmPlayerAddScore(parentObj2, 100, parentObj1.pos.x, parentObj1.pos.y);
    }