Example #1
0
 private static float gmBoss3BodyUpdateMoveNormal(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.VecFx32 vecFx32_1 = new AppMain.VecFx32();
     ++body_work.move_counter;
     if ((double)body_work.move_counter >= (double)body_work.move_frame)
     {
         vecFx32_1.x = body_work.end_pos.x;
         vecFx32_1.y = body_work.end_pos.y;
         vecFx32_1.z = body_work.end_pos.z;
     }
     else
     {
         float           num       = (float)(0.5 * (1.0 - (double)AppMain.nnCos(AppMain.AKM_DEGtoA32(180f * (body_work.move_counter / body_work.move_frame)))));
         AppMain.VecFx32 vecFx32_2 = new AppMain.VecFx32();
         vecFx32_2.x = (int)((double)(body_work.end_pos.x - body_work.start_pos.x) * (double)num);
         vecFx32_2.y = (int)((double)(body_work.end_pos.y - body_work.start_pos.y) * (double)num);
         vecFx32_2.z = (int)((double)(body_work.end_pos.z - body_work.start_pos.z) * (double)num);
         vecFx32_1.x = body_work.start_pos.x + vecFx32_2.x;
         vecFx32_1.y = body_work.start_pos.y + vecFx32_2.y;
         vecFx32_1.z = body_work.start_pos.z + vecFx32_2.z;
     }
     AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
     obsObjectWork.pos.x = vecFx32_1.x;
     obsObjectWork.pos.y = vecFx32_1.y;
     obsObjectWork.pos.z = vecFx32_1.z;
     return(body_work.move_frame - body_work.move_counter);
 }
Example #2
0
 private static void gmBoss3EggmanMainFunc(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS3_BODY_WORK parentObj = (AppMain.GMS_BOSS3_BODY_WORK)obj_work.parent_obj;
     AppMain.GMS_BOSS3_EGG_WORK  egg_work  = (AppMain.GMS_BOSS3_EGG_WORK)obj_work;
     AppMain.GmBsCmnUpdateObject3DNNStuckWithNode(obj_work, parentObj.snm_work, parentObj.snm_reg_id[0], 1);
     if (egg_work.proc_update != null)
     {
         egg_work.proc_update(egg_work);
     }
     if (((int)parentObj.flag & 8388608) != 0)
     {
         parentObj.flag &= 4286578687U;
         AppMain.gmBoss3EggStateEscapeInit(egg_work);
     }
     if (((int)parentObj.flag & 536870912) != 0)
     {
         parentObj.flag &= 3758096383U;
         AppMain.gmBoss3EggStateDamageInit(egg_work);
     }
     if (((int)parentObj.flag & 16777216) != 0)
     {
         parentObj.flag &= 4278190079U;
         AppMain.gmBoss3ChangeTextureBurnt(obj_work);
     }
     if (((int)AppMain.GMM_BS_OBJ((object)parentObj).disp_flag & 16) != 0)
     {
         obj_work.disp_flag |= 16U;
     }
     else
     {
         obj_work.disp_flag &= 4294967279U;
     }
 }
Example #3
0
    private static void gmBoss3BodyStateChaseMoveUpdate(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
        if (AppMain.gmBoss3BodyChaseCheckTurn(body_work) != 0)
        {
            short dest_angle;
            int   flag_positive;
            if (((int)obsObjectWork.disp_flag & 1) != 0)
            {
                obsObjectWork.disp_flag &= 4294967294U;
                dest_angle    = AppMain.GMD_BOSS3_ANGLE_RIGHT;
                flag_positive = 1;
            }
            else
            {
                obsObjectWork.disp_flag |= 1U;
                dest_angle    = AppMain.GMD_BOSS3_ANGLE_LEFT;
                flag_positive = 0;
            }
            AppMain.gmBoss3BodyInitTurn(body_work, dest_angle, 60f, flag_positive);
        }
        double num = (double)AppMain.gmBoss3BodyUpdateTurn(body_work);

        if (obsObjectWork.user_flag == 0U)
        {
            return;
        }
        AppMain.gmBoss3BodyChangeState(body_work, 3);
    }
