コード例 #1
0
 // Token: 0x06001B63 RID: 7011 RVA: 0x000FA9C4 File Offset: 0x000F8BC4
 private static void gmEneGardonWaitToWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gms_ENE_GARDON_WORK.shield != 0)
     {
         obj_work.spd.x = 0;
         if ((obj_work.disp_flag & 8U) != 0U)
         {
             if (gms_ENE_GARDON_WORK.shield == 1)
             {
                 AppMain.GmEneComActionSetDependHFlip(obj_work, 10, 11);
             }
             else
             {
                 AppMain.GmEneComActionSetDependHFlip(obj_work, 6, 7);
             }
             AppMain.gmEneGardonAtkRectOn(obj_work);
             gms_ENE_GARDON_WORK.shield = 0;
             obj_work.ppFunc            = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWalkWait);
         }
         return;
     }
     if (AppMain.gmEneGardonGetLength2N(obj_work) > 4)
     {
         obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWalkInit);
     }
 }
コード例 #2
0
 // Token: 0x06001B60 RID: 7008 RVA: 0x000FA8E4 File Offset: 0x000F8AE4
 private static void gmEneGardonWaitToFlipInit(AppMain.OBS_OBJECT_WORK obj_work)
 {
     obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWaitToFlipMain);
     obj_work.spd.x  = 0;
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     gms_ENE_GARDON_WORK.timer = 1;
     AppMain.GmEneComActionSetDependHFlip(obj_work, 0, 1);
 }
コード例 #3
0
 // Token: 0x06001B61 RID: 7009 RVA: 0x000FA92C File Offset: 0x000F8B2C
 private static void gmEneGardonWaitToFlipMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gms_ENE_GARDON_WORK.timer > 0)
     {
         gms_ENE_GARDON_WORK.timer--;
         return;
     }
     AppMain.gmEneGardonFlipInit(obj_work);
 }
コード例 #4
0
 // Token: 0x06001B62 RID: 7010 RVA: 0x000FA960 File Offset: 0x000F8B60
 private static void gmEneGardonWaitToWalkInit(AppMain.OBS_OBJECT_WORK obj_work)
 {
     obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWaitToWalkMain);
     obj_work.spd.x  = 0;
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     gms_ENE_GARDON_WORK.timer = 60;
     AppMain.GmEneComActionSetDependHFlip(obj_work, 0, 1);
     obj_work.disp_flag |= 4U;
     AppMain.gmEneGardonAtkRectOn(obj_work);
     gms_ENE_GARDON_WORK.shield = 0;
 }
コード例 #5
0
ファイル: GmEneGardon.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEneGardonWaitToFlipMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gmsEneGardonWork = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gmsEneGardonWork.timer > 0)
     {
         --gmsEneGardonWork.timer;
     }
     else
     {
         AppMain.gmEneGardonFlipInit(obj_work);
     }
 }
