public MasterDataDefineLabel.EnemyACTPatternSelectType Get_timing_type(int index) { MasterDataDefineLabel.EnemyACTPatternSelectType ret_val = MasterDataDefineLabel.EnemyACTPatternSelectType.NONE; switch (index) { case 0: ret_val = timing_type; break; } return(ret_val); }
/// <summary> /// 現在の条件を満たした敵行動テーブルを検索 /// </summary> /// <param name="battle_total_turn"></param> /// <returns></returns> private MasterDataEnemyActionTable searchCurrentMasterDataEnemyActionTable(int battle_total_turn) { if (m_BattleEnemy == null) { return(null); } MasterDataParamEnemy enemy_param = m_BattleEnemy.getMasterDataParamEnemy(); if (enemy_param == null) { return(null); } List <MasterDataEnemyActionTable> enemy_action_tables = new List <MasterDataEnemyActionTable>(); { int[] table_id_array = { enemy_param.act_table1, enemy_param.act_table2, enemy_param.act_table3, enemy_param.act_table4, enemy_param.act_table5, enemy_param.act_table6, enemy_param.act_table7, enemy_param.act_table8 }; for (int idx = 0; idx < table_id_array.Length; idx++) { MasterDataEnemyActionTable enemy_action_table = BattleParam.m_MasterDataCache.useEnemyActionTable((uint)table_id_array[idx]); if (enemy_action_table != null) { enemy_action_tables.Add(enemy_action_table); } } // 優先度、降順にソート enemy_action_tables.Sort((a, b) => b.timing_priority - a.timing_priority); } MasterDataEnemyActionTable ret_val = null; for (int priority_idx = 0; priority_idx < enemy_action_tables.Count; priority_idx++) { MasterDataEnemyActionTable enemy_action_table = enemy_action_tables[priority_idx]; bool is_cond = true; for (int cond_idx = 0; cond_idx < enemy_action_table.Get_timing_type_count(); cond_idx++) { MasterDataDefineLabel.EnemyACTPatternSelectType timing_type = enemy_action_table.Get_timing_type(cond_idx); int timing_type_param = enemy_action_table.Get_timing_type_param(cond_idx); switch (timing_type) { case MasterDataDefineLabel.EnemyACTPatternSelectType.HP: if (checkTimingHPRate(timing_type_param) == false) { is_cond = false; } break; case MasterDataDefineLabel.EnemyACTPatternSelectType.HP_UNDER: if (checkTimingHPRateUnder(timing_type_param) == false) { is_cond = false; } break; case MasterDataDefineLabel.EnemyACTPatternSelectType.TURN: if (checkTimingTotalTurn(battle_total_turn, timing_type_param) == false) { is_cond = false; } break; } if (is_cond == false) { break; } } if (is_cond) { ret_val = enemy_action_table; break; } } return(ret_val); }