Example #1
0
        public void OnLeftRoom(Entity entity, Room room)
        {
            if (room == boat)
            {
                OnLeftBoat(entity);
                return;
            }

            if (entity == diver)
            {
                if (room.IsEntityLeftOfRoom(entity))
                {
                    MakeRoomActive(room.SeaX - 1, room.SeaY);
                    entity.X = room.Size.X - 2;
                }

                if (room.IsEntityRightOfRoom(entity))
                {
                    MakeRoomActive(room.SeaX + 1, room.SeaY);
                    entity.X = -entity.Width + 1;
                }

                if (room.IsEntityBelowRoom(entity))
                {
                    MakeRoomActive(room.SeaX, room.SeaY + 1);
                    entity.Y = -entity.Height + 1;
                }
                if (room.IsEntityAboveRoom(entity))
                {
                    MakeRoomActive(room.SeaX, room.SeaY - 1);
                    entity.Y = room.Size.Y - 2;
                }

                return;
            }

            if (entity.IsTransitionable)
            {
                EntityTransition entityTransistion = new EntityTransition(entity, room);
                entityTransitions.Add(entityTransistion);
            }
        }