Esempio n. 1
0
		public ConnectionPoint(Point _begin, Point _end, Room _room, EDirections _dir)
		{
			Begin = _begin;
			End = _end;
			Room = _room;
			Dir = _dir;
		}
Esempio n. 2
0
 public void AddLayer(OpenTKTile _tile, FColor _color, EDirections _direction, bool _isCorpse)
 {
     m_layers.Add(new LayerInfo()
     {
         Tile = _tile, Color = _color, Direction = _direction, IsCorpse = _isCorpse
     });
 }
Esempio n. 3
0
 public Neighborship(int sourceId, EDirections fromSourceToSinkDirection, int sinkId)
 {
     SourceId = sourceId;
     FromSourceToSinkDirection = fromSourceToSinkDirection;
     SinkId = sinkId;
     FromSinkToSourceDirection = (EDirections)((int)(fromSourceToSinkDirection + 2) % 4);
 }
Esempio n. 4
0
 public ConnectionPoint(Point _begin, Point _end, Room _room, EDirections _dir)
 {
     Begin = _begin;
     End   = _end;
     Room  = _room;
     Dir   = _dir;
 }
 public virtual void SidePress(EDirections _direction)
 {
     if (OnSidePress != null)
     {
         OnSidePress(_direction);
     }
 }
Esempio n. 6
0
        public void DrawTile(OpenTKTile _tile, int _x, int _y, FColor _color, EDirections _direction, bool _isCorpse)
        {
            if (_x < 0 || _y < 0 || _x >= m_tilesInRow || _y >= m_tilesInColumn)
            {
                return;
            }
            var info = m_tiles[_x, _y];

            info.IsFogged = false;
            info.AddLayer(_tile, _color, _direction, _isCorpse);
        }
Esempio n. 7
0
 public VirusCarrierSimple(List <string> gridMap)
 {
     InfectionMap = new Dictionary <int, Dictionary <int, bool> >();
     for (int y = 0; y < gridMap.Count; y++)
     {
         InfectionMap.Add(y, new Dictionary <int, bool>());
         for (int x = 0; x < gridMap[y].Length; x++)
         {
             bool val = gridMap[y][x] == '#' ? true : false;
             InfectionMap[y].Add(x, val);
         }
     }
     direction       = EDirections.eUp;
     currentYPos     = InfectionMap.Count / 2;
     currentXPos     = InfectionMap[0].Count / 2;
     InfectionBursts = 0;
 }
Esempio n. 8
0
 public VirusCarrierEnhanced(List <string> gridMap)
 {
     InfectionMap = new Dictionary <int, Dictionary <int, ENodeStates> >();
     for (int y = 0; y < gridMap.Count; y++)
     {
         InfectionMap.Add(y, new Dictionary <int, ENodeStates>());
         for (int x = 0; x < gridMap[y].Length; x++)
         {
             ENodeStates val = gridMap[y][x] == '#' ? ENodeStates.eInfected : ENodeStates.eClean;
             InfectionMap[y].Add(x, val);
         }
     }
     direction       = EDirections.eUp;
     currentYPos     = InfectionMap.Count / 2;
     currentXPos     = InfectionMap[0].Count / 2;
     InfectionBursts = 0;
 }
Esempio n. 9
0
        public static Point GetDelta(this EDirections _direction)
        {
            switch (_direction)
            {
            case EDirections.UP:
                return(new Point(0, -1));

            case EDirections.DOWN:
                return(new Point(0, 1));

            case EDirections.LEFT:
                return(new Point(-1, 0));

            case EDirections.RIGHT:
                return(new Point(1, 0));

            default:
                throw new ArgumentOutOfRangeException("_direction");
            }
        }
