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.