public void Story_dungeon_generation() { int temp_transition_num = 0; map_name = "" + (map_num - 1); Debug.Log("4_New_game_stages --- Story_dungeon[" + map_name + "] generation"); if (Story_info.Map_data[map_name].short_info.region_teleportation.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.region_teleportation.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_teleport = new map_cell_name_script(); new_teleport.map_name = map_name; new_teleport.cell_address = point_list[i]; region_teleportation.Add(new_teleport); } point_list.Clear(); } point_list = Story_info.Map_data[map_name].short_info.region_dungeon_exit.Keys.ToList(); Story_info.Map_data[dungeon_list[0].map_name].cell_info[dungeon_list[0].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[dungeon_list[0].map_name].cell_info[dungeon_list[0].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = dungeon_list[0].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = dungeon_list[0].cell_address; point_list.RemoveAt(temp_transition_num); dungeon_list.RemoveAt(0); if (point_list.Count > 0) { map_name = "" + (map_num - 1); for (int i = 0; i < point_list.Count; i++) { Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing_active = 0; // обнулить полностью данные stuffing чтоб удалить выход Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.id = 0; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.editor_id = ""; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.editor_type = ""; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.level = 0; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.image_id = 0; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.object_id = 0; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.object_editor_id = ""; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.object_editor_type = ""; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.object_level = 0; Story_info.Map_data[map_name].cell_info[point_list[i]].cell_stuffing.object_image_id = 0; Story_info.Map_data[map_name].short_info.region_dungeon_exit.Remove(point_list[i]); } } point_list.Clear(); if (dungeon_list.Count > 0) { action_name = "Loading_map_story_dungeon"; Loading_map_story_dungeon(); } else { story_map_num = 0; action_name = ""; Debug.Log("New_game_stages --- Начало создания телепортов"); if (region_teleportation.Count > 0) { Start_region_teleportation_generation(); } else { End_story_generation(); } } }
public void Story_main_chain_dungeon_generation() { System.Random temp_rnd = new System.Random(); int temp_transition_num = 0; map_name = "" + (map_num - 1); Debug.Log("4_New_game_stages --- Story_chain_dungeon[" + map_name + "] generation"); if (Story_info.Map_data[map_name].short_info.region_teleportation.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.region_teleportation.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_teleport = new map_cell_name_script(); new_teleport.map_name = map_name; new_teleport.cell_address = point_list[i]; region_teleportation.Add(new_teleport); } point_list.Clear(); } if (Story_info.Map_data[map_name].short_info.region_dungeon_exit.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.region_dungeon_exit.Keys.ToList(); } if (story_map_num < (start_dungeon_transition_list.Count - 1)) { temp_transition_num = temp_rnd.Next(0, point_list.Count); Story_info.Map_data[start_dungeon_transition_list[story_map_num].map_name].cell_info[start_dungeon_transition_list[story_map_num].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[start_dungeon_transition_list[story_map_num].map_name].cell_info[start_dungeon_transition_list[story_map_num].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = start_dungeon_transition_list[story_map_num].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = start_dungeon_transition_list[story_map_num].cell_address; //Debug.Log("map[ " + start_dungeon_transition_list[story_map_num].map_name + " ].cell[ " + start_dungeon_transition_list[story_map_num].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[temp_transition_num] + " ]"); point_list.RemoveAt(temp_transition_num); temp_transition_num = temp_rnd.Next(0, point_list.Count); Story_info.Map_data[end_dungeon_transition_list[story_map_num + 1].map_name].cell_info[end_dungeon_transition_list[story_map_num + 1].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[end_dungeon_transition_list[story_map_num + 1].map_name].cell_info[end_dungeon_transition_list[story_map_num + 1].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = end_dungeon_transition_list[story_map_num + 1].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = end_dungeon_transition_list[story_map_num + 1].cell_address; //Debug.Log("map[ " + end_dungeon_transition_list[story_map_num + 1].map_name + " ].cell[ " + end_dungeon_transition_list[story_map_num + 1].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[temp_transition_num] + " ]"); point_list.RemoveAt(temp_transition_num); if (point_list.Count > 0) { for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_dungeon_exit = new map_cell_name_script(); new_dungeon_exit.map_name = map_name; new_dungeon_exit.cell_address = point_list[i]; region_dungeon_exit.Add(new_dungeon_exit); } } point_list.Clear(); story_map_num = story_map_num + 1; //Debug.Log("---------------------------------------------------------------------"); action_name = "Loading_map_story_main_chain_dungeon"; Loading_map_story_main_chain_dungeon(); } else { temp_transition_num = temp_rnd.Next(0, point_list.Count); Story_info.Map_data[start_dungeon_transition_list[story_map_num].map_name].cell_info[start_dungeon_transition_list[story_map_num].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[start_dungeon_transition_list[story_map_num].map_name].cell_info[start_dungeon_transition_list[story_map_num].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = start_dungeon_transition_list[story_map_num].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = start_dungeon_transition_list[story_map_num].cell_address; //Debug.Log("map[ " + start_dungeon_transition_list[story_map_num].map_name + " ].cell[ " + start_dungeon_transition_list[story_map_num].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[temp_transition_num] + " ]"); point_list.RemoveAt(temp_transition_num); temp_transition_num = temp_rnd.Next(0, point_list.Count); Story_info.Map_data[end_dungeon_transition_list[0].map_name].cell_info[end_dungeon_transition_list[0].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[end_dungeon_transition_list[0].map_name].cell_info[end_dungeon_transition_list[0].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = end_dungeon_transition_list[0].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = end_dungeon_transition_list[0].cell_address; //Debug.Log("map[ " + end_dungeon_transition_list[0].map_name + " ].cell[ " + end_dungeon_transition_list[0].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[temp_transition_num] + " ]"); point_list.RemoveAt(temp_transition_num); if (point_list.Count > 0) { for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_dungeon_exit = new map_cell_name_script(); new_dungeon_exit.map_name = map_name; new_dungeon_exit.cell_address = point_list[i]; region_dungeon_exit.Add(new_dungeon_exit); } } point_list.Clear(); story_map_num = 0; action_name = ""; Start_dungeon_transition_generation(); } }
public void Story_dungeon_transition_generation() { System.Random temp_rnd = new System.Random(); int temp_transition_num = 0; map_name = "" + (map_num - 1); Debug.Log("4_New_game_stages --- Story_dungeon_transition[" + map_name + "] generation"); if (Story_info.Map_data[map_name].short_info.region_teleportation.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.region_teleportation.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_teleport = new map_cell_name_script(); new_teleport.map_name = map_name; new_teleport.cell_address = point_list[i]; region_teleportation.Add(new_teleport); } point_list.Clear(); } point_list = Story_info.Map_data[map_name].short_info.region_dungeon_exit.Keys.ToList(); temp_transition_num = temp_rnd.Next(0, point_list.Count); Story_info.Map_data[dungeon_transition_list[0].map_name].cell_info[dungeon_transition_list[0].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[dungeon_transition_list[0].map_name].cell_info[dungeon_transition_list[0].cell_address].cell_stuffing.object_editor_type = point_list[temp_transition_num]; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_id = dungeon_transition_list[0].map_name; Story_info.Map_data[map_name].cell_info[point_list[temp_transition_num]].cell_stuffing.object_editor_type = dungeon_transition_list[0].cell_address; //Debug.Log("map[ " + dungeon_transition_list[0].map_name + " ].cell[ " + dungeon_transition_list[0].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[temp_transition_num] + " ]"); point_list.RemoveAt(temp_transition_num); dungeon_transition_list.RemoveAt(0); if (point_list.Count > 0) { if (dungeon_transition_list.Count >= point_list.Count) { story_map_num_max = point_list.Count; } else { story_map_num_max = dungeon_transition_list.Count; } for (int i = 0; i < story_map_num_max; i++) { temp_transition_num = temp_rnd.Next(0, dungeon_transition_list.Count); Story_info.Map_data[map_name].cell_info[point_list[0]].cell_stuffing.object_editor_id = dungeon_transition_list[temp_transition_num].map_name; Story_info.Map_data[map_name].cell_info[point_list[0]].cell_stuffing.object_editor_type = dungeon_transition_list[temp_transition_num].cell_address; Story_info.Map_data[dungeon_transition_list[temp_transition_num].map_name].cell_info[dungeon_transition_list[temp_transition_num].cell_address].cell_stuffing.object_editor_id = map_name; Story_info.Map_data[dungeon_transition_list[temp_transition_num].map_name].cell_info[dungeon_transition_list[temp_transition_num].cell_address].cell_stuffing.object_editor_type = point_list[0]; //Debug.Log("map[ " + dungeon_transition_list[temp_transition_num].map_name + " ].cell[ " + dungeon_transition_list[temp_transition_num].cell_address + " ] --> map[ " + map_name + " ].cell[ " + point_list[0] + " ]"); dungeon_transition_list.RemoveAt(temp_transition_num); point_list.RemoveAt(0); } } point_list.Clear(); if (dungeon_transition_list.Count > 0) { action_name = "Loading_map_story_dungeon_transition"; Loading_map_story_dungeon_transition(); } else { story_map_num = 0; action_name = "Loading_map_story_dungeon"; Debug.Log("New_game_stages --- Начало создания подземелей"); Start_dungeon_generation(); } }
public void Story_main_map_generation() { System.Random temp_rnd = new System.Random(); map_name = "" + (map_num - 1); story_map_name = map_name; Debug.Log("4_New_game_stages --- Story[" + story_map_name + "] generation"); if (story_map_num_max > 1) { if (Story_info.Map_data[map_name].short_info.dungeon_transition.Count > 0) { int temp_transition_num = 0; point_list = Story_info.Map_data[map_name].short_info.dungeon_transition.Keys.ToList(); /* * for(int i = 0; i < point_list.Count; i++) * { * Debug.Log("map[ " + map_name + " ].cell[ " + point_list[i] + " ]"); * } */ if (point_list.Count > 0) { temp_transition_num = temp_rnd.Next(0, point_list.Count); map_cell_name_script new_start_point = new map_cell_name_script(); new_start_point.map_name = map_name; new_start_point.cell_address = point_list[temp_transition_num]; start_dungeon_transition_list.Add(new_start_point); point_list.RemoveAt(temp_transition_num); } if (point_list.Count > 0) { temp_transition_num = temp_rnd.Next(0, point_list.Count); map_cell_name_script new_end_point = new map_cell_name_script(); new_end_point.map_name = map_name; new_end_point.cell_address = point_list[temp_transition_num]; end_dungeon_transition_list.Add(new_end_point); point_list.RemoveAt(temp_transition_num); } if (point_list.Count > 0) { for (temp_transition_num = 0; temp_transition_num < point_list.Count; temp_transition_num++) { map_cell_name_script new_point = new map_cell_name_script(); new_point.map_name = map_name; new_point.cell_address = point_list[temp_transition_num]; dungeon_transition_list.Add(new_point); } } point_list.Clear(); } } else { if (Story_info.Map_data[map_name].short_info.dungeon_transition.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.dungeon_transition.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_point = new map_cell_name_script(); new_point.map_name = map_name; new_point.cell_address = point_list[i]; dungeon_transition_list.Add(new_point); } point_list.Clear(); } } if (Story_info.Map_data[map_name].short_info.region_teleportation.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.region_teleportation.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_teleport = new map_cell_name_script(); new_teleport.map_name = map_name; new_teleport.cell_address = point_list[i]; region_teleportation.Add(new_teleport); } point_list.Clear(); } if (Story_info.Map_data[map_name].short_info.dungeon.Count > 0) { point_list = Story_info.Map_data[map_name].short_info.dungeon.Keys.ToList(); for (int i = 0; i < point_list.Count; i++) { map_cell_name_script new_point = new map_cell_name_script(); new_point.map_name = map_name; new_point.cell_address = point_list[i]; dungeon_list.Add(new_point); } point_list.Clear(); } //Debug.Log("New_game_stages --- Story_info.Map_data[map_name].short_info.dungeon_transition = " + Story_info.Map_data[map_name].short_info.dungeon_transition.Count + " " + dungeon_transition_list.Count); if (story_map_num_max > 1) { story_map_num = story_map_num + 1; if (story_map_num < story_map_num_max) { Loading_Story_main_map(); } else { story_map_num = 0; action_name = "Loading_map_story_main_chain_dungeon"; Debug.Log("New_game_stages --- Начало создания подземелей-переходов"); /* * for (int i = 0; i < start_dungeon_transition_list.Count; i++) * { * Debug.Log("map[ " + start_dungeon_transition_list[i].map_name + " ].cell[ " + start_dungeon_transition_list[i].cell_address + " ]"); * } * * //Debug.Log("New_game_stages ---------------------------------------------------------------------"); * * for (int i = 0; i < end_dungeon_transition_list.Count; i++) * { * Debug.Log("map[ " + end_dungeon_transition_list[i].map_name + " ].cell[ " + end_dungeon_transition_list[i].cell_address + " ]"); * } * * //Debug.Log("New_game_stages ---------------------------------------------------------------------"); */ Loading_map_story_main_chain_dungeon(); } } else { story_map_num = 0; action_name = ""; Debug.Log("New_game_stages --- Начало создания дополнительных подземелей-переходов"); Start_dungeon_transition_generation(); } }