Esempio n. 10
0
        public static ETerrains GetTerrain(this EDirections _direction)
        {
            switch (_direction)
            {
            case EDirections.UP:
                return(ETerrains.UP);

            case EDirections.DOWN:
                return(ETerrains.DOWN);

            case EDirections.LEFT:
                return(ETerrains.LEFT);

            case EDirections.RIGHT:
                return(ETerrains.RIGHT);

            default:
                throw new ArgumentOutOfRangeException("_direction");
            }
        }
Esempio n. 11
0
    public static Vector3 DirectionToVector(EDirections _dire)
    {
        if (_dire == EDirections.DOWN)
        {
            return(Vector3.back);
        }
        if (_dire == EDirections.UP)
        {
            return(Vector3.forward);
        }
        if (_dire == EDirections.LEFT)
        {
            return(Vector3.left);
        }
        if (_dire == EDirections.RIGHT)
        {
            return(Vector3.right);
        }

        return(Vector3.zero);
    }
Esempio n. 12
0
        public static IEnumerable <KeyValuePair <Point, EDirections> > GetBorders(this EDirections _direction)
        {
            switch (_direction)
            {
            case EDirections.UP:
            case EDirections.DOWN:
                yield return(new KeyValuePair <Point, EDirections>(EDirections.LEFT.GetDelta(), EDirections.LEFT | EDirections.RIGHT));

                yield return(new KeyValuePair <Point, EDirections>(EDirections.RIGHT.GetDelta(), EDirections.LEFT | EDirections.RIGHT));

                break;

            case EDirections.LEFT:
            case EDirections.RIGHT:
                yield return(new KeyValuePair <Point, EDirections>(EDirections.UP.GetDelta(), EDirections.UP | EDirections.DOWN));

                yield return(new KeyValuePair <Point, EDirections>(EDirections.DOWN.GetDelta(), EDirections.UP | EDirections.DOWN));

                break;

            default:
                yield break;
            }
        }
Esempio n. 13
0
		public Corpse(Creature _creature)
			: base(EALNouns.Corpse, _creature.Material)
		{
			m_direction = Util.AllDirections.RandomItem(World.Rnd);
			m_creature = _creature;
		}
Esempio n. 14
0
 public override void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse)
 {
     GameProvider.TileMapRenderer.DrawTile(this, _point.X, _point.Y, _color, _direction, _isCorpse);
 }
Esempio n. 15
0
 public int ChangeRoom(int currentRoomId, IAvatar avatar, EDirections direction)
 {
     //ActiveDungeons.Find(x => x.DungeonId == currentDungeonId)?.ChangeRoom(currentRoomId, avatar, direction);
     return(DungeonMockData.Dungeon.ChangeRoom(currentRoomId, avatar, direction));
 }
Esempio n. 16
0
 public OnWallTorch(LightSource _lightSource, EDirections _direction, Material _material)
     : base(EALNouns.Torch, _lightSource, _material)
 {
     m_direction = _direction;
 }
