private static void Clear(GameEventTypes eventType, object[] args)
    {
        LinkedListNode <EffectObject> curNode = activeEffects.First;
        int count = activeEffects.Count;

        for (int i = 0; i < count; i++)
        {
            curNode.Value.Destroy();
            curNode = curNode.Next;
        }

        curNode = pool.First;
        count   = pool.Count;
        for (int i = 0; i < count; i++)
        {
            curNode.Value.Destroy();
            curNode = curNode.Next;
        }

        count = pending.Count;
        for (int i = 0; i < count; i++)
        {
            curNode.Value.Destroy();
            curNode = curNode.Next;
        }

        activeEffects.Clear();
        pool.Clear();
        pending.Clear();
        unimportantEffectsCount = 0;
    }
Beispiel #2
0
 /// <summary>
 ///     Отписываемся от прослушки событий
 /// </summary>
 /// <param name="eventName">Тип события в игре</param>
 /// <param name="listener">Метод, который вызывался на событии</param>
 public static void StopListening(GameEventTypes eventName, UnityAction <EventArgs> listener)
 {
     if (Instance._eventDictionary.TryGetValue(eventName, out var thisEvent))
     {
         thisEvent.RemoveListener(listener);
     }
 }
Beispiel #3
0
 public void TriggerEvent(GameEventTypes eventName, EventArgs eventArgs)
 {
     if (_eventDictionary.TryGetValue(eventName, out var thisEvent))
     {
         thisEvent.Invoke(eventArgs);
     }
 }
Beispiel #4
0
 private void OnRefreshEquip(GameEventTypes eventType, object[] args)
 {
     if (GameConvert.IntConvert(args[0]) == 0)
     {
         SetInfo();
     }
 }
Beispiel #5
0
 public GameEvent(GameDate dateTime, GameEventTypes eventType, Politician[] involvedPoliticians, string[] involvedDistricts)
 {
     this.involvedDistricts   = involvedDistricts;
     this.dateTime            = dateTime;
     this.eventType           = eventType;
     this.involvedPoliticians = involvedPoliticians;
 }
Beispiel #6
0
        private void RoomImage_MouseClick(object sender, MouseEventArgs e)
        {
            switch (_mode)
            {
            case GameEventTypes.ChooseSpawnPosition:
                if (Room != null && Room.Game != null)
                {
                    var pt  = WindowPositionToMapLocation(e.Location);
                    var pos = Room.GetPositionAt(pt);

                    string name = RequestStringDialog("Spawn Name", "My Spawn 1");

                    if (!string.IsNullOrWhiteSpace(name))
                    {
                        var result = Room.Game.ChooseSpawn(pos, Player, name);

                        if (result.TypeID == ResultTypes.Success)
                        {
                            Text  = Room.Name;
                            _mode = GameEventTypes.None;
                        }
                    }
                }
                break;
            }
        }
Beispiel #7
0
 public static void RegisterEvent(GameEventTypes eventType, GameEventCallback callback)
 {
     lock (eventLock)
     {
         List <GameEventCallback> callbackList = eventMap[eventType];
         callbackList.Add(callback);
     }
 }
Beispiel #8
0
 /// <summary>
 ///     Вызываем событие
 /// </summary>
 /// <param name="eventName">Тип события</param>
 /// <param name="eventArgs">Параметры события</param>
 public static void TriggerEvent(GameEventTypes eventName, EventArgs eventArgs)
 {
         #if UNITY_EDITOR
     Debug.Log($"Event triggered: {eventName}");
         #endif
     if (Instance._eventDictionary.TryGetValue(eventName, out var thisEvent))
     {
         thisEvent.Invoke(eventArgs);
     }
 }
Beispiel #9
0
        public void LoadEventTypes(Assembly assembly)
        {
            var types = assembly.GetCustomAttributes(typeof(GameEventRegisterAttribute), false)
                        .Select(a => ((GameEventRegisterAttribute)a).Type);

            foreach (var t in types)
            {
                GameEventTypes.Add(t);
            }
        }
