예제 #1
0
 private void OnFlagResult(FlagEventArgs e)
 {
     if (FlagResult != null)
     {
         FlagResult(this, e);
     }
 }
예제 #2
0
        /// <summary>
        /// Event handler responds to Read/Not Ready events from the webdata conmt
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Webdata_Ready(object sender, FlagEventArgs e)
        {
            switch (e.Flag)
            {
            case true:
                if (!webdata.Connected)
                {
                    return;
                }
                textBoxWebDataStatus.Text           = "READY";
                textBoxWebDataStatus.BackColor      = Color.Green;
                initializeToolStripMenuItem.Enabled = false;
                break;

            case false:
                if (webdata.Connected)
                {
                    return;
                }
                textBoxWebDataStatus.Text           = "NOT READY";
                textBoxWebDataStatus.BackColor      = Color.Red;
                initializeToolStripMenuItem.Enabled = true;
                break;
            }
        }
예제 #3
0
        public bool GrantFlag(ServerPlayer player, FlagInstance flag)
        {
            if (flag.Owner != null || player.Info.CariedFlag != null)
            {
                return(false);
            }

            OnGrantFlag?.Invoke(player, flag);

            FlagEventArgs args = new FlagEventArgs();

            args.Player = player;
            args.Flag   = flag;

            FlagPreGrab?.Invoke(this, args);

            if (flag.Status == FlagStatuses.FlagNoExist)
            {
                return(false);
            }

            lock (ActiveFlags)
            {
                if (!args.Allow || flag.Owner != null)
                {
                    return(false);
                }

                lock (WorldFlags)
                    WorldFlags.Remove(flag.FlagID);

                lock (CarriedFlags)
                    CarriedFlags.Add(flag.FlagID, flag);

                flag.Owner   = player;
                flag.Status  = FlagStatuses.FlagOnTank;
                flag.OwnerID = player.PlayerID;
            }

            FlagGrabbed?.Invoke(this, flag);

            player.Info.CariedFlag = flag;

            MsgGrabFlag grabMessage = new MsgGrabFlag();

            grabMessage.PlayerID = player.PlayerID;
            grabMessage.FlagData = flag;

            Logger.Log2("Player " + player.Callsign + " granted flag " + flag.FlagID.ToString() + " " + flag.ToString());

            Players.SendToAll(grabMessage, false);
            return(true);
        }
예제 #4
0
 void Service_FlagResult(object sender, FlagEventArgs e)
 {
     try
     {
         View.Invoke(new ThreadStart(delegate()
         {
             string message = null;
             if (e.Success)
             {
                 message = "This place was flagged.";
             }
             else
             {
                 message = "Unable to flag this place.";
             }
             MessageBox.Show(message, "MySquare", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         }));
     }
     catch (ObjectDisposedException) { }
 }