Esempio n. 17
0
        static void Main(string[] args)
        {
            List <string> maze = new List <string>();

            foreach (string line in InputLoader.LoadByLines("input.txt"))
            {
                maze.Add(line);
            }

            // Maze walker
            int           x     = FindMazeStart(maze);
            int           y     = 0;
            EDirections   dir   = EDirections.eDown;
            int           steps = 0;
            StringBuilder sb    = new StringBuilder();

            while (true)
            {
                switch (dir)
                {
                case EDirections.eUp:
                    y--;
                    break;

                case EDirections.eDown:
                    y++;
                    break;

                case EDirections.eLeft:
                    x--;
                    break;

                case EDirections.eRight:
                    x++;
                    break;
                }
                steps++;

                if (maze[y][x] == '+') // direction change
                {
                    switch (dir)
                    {
                    case EDirections.eUp:
                        if ((maze[y][x - 1] == '-') || char.IsLetter(maze[y][x - 1]))
                        {
                            dir = EDirections.eLeft;
                        }
                        else if ((maze[y][x + 1] == '-') || char.IsLetter(maze[y][x + 1]))
                        {
                            dir = EDirections.eRight;
                        }
                        break;

                    case EDirections.eDown:
                        if ((maze[y][x - 1] == '-') || char.IsLetter(maze[y][x - 1]))
                        {
                            dir = EDirections.eLeft;
                        }
                        else if ((maze[y][x + 1] == '-') || char.IsLetter(maze[y][x + 1]))
                        {
                            dir = EDirections.eRight;
                        }
                        break;

                    case EDirections.eLeft:
                        if ((maze[y - 1][x] == '|') || char.IsLetter(maze[y - 1][x]))
                        {
                            dir = EDirections.eUp;
                        }
                        else if ((maze[y + 1][x] == '|') || char.IsLetter(maze[y + 1][x]))
                        {
                            dir = EDirections.eDown;
                        }
                        break;

                    case EDirections.eRight:
                        if ((maze[y - 1][x] == '|') || char.IsLetter(maze[y - 1][x]))
                        {
                            dir = EDirections.eUp;
                        }
                        else if ((maze[y + 1][x] == '|') || char.IsLetter(maze[y + 1][x]))
                        {
                            dir = EDirections.eDown;
                        }
                        break;
                    }
                }
                else if (maze[y][x] == ' ') // Reached end of maze
                {
                    break;
                }
                else
                {
                    if (char.IsLetter(maze[y][x]))
                    {
                        sb.Append(maze[y][x]);
                    }
                }
            }
            Console.WriteLine(string.Format("Passed letters: {0}", sb.ToString()));
            Console.WriteLine(string.Format("Steps taken: {0}", steps));
            Console.ReadLine();
        }
Esempio n. 18
0
 public Splatter(FColor _color, int _tileIndex)
 {
     m_color     = _color;
     m_tileIndex = _tileIndex;
     m_direction = World.Rnd.GetRandomDirection();
 }
Esempio n. 19
0
		public abstract void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse);
Esempio n. 20
0
		public OnWallTorch(LightSource _lightSource, EDirections _direction, Material _material)
			: base(EALNouns.Torch, _lightSource, _material) { m_direction = _direction; }
Esempio n. 21
0
        public void Move()
        {
            if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eInfected)
            {
                switch (direction)
                {
                case EDirections.eUp:
                    direction = EDirections.eRight;
                    break;

                case EDirections.eDown:
                    direction = EDirections.eLeft;
                    break;

                case EDirections.eLeft:
                    direction = EDirections.eUp;
                    break;

                case EDirections.eRight:
                    direction = EDirections.eDown;
                    break;
                }
                InfectionMap[currentYPos][currentXPos] = ENodeStates.eFlagged;
            }
            else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eClean)
            {
                switch (direction)
                {
                case EDirections.eUp:
                    direction = EDirections.eLeft;
                    break;

                case EDirections.eDown:
                    direction = EDirections.eRight;
                    break;

                case EDirections.eLeft:
                    direction = EDirections.eDown;
                    break;

                case EDirections.eRight:
                    direction = EDirections.eUp;
                    break;
                }
                InfectionMap[currentYPos][currentXPos] = ENodeStates.eWeakened;
            }
            else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eFlagged)
            {
                switch (direction)
                {
                case EDirections.eUp:
                    direction = EDirections.eDown;
                    break;

                case EDirections.eDown:
                    direction = EDirections.eUp;
                    break;

                case EDirections.eLeft:
                    direction = EDirections.eRight;
                    break;

                case EDirections.eRight:
                    direction = EDirections.eLeft;
                    break;
                }
                InfectionMap[currentYPos][currentXPos] = ENodeStates.eClean;
            }
            else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eWeakened)
            {
                InfectionMap[currentYPos][currentXPos] = ENodeStates.eInfected;
                InfectionBursts++;
            }

            switch (direction)
            {
            case EDirections.eUp:
                currentYPos--;
                break;

            case EDirections.eDown:
                currentYPos++;
                break;

            case EDirections.eLeft:
                currentXPos--;
                break;

            case EDirections.eRight:
                currentXPos++;
                break;
            }

            if (!InfectionMap.ContainsKey(currentYPos))
            {
                InfectionMap.Add(currentYPos, new Dictionary <int, ENodeStates>());
            }
            if (!InfectionMap[currentYPos].ContainsKey(currentXPos))
            {
                InfectionMap[currentYPos].Add(currentXPos, ENodeStates.eClean);
            }
        }
