Giter Site home page Giter Site logo

vrisingacademysite's People

Contributors

aelariane avatar bobrokrot avatar inflexjs avatar jagerente avatar zmievsa avatar

Watchers

 avatar  avatar

Forkers

zmievsa

vrisingacademysite's Issues

Виды крови

image
Можно быстренько добавить на сайт виды крови.

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

У типа крови есть:
— Имя
— Способность 1
— Способность 2
— Способность 3
— Способность 4
— Способность 5
Ну и иконка. Всё.

Ну и на стороне фронтэнда приписать, что Способность 1 работает на 0%+ качестве крови, способность 2 на 30%+ и т.д.

Items Tooltip

image
При наведении мыши на иконку предмета отображать следующую информацию:

— Иконка (необязательно на самом деле)
— Имя
— Set Name
— Статы (если есть)
— Описание

Больше ничего.
Аналогично для заклинаний и всего остального в будущем, но пока что только итемы нужны.

New API

Think about another ways of API architecture

Change button active state method

Сейчас для имитации нажатой кнопки используется 'focus' state.
Необходимо везде где это используется, сделать динамическое присваивание и удаление класса 'active', дабы при сбитом фокусе не слетало нажатие.

Design database

image
Тут все связи, которые на данный момент есть в игре. Если что-то вспомню и дополню, то напишу.

Ссылка на эту карту с правами редактирования:
https://miro.com/welcomeonboard/MEZpbHVuNVN3RVVsU092ZEVNTEIxNDJkV29ZMEp1elRFUG1SSVJkQWxjdk81SjI4b1FvQWoxZ01qYU0zYzZZdHwzNDU4NzY0NTI1NTM3MzAzOTY1?share_link_id=159356008124

image
Там надо нажимать на иконочку стрелок в углу, что почитать мои комментарии.
Либо приблизить очень сильно.

Бестиарий

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

Для фильтра я разделил монстров на типы или faction. У них кроме id и названия ничего нет.

Монстр:
— name
— faction
— blood type
—— есть 6 стандартный, есть None для нежити всякой, есть Random для комаров и есть V Blood для боссов. Когда у нас будет страница для типов крови, там отображать надо будет только 6 стандартных.

— level
—— У монстров есть базовый уровень, но каждые 30% качества крови их уровень повышается на 2 и ещё +4 при 100% (надо проверить). То есть можно хранить только одно число, а на странице указывать рендж от level до level+10. При этом для V Blood и None типов уровень фиксированный. Однако...
—— Есть парочка монстров-исключений. Villager'ы часть имеют базовый уровень 28, а часть 26. Они одни такие, и это не зависит от локации или чего-то ещё, по крайней мере я не смог понять прикол. Пофиг на них, текстом можно написать про это.
—— Есть парочка монстров, у который одинаковые названия и они одинаково выглядят, но у них разные уровни в зависимости от локации. Это Armoured Skeleton (20 ур. в начальных локациях и 40 в более сложных) и Skeleton Crossbow (2 в самой первой локации, 18 в начальных и 36 в сложных). Я думаю, можно их хранить как отдельных монстров и дописать им в название их уровень. В далёком будущем им можно будет указывать в качестве мест обитания разные локации.

— locationS
—— это для далёкого будущего, это слишком муторно делать. Причём тут такая проблема ещё: для каждой локации надо указывать монстров, в которой они обитают. Но при этом есть ещё патрулирующие монстры, которые ходят по дорогам, и при этом они ходят ни где попало, а, например, в северной части региона Данли. Можно придумать свои локации "северные дороги Данли" в принципе.