コード例 #6
0
    // Token: 0x06001B66 RID: 7014 RVA: 0x000FAADC File Offset: 0x000F8CDC
    private static int gmEneGardonSetWalkSpeed(AppMain.GMS_ENE_GARDON_WORK gardon_work)
    {
        int result = 0;

        AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)gardon_work;
        if ((obs_OBJECT_WORK.disp_flag & 1U) != 0U)
        {
            if (obs_OBJECT_WORK.obj_3d.act_id[0] == 2 && obs_OBJECT_WORK.obj_3d.frame[0] >= 20f)
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, gardon_work.spd_dec, 1024);
            }
            else if (obs_OBJECT_WORK.pos.x <= ( int )(obs_OBJECT_WORK.user_work + ( uint )gardon_work.spd_dec_dist))
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, gardon_work.spd_dec);
                result = 1;
                if (obs_OBJECT_WORK.spd.x == 0 && obs_OBJECT_WORK.pos.x > ( int )obs_OBJECT_WORK.user_work)
                {
                    obs_OBJECT_WORK.spd.x = ( int )(obs_OBJECT_WORK.user_work - ( uint )obs_OBJECT_WORK.pos.x);
                    if (obs_OBJECT_WORK.spd.x < -gardon_work.spd_dec)
                    {
                        obs_OBJECT_WORK.spd.x = -gardon_work.spd_dec;
                    }
                }
            }
            else if (obs_OBJECT_WORK.spd.x > -1024)
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -gardon_work.spd_dec, 1024);
            }
        }
        else if (obs_OBJECT_WORK.obj_3d.act_id[0] == 2 && obs_OBJECT_WORK.obj_3d.frame[0] >= 20f)
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -gardon_work.spd_dec, 1024);
        }
        else if (obs_OBJECT_WORK.pos.x >= ( int )(obs_OBJECT_WORK.user_flag - ( uint )gardon_work.spd_dec_dist))
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, gardon_work.spd_dec);
            result = 1;
            if (obs_OBJECT_WORK.spd.x == 0 && obs_OBJECT_WORK.pos.x < ( int )obs_OBJECT_WORK.user_flag)
            {
                obs_OBJECT_WORK.spd.x = ( int )(obs_OBJECT_WORK.user_flag - ( uint )obs_OBJECT_WORK.pos.x);
                if (obs_OBJECT_WORK.spd.x > gardon_work.spd_dec)
                {
                    obs_OBJECT_WORK.spd.x = gardon_work.spd_dec;
                }
            }
        }
        else if (obs_OBJECT_WORK.spd.x < 1024)
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, gardon_work.spd_dec, 1024);
        }
        return(result);
    }
コード例 #7
0
ファイル: GmEneGardon.cs プロジェクト: uwx/Sonic4Episode1
    private static int gmEneGardonSetWalkSpeed(AppMain.GMS_ENE_GARDON_WORK gardon_work)
    {
        int num = 0;

        AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)gardon_work;
        if (((int)obsObjectWork.disp_flag & 1) != 0)
        {
            if (obsObjectWork.obj_3d.act_id[0] == 2 && (double)obsObjectWork.obj_3d.frame[0] >= 20.0)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, gardon_work.spd_dec, 1024);
            }
            else if (obsObjectWork.pos.x <= (int)obsObjectWork.user_work + gardon_work.spd_dec_dist)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, gardon_work.spd_dec);
                num = 1;
                if (obsObjectWork.spd.x == 0 && obsObjectWork.pos.x > (int)obsObjectWork.user_work)
                {
                    obsObjectWork.spd.x = (int)obsObjectWork.user_work - obsObjectWork.pos.x;
                    if (obsObjectWork.spd.x < -gardon_work.spd_dec)
                    {
                        obsObjectWork.spd.x = -gardon_work.spd_dec;
                    }
                }
            }
            else if (obsObjectWork.spd.x > -1024)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -gardon_work.spd_dec, 1024);
            }
        }
        else if (obsObjectWork.obj_3d.act_id[0] == 2 && (double)obsObjectWork.obj_3d.frame[0] >= 20.0)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -gardon_work.spd_dec, 1024);
        }
        else if (obsObjectWork.pos.x >= (int)obsObjectWork.user_flag - gardon_work.spd_dec_dist)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, gardon_work.spd_dec);
            num = 1;
            if (obsObjectWork.spd.x == 0 && obsObjectWork.pos.x < (int)obsObjectWork.user_flag)
            {
                obsObjectWork.spd.x = (int)obsObjectWork.user_flag - obsObjectWork.pos.x;
                if (obsObjectWork.spd.x > gardon_work.spd_dec)
                {
                    obsObjectWork.spd.x = gardon_work.spd_dec;
                }
            }
        }
        else if (obsObjectWork.spd.x < 1024)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, gardon_work.spd_dec, 1024);
        }
        return(num);
    }
