예제 #1
0
 public void UpdateGrid()
 {
     //if (add_column == true) {
     //	for (int i = 0; i < current_nb_row; i++) {
     //		list_tile [nb_tile] = Instantiate (tile, parent_tile).GetComponent<Image> ();
     //		list_tile [nb_tile].sprite = default_sprite_tile[0];
     //		tmp_move_tile = (ClickOnTile)list_tile [nb_tile].GetComponent (typeof(ClickOnTile));
     //		tmp_move_tile.SetGameLogic (this);
     //		tmp_move_tile.SetInfo (default_sprite_tile, 4);
     //		tmp_move_tile.SetIndex (nb_tile);
     //		nb_tile += 1;
     //	}
     // else {
     //
     //	for (int i = 0; i < current_nb_column; i++) {
     //		list_tile [nb_tile] = Instantiate (tile, parent_tile).GetComponent<Image> ();
     //		list_tile [nb_tile].sprite = default_sprite_tile[0];
     //		tmp_move_tile = (ClickOnTile)list_tile [nb_tile].GetComponent (typeof(ClickOnTile));
     //		tmp_move_tile.SetGameLogic (this);
     //		tmp_move_tile.SetInfo (default_sprite_tile, 4);
     //		tmp_move_tile.SetIndex (nb_tile);
     //		nb_tile += 1;
     //	}
     //}
     if (size_grid < 7)
     {
         size_grid += 1;
         for (int i = nb_tile; i < size_grid * size_grid; i++)
         {
             AddTile();
         }
         tmp_move_tile = null;
         grid.UpdateGrid(size_grid);
     }
 }
예제 #2
0
 private void AddTile()
 {
     list_tile [nb_tile]        = Instantiate(tile, parent_tile).GetComponent <Image> ();
     list_tile [nb_tile].sprite = default_sprite_tile[0];
     tmp_move_tile = (ClickOnTile)list_tile [nb_tile].GetComponent(typeof(ClickOnTile));
     tmp_move_tile.SetGameLogic(this);
     tmp_move_tile.SetInfo(default_sprite_tile, 4);
     tmp_move_tile.SetIndex(nb_tile);
     nb_tile += 1;
 }
    void GenerateMap()
    {
        for (int x = 0; x < sizeX; x++)
        {
            for (int y = 0; y < sizeY; y++)
            {
                TileType   tileT = tileTypes[tiles[x, y]];
                GameObject ob    = (GameObject)Instantiate(tileT.visualPrefab, new Vector2(x, y), Quaternion.identity);

                ClickOnTile click = ob.GetComponent <ClickOnTile>();
                click.tileX = x;
                click.tileY = y;
                click.map   = this;
            }
        }
    }
예제 #4
0
    public void GenerateRessource(Sprite[] select_sprite, int color)
    {
        if (nb_tile_used >= nb_tile)
        {
            time_play = Time.time - time_play;
            Camera.main.gameObject.GetComponent <SoundManager> ().GameOverSound();
            game_over_pannel.SetActive(true);
            this.gameObject.SetActive(false);
        }
        else
        {
            int temp;
            int randomIndex;
            list_index = new int[taille_max_row * taille_max_column];

            for (int i = 0; i < nb_tile; i++)
            {
                list_index [i] = i;
            }
            for (int i = 0; i < nb_tile; i++)
            {
                temp                    = list_index[i];
                randomIndex             = Random.Range(i, nb_tile);
                list_index[i]           = list_index[randomIndex];
                list_index[randomIndex] = temp;
            }
            for (int i = 0; i < list_index.Length; i++)
            {
                if (list_tile [list_index[i]].sprite == default_sprite_tile[0] || list_tile [list_index[i]].sprite == default_sprite_tile[1])
                {
                    if (list_tile [list_index [i]].sprite == default_sprite_tile [1])
                    {
                        saved_move_tile = null;
                    }
                    tmp_move_tile = (ClickOnTile)list_tile [list_index[i]].GetComponent(typeof(ClickOnTile));
                    tmp_move_tile.SetImage(select_sprite, color);
                    nb_tile_used += 1;
                    break;
                }
            }
        }
    }
예제 #5
0
 public bool SwapTile(ClickOnTile current_tile)
 {
     if (saved_move_tile != null && saved_move_tile != current_tile)
     {
         tmp_color           = current_tile.GetColor();
         tmp_selected_sprite = current_tile.GetInfo();
         Camera.main.gameObject.GetComponent <SoundManager> ().MoveBlockSound();
         current_tile.SetInfo(saved_move_tile.GetInfo(), saved_move_tile.GetColor());
         saved_move_tile.SetInfo(tmp_selected_sprite, tmp_color);
         saved_move_tile = null;
         nb_move        += 1;
         return(true);
     }
     else if (saved_move_tile == current_tile)
     {
         saved_move_tile = null;
     }
     else
     {
         saved_move_tile = current_tile;
     }
     return(false);
 }
