Beispiel #1
0
 private static void gmBoss3MgrAddObject(
     AppMain.GMS_BOSS3_MGR_WORK mgr_work,
     AppMain.OBS_OBJECT_WORK obj_work_parts)
 {
     ++mgr_work.obj_create_count;
     obj_work_parts.user_work_OBJECT = (object)mgr_work;
 }
Beispiel #2
0
 private static void gmBoss3MgrMainFunc(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS3_MGR_WORK gmsBosS3MgrWork = (AppMain.GMS_BOSS3_MGR_WORK)obj_work;
     if (((int)gmsBosS3MgrWork.flag & 2) == 0)
     {
         return;
     }
     AppMain.GMM_BS_OBJ((object)gmsBosS3MgrWork.body_work).flag |= 8U;
     gmsBosS3MgrWork.body_work = (AppMain.GMS_BOSS3_BODY_WORK)null;
     obj_work.ppFunc           = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss3MgrMainFuncWaitRelease);
 }
Beispiel #3
0
 private static void gmBoss3MgrMainFuncWaitSetup(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS3_MGR_WORK  gmsBosS3MgrWork = (AppMain.GMS_BOSS3_MGR_WORK)obj_work;
     AppMain.GMS_BOSS3_BODY_WORK bodyWork        = gmsBosS3MgrWork.body_work;
     for (int index = 0; 2 > index; ++index)
     {
         if (bodyWork.parts_objs[index] == null)
         {
             return;
         }
     }
     gmsBosS3MgrWork.flag |= 1U;
     obj_work.ppFunc       = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss3MgrMainFunc);
 }
Beispiel #4
0
 private static AppMain.OBS_OBJECT_WORK GmBoss3Init(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.GMS_BOSS3_MGR_WORK work    = (AppMain.GMS_BOSS3_MGR_WORK)AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS3_MGR_WORK()), "BOSS3_MGR");
     AppMain.OBS_OBJECT_WORK    objWork = work.ene_3d.ene_com.obj_work;
     objWork.flag      |= 16U;
     objWork.disp_flag |= 32U;
     objWork.move_flag |= 8448U;
     work.ene_3d.ene_com.enemy_flag |= 32768U;
     objWork.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss3MgrMainFuncWaitLoad);
     work.life      = AppMain.GmBsCmnIsFinalZoneType(objWork) == 0 ? 8 : 4;
     return(objWork);
 }
Beispiel #5
0
    private static int gmBoss3BodyBattleCalcPattern(AppMain.GMS_BOSS3_BODY_WORK body_work)
    {
        AppMain.GMS_BOSS3_MGR_WORK mgrWork = AppMain.gmBoss3MgrGetMgrWork(AppMain.GMM_BS_OBJ((object)body_work));
        int num1 = (int)AppMain.mtMathRand() % 100;
        int num2 = 0;

        for (int index = 0; 7 > index; ++index)
        {
            num2 += AppMain.g_gm_boss3_battle_pattern_per[mgrWork.life - 1][index];
            if (num1 < num2)
            {
                return(index);
            }
        }
        return(0);
    }
Beispiel #6
0
 private static void gmBoss3MgrMainFuncWaitRelease(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_BOSS3_MGR_WORK gmsBosS3MgrWork = (AppMain.GMS_BOSS3_MGR_WORK)obj_work;
     if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0)
     {
         if (gmsBosS3MgrWork.obj_create_count > 0)
         {
             return;
         }
         ((AppMain.GMS_ENEMY_COM_WORK)obj_work).enemy_flag |= 65536U;
         obj_work.flag |= 4U;
         AppMain.GmGameDatReleaseBossBattleStart(2);
         AppMain.GmGmkCamScrLimitRelease((byte)14);
         AppMain.OBS_OBJECT_WORK obj_work1 = AppMain.gmBoss3BodyBattleSearchPillar();
         if (obj_work1 != null)
         {
             AppMain.GmGmkBoss3PillarWallChangeModeReturn(obj_work1);
         }
     }
     obj_work.ppFunc = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null;
 }
Beispiel #7
0
 private static void gmBoss3MgrMainFuncWaitLoad(AppMain.OBS_OBJECT_WORK obj_work)
 {
     if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0 && !AppMain.GmMainDatLoadBossBattleLoadCheck(2))
     {
         return;
     }
     AppMain.GMS_BOSS3_MGR_WORK  mgr_work         = (AppMain.GMS_BOSS3_MGR_WORK)obj_work;
     AppMain.GMS_BOSS3_BODY_WORK gmsBosS3BodyWork = (AppMain.GMS_BOSS3_BODY_WORK)AppMain.GmEventMgrLocalEventBirth((ushort)319, obj_work.pos.x, obj_work.pos.y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0);
     AppMain.OBS_OBJECT_WORK     objWork1         = gmsBosS3BodyWork.ene_3d.ene_com.obj_work;
     objWork1.parent_obj            = obj_work;
     gmsBosS3BodyWork.parts_objs[0] = objWork1;
     mgr_work.body_work             = gmsBosS3BodyWork;
     AppMain.gmBoss3MgrAddObject(mgr_work, objWork1);
     AppMain.mtTaskChangeTcbDestructor(objWork1.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss3BodyExit));
     AppMain.OBS_OBJECT_WORK objWork2 = ((AppMain.GMS_BOSS3_EGG_WORK)AppMain.GmEventMgrLocalEventBirth((ushort)320, obj_work.pos.x, obj_work.pos.y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0)).ene_3d.ene_com.obj_work;
     objWork2.parent_obj = objWork1;
     AppMain.gmBoss3MgrAddObject(mgr_work, objWork2);
     AppMain.mtTaskChangeTcbDestructor(objWork2.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss3ExitFunc));
     gmsBosS3BodyWork.parts_objs[1] = objWork2;
     obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss3MgrMainFuncWaitSetup);
 }
Beispiel #8
0
 private static void gmBoss3BodyDamage(AppMain.GMS_BOSS3_BODY_WORK body_work)
 {
     AppMain.OBS_OBJECT_WORK obj_work_parts = AppMain.GMM_BS_OBJ((object)body_work);
     if (((int)body_work.flag & 1) != 0)
     {
         return;
     }
     AppMain.GMS_BOSS3_MGR_WORK mgrWork = AppMain.gmBoss3MgrGetMgrWork(obj_work_parts);
     --mgrWork.life;
     if (mgrWork.life > 0)
     {
         body_work.flag |= 1073741824U;
     }
     else
     {
         body_work.flag |= 2147483648U;
     }
     AppMain.GmSoundPlaySE("Boss0_01");
     AppMain.gmBoss3EffDamageInit(body_work);
     AppMain.GmPadVibSet(1, 30f, (ushort)8192, (ushort)8192, 0.0f, 0.0f, 0.0f, 8191U);
     AppMain.gmBoss3BodySetInvincibleTime(body_work, 120U);
 }
Beispiel #9
0
 private static int gmBoss3MgrCheckSetupComplete(AppMain.GMS_BOSS3_MGR_WORK mgr_work)
 {
     return(((int)mgr_work.flag & 1) != 0 ? 1 : 0);
 }