Components
ScriptableObjects
Plain C# Classes
Faction : ScriptableObject
What is a Faction?
A Faction represents a group of Agents. The Agent's Faction can be set on its inspector in the Basic Info section. Factions can be used to determine how Agent's feel about (R Level) Agent's in other Factions. It is also used to determine Agent Event permissions, specifically what Roles in the Faction can create and/or attend certain Agent Event Types.
Faction Inspector
Color | Could be used in the UI to show which faction and Agent is in. |
When an Agent Senses another Agent for the first time a default R Level is set. An R Level represents the relationship level one Agent feels for the other Agent. (It is stored in an Agent's Memory Type and ranges from 0-100 with 0 being the worst.) This will override the default R Level if the sensed Agent is in the selected Faction. | |
Event Type Permissions |
Agent's in this Faction must be in a certain role in order to Create/Join a certain Agent Events.
This is just for permission. The Agent must also have the correct Mapping Types to Create/Join
specific Agent Events.
This permission system needs a Refactor. It shouldn't require Roles. |