Example #4
0
 private static void gmBoss3BodyStatePreBattleUpdateStart(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.OBS_OBJECT_WORK obj_work = AppMain.GMM_BS_OBJ((object)body_work);
     if (AppMain.ObjViewOutCheck(obj_work.pos.x, obj_work.pos.y, (short)0, (short)0, (short)0, (short)0, (short)0) != 0)
     {
         return;
     }
     if (obj_work.user_timer > 0)
     {
         --obj_work.user_timer;
     }
     else
     {
         if (AppMain._am_draw_video.wide_screen)
         {
             AppMain.GmCameraScaleSet(0.85f, 0.0025f);
             AppMain.GmMapSetDrawMarginMag();
         }
         obj_work.disp_flag |= 1U;
         AppMain.gmBoss3BodyInitTurn(body_work, AppMain.GMD_BOSS3_ANGLE_LEFT, 60f, 0);
         AppMain.gmBoss3BodySetActionAllParts(body_work, 1);
         body_work.proc_update = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStatePreBattleUpdateTurn);
         if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0)
         {
             return;
         }
         AppMain.GmSoundChangeAngryBossBGM();
     }
 }
Example #5
0
 private static void gmBoss3BodyMainFunc(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS3_BODY_WORK body_work = (AppMain.GMS_BOSS3_BODY_WORK)obj_work;
     AppMain.gmBoss3BodyUpdateNoHitTime(body_work);
     AppMain.gmBoss3BodyUpdateInvincibleTime(body_work);
     if (body_work.proc_update != null)
     {
         body_work.proc_update(body_work);
     }
     if (((int)body_work.flag & 33554432) != 0)
     {
         AppMain.gmBoss3EffAfterburnerInit(body_work);
     }
     if (((int)body_work.flag & int.MinValue) != 0)
     {
         body_work.flag &= 1073741823U;
         AppMain.gmBoss3BodyChangeState(body_work, 5);
     }
     else
     {
         if (((int)body_work.flag & 1073741824) != 0)
         {
             body_work.flag &= 3221225471U;
             body_work.flag |= 536870912U;
             AppMain.GmBsCmnInitObject3DNNDamageFlicker(obj_work, body_work.flk_work, 32f);
         }
         AppMain.GmBsCmnUpdateObject3DNNDamageFlicker(obj_work, body_work.flk_work);
         AppMain.gmBoss3BodyUpdateDirection(body_work);
     }
 }
Example #6
0
 private static void gmBoss3BodySetActionAllParts(
     AppMain.GMS_BOSS3_BODY_WORK body_work,
     int action_id,
     int force_change)
 {
     if (force_change == 0 && body_work.action_id == action_id)
     {
         return;
     }
     body_work.action_id = action_id;
     for (int index = 0; 2 > index; ++index)
     {
         AppMain.OBS_OBJECT_WORK partsObj = body_work.parts_objs[index];
         if (partsObj != null)
         {
             AppMain.GMS_BOSS3_PART_ACT_INFO bosS3PartActInfo = AppMain.gm_boss3_act_info_tbl[action_id][index];
             if (index != 1 || ((int)((AppMain.GMS_BOSS3_EGG_WORK)partsObj).flag & 1) == 0)
             {
                 if (bosS3PartActInfo.is_maintain != (byte)0)
                 {
                     if (bosS3PartActInfo.is_repeat != (byte)0)
                     {
                         partsObj.disp_flag |= 4U;
                     }
                 }
                 else
                 {
                     AppMain.GmBsCmnSetAction(partsObj, (int)bosS3PartActInfo.mtn_id, (int)bosS3PartActInfo.is_repeat, bosS3PartActInfo.is_blend);
                 }
                 partsObj.obj_3d.speed[0]  = bosS3PartActInfo.mtn_spd;
                 partsObj.obj_3d.blend_spd = bosS3PartActInfo.blend_spd;
             }
         }
     }
 }