コード例 #8
0
 // Token: 0x06001B5E RID: 7006 RVA: 0x000FA780 File Offset: 0x000F8980
 private static void gmEneGardonWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gms_ENE_GARDON_WORK.shield != 0)
     {
         obj_work.spd.x = 0;
         if ((obj_work.disp_flag & 8U) != 0U)
         {
             if (gms_ENE_GARDON_WORK.shield == 1)
             {
                 AppMain.GmEneComActionSetDependHFlip(obj_work, 10, 11);
             }
             else
             {
                 AppMain.GmEneComActionSetDependHFlip(obj_work, 6, 7);
             }
             AppMain.gmEneGardonAtkRectOn(obj_work);
             gms_ENE_GARDON_WORK.shield = 0;
             obj_work.ppFunc            = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWalkWait);
         }
         return;
     }
     if ((obj_work.disp_flag & 1U) != 0U)
     {
         obj_work.spd.x = -1024;
     }
     else
     {
         obj_work.spd.x = 1024;
     }
     if (obj_work.obj_3d.frame[0] >= 40f && obj_work.obj_3d.frame[0] <= 60f)
     {
         obj_work.spd.x = 0;
     }
     if (obj_work.obj_3d.frame[0] >= 100f && obj_work.obj_3d.frame[0] <= 120f)
     {
         obj_work.spd.x = 0;
     }
     if (AppMain.gmEneGardonGetLength2N(obj_work) <= 4)
     {
         obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWaitToWalkInit);
         return;
     }
     if ((obj_work.move_flag & 4U) != 0U || AppMain.GmEneComCheckMoveLimit(obj_work, ( int )obj_work.user_work, ( int )obj_work.user_flag) == 0)
     {
         AppMain.gmEneGardonWaitToFlipInit(obj_work);
     }
 }
コード例 #9
0
 // Token: 0x06001B65 RID: 7013 RVA: 0x000FAA74 File Offset: 0x000F8C74
 private static void gmEneGardonFlipMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gms_ENE_GARDON_WORK.shield != 0)
     {
         obj_work.disp_flag ^= 1U;
         obj_work.ppFunc     = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWalkMain);
         return;
     }
     AppMain.gmEneGardonSetWalkSpeed((AppMain.GMS_ENE_GARDON_WORK)obj_work);
     if ((obj_work.disp_flag & 8U) != 0U)
     {
         obj_work.disp_flag ^= 1U;
         AppMain.gmEneGardonWalkInit(obj_work);
     }
 }
コード例 #10
0
ファイル: GmEneGardon.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEneGardonWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_GARDON_WORK gmsEneGardonWork = (AppMain.GMS_ENE_GARDON_WORK)obj_work;
     if (gmsEneGardonWork.shield != 0)
     {
         obj_work.spd.x = 0;
         if (((int)obj_work.disp_flag & 8) == 0)
         {
             return;
         }
         if (gmsEneGardonWork.shield == 1)
         {
             AppMain.GmEneComActionSetDependHFlip(obj_work, 10, 11);
         }
         else
         {
             AppMain.GmEneComActionSetDependHFlip(obj_work, 6, 7);
         }
         AppMain.gmEneGardonAtkRectOn(obj_work);
         gmsEneGardonWork.shield = 0;
         obj_work.ppFunc         = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWalkWait);
     }
     else
     {
         obj_work.spd.x = ((int)obj_work.disp_flag & 1) == 0 ? 1024 : -1024;
         if ((double)obj_work.obj_3d.frame[0] >= 40.0 && (double)obj_work.obj_3d.frame[0] <= 60.0)
         {
             obj_work.spd.x = 0;
         }
         if ((double)obj_work.obj_3d.frame[0] >= 100.0 && (double)obj_work.obj_3d.frame[0] <= 120.0)
         {
             obj_work.spd.x = 0;
         }
         if (AppMain.gmEneGardonGetLength2N(obj_work) <= 4)
         {
             obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneGardonWaitToWalkInit);
         }
         else
         {
             if (((int)obj_work.move_flag & 4) == 0 && AppMain.GmEneComCheckMoveLimit(obj_work, (int)obj_work.user_work, (int)obj_work.user_flag) != 0)
             {
                 return;
             }
             AppMain.gmEneGardonWaitToFlipInit(obj_work);
         }
     }
 }
