Пример #1
0
    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();
            }
        }
    }
Пример #2
0
    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();
        }
    }
Пример #3
0
    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();
        }
    }
Пример #4
0
    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();
        }
    }