Example #7
0
    private static void gmBoss3BodyStateBattleEnter(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
        AppMain.gmBoss3BodySetActionAllParts(body_work, 1);
        int num = AppMain.g_gm_main_system.map_fcol.right - AppMain.g_gm_main_system.map_fcol.left;

        AppMain.VecFx32 dest_pos = new AppMain.VecFx32((AppMain.g_gm_main_system.map_fcol.left + num / 2) * 4096, obsObjectWork.pos.y, obsObjectWork.pos.z);
        float           frame    = AppMain.gmBoss3BodyCalcMoveXNormalFrame(body_work, dest_pos.x, 4096);

        AppMain.gmBoss3BodyInitMoveNormal(body_work, dest_pos, frame);
        if (AppMain.gmBoss3BodyBattleCheckTurn(body_work) != 0)
        {
            short dest_angle;
            int   flag_positive;
            if (((int)obsObjectWork.disp_flag & 1) != 0)
            {
                obsObjectWork.disp_flag &= 4294967294U;
                dest_angle    = AppMain.GMD_BOSS3_ANGLE_RIGHT;
                flag_positive = 1;
            }
            else
            {
                obsObjectWork.disp_flag |= 1U;
                dest_angle    = AppMain.GMD_BOSS3_ANGLE_LEFT;
                flag_positive = 0;
            }
            AppMain.gmBoss3BodyInitTurn(body_work, dest_angle, 60f, flag_positive);
        }
        body_work.proc_update = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateBattleUpdateMoveCenter);
        AppMain.gmBoss3EffAfterburnerRequestCreate(body_work);
    }
Example #8
0
    private static void gmBoss3BodyChaseAdjustMoveSpeed(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        AppMain.OBS_OBJECT_WORK obj_work_parts = AppMain.GMM_BS_OBJ((object)body_work);
        int num = AppMain.FX_F32_TO_FX32((float)(1.0 + (double)(8 - AppMain.gmBoss3MgrGetMgrWork(obj_work_parts).life) * 0.200000002980232));

        AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0];
        if (gmsPlayerWork.obj_work.pos.y < obj_work_parts.pos.y)
        {
            if (obj_work_parts.spd.x > 0 && obj_work_parts.pos.x < gmsPlayerWork.obj_work.pos.x)
            {
                num = AppMain.FX_Mul(num, 8192);
            }
            if (obj_work_parts.spd.x < 0 && gmsPlayerWork.obj_work.pos.x < obj_work_parts.pos.x)
            {
                num = AppMain.FX_Mul(num, 8192);
            }
        }
        obj_work_parts.spd.x = AppMain.FX_Mul(obj_work_parts.spd.x, num);
        obj_work_parts.spd.y = AppMain.FX_Mul(obj_work_parts.spd.y, num);
        if (body_work.is_move != 0)
        {
            return;
        }
        obj_work_parts.spd.x = 0;
        obj_work_parts.spd.y = 0;
    }
Example #9
0
 private static void gmBoss3BodyStateStartUpdateWaitScrLimit(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     if (((int)AppMain.g_gm_main_system.game_flag & 32768) == 0)
     {
         return;
     }
     body_work.proc_update = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateStartUpdateWait);
 }
Example #10
0
 private static float gmBoss3BodyCalcMoveXNormalFrame(
     AppMain.GMS_BOSS3_BODY_WORK body_work,
     int x,
     int speed)
 {
     AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
     return((float)AppMain.MTM_MATH_ABS(x - obsObjectWork.pos.x) / (float)speed);
 }
