Beispiel #1
0
        void _resolveInFavorOf(int pointer, _GestureArena state, GestureArenaMember member)
        {
            D.assert(state == this._arenas[pointer]);
            D.assert(state != null);
            D.assert(state.eagerWinner == null || state.eagerWinner == member);
            D.assert(!state.isOpen);

            this._arenas.Remove(pointer);
            foreach (GestureArenaMember rejectedMember in state.members)
            {
                if (rejectedMember != member)
                {
                    rejectedMember.rejectGesture(pointer);
                }
            }

            member.acceptGesture(pointer);
        }
Beispiel #2
0
        public void acceptGesture(int pointer)
        {
            D.assert(_pointer == pointer);
            D.assert(_winner != null || _members.isNotEmpty());

            _close();
            _winner = _winner ?? _owner.captain ?? _members[0];

            foreach (GestureArenaMember member in _members)
            {
                if (member != _winner)
                {
                    member.rejectGesture(pointer);
                }
            }

            _winner.acceptGesture(pointer);
        }