public void SetCurrentFieldMapID(uint map_id, float map_x, float map_z, float map_dir) { current = new CurrentFieldData(); current.fieldTransitionInfo.portalID = 0u; current.fieldTransitionInfo.mapID = map_id; current.fieldTransitionInfo.mapX = map_x; current.fieldTransitionInfo.mapZ = map_z; current.fieldTransitionInfo.mapDir = map_dir; if (current.fieldTransitionInfo.mapID != 0) { current.mapData = Singleton <FieldMapTable> .I.GetFieldMapData(current.fieldTransitionInfo.mapID); } else { current.mapData = null; } current.isValidBoss = false; List <FieldMapTable.EnemyPopTableData> enemyPopList = Singleton <FieldMapTable> .I.GetEnemyPopList(currentMapID); if (enemyPopList != null) { int i = 0; for (int count = enemyPopList.Count; i < count; i++) { FieldMapTable.EnemyPopTableData enemyPopTableData = enemyPopList[i]; if (enemyPopTableData != null && enemyPopTableData.bossFlag) { current.isValidBoss = true; break; } } } _SetFieldPortalInfoList(current.fieldTransitionInfo.mapID); }
private bool IsPreferredType(ENEMY_POP_TYPE now, FieldMapTable.EnemyPopTableData popData) { if (now == ENEMY_POP_TYPE.RARE_SPECIES && popData.enemyPopType == ENEMY_POP_TYPE.FIELD_BOSS) { return(true); } return(false); }
public void Init(CoopLocalServerStage stage, int idx, FieldMapTable.EnemyPopTableData data, int count) { this.stage = stage; popIndex = idx; this.data = data; this.count = count; enemys = new List <CoopLocalServerEnemy>(); isStart = false; }
public bool TryGetEnableLastEndTime(int mapId, out FieldMapEnemyPopTimeZoneData resultTimeZone, out ENEMY_POP_TYPE resultType) { resultTimeZone = null; resultType = ENEMY_POP_TYPE.RARE_SPECIES; if (!MonoBehaviourSingleton <FieldManager> .IsValid()) { return(false); } List <FieldMapEnemyPopTimeZoneData> enemyTimeZoneDataList = GetEnemyTimeZoneDataList(mapId); if (enemyTimeZoneDataList == null || enemyTimeZoneDataList.Count <= 0) { return(false); } List <FieldMapTable.EnemyPopTableData> rareOrBossEnemyList = Singleton <FieldMapTable> .I.GetRareOrBossEnemyList(mapId); if (rareOrBossEnemyList == null || rareOrBossEnemyList.Count <= 0) { return(false); } bool result = false; DateTime minValue = DateTime.MinValue; if (!MonoBehaviourSingleton <FieldManager> .I.fieldData.field.TryGetCreatedAt(out DateTime createdAt)) { return(false); } DateTime now = TimeManager.GetNow(); int i = 0; for (int count = enemyTimeZoneDataList.Count; i < count; i++) { FieldMapEnemyPopTimeZoneData fieldMapEnemyPopTimeZoneData = enemyTimeZoneDataList[i]; if (fieldMapEnemyPopTimeZoneData.TryGetStartTime(out DateTime result2) && fieldMapEnemyPopTimeZoneData.TryGetEndTime(out DateTime result3)) { result2 = TimeManager.CombineDateAndTime(createdAt, result2); result3 = TimeManager.CombineDateAndTime(createdAt, result3); if (createdAt >= result2 && now <= result3) { FieldMapTable.EnemyPopTableData enemyPopTableData = FindEnemyPopData(rareOrBossEnemyList, mapId, fieldMapEnemyPopTimeZoneData.enemyId); if (enemyPopTableData != null && (result3 > minValue || IsPreferredType(resultType, enemyPopTableData))) { result = true; resultType = enemyPopTableData.enemyPopType; resultTimeZone = fieldMapEnemyPopTimeZoneData; } } } } return(result); }
private FieldMapTable.EnemyPopTableData FindEnemyPopData(List <FieldMapTable.EnemyPopTableData> specialEnemyList, int mapId, int enemyId) { int i = 0; for (int count = specialEnemyList.Count; i < count; i++) { FieldMapTable.EnemyPopTableData enemyPopTableData = specialEnemyList[i]; if (enemyPopTableData.mapID == mapId && enemyPopTableData.enemyID == enemyId) { return(enemyPopTableData); } } return(null); }
protected override void OnInitialize() { base.OnInitialize(); if (enemy.brainParam != null) { param = enemy.brainParam; FieldMapTable.EnemyPopTableData enemyPopData = Singleton <FieldMapTable> .I.GetEnemyPopData(MonoBehaviourSingleton <FieldManager> .I.currentMapID, enemy.enemyPopIndex); if (enemyPopData != null && enemyPopData.autoActivate) { param.scoutParam = enemyPopData.scoutingParam; } } base.opponentMemSpanTimer.PauseOn(); base.targetUpdateSpanTimer.PauseOn(); if (enemy.isBoss) { base.opponentMem.SetHateParam(enemy.enemyTableData.personality); } else { base.opponentMem.SetHateParam(HateParam.GetDefault()); } base.fsm = new StateMachine(this); if (enemy.enemyTableData.active) { base.fsm.ChangeState(STATE_TYPE.ACTIVE); } else { base.fsm.ChangeState(STATE_TYPE.NONACTIVE); } if (QuestManager.IsValidInGameWaveMatch()) { SetNearWaveMatchTarget(); } actionCtrl = new EnemyActionController(this); actionCtrl.LoadTable(); }
private void InitEnemyPop(List <CoopOfflineManager.EnemyPopParam> enemy_pop_params) { if (QuestManager.IsValidInGameWaveMatch()) { MonoBehaviourSingleton <InGameProgress> .I.BattleRetire(); } else { enemyPops = new List <CoopLocalServerEnemyPop>(); int i = 0; for (int count = enemy_pop_params.Count; i < count; i++) { FieldMapTable.EnemyPopTableData data = enemy_pop_params[i].data; if (data != null && enemy_pop_params[i].data.enemyPopType == ENEMY_POP_TYPE.NONE) { int count2 = enemy_pop_params[i].count; CoopLocalServerEnemyPop coopLocalServerEnemyPop = new CoopLocalServerEnemyPop(); coopLocalServerEnemyPop.Init(this, i, data, count2); enemyPops.Add(coopLocalServerEnemyPop); } } } }
public IEnumerator InitializeEnemyPop() { if (MonoBehaviourSingleton <StageObjectManager> .IsValid() && MonoBehaviourSingleton <FieldManager> .IsValid()) { List <FieldMapTable.EnemyPopTableData> enemy_pop_list = Singleton <FieldMapTable> .I.GetEnemyPopList(MonoBehaviourSingleton <FieldManager> .I.currentMapID); if (enemy_pop_list != null && enemy_pop_list.Count > 0) { uint quest_enemy_id = 0u; int quest_enemy_lv = 0; if (QuestManager.IsValidInGame()) { quest_enemy_id = (uint)MonoBehaviourSingleton <QuestManager> .I.GetCurrentQuestEnemyID(); quest_enemy_lv = MonoBehaviourSingleton <QuestManager> .I.GetCurrentQuestEnemyLv(); } if (HasArenaInfo()) { quest_enemy_lv = arenaInfo.arenaData.level; } List <uint> enemy_list = new List <uint>(); int load_count = 0; int i = 0; for (int len = enemy_pop_list.Count; i < len; i++) { FieldMapTable.EnemyPopTableData enemy_pop = enemy_pop_list[i]; if (enemy_pop != null) { uint enemy_id; int enemy_level; if (enemy_pop.enemyID != 0) { enemy_id = enemy_pop.enemyID; enemy_level = (int)enemy_pop.enemyLv; } else { if (quest_enemy_id == 0) { continue; } enemy_id = quest_enemy_id; enemy_level = quest_enemy_lv; } if (!enemy_list.Contains(enemy_id)) { enemy_list.Add(enemy_pop.enemyID); MonoBehaviourSingleton <StageObjectManager> .I.CreateEnemy(0, Vector3.get_zero(), 0f, (int)enemy_id, enemy_level, enemy_pop.bossFlag, true, true, delegate(Enemy o) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) o.get_gameObject().SetActive(false); MonoBehaviourSingleton <StageObjectManager> .I.enemyStokeList.Add(o); ((_003CInitializeEnemyPop_003Ec__Iterator1F2) /*Error near IL_01fc: stateMachine*/)._003Cload_count_003E__4++; }); } } } while (load_count < enemy_list.Count) { yield return((object)null); } } } }