Example #11
0
 private static void gmBoss3BodyStatePreBattleEnter(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
     AppMain.gmBoss3BodySetActionAllParts(body_work, 1);
     body_work.proc_update    = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStatePreBattleUpdateStart);
     obsObjectWork.user_timer = 120;
     obsObjectWork.ppMove     = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.ObjObjectMove);
     AppMain.gmBoss3EffAfterburnerRequestDelete(body_work);
 }
Example #12
0
 private static void gmBoss3BodyExit(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain.GMS_BOSS3_BODY_WORK tcbWork = (AppMain.GMS_BOSS3_BODY_WORK)AppMain.mtTaskGetTcbWork(tcb);
     AppMain.OBS_OBJECT_WORK     objWork = tcbWork.ene_3d.ene_com.obj_work;
     AppMain.GmBsCmnClearBossMotionCBSystem(objWork);
     AppMain.GmBsCmnDeleteSNMWork(tcbWork.snm_work);
     AppMain.GmBsCmnClearCNMCb(objWork);
     AppMain.gmBoss3ExitFunc(tcb);
 }
Example #13
0
 private static void gmBoss3EggRevertAction(AppMain.GMS_BOSS3_EGG_WORK egg_work)
 {
     AppMain.OBS_OBJECT_WORK     obj_work      = AppMain.GMM_BS_OBJ((object)egg_work);
     AppMain.GMS_BOSS3_BODY_WORK parentObj     = (AppMain.GMS_BOSS3_BODY_WORK)obj_work.parent_obj;
     AppMain.OBS_OBJECT_WORK     obsObjectWork = AppMain.GMM_BS_OBJ((object)parentObj);
     egg_work.flag &= 4294967294U;
     AppMain.GMS_BOSS3_PART_ACT_INFO bosS3PartActInfo = AppMain.gm_boss3_act_info_tbl[parentObj.action_id][1];
     AppMain.GmBsCmnSetAction(obj_work, (int)bosS3PartActInfo.mtn_id, (int)bosS3PartActInfo.is_repeat, 1);
     obj_work.obj_3d.frame[0] = obsObjectWork.obj_3d.frame[0];
 }
Example #14
0
 private static void gmBoss3BodyStateEscapeUpdateFinalZone(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.gmBoss3BodyEscapeAddjustSpeed(body_work);
     if ((double)AppMain.gmBoss3BodyUpdateTurn(body_work) > 0.0)
     {
         return;
     }
     AppMain.GmEfctBossCmnEsCreate(AppMain.GMM_BS_OBJ((object)body_work), 1U);
     body_work.proc_update = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateEscapeUpdateWaitScreenOut);
 }
Example #15
0
 private static void gmBoss3BodyStateStartEnter(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.OBS_OBJECT_WORK obj_work = AppMain.GMM_BS_OBJ((object)body_work);
     obj_work.flag |= 2U;
     AppMain.gmBoss3BodySetActionAllParts(body_work, 0, 1);
     AppMain.gmBoss3BodySetDirectionNormal(body_work);
     body_work.proc_update = AppMain.GmBsCmnIsFinalZoneType(obj_work) == 0 ? new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateStartUpdateWaitScrLimit) : new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateStartUpdateWait);
     obj_work.user_timer   = 180;
     body_work.ene_3d.ene_com.enemy_flag |= 32768U;
 }
Example #16
0
 private static void gmBoss3EggStateIdleUpdate(AppMain.GMS_BOSS3_EGG_WORK egg_work)
 {
     AppMain.GMS_BOSS3_BODY_WORK parentObj = (AppMain.GMS_BOSS3_BODY_WORK)AppMain.GMM_BS_OBJ((object)egg_work).parent_obj;
     if (((int)parentObj.flag & 268435456) == 0)
     {
         return;
     }
     parentObj.flag &= 4026531839U;
     AppMain.gmBoss3EggStateLaughInit(egg_work);
 }