예제 #6
0
    public bool CheckSelectedForm(ClickOnTile current_tile, int index, int color, bool already_see)
    {
        if (already_see && current_tile)
        {
            for (int i = current_tile.GetNbTileSelected(); i < nb_tile_selected - 1; i++)
            {
                list_selected_tile [i]       = list_selected_tile [i + 1];
                list_selected_tile_object[i] = list_selected_tile_object[i + 1];
                list_selected_tile_object [i].SetNbTileSelected(i);
            }
            nb_tile_selected -= 1;
        }
        else if (current_tile != null && color != 4)
        {
            current_tile.SetNbTileSelected(nb_tile_selected);
            list_selected_tile [nb_tile_selected].x     = index;
            list_selected_tile [nb_tile_selected].y     = color;
            list_selected_tile_object[nb_tile_selected] = current_tile;
            nb_tile_selected += 1;
        }
        if (actif_contrat)
        {
            int   motif, form, nb_block_asked;
            int[] color_pattern, pattern;

            motif = actif_contrat.GetMotif();
            form  = actif_contrat.GetForm();
            color = actif_contrat.GetColor();
            if (motif >= 5)
            {
                nb_block_asked = 4;
            }
            else
            {
                nb_block_asked = actif_contrat.GetMotif();
            }
            if (nb_tile_selected == nb_block_asked)
            {
                pattern       = new int[nb_block_asked];
                color_pattern = new int[nb_block_asked];
                if (motif == 1)
                {
                    pattern = CreatePatern(1, 0, 0, 0, 0);
                }
                else if (motif == 2)
                {
                    if (form == 0)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, 0, 0);
                    }
                    else if (form == 1)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 0, 0);
                    }
                }
                else if (motif == 3)
                {
                    if (form == 0)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri + 1, 0);
                    }
                    else if (form == 1)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri * 2, 0);
                    }
                    else if (form == 2)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, 0);
                    }
                    else if (form == 3)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri + 1, 0);
                    }
                    else if (form == 4)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, max_column_tetri + 1, 0);
                    }
                    else if (form == 5)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, max_column_tetri, 0);
                    }
                }
                else if (motif == 4)
                {
                    if (form == 0)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri * 2, max_column_tetri * 3);
                    }
                    else if (form == 1)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, max_column_tetri, max_column_tetri * 2);
                    }
                    else if (form == 2)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, max_column_tetri + 1, max_column_tetri * 2 + 1);
                    }
                    else if (form == 3)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri + 1, max_column_tetri * 2 + 1);
                    }
                    else if (form == 4)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri + 1, max_column_tetri * 2);
                    }
                    else if (form == 5)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri + 1, max_column_tetri * 2, max_column_tetri * 2 + 1);
                    }
                    else if (form == 6)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri * 2, max_column_tetri * 2 + 1);
                    }
                    else if (form == 7)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, 3);
                    }
                    else if (form == 8)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, max_column_tetri + 2);
                    }
                    else if (form == 9)
                    {
                        pattern = CreatePatern(nb_block_asked, 2, max_column_tetri, max_column_tetri + 1, max_column_tetri + 2);
                    }
                    else if (form == 10)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, max_column_tetri + 1);
                    }
                    else if (form == 11)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri + 1, max_column_tetri + 2);
                    }
                    else if (form == 12)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, max_column_tetri);
                    }
                    else if (form == 13)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri + 1, max_column_tetri + 2);
                    }
                }
                else if (motif == 5)
                {
                    if (form == 0)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri * 2, max_column_tetri * 3 + 1);
                    }
                    else if (form == 1)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri + 1, max_column_tetri * 2 + 1, max_column_tetri * 3);
                    }
                    else if (form == 2)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri * 2, max_column_tetri * 3 + 1);
                    }
                    else if (form == 3)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri + 1, max_column_tetri * 2 + 1, max_column_tetri * 3);
                    }
                    else if (form == 4)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri * 2, max_column_tetri * 3);
                    }
                    else if (form == 5)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri + 1, max_column_tetri * 2 + 1, max_column_tetri * 3 + 1);
                    }
                    else if (form == 6)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, max_column_tetri, max_column_tetri + 2, max_column_tetri * 2 + 1);
                    }
                    else if (form == 7)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, 2, max_column_tetri, max_column_tetri * 2);
                    }
                    else if (form == 8)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, max_column_tetri + 2, max_column_tetri * 2 + 2);
                    }
                    else if (form == 9)
                    {
                        pattern = CreatePatern(nb_block_asked, 2, max_column_tetri + 2, max_column_tetri * 2, max_column_tetri * 2 + 1);
                    }
                    else if (form == 10)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri, max_column_tetri * 2 + 1, max_column_tetri * 2 + 2);
                    }
                    else if (form == 11)
                    {
                        pattern = CreatePatern(nb_block_asked, 3, max_column_tetri, max_column_tetri + 1, max_column_tetri + 2);
                    }
                    else if (form == 12)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, max_column_tetri + 1, max_column_tetri + 2, max_column_tetri + 3);
                    }
                    else if (form == 13)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, 2, 3, max_column_tetri);
                    }
                    else if (form == 14)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 1, 2, max_column_tetri + 3);
                    }
                    else if (form == 15)
                    {
                        pattern = CreatePatern(nb_block_asked, 1, 2, max_column_tetri, max_column_tetri + 3);
                    }
                    else if (form == 16)
                    {
                        pattern = CreatePatern(nb_block_asked, 0, 3, max_column_tetri + 1, max_column_tetri + 2);
                    }
                }
                color_pattern = CreatePatern(nb_block_asked, color, color, color, color);
                if (CheckForm(list_selected_tile, nb_block_asked, pattern, color_pattern))
                {
                    for (int i = 0; i < nb_tile_selected; i++)
                    {
                        list_selected_tile_object [i].Reset(default_sprite_tile);
                    }
                    nb_tile_used    -= nb_tile_selected;
                    nb_tile_selected = 0;
                    GenerateTask(actif_contrat.gameObject, form, null, motif, false);
                    actif_contrat.gameObject.SetActive(false);
                    Camera.main.gameObject.GetComponent <SoundManager> ().SuccedContratSound();
                    actif_contrat = null;
                    Finish_contract();
                    nb_contract_done [motif - 1] += 1;
                    return(true);
                }
            }
        }
        return(false);
    }