LexMash / ImmersiveSimProject

проект для развлечения и тренировки

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ImmersiveSimProject

Архитектурный ассет под ImmersiveSim/RPG в вакууме.

В данный момент создаётся логика для разных внутренних систем:

  1. API cистемs контейнеров с реализацией. По умолчанию принцип работы следующий.

1.1. Загружаются данные и создаются контейнеры - IContainer. Для сохранения данных можно использовать ContainerDTO и ContainerSlotDTO. Если у вас нет сохранённых данных предлагается использовать СontainerDefaultState. Этот ScriptableObject хранит в себе ItemMeta для загрузки состояния контейнера по умолчанию - до изменения его игроком.

1.2. Все загруженные контейнеры кладутся в IContainers, который представляет собой коллекцию только для чтения с перегруженным индексатором. По сути это глобальная база ВСЕХ контейнеров в игре/локации. В реализации под капотом сортированный словарь для увеличения скорости работы, где ключом указана строка (string), а значением IContainer.

1.3. IContainers передаётся в IContainerService. По задумке, это глобальный сервис, который по идентификатору выдаёт IContainerController содержащий в себе необходимый IContainer. IContainerController это обёртка над данными для работы с ними, что даёт бОльшую гибкость при необходимости поменять реализацию.

  1. API для боевой системы с расчётом урона и тд
  2. API для статов и накладываемых эффектов

About

проект для развлечения и тренировки


Languages

Language:C# 83.8%Language:Mathematica 16.2%