Example #17
0
 private static void gmBoss3BodyUpdateNoHitTime(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     if (body_work.counter_no_hit > 0U)
     {
         --body_work.counter_no_hit;
     }
     else
     {
         body_work.ene_3d.ene_com.rect_work[0].flag &= 4294965247U;
     }
 }
Example #18
0
 private static void gmBoss3BodyStateEscapeUpdateWaitScreenOut(
     AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.gmBoss3BodyEscapeAddjustSpeed(body_work);
     if (AppMain.gmBoss3BodyEscapeCheckScreenOut(body_work) == 0)
     {
         return;
     }
     AppMain.gmBoss3MgrGetMgrWork(AppMain.GMM_BS_OBJ((object)body_work)).flag |= 2U;
     body_work.proc_update = (AppMain.GMF_BOSS3_BODY_STATE_FUNC)null;
 }
Example #19
0
 private static void gmBoss3BodyUpdateInvincibleTime(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     if (body_work.counter_invincible > 0U)
     {
         --body_work.counter_invincible;
     }
     else
     {
         body_work.flag &= 4294967294U;
     }
 }
Example #20
0
 private static void gmBoss3BodySetDirectionNormal(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     if (((int)AppMain.GMM_BS_OBJ((object)body_work).disp_flag & 1) != 0)
     {
         AppMain.gmBoss3BodySetDirection(body_work, AppMain.GMD_BOSS3_ANGLE_LEFT);
     }
     else
     {
         AppMain.gmBoss3BodySetDirection(body_work, AppMain.GMD_BOSS3_ANGLE_RIGHT);
     }
 }
Example #21
0
 private static void gmBoss3EffAfterburnerInit(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     if (((int)body_work.flag & 2) != 0)
     {
         return;
     }
     body_work.flag &= 4261412863U;
     body_work.flag |= 2U;
     AppMain.GMS_EFFECT_3DES_WORK efct_3des = AppMain.GmEfctBossCmnEsCreate(AppMain.GMM_BS_OBJ((object)body_work), 4U);
     AppMain.GmEffect3DESAddDispOffset(efct_3des, 0.0f, 0.0f, -30f);
     AppMain.GMM_BS_OBJ((object)efct_3des).ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss3EffAfterburnerMainFunc);
 }
Example #22
0
    private static void gmBoss3BodyStateStartUpdateEnd(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
        double num = (double)AppMain.gmBoss3BodyUpdateTurn(body_work);

        if (AppMain.ObjViewOutCheck(obsObjectWork.pos.x, obsObjectWork.pos.y, (short)64, (short)0, (short)0, (short)0, (short)0) == 0)
        {
            return;
        }
        AppMain.GmGmkCamScrLimitRelease((byte)4);
        AppMain.gmBoss3BodyChangeState(body_work, 2);
    }
Example #23
0
 private static void gmBoss3BodyEscapeAddjustSpeed(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)body_work);
     if (AppMain.MTM_MATH_ABS(obsObjectWork.spd.x) <= -1228)
     {
         return;
     }
     obsObjectWork.spd.x     = 6144;
     obsObjectWork.spd.y     = -1228;
     obsObjectWork.spd_add.x = 0;
     obsObjectWork.spd_add.y = 0;
 }
Example #24
0
    private static void gmBoss3BodyStateBattleUpdateMoveFirst(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        float num1 = AppMain.gmBoss3BodyUpdateTurn(body_work);
        float num2 = AppMain.gmBoss3BodyUpdateMoveNormal(body_work);

        if ((double)num1 > 0.0 || (double)num2 > 0.0)
        {
            return;
        }
        AppMain.gmBoss3BodySetActionAllParts(body_work, 5);
        body_work.proc_update = new AppMain.GMF_BOSS3_BODY_STATE_FUNC(AppMain.gmBoss3BodyStateBattleUpdateSign);
        AppMain.gmBoss3EffAfterburnerRequestDelete(body_work);
    }