private void AddListenerToList(StoryEventListener listener, StoryEventType eventType) { switch (eventType) { case StoryEventType.OnApproachingLoc: ApproachLocListeners.AddLast(listener); break; case StoryEventType.OnCharacterDeath: CharacterDeathListeners.AddLast(listener); break; case StoryEventType.OnSquadDeath: SquadDeathListeners.AddLast(listener); break; case StoryEventType.OnPlayerDropItem: PlayerDropItemListeners.AddLast(listener); break; case StoryEventType.OnPlayerSellItem: PlayerSellItemListeners.AddLast(listener); break; case StoryEventType.OnPlayerTakeItem: PlayerTakeItemListeners.AddLast(listener); break; case StoryEventType.OnPlayerReadNote: PlayerReadNoteListeners.AddLast(listener); break; } }
public void AddDelegateListener(StoryEventDelegate callBack, StoryEventType eventType) { StoryEventListener listener = new StoryEventListener(); listener.Type = StoryEventListenerType.Delegate; listener.OnStoryEvent = callBack; AddListenerToList(listener, eventType); }
public void AddScriptListener(string scriptName, StoryEventType eventType) { StoryEventListener listener = new StoryEventListener(); listener.Type = StoryEventListenerType.Script; listener.ScriptName = scriptName; AddListenerToList(listener, eventType); Debug.Log("Added script listener " + scriptName); }