Пример #1
0
    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;
        }
    }
Пример #2
0
 private void ExecuteHookEventScript(string [] tokens)
 {
     if (GameManager.Inst.QuestManager.Scripts.ContainsKey(tokens[1]))
     {
         StoryEventType eventType = (StoryEventType)Enum.Parse(typeof(StoryEventType), tokens[2]);
         StoryEventHandler.Instance.AddScriptListener(tokens[1], eventType);
     }
 }
Пример #3
0
    public void AddDelegateListener(StoryEventDelegate callBack, StoryEventType eventType)
    {
        StoryEventListener listener = new StoryEventListener();

        listener.Type         = StoryEventListenerType.Delegate;
        listener.OnStoryEvent = callBack;
        AddListenerToList(listener, eventType);
    }
Пример #4
0
    public void EnqueueStoryEvent(StoryEventType type, object caller, object [] parameters)
    {
        StoryEvent storyEvent = new StoryEvent();

        storyEvent.Type       = type;
        storyEvent.Parameters = parameters;
        StoryEventQueue.Enqueue(storyEvent);
        Debug.Log("enqueued story event " + type);
    }
Пример #5
0
    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);
    }
Пример #6
0
        public Timer CreateTimer(double time, StoryEventType eventType, string key)
        {
            Timer timer = new Timer();

            timer.Elapsed += delegate {
                NitroxModel.Logger.Log.Info("Triggering event type " + eventType.ToString() + " at time " + time.ToString() + " with param " + key.ToString());
                playerManager.SendPacketToAllPlayers(new StoryEventSend(eventType, key));
            };
            timer.Interval  = time;
            timer.Enabled   = true;
            timer.AutoReset = false;
            return(timer);
        }
Пример #7
0
    private LinkedList <StoryEventListener> GetListnerListFromEventType(StoryEventType eventType)
    {
        switch (eventType)
        {
        case StoryEventType.OnApproachingLoc:
            return(ApproachLocListeners);

            break;

        case StoryEventType.OnCharacterDeath:
            return(CharacterDeathListeners);

            break;

        case StoryEventType.OnSquadDeath:
            return(SquadDeathListeners);

            break;

        case StoryEventType.OnPlayerDropItem:
            return(PlayerDropItemListeners);

            break;

        case StoryEventType.OnPlayerSellItem:
            return(PlayerSellItemListeners);

            break;

        case StoryEventType.OnPlayerTakeItem:
            return(PlayerTakeItemListeners);

            break;

        case StoryEventType.OnPlayerReadNote:
            return(PlayerReadNoteListeners);

            break;
        }

        return(null);
    }
Пример #8
0
        public static string DefaultButtonText(StoryEventType storyEventType)
        {
            switch (storyEventType)
            {
            case StoryEventType.TextOnly:
                return("Continue");

            case StoryEventType.Choice:
                return("Select");

            case StoryEventType.Input:
                return("Submit");

            case StoryEventType.Error:
                return("Error");

            default:
                throw new Exception("Invalid Event Type");
            }
        }
Пример #9
0
        private Timer CreateTimer(double time, StoryEventType eventType, string key)
        {
            //if timeOffset goes past the time
            if (time <= 0)
            {
                return(null);
            }

            Timer timer = new Timer();

            timer.Elapsed += delegate
            {
                Log.Info("Triggering event type " + eventType.ToString() + " at time " + time.ToString() + " with param " + key.ToString());
                playerManager.SendPacketToAllPlayers(new StoryEventSend(eventType, key));
            };
            timer.Interval  = time;
            timer.Enabled   = true;
            timer.AutoReset = false;
            return(timer);
        }
Пример #10
0
        private Timer CreateTimer(double time, StoryEventType eventType, string key)
        {
            //if timeOffset goes past the time
            if (time <= 0)
            {
                return(null);
            }

            Timer timer = new Timer();

            timer.Elapsed += delegate
            {
                Log.Info($"Triggering event type {eventType} at time {time} with param {key}");
                playerManager.SendPacketToAllPlayers(new StoryEventSend(eventType, key));
            };
            timer.Interval  = time;
            timer.Enabled   = true;
            timer.AutoReset = false;
            if (!eventTimers.ContainsKey(key))
            {
                eventTimers.Add(key, timer);
            }
            return(timer);
        }
Пример #11
0
 public NotifyStoryEvent(StoryEventType type, string Object, bool IsSuccess)
 {
     this.type      = type;
     this.Object    = Object;
     this.IsSuccess = IsSuccess;
 }
Пример #12
0
 public StoryEventSend(StoryEventType storyEventType, string key = "") : base()
 {
     StoryEventType = storyEventType;
     Key            = key;
 }
Пример #13
0
 public StoryEventSend(StoryEventType storyEventType, string key = "") : base()
 {
     UnityEngine.Debug.Log(key + " " + storyEventType.ToString());
     this.StoryEventType = storyEventType;
     this.Key            = key;
 }
Пример #14
0
 public StoryEventRecieve(StoryEventType storyEventType, string key = "") : base()
 {
     this.StoryEventType = storyEventType;
     this.Key            = key;
 }