— loot
—— (loot id, droprate, amount)
—— у нас в ближайшее время не будет никакой информации по поводу шансов выпадения. Однако я думаю, можно сразу это подключить и использовать так: писать дропрейт 0.25 для редких предметов, 0.75 для частых предметов, 1.0 для гарантированных предметов. И в information соответственно давать три списка предметов: guaranteed drops, common drops, rare drops.
—— Но есть ещё "сеты" дропов. Например, Treant всегда гарантированно даёт 4 случайных предмета из списка семян, Stone Golem даёт 2 случайных гема и есть ещё пара примеров. Типа хотелось бы писать "Guaranteed to drop 4 items among these: (список итемов)".
— Соответственно эту информацию можно будет писать в information у итемов. Давать список name монстров, у которых можно нафармить эти предметы.

ДЛЯ V BLOOD дополнительно
— knowledgeid
— mapgenieid

Главная страница

Переименовать в Home, ибо короче.

На главной странице хотелось бы сразу иметь кнопки на рабочие разделы сайта.

Затем большая кнопка Support Us
Support us monetarily to pay for server hosting and keep this site ad-free.

Затем большая кнопка Contribute, которая перенаправляет на отдельную страницу.
If you want to help fill up the database, there is a number of topics we seek data about.

Changelog
21/05/2022 — Launched the website with the folowing features:
— items catalouge excluding sturctures and the majority of hats and cloaks
— search items by name
— search items by tags
— clickable tags to initiate and instant search by tag name
— display all recipes that a chosen item can be crafted from
— display all items that a chosen item is reagent for
— clickable items in the "recipe" and "reagent for" sections to display their information

24/05/2022
— added a variety (34) of hats and capes (big thanks to u/Difinitus)
— added Blood Key
— some minor fixes to tags of particular items

31/05/2022 Spells Update!
— Compete catalogue of all spells including weapon abilities
— For each spell their cooldown, cast time and number of charges is specified (according to the ingame tooltip).
— For vampire spells cast times were determined manually by recording a video of spell cast and counting frames, approximate values are shown on the website.

Время крафта

Время всех рецептов добавлено.

  1. Отображать в формате Xm Ys (минуты - секунды)

  2. Каким-то образом надо указать, что это время вне закрытых комнатах. Можно указывать два времени, второе равно 0.75*t.

Пример: рецепт 180 сек.
Crafting time: 3m (2m 15s in a confined castle room)

Текст какой-то длинный, конечно. В идеале нарисовать знак вопроса и при наведении мышкой на него написать, что это бонус закрытой комнаты).

  1. При этом есть исключения:
    — для рецептов, у которых Station Character menu (и нет никаких других), т.е. которые не могут получить бонус комнаты, им в скобках ничего не указывать.
    — для рецептов Tomb тоже ничего не указывать, ибо у них нет комнаты.

Очистить строку поиска при нажатии на кнопки фильтра

image
Если пользователь сначала смотрел одну группу предметов, нажав на фильтр, например, а затем захотел посмотреть что-то другое, ему придётся сначала очистить строку поиска, а только потом нажимать на кнопку фильтра.

Сделать автоматизацию SQL запроса для DB через Google Spreadsheet

Таблица

https://docs.google.com/spreadsheets/d/1R-Re2Xszgm2UDUvNVrYwZES5eAN9gIJqCEi6FGA4XPo/edit#gid=1956406025

items

изображение

id - уникальное, одна таблица должна быть продолжением предыдущей. В SQL запросе можно не указывать, генерируется автоматически.
type:

  1. Weapons
  2. Armour
  3. Consumables
  4. Reagents
    Для name и description сделать replace символа ' на два таких символа '', ВАЖНО, не на двойной символ ".
insert into items(name, description, tier, type) values
('Bone Sword', 'An all-round weapon that deals slash damage and has a greater effect on vegetation and thickets.', 3, 1),
('Reinforced Bone Sword', 'An all-round weapon that deals slash damage and has a greater effect on vegetation and thickets.2', 3, 1)

tags

изображение

insert into tags (value) values
('equippable'),
('weapon')

itemtags

изображение

insert into itemtags(itemid, tagid) values
(1, 1),
(1, 2),
(1, 3),
(2, 1),
(2, 2),
(2, 3)

