private static void GmBoss4EffBombUpdateCreate(AppMain.GMS_BOSS4_EFF_BOMB_WORK bomb_work) { AppMain.MTM_ASSERT((object)bomb_work.parent_obj); bomb_work.pos[0] += AppMain.GmBoss4GetScrollOffset(); if (bomb_work.interval_timer != 0U) { --bomb_work.interval_timer; } else { int v2_1 = bomb_work.area[0]; int v2_2 = bomb_work.area[1]; int num1 = AppMain.FX_Mul(AppMain.AkMathRandFx(), v2_1); int num2 = AppMain.FX_Mul(AppMain.AkMathRandFx(), v2_2); AppMain.GMS_EFFECT_3DES_WORK efct_3des; switch (bomb_work.bomb_type) { case 0: efct_3des = AppMain.GmEfctCmnEsCreate((AppMain.OBS_OBJECT_WORK)null, 7); efct_3des.efct_com.obj_work.ppFunc = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null; AppMain.GmEffect3DESSetupBase(efct_3des, 2U, 1U); efct_3des.efct_com.obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss4EffMainFuncDeleteAtEnd); if (--bomb_work.interval_timer_sound <= 0) { bomb_work.interval_timer_sound = 3; AppMain.GmSoundPlaySE("Boss0_02"); break; } break; case 5: efct_3des = AppMain.GmBoss4EffCommonInit(743, new AppMain.VecFx32?()); efct_3des.efct_com.obj_work.ppFunc = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null; AppMain.GmEffect3DESSetupBase(efct_3des, 2U, 64U); efct_3des.efct_com.obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss4EffMainFuncDeleteAtEnd); break; default: AppMain.MTM_ASSERT(false); return; } AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)efct_3des); AppMain.MTM_ASSERT((object)obsObjectWork); obsObjectWork.pos.x = bomb_work.pos[0] - (v2_1 >> 1) + num1; obsObjectWork.pos.y = bomb_work.pos[1] - (v2_2 >> 1) + num2; obsObjectWork.pos.z = AppMain.GMM_BS_OBJ((object)bomb_work.parent_obj).pos.z + 131072; uint num3 = (uint)((long)AppMain.AkMathRandFx() * (long)(bomb_work.interval_max - bomb_work.interval_max) >> 12); bomb_work.interval_timer = bomb_work.interval_min + num3; } }
// Token: 0x060002B1 RID: 689 RVA: 0x000169AC File Offset: 0x00014BAC private static void GmBoss4EffBombUpdateCreate(AppMain.GMS_BOSS4_EFF_BOMB_WORK bomb_work) { AppMain.MTM_ASSERT(bomb_work.parent_obj); bomb_work.pos[0] += AppMain.GmBoss4GetScrollOffset(); if (bomb_work.interval_timer != 0U) { bomb_work.interval_timer -= 1U; return; } int num = bomb_work.area[0]; int num2 = bomb_work.area[1]; int num3 = AppMain.FX_Mul(AkMath.RandFx(), num); int num4 = AppMain.FX_Mul(AkMath.RandFx(), num2); int bomb_type = bomb_work.bomb_type; AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK; if (bomb_type != 0) { if (bomb_type != 5) { AppMain.MTM_ASSERT(false); return; } gms_EFFECT_3DES_WORK = AppMain.GmBoss4EffCommonInit(743, default(AppMain.VecFx32? )); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null; AppMain.GmEffect3DESSetupBase(gms_EFFECT_3DES_WORK, 2U, 64U); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = AppMain.gmBoss4EffMainFuncDeleteAtEnd; } else { gms_EFFECT_3DES_WORK = AppMain.GmEfctCmnEsCreate(null, 7); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null; AppMain.GmEffect3DESSetupBase(gms_EFFECT_3DES_WORK, 2U, 1U); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = AppMain.gmBoss4EffMainFuncDeleteAtEnd; if (--bomb_work.interval_timer_sound <= 0) { bomb_work.interval_timer_sound = 3; GmSound.PlaySE("Boss0_02"); } } OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_BS_OBJ(gms_EFFECT_3DES_WORK); AppMain.MTM_ASSERT(obs_OBJECT_WORK); obs_OBJECT_WORK.pos.x = bomb_work.pos[0] - (num >> 1) + num3; obs_OBJECT_WORK.pos.y = bomb_work.pos[1] - (num2 >> 1) + num4; obs_OBJECT_WORK.pos.z = AppMain.GMM_BS_OBJ(bomb_work.parent_obj).pos.z + 131072; uint num5 = (uint)((long)AkMath.RandFx() * (long)((ulong)(bomb_work.interval_max - bomb_work.interval_max)) >> 12); bomb_work.interval_timer = bomb_work.interval_min + num5; }
// Token: 0x060002B0 RID: 688 RVA: 0x00016940 File Offset: 0x00014B40 private static void GmBoss4EffBombInitCreate(AppMain.GMS_BOSS4_EFF_BOMB_WORK bomb_work, int bomb_type, AppMain.OBS_OBJECT_WORK parent_obj, int pos_x, int pos_y, int width, int height, uint interval_min, uint interval_max) { AppMain.MTM_ASSERT(bomb_work); AppMain.MTM_ASSERT(parent_obj); bomb_work.parent_obj = parent_obj; bomb_work.bomb_type = bomb_type; bomb_work.interval_timer = 0U; bomb_work.interval_min = interval_min; bomb_work.interval_max = interval_max; bomb_work.pos[0] = pos_x; bomb_work.pos[1] = pos_y; bomb_work.area[0] = width; bomb_work.area[1] = height; bomb_work.interval_timer_sound = 0; }