Coder Social home page Coder Social logo

artopia's People

Contributors

vehsamrak avatar wooferclaw avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

artopia's Issues

Сущность Person

Реализовать сущность Person.
Person (игрок) связан с User (пользователь) связью 1 к 1.
Сущность и связь должны сохраняться в БД при создании персонажа.

Свойства:
Person.name
Person.cyrillicName
Person.createdAt

Двери

Выход из комнаты может быть закрыт дверью. Нужно реализовать механизм взаимодействия с подобными преградами:

  • парсинг дверей из XML
  • если выход закрыт, при попытке движения в данном направлении должно выдаваться кастомное сообщение для данного выхода (содержится в файле зоны)
  • возможность использовать команды "открыть" и "закрыть" в направлении двери. (например: открыть запад)
  • состояние двери должно сохраняться в памяти, но сбрасываться при перезагрузке

Поддержка кодировки KOI8

При логине пользователю предлагается выбрать кодировку.

Реализовать поддержку выбора кодировки KOI8.
Пользовательский ввод и вывод должен происходить в этой кодировке для этого пользователя.

Предметы в комнате

Комната может содержать предметы, которые отображаются в ней при осмотре.

Лог неверных команд

Записывать в лог ввод ошибочных команд, для дальнейшего анализа.
Группировать строке, выводя количество ошибочных вводов.

Пустой ввод

Если от клиента пришла пустая команда, тред падает с эксепшеном.

Exception in thread "Thread-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:658)
    at artopia.services.commands.CommandService.execute(CommandService.java:24)
    at artopia.handlers.ConnectionHandler.run(ConnectionHandler.java:58)
    at java.lang.Thread.run(Thread.java:745)

Команды перемещения

north, east, south, west, up, down - должны перемещать персонажа в пространстве.
Если в указанную сторону не пройти - должно выдаваться сообщение об этом.

Команда Look

Команда look должна отображать название и описание комнаты в которой находится юзер

Команда help

Команда help должна автоматически собирать справку по всем имеющимся командам. Результатом выполнения команды должен стать вывод таблицы примерно следующего вида:
команда (алиасы) - описание
следующая команда (алиасы) - описание

Короткие команды перемещения

Команды n, e, s, w, u, d и их русские аналоги должны находиться первыми, перед остальными командами начинающимися на эти символы

Сокращение команд

Поиск команд должен учитывать сокращенный ввод команд. Алгоритм поиска - по первым буквам в алфавитном порядке.

Комнаты

Реализовать сущность Room.
Привязать к User его текущую комнату.
Записывать информацию о текущей комнате в БД при выходе игрока из игры.

Свойства:
Room.id
Room.name
Room.description
Room.north(Room)
Room.south(Room)
Room.east(Room)
Room.west(Room)
Room.up(Room)
Room.down(Room)

Загрузка карты из XML

Репозиторий комнат должен загружаться из XML файлов.

  • Загрузка всех XML файлов зон и добавление их в репозиторий при его инициализации

Автоматическая регистрация персонажа

При регистрации нового юзера должен создаваться и персонаж.
Должно быть предложено выбрать имя для персонажа, а так же предложен сгенерированный вариант из логина.
Персонаж после создания должен сохраняться в БД.

Отпирание дверей

Возможность использовать команды "отпереть" и "запереть" в направлении двери, при этом в инвентаре должен быть подходящий ключ (id ключа задается в файле зоны)

Поддержка win-1251

При логине пользователю предлагается выбрать кодировку.

Реализовать поддержку выбора кроме UTF, кодировки win-1251.
Пользовательский ввод и вывод должен происходить в этой кодировке для этого пользователя.

Предметы

  • Cущность Item
    • name
    • inventoryName
    • roomName
    • description
    • durability
    • weight
    • price
  • Репозиторий ItemRepository загружающийся из XML файлов зон

Алиасы команд

В класса списка команд должен уметь создавать объект команды (или возвращать имя класса) из алиаса команды, то есть нужно предусмотреть английскую и русскую команду, запускающую один и тот же объект.

Осмотр при перемещении

При перемещении (north, east, etc..) должна автоматически выполняться команда look, чтобы игрок видел куда он пришел.

Регистрация

Механизм регистрации через консольные команды.
Регистрация должна инициироваться после введения нового логина, не зарегистрированного ранее. Соответственно механизм должен проверять наличие введенного логина и валидность пароля. Если введен неверный пароль - сообщение об этом и дисконнект. Если пароль введен верно - вход в игру.

При регистрации должны собираться следующие данные:

  • логин
  • пароль

Результатом регистрации должна стать запись в БД.

Список всех команд

Нужно чтобы все классы команд были перечислены в одном месте.
При этом поиск команд должен проводиться через класс-носитель.

Локализация

Все создания строк как рускоязычных так и нет должны проходить через статический локализатор, применяющий набор фраз для конкретного языка.

Все строки должны быть собраны в отдельном XML и загружаться оттуда.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.