Skip to content

PersonLogic

Более высокая абстракция "Персонажа", наследуемая от агента Agent. Отличается от агента наличием таких свойств как статы, скилы, точки/места интереса. Здесь эти свойства обезличины, но в своем проекте рекоммендуется разименовать их, например так:

        public float Money
        {
            get { return Stats["Money"]; }
            set { Change("Money", value); }
        }
        public float Experience
        {
            get { return Skills["Experience"]; }
            set { Change("Experience", value); }
        }
        public AgentPoint WorkPlace
        {
            get { return (GetPlace("Work")); }
            set { SetPlace("Work", value); }
        }

Так же смотрите как слинковать моего персонажа с TacLibrary.

Gender

GenderType Gender

Пол персонажа.

public enum GenderType
{
    Unknow = 0, // Не известен
    Men = 1, // Мужской
    Women = 2, // Женский
}

Stats

Dictionary<string, float> Stats

Т.н. статы персонажа, любые характеристики персонажа, значения которых можно выразить числом типа float. Каждая характеристика имеет свое уникальное текстовое (string) наименование.

Skills

Dictionary<string, float> Skills

Т.н. скилы персонажа, любые умения персонажа, значения которых можно выразить числом типа float. Каждое умение имеет свое уникальное текстовое (string) наименование.

Различие между статами и скилами скорее просто стилистическое, но они разделены. Если стат отвечает на вопрос "Что это дает персонажу?" (существительное), то скил отвечает на вопрос "Что персонаж умеет?" (глагол).

AddStat()

AddStat(string argName, float argValue = 0, bool argAddInfo = true)

Добавить стат с именем argName и значением argValue (по умолчанию =0). По умолчанию (argAddInfo = true) добавляется в список для отображения в UI.

AddSkill()

AddSkill(string argName, float argValue = 0, bool argAddInfo = true)

Добавить скилл с именем argName и значением argValue (по умолчанию =0). По умолчанию (argAddInfo = true) добавляется в список для отображения в UI.

Info

List<NamedValue> Info

Проименованные значения статов, скилов и других значений для отображения в UI

InfoTxt

string InfoTxt (Read Only)

Полная информация о статах, скилах и других значений из списка Info , разбитая на строки для UI

Change()

Change(string argName, float argValue)

Заменить значение стата или скила с именем argName новым значением argValue с обновлением об этом информации Info

OnChangeInfo

event Change OnChangeInfo;

Событие на которое подписываются панели UI для синхронного отображения изменений статов или скилов персонажа.

Places

Dictionary<string, AgentPoint> Places

Места интереса персонажа. Как правило те места, которые он может посещать и из которых по той или иной логике строится его маршрут/план. Каждое место/точка интереса имеет свое уникальное текстовое (string) наименование.

SetPlace()

SetPlace(string argKey, AgentPoint argPlace)

Установить место с определенным наименованием. Если наименование встречается впервые будет добавленно новое место в Places, иначе будет заменено.

GetPlace()

AgentPoint GetPlace(string argKey)

Получить место по наименованию.

WorkPlace

Предустановленное место для работы с наименованием Work в списке Places.

ResidencePlace

Предустановленное место жительства с наименованием Residence в списке Places.