Git Product home page Git Product logo

likedimion's Introduction

likedimion

text online game

likedimion's People

Contributors

mbabenko21 avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

likedimion's Issues

Сервис использования предметов

Экипировка

На вход принимает используемый предмет и персонажа. Определяется тип предмета (куда ему нужно одеваться). Запрашиваются требования к предмету, если персонаж удовлетворяет требованиям, то проверяется, нет ли одетого предмета, если есть, то снять (убрать из экипировки, добавить в рюкзак), т.о. мы освобождается слот для предмета и одевается необходимый (удаляется из рюкзака и добавляется в слот)


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

Передвижение НПС по миру

НПС в первую очередь должен следовать за владельцем, если такового нет, проверить, кого НПС преследует, если и такового нет, то посмотреть, может ли совершить переход НПС (настало ли время, есть ли свободные очки переходов), если да, то выбирается случайная дверь и НПС туда собственно топает.
Как происходит процесс перехода:

  • НПС удаляется из npc-list его локации
  • Обновляется локация у НПС, проверяются свободные очки хода, если их больше 1 то происходит просто декримент очков хода, если 1, то устанавливается количество очков хода по умолчанию и ставится таймер.
  • НПС добавляется в npc-list новой локации.

Событие при переходе НПС

move.npc
При переходе нпц выбрасывается это событие. Оно должно выполнять добавление в журнал системного сообщения о том что тот или иной НПС ушел и куда он ушел

Инъекция php-кода

  • В текст диалога или ответа можно добавить php-код, заключив его в теги {php}{/php}
  • Прямое обращение к полям игрока путем заключения его в {%%}. Должен вызываться getter-метод для этого поля, если он есть

Сервис журнала событий

  • Добавление события в журнал для определенной локации
  • Удаление событий из журнала для определенной локации
  • Получение последних 10 событий для определенной локации
  • Сохранение событий для определенной локации
  • Получение всех событий для определенной локации

Событие при переходе персонажа

move.char
При переходе из локации в локацию персонаж выбрасывает событие, которое добавляет в журнал сообщение о том куда он ушел

Журнал событий

Создание журнала событий.
Журнал событий распологается вверху страницы, там должны отображаться системные сообщения.

Отдельное представление для имени предмета

Необходимо включить следующие поля

  • Картинка (32х32)
  • Имя предмета маленькими буквами (по необходимости в нужной форме)
  • Возможность включить количество предметов (для рюкзака)
  • Информация о предмете
  • Дополнительные поля (модификация, мастер)

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.