SetBlockableObject() public method

public SetBlockableObject ( Tower gameObject ) : void
gameObject UHSampleGame.CoreObjects.Towers.Tower
return void
Exemplo n.º 1
0
        public static void SetTowerForLevelMap(Tower tower, Tile tile)
        {
            tile.SetBlockableObject(tower);
            //tile2.SetBlockableObject(tower);

            //UpdateTilePaths();

            //List<Tile> walkableNeighbors = GetWalkableNeighbors(tile);

            for (int i = 0; i < tile.tileNeighbors.Count; i++)
            {
                tile.tileNeighbors[i].RegisterTowerListenerForUnit(ref tower);
            }

            for (int i = 0; i < tile.tileNeighbors.Count; i++)
            {
                tile.tileNeighbors[i].RegisterTowerListenerForTower(ref tower);
            }
            //OnTowerCreated();
        }
Exemplo n.º 2
0
        public static bool SetTower(ref Tower tower, ref Tile Tile2)
        {
            //Tile2.SetBlockableObject(tower);
            //AStar2.UpdateWalkableNeighborsForTileID(Tile2.ID);
            if (IsTilePathsValidFor(Tile2.ID))
            {
                Tile2.SetBlockableObject(tower);
                //AStar2.UpdateWalkableNeighborsForTileID(Tile2.ID);
                AStar2.UpdateNeeded = true;
                ////UpdateTilePaths();

                //walkableNeighbors = GetWalkableNeighbors(Tile2);

                //IDEA: WHAT ABOUT OFFSETTING THIS TO THE THREAD?
                //Maintain a list of towers to update on the next update pass after walkableNeighbors is relevant?
                for (int i = 0; i < Tile2.tileNeighbors.Count; i++)
                {
                    Tile2.tileNeighbors[i].RegisterTowerListenerForUnit(ref tower);
                }
                for (int i = 0; i < Tile2.tileNeighbors.Count; i++)
                {
                    Tile2.tileNeighbors[i].RegisterTowerListenerForTower(ref tower);
                }
                tower.tile = Tile2;
                OnTowerCreated();

                return true;
            }

               // RemoveTower(ref Tile2);

            //Tile2.RemoveBlockableObject();
            //for (int i = 0; i < Tile2.tileNeighbors.Count; i++)
            //{
            //    Tile2.tileNeighbors[i].UnregisterTowerListenerForTower(ref tower);
            //    Tile2.tileNeighbors[i].UnregisterTowerListenerForUnit(ref tower);
            //}
            //AStar2.UpdateWalkableNeighborsForTileID(Tile2.ID);
            //for (int j = 0; j < bases.Count; j++)
            //{
            //    for (int i = 0; i < bases.Count; i++)
            //    {
            //        if (i != j)
            //        {
            //            bases[i].Tile.UpdatePathTo(bases[j].Tile);
            //        }
            //    }
            //}
            return false;
        }