Beispiel #1
0
 public StatusBusy(string statusText, IStatusable form)
 {
     _form = form;
     _oldStatus = form.StatusText;
     _form.StatusText = statusText;
     _oldCursor = form.Cursor;
     _form.Cursor = Cursors.WaitCursor;
     Application.DoEvents();
 }
        public void TurnEnded(object sender, TurnEndedEventArgs e)
        {
            IStatusable senderAsStasusable = sender as IStatusable;

            if (senderAsStasusable == null)
            {
                throw new ArgumentException("StatusManager.TurnEnded() should only subscribe to classes that implement IStatusable!");
            }

            List <Status> turnEndStatuses = Statuses.Where(s => s.IsTurnEndStatus).ToList();

            turnEndStatuses.ForEach(s => ExecuteTurnEndStatus(s, sender));

            DecrementTurnCounters();
        }
        public void RoundEnded(object sender, RoundEndedEventArgs e)
        {
            IStatusable senderAsStasusable = sender as IStatusable;

            if (senderAsStasusable == null)
            {
                throw new ArgumentException("StatusManager.RoundEnded() should only subscribe to classes that implement IStatusable!");
            }

            List <Status> statusesToRemove = Statuses.Where(s => s.TurnCounter == 0).ToList();

            Statuses.RemoveAll(s => statusesToRemove.Contains(s));

            statusesToRemove.ForEach(s =>
            {
                StatusRemovedEventArgs statusRemovedEventArgs = new StatusRemovedEventArgs(s);
                senderAsStasusable.OnStatusRemoved(statusRemovedEventArgs);
            });
        }
Beispiel #4
0
 public void Add(IStatusable status)
 {
     StatusEffects.Add(status);
 }