Beispiel #10
0
 private static void Clear(GameEventTypes eventType, object[] args)
 {
     while (activeEffects.Count > 0)
     {
         var node = activeEffects.First.Value;
         node.StopImmediate();
         ProcessExpiredEffect(node);
         activeEffects.RemoveFirst();
     }
 }
Beispiel #11
0
 private static void Clear(GameEventTypes eventType, object[] args)
 {
     if (activeTrajectories.Count > 0)
     {
         var node = activeTrajectories.First.Value;
         node.Stop();
         ProcessExpiredEffect(node);
         activeTrajectories.RemoveFirst();
     }
 }
Beispiel #12
0
 public static void RaiseEvent(GameEventTypes eventType, params object[] args)
 {
     if (System.Threading.Thread.CurrentThread.ManagedThreadId == mainThreadID && EnableEventFiring)
     {
         RaiseEventNow(eventType, args);
     }
     else
     {
         QueueEvent(eventType, args);
     }
 }
    private static List <GameEventCallback> GetEventCallbackList(GameEventTypes eventType)
    {
        List <GameEventCallback> callbackList = null;

        if (!eventMap.TryGetValue(eventType, out callbackList))
        {
            callbackList = new List <GameEventCallback>();
            eventMap.Add(eventType, callbackList);
        }
        return(callbackList);
    }
Beispiel #14
0
 public static void Regist(GameEventTypes type, Action handler)
 {
     if (gameEventHandlers.ContainsKey(type))
     {
         gameEventHandlers[type] += handler;
     }
     else
     {
         gameEventHandlers.Add(type, handler);
     }
 }
Beispiel #15
0
        public GameEventCounter(int _activateCount, GameEventTypes _trigger, Action _action, bool _isTriggeredReset)
        {
            activateCount = _activateCount;
            trigger       = _trigger;
            isActioned    = false;

            action           = _action;
            isTriggeredReset = _isTriggeredReset;

            EventListener.Regist(trigger, onTrigger);
        }
Beispiel #16
0
    private static void QueueEvent(GameEventTypes eventType, params object[] args)
    {
        lock (eventLock)
        {
            GameEvent ev = eventPool.Fetch();
            ev.eventType = eventType;
            ev.args      = args;

            eventQueue.Enqueue(ev);
        }
    }
Beispiel #17
0
 public static void RaiseEventSync(GameEventTypes eventType, params object[] args)
 {
     if (System.Threading.Thread.CurrentThread.ManagedThreadId == mainThreadID)
     {
         RaiseEventNow(eventType, args);
     }
     else
     {
         QueueEvent(eventType, args);
         WaitQueue();
     }
 }
Beispiel #18
0
        public static void Dispatch(GameEventTypes type)
        {
            Action result;

            if (gameEventHandlers.TryGetValue(type, out result))
            {
                if (null == result)
                {
                    return;
                }
                result();
            }
        }
Beispiel #19
0
 /// <summary>
 ///     Регистриция слушателя события
 /// </summary>
 /// <param name="eventName">Тип события в игре</param>
 /// <param name="listener">Метод, вызывающийся на событии</param>
 public static void StartListening(GameEventTypes eventName, UnityAction <EventArgs> listener)
 {
     if (Instance._eventDictionary.TryGetValue(eventName, out var thisEvent))
     {
         thisEvent.AddListener(listener);
     }
     else
     {
         thisEvent = new GameEvent();
         thisEvent.AddListener(listener);
         Instance._eventDictionary.Add(eventName, thisEvent);
     }
 }
Beispiel #20
0
    public static void UnregisterEvent(GameEventTypes eventType, GameEventCallback callback)
    {
        lock (eventLock)
        {
            List <GameEventCallback> callbackList = eventMap[eventType];

            for (int i = callbackList.Count - 1; i >= 0; i--)
            {
                if (callbackList[i] == callback)
                {
                    callbackList.RemoveAt(i);
                    break;
                }
            }
        }
    }
