// Agent is an attendee in an AgentEvent that has just started - change roles if needed public void EventStarting(AgentEvent agentEvent) { Debug.Log(name + ": Starting Event"); inAgentEvent = agentEvent; // Figure out what roles need to be applied // TODO: Only CreatorAttendee Type is implemented List <RoleType> roleTypes = agentEvent.GetRoleTypes(this); // Handle applying roles foreach (RoleType roleType in roleTypes) { roleType.AddToAgent(this); } }
public void QuitEvent() { Debug.Log(name + ": Quitting Event"); // Run On Quit AgentEvent OutputChangesWaitEndOCT decider.RunOutputChangesFromAgent(this, null, OutputChange.Timing.OnQuitAgentEvent); // Disable any AgentEvent roles and figure out changes to Drives and Actions List <RoleType> roleTypes = inAgentEvent.GetRoleTypes(this); // Handle applying roles foreach (RoleType roleType in roleTypes) { roleType.RemoveFromAgent(this); } inAgentEvent.RemoveAttendee(this); inAgentEvent = null; }