Exemplo n.º 1
0
    // Token: 0x0600157D RID: 5501 RVA: 0x000BAA4C File Offset: 0x000B8C4C
    private static void gmGmkFlipperMainReady(OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work;
        OBS_OBJECT_WORK           target_obj        = gms_ENEMY_3D_WORK.ene_com.target_obj;

        AppMain.gmGmkFlipperUpdateAngle(obj_work);
        int num = 1;

        if (num != 0)
        {
            GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)];
            if (AppMain.gmGmkFlipperCheckControlPlayer() == 0)
            {
                AppMain.gmGmkFlipperChangeModeWait(obj_work);
                return;
            }
            if (AppMain.gmGmkFlipperCheckKeyHit(obj_work, gms_PLAYER_WORK) == 0)
            {
                return;
            }
            if (AppMain.gmGmkFlipperCheckHook(obj_work) != 0)
            {
                target_obj.spd.x = 0;
                target_obj.spd.y = 0;
                AppMain.gmGmkFlipperChangeModeHook(obj_work);
                return;
            }
            int num2 = 12288;
            int num3 = -53248;
            int num4 = AppMain.gmGmkFlipperCalcType((int)gms_ENEMY_3D_WORK.ene_com.eve_rec.id);
            if (num4 == 1)
            {
                num2 = -num2;
            }
            num2 += target_obj.pos.x - obj_work.pos.x >> 2;
            int num5 = (102400 - AppMain.MTM_MATH_ABS(target_obj.pos.x - obj_work.pos.x)) / 10;
            if (num5 > 0)
            {
                num3 += num5;
            }
            int num6 = AppMain.FX_F32_TO_FX32((100f + (float)gms_ENEMY_3D_WORK.ene_com.eve_rec.left) * 0.01f);
            if (num6 < 0)
            {
                num6 = 0;
            }
            int num7 = AppMain.FX_F32_TO_FX32((100f + (float)gms_ENEMY_3D_WORK.ene_com.eve_rec.top) * 0.01f);
            if (num7 < 0)
            {
                num7 = 0;
            }
            num2 = AppMain.FX_Mul(num2, num6);
            num3 = AppMain.FX_Mul(num3, num7);
            int flag_no_recover_homing = 0;
            if ((gms_ENEMY_3D_WORK.ene_com.eve_rec.flag & 1) != 0)
            {
                flag_no_recover_homing = 1;
            }
            int no_spddown_timer = 0;
            if ((gms_ENEMY_3D_WORK.ene_com.eve_rec.flag & 2) != 0)
            {
                no_spddown_timer = 30;
            }
            GmPlayer.SetAtk(gms_PLAYER_WORK);
            AppMain.GmPlySeqInitPinballAir(gms_PLAYER_WORK, num2, num3, 5, flag_no_recover_homing, no_spddown_timer);
            AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctCmnEsCreate(obj_work, 16);
            gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.x = target_obj.pos.x;
            gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.y = target_obj.pos.y;
            gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.z = 131072;
            gms_EFFECT_3DES_WORK.efct_com.obj_work.dir.z = ( ushort )(AppMain.nnArcTan2(( double )AppMain.FX_FX32_TO_F32(num3), ( double )AppMain.FX_FX32_TO_F32(num2)) - 16384);
        }
        AppMain.gmGmkFlipperChangeModeHit(obj_work);
    }