コード例 #11
0
ファイル: GmEneGardon.cs プロジェクト: uwx/Sonic4Episode1
 private static AppMain.OBS_OBJECT_WORK GmEneGardonInit(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.OBS_OBJECT_WORK     work             = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_ENE_GARDON_WORK()), "ENE_GARDON");
     AppMain.GMS_ENEMY_3D_WORK   gmsEnemy3DWork   = (AppMain.GMS_ENEMY_3D_WORK)work;
     AppMain.GMS_ENE_GARDON_WORK gmsEneGardonWork = (AppMain.GMS_ENE_GARDON_WORK)work;
     AppMain.ObjObjectCopyAction3dNNModel(work, AppMain.gm_ene_gardon_obj_3d_list[0], gmsEnemy3DWork.obj_3d);
     AppMain.ObjObjectAction3dNNMotionLoad(work, 0, true, AppMain.ObjDataGet(679), (string)null, 0, (AppMain.AMS_AMB_HEADER)null);
     AppMain.ObjDrawObjectSetToon(work);
     work.pos.z = 0;
     AppMain.OBS_RECT_WORK pRec1 = gmsEnemy3DWork.ene_com.rect_work[1];
     AppMain.ObjRectWorkSet(pRec1, (short)-11, (short)-24, (short)11, (short)0);
     pRec1.flag |= 1024U;
     pRec1.flag |= 4U;
     AppMain.OBS_RECT_WORK pRec2 = gmsEnemy3DWork.ene_com.rect_work[0];
     pRec2.ppDef = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmEneGardonDefFunc);
     AppMain.ObjRectWorkSet(pRec2, (short)-24, (short)-32, (short)24, (short)0);
     pRec2.flag |= 1024U;
     pRec2.flag |= 4U;
     gmsEnemy3DWork.ene_com.rect_work[2].flag &= 4294967291U;
     AppMain.OBS_RECT_WORK pRec3 = gmsEnemy3DWork.ene_com.rect_work[2];
     AppMain.ObjRectWorkSet(pRec3, (short)-19, (short)-32, (short)19, (short)0);
     pRec3.flag &= 4294967291U;
     AppMain.ObjObjectFieldRectSet(work, (short)-4, (short)-8, (short)4, (short)-2);
     work.move_flag |= 128U;
     if (((int)eve_rec.flag & 1) == 0)
     {
         work.disp_flag |= 1U;
     }
     work.user_work                = (uint)(work.pos.x + ((int)eve_rec.left << 12));
     work.user_flag                = (uint)(work.pos.x + ((int)eve_rec.left + (int)eve_rec.width << 12));
     gmsEneGardonWork.spd_dec      = 51;
     gmsEneGardonWork.spd_dec_dist = 10240;
     AppMain.gmEneGardonWalkInit(work);
     work.obj_3d.use_light_flag &= 4294967294U;
     work.obj_3d.use_light_flag |= 64U;
     return(work);
 }