sets

изображение

description — разделить строки символом '\n'

insert into sets(name, description) values
('Bone', 'No bonuses'),
('Reinforced Bone', 'No bonuses')

itemstats

изображение

idid предмета.
setbonus — то же самое что и поле description в sets, так что можно оставить просто пустую строку ''
slotid — используется только для брони, остальным ставить 0:

  1. Голова
  2. Тело
  3. Руки
  4. Ноги
  5. Плащ
  6. Бижутерия
insert into itemstats(id, mainstat, setid, setbonus, gearlevel, durability, slotid) values
(1, 5.2, '1', '', 3, 817, 0),
(2, 6,8, '2', '', 6, 928, 0)

secondarystats

изображение

insert into secondarystats(bonus) values
('+12 Max Health'),
('+4% Movement Speed')

secondarystats

изображение

statsid - id из таблицы itemstats.
secondarystatid - id стата.

secondaryitemstats(statsid, secondarystatid) values
(18, 1),
(18, 2),

recipes

изображение

Опять же, id не указываем, но следим, чтобы всё было в верном порядке.
id начинается от 1.
time указывается в секундах.

insert into recipes(time) values
(30)

stations

изображение

insert into stations(name, description) values
('Character', 'Character's Inventory. Uses for starting items and some light crafts.'),
('Simple Workbench', 'Simple Workbench description.')

recipestations

изображение

insert into recipestations(recipeId, stationId) values
(1, 1),
(2, 1)

recipeingridients

изображение

INPUT рецепта
Если в крафте участвуют разные предметы, указываются несколько значений для одного и того же id рецепта.

insert into recipeingredients(recipeId, itemId, amount) values
(1, 3, 5),
(2, 3, 10),
(2, 4, 5),
(2, 5, 1)

reciperesults

изображение

OUTPUT рецепта
Если в крафте получаются разные предметы, указываются несколько значений для одного и того же id рецепта.

insert into recipeingredients(recipeId, itemId, amount) values
(1, 6, 1),
(2, 7, 1),
(2, 8, 3)

Исключения для тегов

image
Хочу найти blood, но ищет все предметы с тегом blood-bound.

Хотелось бы, чтобы тег blood-bound полностью игнорировался при поиске, но по нему можно было искать при нажатии на тег.

Но это незначительная вещь, работайте по наполнению базы сначала.

Create Spells table in DB and API

Structure

spells

id(INT) name(STRING) description(STRING) schoolid(INT) type(STRING) cooldown(DOUBLE) casttime(DOUBLE) charges(INT)

schools

id(INT) name(STRING) description(STRING)

spellschool

spellid(INT) schoolid(INT)

spelltypes

id(INT) title(STRING)

spelltype

spellid(INT) spelltypeid(INT)

Endpoints

GET All Spells

/api/spells

GET Spells of certain school

/api/spells?school={INT}

GET Additional field schoolId

/api/spells/schoolid={BOOL}

Spells {
  id INT,
  name STRING,
  description STRING,
  school STRING,
  //schoolId INT, 
  cooldown DOUBLE,
  castTime DOUBLE
  charges INT
}

Таблица

https://docs.google.com/spreadsheets/d/1YAMSUdtcrsG-mNUE8sqeDZMyww9yjaZ2kHGg6CavXxY/edit?usp=sharing

Spells inits wrong way

Необходимо сделать так, чтобы они инициализировались до рендера.
ItemsModule написан идентично и работает как надо, а вот тут не всегда данные подготавливаются до рендера.

Таблица просто локаций

image
Таблица локаций, лута и координат. Полностью готова, и есть очень простая функциональность:
При выборе предмета, например, Whetstone, найти все локации, в которых фармится Whetstone. Это локации с id 3,5,15,20,21,79. Берётся соответствующий им mapgenie id и генерируется ссылка, где mapgenie id тупо перечисляется через запятую:
https://mapgenie.io/v-rising/maps/vardoran?locationIds=178238,178237,178444,178379,178390,178370

Ну и всё, это ссылка просто вставляется в разделе Information у предмета Whetstone.

Единственная трудность состоит в non-item вроде Horse, но пофиг, добавим лошадь как предмет.

Сама таблица на странице locations.
https://docs.google.com/spreadsheets/d/1R-Re2Xszgm2UDUvNVrYwZES5eAN9gIJqCEi6FGA4XPo/edit?usp=sharing

Поиск по тегу из чужого раздела

Пример:
— заходишь в Weapons,
— жмёшь на Bone Spear,
— в рецепте жмёшь на Bone.
— у Bone в тегах нажимаешь на reagent.

Результат: все оружия отфильтровались, ничего не осталось. Надо исправить, чтобы поиск шёл по всем разделам. И, к слову, можно в "Filter" добавить All, иначе ради поиска ты обязан сначала переключиться на нужный раздел, иначе не будет работать.
image

Create Variants, StructuresVariants tables

У структур есть вариации. Например:
[5] Stone Coffin имеет альтернативу [16] Royal Coffin
В данном случае id: 1 будет иметь variantsid: 5, 16

Необходимые поля:
id
variantsid Int[]

Эндпоинты обсудим в войсе по возможности.

Убрать поле `setbonus` из таблицы `itemstats`

obsolete поле.

Используем description в sets.
Так же необходимо сделать поле description в sets nullable.

После завершения тегнуть @Bobrokrot, чтобы он обновил таблицу:

  • Убрать поле setbonus из таблицы itemstats
  • Заменить все 'No bonus.' на NULL в поле description в sets .

Ограничить поиск только словами 3+ символов

Пока ты пишешь слово Seed, он начинает поиск уже на букве S, на это тратится полсекунды, только после этого регистрируется нажатие на E, тратится ещё полсекунды, и в итоге это всё сильно подтормаживает.

Надо либо начинать поиск только с 3-го символа и/или задерживать на полсекунды, чтобы подождать ввод новых букв перед тем, как начинать поиск.

Salvage

image
image
Salvage
Всегда один инпут в кол-ве 1 шт., до 5 аутпутов.
Надо указывать этот "рецепт" отдельно в Information как Salvageable и перечисление итемов аутпута, прямо как на скриншоте The Fish.

Rework Spells & Items API

Добавить к уже существующим эндпоинтам, которые выдают список Items и Spells структурированную выдачу:

Items

/item/list

Type1
|- Set1
|-- Item1
|-- Item2
|- Set2
|-- Item3
|-- Item4
Type2
|- Set3
|-- Item5
|-- Item6
|- Set4
|-- Item7
|-- Item8

Так же добавить промежуточную таблицу, которая будет связывать typeid и typetitle.
Нужно для того, чтобы в выдаче выше мне слало typetitle, а не id и я мог автоматизировать выдачу вкладок.

id | title
1 | Weapon
2 | Armour

Spells

School1
|- Type1
|-- Spell1
|-- Spell2
|- Type2
|-- Spell3
|-- Spell4
School2
|- Type3
|-- Spell5
|-- Spell6
|- Type4
|-- Spell7
|-- Spell8

Ограничить поиск по тегам тегами

image
Нажал на тег flower, помимо цветочков выдал ещё sunFLOWER seed.
Аналогично с fish и blood. Сейчас это некритично, впрочем, более менее релевантные результаты получаются всё равно.

Footer display

Необходимо сделать так, чтобы при отсутствии overflow, т.е. отображении страницы в 1 экран, footer прилегал к нижней части экрана, в ином случае просто прилегал к концу.
Текущее поведение сломано.

Spells

With
изображение
Without
изображение

With
изображение
Without
изображение

Try out gorm framework

Attempt to rework existing database for gorm framework, that eases work with database.

Implement localisation table DB

САМЫЙ НИЗКИЙ ПРИОРИТЕТ! ДЕЛАТЬ В ПОСЛЕДНЮЮ ОЧЕРЕДЬ!

Сделать промежуточную таблицу для локализации со следующими полями:

locales

id | en | ru | ...
1 | 'Bone' | 'Кость' | ...

Хотя мне кажется лучше сделать под каждый из языков таблицу вроде:

locale_ru

id | en
1 | 'Bone'

locale_en

id | ru
1 | 'Кость'

Все остальные текстовые поля во всех таблицах, соответственно, переделать с типа String на Int id, связав с соответствующими таблицами. Надеюсь в db можно динамически связь id устанавливать.

Endpoint

Добавить параметр к общему запросу ?locale=ru/en/..., который будет обращаться к той или иной языковой таблице.

Найти новые рецепты.

В комментариях прикрепляю иконки предметов, которые надо найти.

Прикрепить скриншоты найденных предметов.

Найти картиночки для:

Blood Snapper
Fierce Stinger
Swamp Dweller
Giant Rat
Putrid Rat
Mosquito
Skeleton Priest
Banshee
Siege Golem Stone
Snow Flower Seed
Sunflower Seed
Mourning Lily Seed

Рыба

FantasyIcon_Food (73)
FantasyIcon_Food (80)
FantasyIcon_Food (82)
FantasyIcon_Food (107)

Возможно в игре есть не всё

Reagents

Poneti_Icon_Herbalism_16_yellowflower
Poneti_Icon_Herbalism_31_whiteberry
Poneti_Icon_Herbalism_50_berry
Poneti_Icon_Herbalism_04_manaflower
Poneti_Icon_Herbalism_52_goldenflower
Poneti_Icon_Herbalism_57_whiteflower
Stunlock_Icon_Item_Thistle
Poneti_Icon_Herbalism_22_poisonous_mushroom
Poneti_Icon_Herbalism_27_raindropmushroom
Poneti_Icon_Herbalism_28_stinkymushroom
Poneti_Icon_Herbalism_51_cone

И прочие семена/растения.
Возможно в игре есть не всё

Armour

Poneti_Icon_Helm_59
Poneti_Icon_Helm_63
Poneti_Icon_Tailoring_27_hat
Stunlock_Icon_Armor_BanditHat01
Stunlock_Icon_Armor_BoneHead01
Stunlock_Icon_Armor_BronzeHelm01
Stunlock_Icon_Armor_DraculaHelmet
Stunlock_Icon_Armor_HollowfangHeadgear01
Stunlock_Icon_Armor_IronHelm01
Stunlock_Icon_Armor_NightstalkerHeadgear01
Stunlock_Icon_Armor_SanguineHelmet01
Stunlock_Icon_Cloak_AshfolkCrystalIceCloak
Stunlock_Icon_Cloak_AshfolkWildfireDrape
Stunlock_Icon_Cloak_BeatricesScarf
Stunlock_Icon_Cloak_BloodstainedDrape
Stunlock_Icon_Cloak_CardinalsCloak
Stunlock_Icon_Cloak_ChaosStitchedDrape
Stunlock_Icon_Cloak_CloakOfAThousandStitches
Stunlock_Icon_Cloak_CrimsonWard
Stunlock_Icon_Cloak_DarkLeatherMantle
Stunlock_Icon_Cloak_GlacialStitchedDrape
Stunlock_Icon_Cloak_HermitsShawl
Stunlock_Icon_Cloak_ManaShawl
Stunlock_Icon_Cloak_MantleOfTheUndead
Stunlock_Icon_Cloak_PurpleFeatheredCape
Stunlock_Icon_Cloak_Razer01
Stunlock_Icon_Cloak_Razer02
Stunlock_Icon_Cloak_Razer03
Stunlock_Icon_Cloak_RoyalCloakOfAshfolkKings
Stunlock_Icon_Cloak_RoyalCloakOfTheJester
Stunlock_Icon_Cloak_TailOfTheArchfiend
Stunlock_Icon_Cloak_TokiFeatheredCape
Stunlock_Icon_Cloak_VampireHuntersMantle
Stunlock_Icon_Cloak_Variant01a
Stunlock_Icon_Cloak_Variant01b
Stunlock_Icon_Cloak_Variant01c
Stunlock_Icon_Cloak_WarTornWineCloak
Stunlock_Icon_Headgear_AngularHelmet
Stunlock_Icon_Headgear_BearHead
Stunlock_Icon_Headgear_BishopHat
Stunlock_Icon_Headgear_BronzeHelmet
Stunlock_Icon_Headgear_DeerHead
Stunlock_Icon_Headgear_GreatBishopHat
Stunlock_Icon_Headgear_KettleHelmet
Stunlock_Icon_Headgear_MorionHelmet
Stunlock_Icon_Headgear_NightLurkerHead
Stunlock_Icon_Headgear_PilgrimHat
Stunlock_Icon_Headgear_Razer
Stunlock_Icon_Headgear_RedHood
Stunlock_Icon_Headgear_ScarecrowHead
Stunlock_Icon_Headgear_SpikedTiara
Stunlock_Icon_Headgear_SteelDiadem
Stunlock_Icon_Headgear_StrawHat
Stunlock_Icon_Headgear_SummerHat
Stunlock_Icon_Headgear_VeiledHelmet
Stunlock_Icon_Headgear_VisorHelmet
Stunlock_Icon_Headgear_WerewolfHead
Stunlock_Icon_Headgear_WhiteHood
Stunlock_Icon_Headgear_WildlingHelm
Stunlock_Icon_Headgear_WitchHunterHat01
Stunlock_Icon_Headgear_WitchHunterHat02
Stunlock_Icon_Headgear_WolfHead
Poneti_Icon_cloak_02
Poneti_Icon_cloak_28
Poneti_Icon_Helm_14

По возможности выбить данные предметы, если они есть в игре.

Таблица локаций сервантов

Для гайда нужна таблица с доступными в игре экспидициями (Hunt) сервантов.

Выглядит она вот так (лист List of Hunts).

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

Поиск по предметам

Реализовать поисковик по кейвордам/тегам.
Сделать с использованием debounce.

Research Tab

image
На сайт нужна страница с этой инфой, т.е. что можно разблокировать на каждой из 3 тиров станций.

Research Stations:
— id
— name
— description
— paperid (id на бумагу/скроллы/схематики)
— papercost (50/75/100, сколько бумаги надо на то, чтобы случайно разблокировать предмет)

У каждой станции есть набор разблокировок. Причём есть ячейки, которые разблокируют одновременно несколько предметов. Например, Assorment of Vases разблокирует несколько ваз.

При этом у каждой разблокировки есть свой тип Structures, Armour, Weapon и т.д. В принципе это можно выцепить из того, что уже у нас есть в базе.

К слову, предлагаю ювелирку всю вынести как отдельный тип предметов Magic.

У каждой разблокировки должно быть:
— Список предметов, которые он открывает.
— Картинка книжки, которая её открывает.
— Описание.
— (Потенциально) список источников. где можно найти эти книжки.

Книжки тоже надо добавить как отдельные предметы в базу. Можно как отдельный тип books, но у которого есть knowledgeid? Туда же уникальный General's Soul Reaper Orb.

Фиксы для Matching Floor/Confined Room

image

  1. Если оба тоггла включены, то при выключении Confined Room тоггл Matching Floor тоже должен выключится.

image
2) Что-то с ними не так. Иногда исчезают. Из состояния а), если нажать на Confined Room, первый тоггл исчезает. А если кликнуть в любом месте экрана, получается в).

  1. Убрать тогглы для предметов, у которых ни один из рецептов не находится в вайтлисте.

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.