Beispiel #21
0
    private static void RaiseEventNow(GameEventTypes eventType, params object[] args)
    {
        List <GameEventCallback> callbackList = eventMap[eventType];

        try
        {
            for (int i = 0; i < callbackList.Count; i++)
            {
                callbackList[i].Invoke(eventType, args);
            }
        }
        catch (Exception ex)
        {
            Debug.LogError(ex);
        }
    }
Beispiel #22
0
    private void OnExitScene(GameEventTypes eventType, object[] args)
    {
        LinkedListNode <AudioObject> curNode = activeAudio.First;
        int count = activeAudio.Count;

        for (int i = 0; i < count; i++)
        {
            curNode.Value.Destroy();
            curNode = curNode.Next;
        }

        curNode = pool.First;
        count   = pool.Count;
        for (int i = 0; i < count; i++)
        {
            curNode.Value.Destroy();
            curNode = curNode.Next;
        }

        activeAudio.Clear();
        audioPlayedCurrFrame.Clear();
        pool.Clear();
    }
    private void OnKillChessEvent(GameEventTypes eventType, object[] args)
    {
        ChessEntity attack   = args[0] as ChessEntity;
        ChessEntity beAttack = args[1] as ChessEntity;

        if (attack == null || beAttack == null)
        {
            return;
        }

        if (beAttack.GetChessType() == ChessType.ChessTypeJiang)
        {
            fightMainUIPanel.SetStateInfoString("");

            Account account = KBEngine.KBEngineApp.app.player() as Account;
            if ((int)beAttack.chessObj.chess_owner_player == account.CampType)
            {
                GUIManager.Open <FightLostUIPanel>("Fight", "FightLostUIPanel");
            }
            else
            {
                GUIManager.Open <FightWinUIPanel>("Fight", "FightWinUIPanel");
            }
        }
        else
        {
            Account account = KBEngine.KBEngineApp.app.player() as Account;
            account.baseCall("KillChess", beAttack.chessObj.id);

            if (currentAttackChess != null && currentAttackChess == attack)
            {
                currentAttackChess.MoveTo((int)beAttack.chessObj.chess_index_x, (int)beAttack.chessObj.chess_index_z);
            }
        }

        currentAttackChess = null;
    }
Beispiel #24
0
        internal void GameEvent(GameObject source, GameEventArgs args)
        {
            switch (args.Type)
            {
            case GameEventTypes.ChooseSpawnPosition:
                Text  = "Choose your spawn position";
                _mode = args.Type;
                break;

            case GameEventTypes.GameStep:
            case GameEventTypes.RoomChanged:
                if (Room != null)
                {
                    var viewer = UI.RoomViewer.Create(Room);

                    if (viewer != null)
                    {
                        //RoomImage.BackgroundImage = viewer.RenderBackground( RoomImage.ClientSize );
                        RoomImage.Image = viewer.RenderImage(RoomImage.ClientSize, _lastPoint);
                    }
                }
                break;
            }
        }
Beispiel #25
0
 public static void Clear(GameEventTypes type)
 {
     gameEventHandlers[type] = delegate { };
 }
 private void Clear(GameEventTypes eventType, object[] args)
 {
     points.Clear();
 }
Beispiel #27
0
 public void Reset()
 {
     eventType = GameEventTypes.Inavlid;
     args      = null;
 }
Beispiel #28
0
 private static void OnEnterScene(GameEventTypes eventType, object[] args)
 {
     DestroyExistingListener();
     RestoreSettings();
 }
Beispiel #29
0
 public GameEvent(string name, GameEventTypes type = GameEventTypes.Multiple, double probability = 100.0)
 {
     Name        = name;
     Type        = type;
     Probability = probability;
 }
Beispiel #30
0
 public static int ToInt(this GameEventTypes command)
 {
     return((int)command);
 }