コード例 #12
0
    // Token: 0x06001B56 RID: 6998 RVA: 0x000F9FD4 File Offset: 0x000F81D4
    private static OBS_OBJECT_WORK GmEneGardonInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_ENE_GARDON_WORK(), "ENE_GARDON");

        AppMain.GMS_ENEMY_3D_WORK   gms_ENEMY_3D_WORK   = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
        AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_ene_gardon_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, true, AppMain.ObjDataGet(679), null, 0, null);
        AppMain.ObjDrawObjectSetToon(obs_OBJECT_WORK);
        obs_OBJECT_WORK.pos.z = 0;
        AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[1];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -11, -24, 11, 0);
        obs_RECT_WORK.flag |= 1024U;
        obs_RECT_WORK.flag |= 4U;
        obs_RECT_WORK       = gms_ENEMY_3D_WORK.ene_com.rect_work[0];
        obs_RECT_WORK.ppDef = AppMain.gmEneGardonDefFunc;
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -24, -32, 24, 0);
        obs_RECT_WORK.flag |= 1024U;
        obs_RECT_WORK.flag |= 4U;
        gms_ENEMY_3D_WORK.ene_com.rect_work[2].flag &= 4294967291U;
        obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[2];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -19, -32, 19, 0);
        obs_RECT_WORK.flag &= 4294967291U;
        AppMain.ObjObjectFieldRectSet(obs_OBJECT_WORK, -4, -8, 4, -2);
        obs_OBJECT_WORK.move_flag |= 128U;
        if ((eve_rec.flag & 1) == 0)
        {
            obs_OBJECT_WORK.disp_flag |= 1U;
        }
        obs_OBJECT_WORK.user_work        = ( uint )(obs_OBJECT_WORK.pos.x + (( int )eve_rec.left << 12));
        obs_OBJECT_WORK.user_flag        = ( uint )(obs_OBJECT_WORK.pos.x + (( int )(eve_rec.left + ( sbyte )eve_rec.width) << 12));
        gms_ENE_GARDON_WORK.spd_dec      = 51;
        gms_ENE_GARDON_WORK.spd_dec_dist = 10240;
        AppMain.gmEneGardonWalkInit(obs_OBJECT_WORK);
        obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
        obs_OBJECT_WORK.obj_3d.use_light_flag |= 64U;
        return(obs_OBJECT_WORK);
    }