Esempio n. 22
0
		public override void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse)
		{
			GameProvider.TileMapRenderer.DrawTile(this, _point.X, _point.Y, _color, _direction, _isCorpse);
		}
Esempio n. 23
0
        public void Move()
        {
            if (InfectionMap[currentYPos][currentXPos])
            {
                switch (direction)
                {
                case EDirections.eUp:
                    direction = EDirections.eRight;
                    break;

                case EDirections.eDown:
                    direction = EDirections.eLeft;
                    break;

                case EDirections.eLeft:
                    direction = EDirections.eUp;
                    break;

                case EDirections.eRight:
                    direction = EDirections.eDown;
                    break;
                }
            }
            else
            {
                InfectionBursts++;
                switch (direction)
                {
                case EDirections.eUp:
                    direction = EDirections.eLeft;
                    break;

                case EDirections.eDown:
                    direction = EDirections.eRight;
                    break;

                case EDirections.eLeft:
                    direction = EDirections.eDown;
                    break;

                case EDirections.eRight:
                    direction = EDirections.eUp;
                    break;
                }
            }
            InfectionMap[currentYPos][currentXPos] = !InfectionMap[currentYPos][currentXPos];

            switch (direction)
            {
            case EDirections.eUp:
                currentYPos--;
                break;

            case EDirections.eDown:
                currentYPos++;
                break;

            case EDirections.eLeft:
                currentXPos--;
                break;

            case EDirections.eRight:
                currentXPos++;
                break;
            }
            if (!InfectionMap.ContainsKey(currentYPos))
            {
                InfectionMap.Add(currentYPos, new Dictionary <int, bool>());
            }
            if (!InfectionMap[currentYPos].ContainsKey(currentXPos))
            {
                InfectionMap[currentYPos].Add(currentXPos, false);
            }
        }
Esempio n. 24
0
 public static IEnumerable <EDirections> AllDirectionsIn(this EDirections _allowed)
 {
     return(Enum.GetValues(typeof(EDirections)).Cast <EDirections>().Where(_dir => _dir != EDirections.NONE && _dir != EDirections.ALL && _allowed.HasFlag(_dir)));
 }
Esempio n. 25
0
 public abstract void Draw(Point _point, FColor _color, EDirections _direction, bool _isCorpse);
Esempio n. 26
0
 public Corpse(Creature _creature)
     : base(EALNouns.Corpse, _creature.Material)
 {
     m_direction = Util.AllDirections.RandomItem(World.Rnd);
     m_creature  = _creature;
 }
Esempio n. 27
0
		public void AddLayer(OpenTKTile _tile, FColor _color, EDirections _direction, bool _isCorpse)
		{
			m_layers.Add(new LayerInfo(){Tile = _tile, Color = _color, Direction = _direction, IsCorpse = _isCorpse});
		}
Esempio n. 28
0
		public void DrawTile(OpenTKTile _tile, int _x, int _y, FColor _color, EDirections _direction, bool _isCorpse)
		{
			if(_x<0 || _y<0 || _x>=m_tilesInRow || _y>=m_tilesInColumn) return;
			var info = m_tiles[_x, _y];
			info.IsFogged = false;
			info.AddLayer(_tile, _color, _direction, _isCorpse);
		}
Esempio n. 29
0
		public Splatter(FColor _color, int _tileIndex)
		{
			m_color = _color;
			m_tileIndex = _tileIndex;
			m_direction = World.Rnd.GetRandomDirection();
		}