예제 #1
0
 private void readMapTexture()
 {
     Color[] pixels = mapTexture.GetPixels(0, 0, mapTexture.width, mapTexture.height);
     for (int y = 0; y < mapTexture.height; y++)
     {
         for (int x = 0; x < mapTexture.width; x++)
         {
             Color      c    = pixels [(y * mapTexture.width) + x];
             GameObject tile = new GameObject();
             tile.transform.position = new Vector3(x, y);
             tile.transform.SetParent(tile_dump.transform);
             if (c == Color.black)
             {
                 WallTiles.Add(tile);
                 tile.name = "Wall";
             }
             else if (c == Color.blue)
             {
                 StartTilesTeam1.Add(tile);
                 tile.name = "Team 1";
             }
             else if (c == Color.green)
             {
                 StartTilesTeam2.Add(tile);
                 tile.name = "Team 2";
             }
             else
             {
                 Tiles.Add(tile);
                 tile.name = "Walkable";
             }
         }
     }
 }
예제 #2
0
    //Placeholder for tilecreation
    private void PlaceTile(int x, int y, Vector3 worldStart, int type)
    {
        GameObject newTile      = Instantiate(tilePrefabs[type]);
        Vector3    tilePosition = new Vector3(worldStart.x + TileSize / 2 + (TileSize * x), worldStart.y - TileSize / 2 - (TileSize * y));

        newTile.transform.position = tilePosition;

        // differentiate playing field-stadium
        if (type == 0 || type == 2)
        {
            Tiles.Add(newTile);
        }

        if (type == 2)
        {
            if (y > MaxYTiles / 2)
            {
                StartTilesTeam1.Add(newTile);
            }
            else
            {
                StartTilesTeam2.Add(newTile);
            }
        }

        if (type == 3)
        {
            WallTiles.Add(newTile);
        }
    }
예제 #3
0
 internal void MoveDown(Character character)
 {
     if ((character.TileNumber / WidthUnits != HeightUnits - 1) && !WallTiles.Contains(character.TileNumber + 10))
     {
         double x = MyFoxDraw.GetLeft(MyFoxDraw.Items[character.CharacterId]);
         double y = MyFoxDraw.GetTop(MyFoxDraw.Items[character.CharacterId]) + 50;
         MyFoxDraw.SetPosition(MyFoxDraw.Items[character.CharacterId], x, y);
         character.TileNumber += 10;
     }
 }
예제 #4
0
 internal void MoveUp(Character character)
 {
     if ((character.TileNumber / WidthUnits != 0) && !WallTiles.Contains(character.TileNumber - 10))
     {
         double x = MyFoxDraw.GetLeft(MyFoxDraw.Items[character.CharacterId]);
         double y = MyFoxDraw.GetTop(MyFoxDraw.Items[character.CharacterId]) - 50;
         MyFoxDraw.SetPosition(MyFoxDraw.Items[character.CharacterId], x, y);
         character.TileNumber -= 10;
     }
 }
예제 #5
0
 public Area(FoxDraw myFoxDraw)
 {
     MyFoxDraw = myFoxDraw;
     FreeTiles = new List <int>();
     for (int i = 0; i < WidthUnits * HeightUnits; i++)
     {
         if (!WallTiles.Contains(i))
         {
             FreeTiles.Add(i);
         }
     }
 }
예제 #6
0
        /// <summary>
        /// プレイヤーの家を設定し、山から配牌をとる
        /// </summary>
        /// <param name="status">何家か</param>
        /// <param name="walltiles">山牌</param>
        public Player(PlayerStatus status, WallTiles walltiles)
        {
            Status = status;

            // 配牌
            Hands.SetFirstTiles(walltiles.FirstDrawing());

            if (status == PlayerStatus.EastPlayer)
            {
                Hands.SetTile(walltiles.Drawing());
            }
        }
예제 #7
0
 public void DrawMap()
 {
     for (int i = 0; i < HeightUnits; i++)
     {
         for (int j = 0; j < WidthUnits; j++)
         {
             if (WallTiles.Contains(WidthUnits * i + j))
             {
                 MyFoxDraw.AddImage("./Assets/wall.png", 50 * j, 50 * i);
             }
             else
             {
                 MyFoxDraw.AddImage("./Assets/floor.png", 50 * j, 50 * i);
             }
         }
     }
 }
예제 #8
0
        private List <string> FindOptions(Character character)
        {
            var list = new List <string>();

            if ((character.TileNumber % 10) != 9 && !WallTiles.Contains(character.TileNumber + 1))
            {
                list.Add("right");
            }
            if ((character.TileNumber / 10) != 0 && !WallTiles.Contains(character.TileNumber - 10))
            {
                list.Add("up");
            }
            if ((character.TileNumber / 10) != 10 && !WallTiles.Contains(character.TileNumber + 10))
            {
                list.Add("down");
            }
            if ((character.TileNumber % 10) != 0 && !WallTiles.Contains(character.TileNumber - 1))
            {
                list.Add("left");
            }
            return(list);
        }
예제 #9
0
 public WallViewResolver(IEventSystem eventSystem, IEntityCollectionManager collectionManager, IUnityInstantiator instantiator, WallTiles wallTiles)
     : base(eventSystem, collectionManager, instantiator)
 {
     _wallTiles = wallTiles;
 }
 public WallViewResolver(IViewHandler viewHandler, WallTiles wallTiles) : base(viewHandler)
 {
     _wallTiles = wallTiles;
 }
예제 #11
0
 public WallViewResolver(IEventSystem eventSystem, IEntityDatabase entityDatabase, IUnityInstantiator instantiator, WallTiles wallTiles)
     : base(eventSystem, entityDatabase, instantiator)
 {
     _wallTiles = wallTiles;
 }