コード例 #13
0
 // Token: 0x06001B5C RID: 7004 RVA: 0x000FA364 File Offset: 0x000F8564
 private static void gmEneGardonDefFunc(AppMain.OBS_RECT_WORK my_rect, AppMain.OBS_RECT_WORK your_rect)
 {
     AppMain.OBS_OBJECT_WORK     parent_obj          = my_rect.parent_obj;
     AppMain.OBS_OBJECT_WORK     parent_obj2         = your_rect.parent_obj;
     AppMain.GMS_ENE_GARDON_WORK gms_ENE_GARDON_WORK = (AppMain.GMS_ENE_GARDON_WORK)parent_obj;
     AppMain.GMS_PLAYER_WORK     gms_PLAYER_WORK     = (AppMain.GMS_PLAYER_WORK)parent_obj2;
     if (parent_obj2 != null && 1 == parent_obj2.obj_type)
     {
         if (gms_PLAYER_WORK.seq_state == 19 || gms_PLAYER_WORK.seq_state == 20)
         {
             if (AppMain.gmEneGardonIsPlayerFront(parent_obj) != 0)
             {
                 AppMain.GmEneComActionSetDependHFlip(parent_obj, 8, 9);
                 parent_obj.disp_flag      &= 4294967291U;
                 gms_ENE_GARDON_WORK.shield = 1;
                 AppMain.GmPlySeqAtkReactionInit(gms_PLAYER_WORK);
                 gms_PLAYER_WORK.obj_work.spd.y = ( int )(( float )gms_PLAYER_WORK.obj_work.spd.y * 1.5f);
                 AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctEneEsCreate(parent_obj, 5);
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.x = parent_obj.pos.x;
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.y = parent_obj.pos.y;
                 AppMain.GmEffect3DESAddDispOffset(gms_EFFECT_3DES_WORK, 0f, 30f, 0f);
                 AppMain.GmSoundPlaySE("Casino1");
                 AppMain.gmEneGardonAtkRectOff(parent_obj);
                 return;
             }
             AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
             return;
         }
         else if (parent_obj.pos.y - AppMain.FX_F32_TO_FX32(20f) > parent_obj2.pos.y)
         {
             if (AppMain.gmEneGardonIsPlayerFront(parent_obj) != 0 || (parent_obj.disp_flag & 1U) != (parent_obj2.disp_flag & 1U))
             {
                 AppMain.GmEneComActionSetDependHFlip(parent_obj, 8, 9);
                 parent_obj.disp_flag      &= 4294967291U;
                 gms_ENE_GARDON_WORK.shield = 1;
                 AppMain.GmPlySeqAtkReactionInit(gms_PLAYER_WORK);
                 gms_PLAYER_WORK.obj_work.spd.y = ( int )(( float )gms_PLAYER_WORK.obj_work.spd.y * 1.5f);
                 AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctEneEsCreate(parent_obj, 5);
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.x = parent_obj.pos.x;
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.y = parent_obj.pos.y;
                 AppMain.GmEffect3DESAddDispOffset(gms_EFFECT_3DES_WORK, 0f, 30f, 0f);
                 AppMain.GmSoundPlaySE("Casino1");
                 return;
             }
             AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
             return;
         }
         else
         {
             if (AppMain.gmEneGardonIsPlayerFront(parent_obj) != 0)
             {
                 AppMain.GmEneComActionSetDependHFlip(parent_obj, 4, 5);
                 parent_obj.disp_flag               &= 4294967291U;
                 gms_ENE_GARDON_WORK.shield          = 2;
                 gms_PLAYER_WORK.obj_work.disp_flag ^= 1U;
                 AppMain.GmPlySeqChangeSequence(gms_PLAYER_WORK, 10);
                 if (gms_PLAYER_WORK.obj_work.spd_m != 0)
                 {
                     gms_PLAYER_WORK.obj_work.spd_m = -gms_PLAYER_WORK.obj_work.spd_m;
                     if (AppMain.MTM_MATH_ABS(gms_PLAYER_WORK.obj_work.spd_m) < 32768)
                     {
                         if ((gms_PLAYER_WORK.obj_work.disp_flag & 1U) != 0U)
                         {
                             gms_PLAYER_WORK.obj_work.spd_m = -32768;
                         }
                         else
                         {
                             gms_PLAYER_WORK.obj_work.spd_m = 32768;
                         }
                     }
                 }
                 else if (parent_obj.pos.x > gms_PLAYER_WORK.obj_work.pos.x)
                 {
                     gms_PLAYER_WORK.obj_work.spd_m      = -49152;
                     gms_PLAYER_WORK.obj_work.disp_flag |= 1U;
                 }
                 else
                 {
                     gms_PLAYER_WORK.obj_work.spd_m      = 49152;
                     gms_PLAYER_WORK.obj_work.disp_flag &= 4294967294U;
                 }
                 AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctEneEsCreate(parent_obj, 5);
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.x = parent_obj.pos.x;
                 gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.y = parent_obj.pos.y;
                 AppMain.GmSoundPlaySE("Casino1");
                 return;
             }
             AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
         }
     }
 }
