// Token: 0x06001236 RID: 4662 RVA: 0x0009F37C File Offset: 0x0009D57C private static void gmGmkDrainTankOutMainWait(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); obj_work.spd.x = 0; obj_work.spd.y = 0; return; } if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); return; } AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; if (gms_PLAYER_WORK.seq_state == 22) { AppMain.gmGmkDrainTankOutChangeModeDamage(obj_work); return; } if ((obj_work.move_flag & 1U) == 0U) { AppMain.gmGmkDrainTankOutChangeModeSplash(obj_work); return; } AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int num = AppMain.GmPlayerKeyGetGimmickRotZ(gms_PLAYER_WORK); if (AppMain.MTM_MATH_ABS(num) > 8192) { gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key++; } else { gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key = 0; } if (gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key >= 0) { AppMain.gmGmkDrainTankOutUpdateCameraRoll(gms_GMK_DRAIN_TANK_OUT_WORK, num); if (19 == gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key % 20 && AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll) < AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { AppMain.GmSoundPlaySE("Fluid1"); } } if (AppMain.gmGmkDrainTankOutCheckKeyDir(obj_work, gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll)) { int x = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll >> 3; obj_work.spd.x = x; float a = AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll >> 4); a = AppMain.MTM_MATH_ABS(a); AppMain.GmWaterSurfaceRequestAddWatarLevel(AppMain.MTM_MATH_ABS(a), 0, true); } AppMain.gmGmkDrainTankOutAdjustPlayerOffsetBuoyancy(gms_GMK_DRAIN_TANK_OUT_WORK); AppMain.gmGmkDrainTankOutAdjustPlayerOffsetWave(gms_GMK_DRAIN_TANK_OUT_WORK, obj_work2); AppMain.gmGmkDrainTankOutApplyPlayerOffset(obj_work2, gms_GMK_DRAIN_TANK_OUT_WORK); AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gms_PLAYER_WORK, gms_GMK_DRAIN_TANK_OUT_WORK); }
private static void gmGmkDrainTankOutMainReady(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0]; AppMain.OBS_OBJECT_WORK objWork = gmsPlayerWork.obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; if (((int)gmsPlayerWork.player_flag & 1024) != 0) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); int num = ((int)AppMain.FX_FX32_TO_F32(out_work.base_pos_x) / 64 - 3) * 262144; if (objWork.pos.x < num) { AppMain.g_gm_main_system.game_flag |= 8192U; } obj_work.spd.x = 0; obj_work.spd.y = 0; } else if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); } else { if ((int)AppMain.gmGmkDrainTankGameSystemGetWaterLevel() * 4096 + 196608 >= objWork.pos.y) { return; } AppMain.gmGmkDrainTankOutChangeModeWait(obj_work); out_work.flag_dir_left = AppMain.gmGmkDrainTankOutCheckDirLeft(obj_work, objWork); int x = objWork.spd.x; AppMain.GmPlySeqInitDrainTank(gmsPlayerWork); out_work.player_offset_x += x * 5; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gmsPlayerWork, out_work); AppMain.GmCameraAllowSet(10f, 10f, 10f); } }
private static bool gmGmkDrainTankOutCheckKeyDir( AppMain.OBS_OBJECT_WORK gimmick_obj_work, int camera_roll) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)gimmick_obj_work; return(camera_roll < 0 && drainTankOutWork.flag_dir_left || camera_roll > 0 && !drainTankOutWork.flag_dir_left); }
// Token: 0x06001233 RID: 4659 RVA: 0x0009F0E8 File Offset: 0x0009D2E8 private static void gmGmkDrainTankOutChangeModeSplash(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)gms_ENEMY_3D_WORK; AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; if (gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left) { obj_work2.spd.x = -65536; } else { obj_work2.spd.x = 65536; } obj_work2.pos.y = obj_work.pos.y; obj_work2.move_flag |= 256U; AppMain.GmPlayerBreathingSet(gms_PLAYER_WORK); obj_work.move_flag |= 256U; AppMain.g_gm_main_system.game_flag |= 8192U; AppMain.GmEventMgrLocalEventBirth(305, obj_work.pos.x, obj_work.pos.y + 65536, gms_ENEMY_3D_WORK.ene_com.eve_rec.flag, gms_ENEMY_3D_WORK.ene_com.eve_rec.left, gms_ENEMY_3D_WORK.ene_com.eve_rec.top, gms_ENEMY_3D_WORK.ene_com.eve_rec.width, gms_ENEMY_3D_WORK.ene_com.eve_rec.height, 0); AppMain.GmSoundPlaySE("Fluid2"); AppMain.GMM_PAD_VIB_SMALL(); AppMain.GmPlayerCameraOffsetSet(gms_PLAYER_WORK, 0, 0); AppMain.GmCameraAllowReset(); obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkDrainTankOutMainSplash); }
private static void gmGmkDrainTankOutAdjustPlayerOffsetWave( AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work, AppMain.OBS_OBJECT_WORK player_obj_work) { int num = out_work.camera_roll >> 2; if (((int)player_obj_work.move_flag & 4) != 0) { if (((int)player_obj_work.disp_flag & 1) != 0) { out_work.player_offset_x += AppMain.FX_F32_TO_FX32(0.4f); } else { out_work.player_offset_x -= AppMain.FX_F32_TO_FX32(0.4f); } } else { if (out_work.camera_roll < 0) { player_obj_work.disp_flag |= 1U; } else if (out_work.camera_roll > 0) { player_obj_work.disp_flag &= 4294967294U; } out_work.player_offset_x += num; } }
private static void gmGmkDrainTankOutMainSplash(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK ply_work = AppMain.g_gm_main_system.ply_work[0]; if (((int)ply_work.player_flag & 1024) != 0) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); } else if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1638400, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); } else { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; AppMain.OBS_OBJECT_WORK objWork = ply_work.obj_work; AppMain.GmWaterSurfaceRequestAddWatarLevel(1f / 1000f, (ushort)0, true); AppMain.ObjCameraGet(0).roll = drainTankOutWork.camera_roll; if (drainTankOutWork.base_pos_x >= objWork.pos.x) { return; } objWork.move_flag |= 128U; objWork.move_flag &= 4294967039U; objWork.spd.x = 65536; objWork.spd_add.x = -896; AppMain.GmPlayerCameraOffsetSet(ply_work, (short)0, (short)0); AppMain.GmCameraAllowReset(); AppMain.gmGmkDrainTankOutChangeModeEnd(obj_work); } }
private static void gmGmkDrainTankOutUpdateCameraRoll( AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work, int rot_z) { if (rot_z < -8192) { if (out_work.camera_roll <= -AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { out_work.camera_roll = -AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX; } else { out_work.camera_roll -= AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_SPEED; } } else { if (rot_z <= 8192) { return; } if (out_work.camera_roll >= AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { out_work.camera_roll = AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX; } else { out_work.camera_roll += AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_SPEED; } } }
// Token: 0x0600123B RID: 4667 RVA: 0x0009F75C File Offset: 0x0009D95C private static void gmGmkDrainTankOutUpdateDie(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; AppMain.gmGmkDrainTankOutUpdateCameraRollDie(gms_GMK_DRAIN_TANK_OUT_WORK); AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; }
// Token: 0x06001238 RID: 4664 RVA: 0x0009F600 File Offset: 0x0009D800 private static void gmGmkDrainTankOutMainSplash(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); return; } if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1638400, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); return; } AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.GmWaterSurfaceRequestAddWatarLevel(0.001f, 0, true); AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; if (gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x < obj_work2.pos.x) { obj_work2.move_flag |= 128U; obj_work2.move_flag &= 4294967039U; obj_work2.spd.x = 65536; obj_work2.spd_add.x = -896; AppMain.GmPlayerCameraOffsetSet(gms_PLAYER_WORK, 0, 0); AppMain.GmCameraAllowReset(); AppMain.gmGmkDrainTankOutChangeModeEnd(obj_work); } }
private static void gmGmkDrainTankOutMainWait(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0]; if (((int)gmsPlayerWork.player_flag & 1024) != 0) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); obj_work.spd.x = 0; obj_work.spd.y = 0; } else if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); } else { AppMain.OBS_OBJECT_WORK objWork = gmsPlayerWork.obj_work; if (gmsPlayerWork.seq_state == 22) { AppMain.gmGmkDrainTankOutChangeModeDamage(obj_work); } else if (((int)obj_work.move_flag & 1) == 0) { AppMain.gmGmkDrainTankOutChangeModeSplash(obj_work); } else { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int gimmickRotZ = AppMain.GmPlayerKeyGetGimmickRotZ(gmsPlayerWork); if (AppMain.MTM_MATH_ABS(gimmickRotZ) > 8192) { ++out_work.counter_roll_key; } else { out_work.counter_roll_key = 0; } if (out_work.counter_roll_key >= 0) { AppMain.gmGmkDrainTankOutUpdateCameraRoll(out_work, gimmickRotZ); if (19 == out_work.counter_roll_key % 20 && AppMain.MTM_MATH_ABS(out_work.camera_roll) < AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { AppMain.GmSoundPlaySE("Fluid1"); } } if (AppMain.gmGmkDrainTankOutCheckKeyDir(obj_work, out_work.camera_roll)) { int num = out_work.camera_roll >> 3; obj_work.spd.x = num; AppMain.GmWaterSurfaceRequestAddWatarLevel(AppMain.MTM_MATH_ABS(AppMain.MTM_MATH_ABS(AppMain.FX_FX32_TO_F32(out_work.camera_roll >> 4))), (ushort)0, true); } AppMain.gmGmkDrainTankOutAdjustPlayerOffsetBuoyancy(out_work); AppMain.gmGmkDrainTankOutAdjustPlayerOffsetWave(out_work, objWork); AppMain.gmGmkDrainTankOutApplyPlayerOffset(objWork, out_work); AppMain.ObjCameraGet(0).roll = out_work.camera_roll; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gmsPlayerWork, out_work); } } }
private static void gmGmkDrainTankOutUpdateCameraOffset( AppMain.GMS_PLAYER_WORK player_work, AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)player_work; float f32 = AppMain.FX_FX32_TO_F32(out_work.base_pos_x - 737280 - obsObjectWork.pos.x); AppMain.GmPlayerCameraOffsetSet(player_work, (short)f32, (short)0); }
private static void gmGmkDrainTankOutChangeModeWait(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.OBS_OBJECT_WORK objWork = AppMain.g_gm_main_system.ply_work[0].obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; drainTankOutWork.player_offset_x = objWork.pos.x - drainTankOutWork.base_pos_x; drainTankOutWork.player_offset_y = objWork.pos.y - drainTankOutWork.base_pos_y; obj_work.spd.x = 0; drainTankOutWork.counter_roll_key = 0; obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkDrainTankOutMainWait); }
private static void gmGmkDrainTankOutApplyPlayerOffset( AppMain.OBS_OBJECT_WORK player_obj_work, AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { int num1 = out_work.base_pos_x + out_work.player_offset_x; int num2 = out_work.base_pos_y + out_work.player_offset_y; player_obj_work.spd.x = num1 - player_obj_work.pos.x; player_obj_work.spd.y = num2 - player_obj_work.pos.y; }
// Token: 0x0600122E RID: 4654 RVA: 0x0009EF78 File Offset: 0x0009D178 private static bool gmGmkDrainTankOutCheckDeleteTask(AppMain.OBS_OBJECT_WORK obj_work, int cmp_x, int cmp_y) { AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int num = AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x - obj_work2.pos.x); int num2 = AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y - obj_work2.pos.y); return(num > cmp_x || num2 > cmp_y); }
// Token: 0x06001231 RID: 4657 RVA: 0x0009F048 File Offset: 0x0009D248 private static void gmGmkDrainTankOutChangeModeWait(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; AppMain.OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; gms_GMK_DRAIN_TANK_OUT_WORK.player_offset_x = obj_work2.pos.x - gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x; gms_GMK_DRAIN_TANK_OUT_WORK.player_offset_y = obj_work2.pos.y - gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y; obj_work.spd.x = 0; gms_GMK_DRAIN_TANK_OUT_WORK.counter_roll_key = 0; obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkDrainTankOutMainWait); }
private static bool gmGmkDrainTankOutCheckDeleteTask( AppMain.OBS_OBJECT_WORK obj_work, int cmp_x, int cmp_y) { AppMain.OBS_OBJECT_WORK objWork = AppMain.g_gm_main_system.ply_work[0].obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int num1 = AppMain.MTM_MATH_ABS(drainTankOutWork.base_pos_x - objWork.pos.x); int num2 = AppMain.MTM_MATH_ABS(drainTankOutWork.base_pos_y - objWork.pos.y); return(num1 > cmp_x || num2 > cmp_y); }
// Token: 0x06001237 RID: 4663 RVA: 0x0009F4EC File Offset: 0x0009D6EC private static void gmGmkDrainTankOutMainDamage(OBS_OBJECT_WORK obj_work) { GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); obj_work.spd.x = 0; obj_work.spd.y = 0; return; } if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); return; } AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.gmGmkDrainTankOutUpdateCameraRollDamage(gms_GMK_DRAIN_TANK_OUT_WORK); int num = (AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX - AppMain.MTM_MATH_ABS(gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll)) * 4; int num2 = num >> 3; if (gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left) { obj_work.spd.x = num2; } else { obj_work.spd.x = -num2; } float num3 = AppMain.FX_FX32_TO_F32(num >> 4); AppMain.GmWaterSurfaceRequestAddWatarLevel(-num3, 0, true); obj_work.user_timer++; if ((obj_work2.move_flag & 1U) != 0U) { obj_work.user_timer = 0; AppMain.gmGmkDrainTankOutChangeModeWait(obj_work); AppMain.GmPlySeqInitDrainTank(gms_PLAYER_WORK); return; } OBS_CAMERA obs_CAMERA = ObjCamera.Get(0); obs_CAMERA.roll = gms_GMK_DRAIN_TANK_OUT_WORK.camera_roll; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gms_PLAYER_WORK, gms_GMK_DRAIN_TANK_OUT_WORK); AppMain.gmGmkDrainTankOutSinkRing(); }
private static void gmGmkDrainTankOutAdjustPlayerOffsetBuoyancy( AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { int num = (int)AppMain.gmGmkDrainTankGameSystemGetWaterLevel() * 4096 + 131072; if (num > out_work.base_pos_y) { num = out_work.base_pos_y; } int a = num - (out_work.base_pos_y + out_work.player_offset_y); if (AppMain.MTM_MATH_ABS(a) > 2048) { a = a >= 0 ? 2048 : -2048; } out_work.player_offset_y += a; }
// Token: 0x06001221 RID: 4641 RVA: 0x0009E778 File Offset: 0x0009C978 private static AppMain.GMS_ENEMY_3D_WORK gmGmkDrainTankLoadObjNoModel(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, int type) { AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK; if (type == 1) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK(), "GMK_DRAIN_TANK"); gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x = pos_x + 262144; gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y = pos_y; gms_ENEMY_3D_WORK = gms_GMK_DRAIN_TANK_OUT_WORK.enemy_work; } else { gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_ENEMY_3D_WORK(), "GMK_DRAIN_TANK"); } gms_ENEMY_3D_WORK.ene_com.rect_work[0].flag &= 4294967291U; gms_ENEMY_3D_WORK.ene_com.rect_work[1].flag &= 4294967291U; return(gms_ENEMY_3D_WORK); }
private static void gmGmkDrainTankOutChangeModeSplash(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)gmsEnemy3DWork; AppMain.GMS_PLAYER_WORK ply_work = AppMain.g_gm_main_system.ply_work[0]; AppMain.OBS_OBJECT_WORK objWork = ply_work.obj_work; objWork.spd.x = !drainTankOutWork.flag_dir_left ? 65536 : -65536; objWork.pos.y = obj_work.pos.y; objWork.move_flag |= 256U; AppMain.GmPlayerBreathingSet(ply_work); obj_work.move_flag |= 256U; AppMain.g_gm_main_system.game_flag |= 8192U; AppMain.GmEventMgrLocalEventBirth((ushort)305, obj_work.pos.x, obj_work.pos.y + 65536, gmsEnemy3DWork.ene_com.eve_rec.flag, gmsEnemy3DWork.ene_com.eve_rec.left, gmsEnemy3DWork.ene_com.eve_rec.top, gmsEnemy3DWork.ene_com.eve_rec.width, gmsEnemy3DWork.ene_com.eve_rec.height, (byte)0); AppMain.GmSoundPlaySE("Fluid2"); AppMain.GMM_PAD_VIB_SMALL(); AppMain.GmPlayerCameraOffsetSet(ply_work, (short)0, (short)0); AppMain.GmCameraAllowReset(); obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkDrainTankOutMainSplash); }
private static void gmGmkDrainTankDrawFuncOut(AppMain.OBS_OBJECT_WORK obj_work) { if (((int)obj_work.disp_flag & 32) == 0) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK drainTankOutWork = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int num1 = ((-(int)AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_y) - 64) / 64 - 1) * 64; int num2 = ((int)AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_x) - 96) / 64 * 64; int num3 = num2 - 152; int num4 = num1 + 96; int num5 = num2 + 64; AppMain.ObjDraw3DNNSetCameraEx(AppMain.g_obj.glb_camera_id, 1, 9U); AppMain.GmWaterSurfaceDrawNoWaterField(AppMain.FX_FX32_TO_F32(obj_work.pos.x), -AppMain.FX_FX32_TO_F32(obj_work.pos.y) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, AppMain.FX_FX32_TO_F32(obj_work.pos.x) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, -AppMain.FX_FX32_TO_F32(obj_work.pos.y) - (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT); AppMain.GmWaterSurfaceDrawNoWaterField((float)num2, -AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_y) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_x) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, (float)num4); AppMain.GmWaterSurfaceDrawNoWaterField(AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_x) - (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, (float)num1, AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_x) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, (float)(num1 - AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT)); AppMain.GmWaterSurfaceDrawNoWaterField((float)(num3 - AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH), -AppMain.FX_FX32_TO_F32(drainTankOutWork.base_pos_y) + (float)AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, (float)num3, (float)num1); AppMain.GmWaterSurfaceDrawNoWaterField((float)num5, (float)num4, (float)(num5 + AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH), (float)num1); } AppMain.ObjDraw3DNNSetCameraEx(AppMain.g_obj.glb_camera_id, 1, 8U); AppMain.ObjDrawActionSummary(obj_work); }
// Token: 0x06001241 RID: 4673 RVA: 0x0009F984 File Offset: 0x0009DB84 private static void gmGmkDrainTankOutUpdateCameraRollDamage(AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { int num = AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_SPEED * 4; if (out_work.flag_dir_left) { out_work.camera_roll += num; if (out_work.camera_roll < -AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { out_work.camera_roll = -AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX; return; } } else { out_work.camera_roll -= num; if (out_work.camera_roll > AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX) { out_work.camera_roll = AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX; } } }
// Token: 0x06001235 RID: 4661 RVA: 0x0009F254 File Offset: 0x0009D454 private static void gmGmkDrainTankOutMainReady(OBS_OBJECT_WORK obj_work) { GMS_PLAYER_WORK gms_PLAYER_WORK = AppMain.g_gm_main_system.ply_work[(int)((UIntPtr)0)]; OBS_OBJECT_WORK obj_work2 = gms_PLAYER_WORK.obj_work; AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; if ((gms_PLAYER_WORK.player_flag & 1024U) != 0U) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); int num = (int)AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x); num /= 64; num -= 3; num *= 262144; if (obj_work2.pos.x < num) { AppMain.g_gm_main_system.game_flag |= 8192U; } obj_work.spd.x = 0; obj_work.spd.y = 0; return; } if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); return; } int num2 = (int)(AppMain.gmGmkDrainTankGameSystemGetWaterLevel() * 4096); if (num2 + 196608 < obj_work2.pos.y) { AppMain.gmGmkDrainTankOutChangeModeWait(obj_work); gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left = AppMain.gmGmkDrainTankOutCheckDirLeft(obj_work, obj_work2); int x = obj_work2.spd.x; AppMain.GmPlySeqInitDrainTank(gms_PLAYER_WORK); gms_GMK_DRAIN_TANK_OUT_WORK.player_offset_x += x * 5; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gms_PLAYER_WORK, gms_GMK_DRAIN_TANK_OUT_WORK); GmCamera.AllowSet(10f, 10f, 10f); } }
private static AppMain.GMS_ENEMY_3D_WORK gmGmkDrainTankLoadObjNoModel( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, int type) { AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork; if (type == 1) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK work = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK()), "GMK_DRAIN_TANK"); work.base_pos_x = pos_x + 262144; work.base_pos_y = pos_y; gmsEnemy3DWork = work.enemy_work; } else { gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_ENEMY_3D_WORK()), "GMK_DRAIN_TANK"); } gmsEnemy3DWork.ene_com.rect_work[0].flag &= 4294967291U; gmsEnemy3DWork.ene_com.rect_work[1].flag &= 4294967291U; return(gmsEnemy3DWork); }
// Token: 0x0600123D RID: 4669 RVA: 0x0009F7A8 File Offset: 0x0009D9A8 private static void gmGmkDrainTankOutAdjustPlayerOffsetBuoyancy(AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { int num = (int)(AppMain.gmGmkDrainTankGameSystemGetWaterLevel() * 4096) + 131072; if (num > out_work.base_pos_y) { num = out_work.base_pos_y; } int num2 = num - (out_work.base_pos_y + out_work.player_offset_y); if (AppMain.MTM_MATH_ABS(num2) > 2048) { if (num2 < 0) { num2 = -2048; } else { num2 = 2048; } } out_work.player_offset_y += num2; }
private static void gmGmkDrainTankOutMainDamage(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_PLAYER_WORK gmsPlayerWork = AppMain.g_gm_main_system.ply_work[0]; if (((int)gmsPlayerWork.player_flag & 1024) != 0) { AppMain.gmGmkDrainTankOutUpdateDie(obj_work); obj_work.spd.x = 0; obj_work.spd.y = 0; } else if (AppMain.gmGmkDrainTankOutCheckDeleteTask(obj_work, 1843200, 1228800)) { AppMain.gmGmkDrainTankOutRequestDeleteTask(obj_work); } else { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; AppMain.OBS_OBJECT_WORK objWork = gmsPlayerWork.obj_work; AppMain.gmGmkDrainTankOutUpdateCameraRollDamage(out_work); int num1 = (AppMain.GMD_GMK_DRAIN_TANK_ROLL_ANGLE_MAX - AppMain.MTM_MATH_ABS(out_work.camera_roll)) * 4; int num2 = num1 >> 3; obj_work.spd.x = !out_work.flag_dir_left ? -num2 : num2; AppMain.GmWaterSurfaceRequestAddWatarLevel(-AppMain.FX_FX32_TO_F32(num1 >> 4), (ushort)0, true); ++obj_work.user_timer; if (((int)objWork.move_flag & 1) != 0) { obj_work.user_timer = 0; AppMain.gmGmkDrainTankOutChangeModeWait(obj_work); AppMain.GmPlySeqInitDrainTank(gmsPlayerWork); } else { AppMain.ObjCameraGet(0).roll = out_work.camera_roll; AppMain.gmGmkDrainTankOutUpdateCameraOffset(gmsPlayerWork, out_work); AppMain.gmGmkDrainTankOutSinkRing(); } } }
// Token: 0x06001228 RID: 4648 RVA: 0x0009EC5C File Offset: 0x0009CE5C private static void gmGmkDrainTankDrawFuncOut(OBS_OBJECT_WORK obj_work) { if ((obj_work.disp_flag & 32U) == 0U) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; int num = -(int)AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y) - 64; num /= 64; num = (num - 1) * 64; int num2 = (int)AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x) - 96; num2 /= 64; num2 *= 64; int num3 = num2 - 152; int num4 = num + 96; int num5 = num2 + 64; AppMain.ObjDraw3DNNSetCameraEx(AppMain.g_obj.glb_camera_id, 1, 9U); AppMain.GmWaterSurfaceDrawNoWaterField(AppMain.FX_FX32_TO_F32(obj_work.pos.x), -AppMain.FX_FX32_TO_F32(obj_work.pos.y) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, AppMain.FX_FX32_TO_F32(obj_work.pos.x) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, -AppMain.FX_FX32_TO_F32(obj_work.pos.y) - ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT); AppMain.GmWaterSurfaceDrawNoWaterField(( float )num2, -AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, ( float )num4); AppMain.GmWaterSurfaceDrawNoWaterField(AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x) - ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, ( float )num, AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_x) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH, ( float )(num - AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT)); AppMain.GmWaterSurfaceDrawNoWaterField(( float )(num3 - AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH), -AppMain.FX_FX32_TO_F32(gms_GMK_DRAIN_TANK_OUT_WORK.base_pos_y) + ( float )AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_HEIGHT, ( float )num3, ( float )num); AppMain.GmWaterSurfaceDrawNoWaterField(( float )num5, ( float )num4, ( float )(num5 + AppMain.GMD_GMK_DRAIN_TANK_DRAW_WATER_WIDTH), ( float )num); } AppMain.ObjDraw3DNNSetCameraEx(AppMain.g_obj.glb_camera_id, 1, 8U); AppMain.ObjDrawActionSummary(obj_work); }
// Token: 0x06001244 RID: 4676 RVA: 0x0009FA44 File Offset: 0x0009DC44 private static bool gmGmkDrainTankOutCheckKeyDir(AppMain.OBS_OBJECT_WORK gimmick_obj_work, int camera_roll) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK gms_GMK_DRAIN_TANK_OUT_WORK = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)gimmick_obj_work; return((camera_roll < 0 && gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left) || (camera_roll > 0 && !gms_GMK_DRAIN_TANK_OUT_WORK.flag_dir_left)); }
private static void gmGmkDrainTankOutUpdateCameraRollDie( AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work) { out_work.camera_roll -= out_work.camera_roll / 5; }
private static void gmGmkDrainTankOutUpdateDie(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK out_work = (AppMain.GMS_GMK_DRAIN_TANK_OUT_WORK)obj_work; AppMain.gmGmkDrainTankOutUpdateCameraRollDie(out_work); AppMain.ObjCameraGet(0).roll = out_work.camera_roll; }