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); }
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; } }
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); }
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(); } }
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); } }
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; } } } }
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); }
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; }
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); }
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); }
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); }
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); }
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]; }
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); }
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; }
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); }
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; } }
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; }
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; } }
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); } }
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); }
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); }
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; }
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); }