コード例 #14
0
ファイル: GmEneGardon.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEneGardonDefFunc(
     AppMain.OBS_RECT_WORK my_rect,
     AppMain.OBS_RECT_WORK your_rect)
 {
     AppMain.OBS_OBJECT_WORK     parentObj1       = my_rect.parent_obj;
     AppMain.OBS_OBJECT_WORK     parentObj2       = your_rect.parent_obj;
     AppMain.GMS_ENE_GARDON_WORK gmsEneGardonWork = (AppMain.GMS_ENE_GARDON_WORK)parentObj1;
     AppMain.GMS_PLAYER_WORK     ply_work         = (AppMain.GMS_PLAYER_WORK)parentObj2;
     if (parentObj2 == null || (ushort)1 != parentObj2.obj_type)
     {
         return;
     }
     if (ply_work.seq_state == 19 || ply_work.seq_state == 20)
     {
         if (AppMain.gmEneGardonIsPlayerFront(parentObj1) != 0)
         {
             AppMain.GmEneComActionSetDependHFlip(parentObj1, 8, 9);
             parentObj1.disp_flag   &= 4294967291U;
             gmsEneGardonWork.shield = 1;
             AppMain.GmPlySeqAtkReactionInit(ply_work);
             ply_work.obj_work.spd.y = (int)((double)ply_work.obj_work.spd.y * 1.5);
             AppMain.GMS_EFFECT_3DES_WORK efct_3des = AppMain.GmEfctEneEsCreate(parentObj1, 5);
             efct_3des.efct_com.obj_work.pos.x = parentObj1.pos.x;
             efct_3des.efct_com.obj_work.pos.y = parentObj1.pos.y;
             AppMain.GmEffect3DESAddDispOffset(efct_3des, 0.0f, 30f, 0.0f);
             AppMain.GmSoundPlaySE("Casino1");
             AppMain.gmEneGardonAtkRectOff(parentObj1);
         }
         else
         {
             AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
         }
     }
     else if (parentObj1.pos.y - AppMain.FX_F32_TO_FX32(20f) > parentObj2.pos.y)
     {
         if (AppMain.gmEneGardonIsPlayerFront(parentObj1) != 0 || ((int)parentObj1.disp_flag & 1) != ((int)parentObj2.disp_flag & 1))
         {
             AppMain.GmEneComActionSetDependHFlip(parentObj1, 8, 9);
             parentObj1.disp_flag   &= 4294967291U;
             gmsEneGardonWork.shield = 1;
             AppMain.GmPlySeqAtkReactionInit(ply_work);
             ply_work.obj_work.spd.y = (int)((double)ply_work.obj_work.spd.y * 1.5);
             AppMain.GMS_EFFECT_3DES_WORK efct_3des = AppMain.GmEfctEneEsCreate(parentObj1, 5);
             efct_3des.efct_com.obj_work.pos.x = parentObj1.pos.x;
             efct_3des.efct_com.obj_work.pos.y = parentObj1.pos.y;
             AppMain.GmEffect3DESAddDispOffset(efct_3des, 0.0f, 30f, 0.0f);
             AppMain.GmSoundPlaySE("Casino1");
         }
         else
         {
             AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
         }
     }
     else if (AppMain.gmEneGardonIsPlayerFront(parentObj1) != 0)
     {
         AppMain.GmEneComActionSetDependHFlip(parentObj1, 4, 5);
         parentObj1.disp_flag        &= 4294967291U;
         gmsEneGardonWork.shield      = 2;
         ply_work.obj_work.disp_flag ^= 1U;
         AppMain.GmPlySeqChangeSequence(ply_work, 10);
         if (ply_work.obj_work.spd_m != 0)
         {
             ply_work.obj_work.spd_m = -ply_work.obj_work.spd_m;
             if (AppMain.MTM_MATH_ABS(ply_work.obj_work.spd_m) < 32768)
             {
                 ply_work.obj_work.spd_m = ((int)ply_work.obj_work.disp_flag & 1) == 0 ? 32768 : (int)short.MinValue;
             }
         }
         else if (parentObj1.pos.x > ply_work.obj_work.pos.x)
         {
             ply_work.obj_work.spd_m      = -49152;
             ply_work.obj_work.disp_flag |= 1U;
         }
         else
         {
             ply_work.obj_work.spd_m      = 49152;
             ply_work.obj_work.disp_flag &= 4294967294U;
         }
         AppMain.GMS_EFFECT_3DES_WORK gmsEffect3DesWork = AppMain.GmEfctEneEsCreate(parentObj1, 5);
         gmsEffect3DesWork.efct_com.obj_work.pos.x = parentObj1.pos.x;
         gmsEffect3DesWork.efct_com.obj_work.pos.y = parentObj1.pos.y;
         AppMain.GmSoundPlaySE("Casino1");
     }
     else
     {
         AppMain.GmEnemyDefaultDefFunc(my_rect, your_rect);
     }
 }