コード例 #1
0
ファイル: AnimationLayer.cs プロジェクト: sciaopin/bang-sharp
        public AnimationLayer(RootWidget rootWidget)
        {
            root = rootWidget;

            animQueue = new Queue<Animation>();
            playingCardWidgets = new Dictionary<int, PlayingCardWidget>();
            playerRoleWidgets = new Dictionary<int, RoleCardWidget>(8);
            playerCharacterWidgets = new Dictionary<int, CharacterCardWidget>(8);

            playingCardZoomWidget = new PlayingCardWidget();
            roleCardZoomWidget = new RoleCardWidget();
            characterCardZoomWidget = new CharacterCardWidget();

            playingCardZoomWidget.OnLClick += (w) => UnsetCardZoomWidget();
            playingCardZoomWidget.OnRClick += (w) => UnsetCardZoomWidget();
            roleCardZoomWidget.OnLClick += (w) => UnsetCardZoomWidget();
            roleCardZoomWidget.OnRClick += (w) => UnsetCardZoomWidget();
            characterCardZoomWidget.OnLClick += (w) => UnsetCardZoomWidget();
            characterCardZoomWidget.OnRClick += (w) => UnsetCardZoomWidget();

            timerThread = new Thread(RunTimer);
            timerThread.IsBackground = true;
            timerThread.Start();

            listener = new EventListener(this);
            ConnectionManager.SessionEventListener.AddListener((IPlayerSessionEventListener)listener);
            ConnectionManager.SessionEventListener.AddListener((ISpectatorSessionEventListener)listener);
            ConnectionManager.OnSessionDisconnected += () => {
                Gdk.Threads.Enter();
                Clear();
                Gdk.Threads.Leave();
            };
        }
コード例 #2
0
 public PlayerSlotWidget(RootWidget root, bool thisPlayer = false)
 {
     this.root = root;
     InitLayout();
     playerPic.Pixbuf = ResourceManager.GetPixbuf("Resources", "DefaultPlayerImage.png");
     if(thisPlayer)
     {
         NoActionButtonWidget button = new NoActionButtonWidget();
         button.OnClick += delegate() {
             System.Threading.ThreadPool.QueueUserWorkItem((state) => {
                 IPlayerControl control = ConnectionManager.PlayerGameControl;
                 if(control == null)
                     return;
                 try
                 {
                     control.RespondNoAction();
                     Gdk.Threads.Enter();
                     root.SetResponseType(Catalog.GetString("No action"));
                 }
                 catch(GameException e)
                 {
                     Gdk.Threads.Enter();
                     root.SetResponseType(Catalog.GetString("No action"), e);
                 }
                 RequestRedraw();
                 Gdk.Threads.Leave();
             });
         };
         padding9.Children.Add(button);
     }
     lifePointsCard = new CharacterCardWidget(CharacterType.Unknown);
     onlinePic.Pixbuf = ResourceManager.GetPixbuf("Resources", "Offline.png");
 }
コード例 #3
0
 public GameBoardWidget()
 {
     root = new RootWidget(this);
     bgTile = ResourceManager.GetPixbuf("Resources", "Board.png");
     this.Events |= Gdk.EventMask.ButtonPressMask;
 }
コード例 #4
0
ファイル: RootWidget.cs プロジェクト: sciaopin/bang-sharp
 public EventListener(RootWidget parent)
 {
     this.parent = parent;
 }