private void PlayerRemoved(Object sender, PlayerListChangedEventArgs args)
        {
            if (args != null)
            {
                foreach (PlayerComponent p in args.PlayersAddedOrRemoved)
                {
                    List <ModelComponent> copyList = new List <ModelComponent>();
                    copyList.AddRange(p.BuildingList.GetChildren());
                    foreach (Building b in copyList)
                    {
                        p.BuildingList.RemoveChild(b);
                    }
                    p.BuildingList.BuildingAddedEventHandlers   -= this.BuildingAdded;
                    p.BuildingList.BuildingRemovedEventHandlers -= this.BuildingRemoved;

                    copyList = new List <ModelComponent>();
                    copyList.AddRange(p.GetUnitList().GetChildren());
                    foreach (UnitComponent u in copyList)
                    {
                        p.GetUnitList().RemoveChild(u);
                        u.Location.RemoveEntity(u);
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Removes a PlayerComponent from the list. Fires an PlayerRemovedEvent.
        /// </summary>
        /// <param name="child"></param>
        public override void RemoveChild(ModelComponent child)
        {
            base.RemoveChild(child);
            PlayerListChangedEventArgs e = new PlayerListChangedEventArgs();

            e.PlayersAddedOrRemoved.Add((PlayerComponent)child);
            if (PlayerRemovedEvent != null)
            {
                PlayerRemovedEvent(this, e);
            }
        }
 private void PlayerAdded(Object sender, PlayerListChangedEventArgs args)
 {
     if (args != null)
     {
         foreach (PlayerComponent p in args.PlayersAddedOrRemoved)
         {
             p.BuildingList.BuildingAddedEventHandlers   += this.BuildingAdded;
             p.BuildingList.BuildingRemovedEventHandlers += this.BuildingRemoved;
         }
     }
 }
コード例 #4
0
 /// <summary>
 /// Adds a PlayerComponent to the list. Fires an PlayerAddedEvent.
 /// </summary>
 /// <param name="child"></param>
 public override void AddChild(ModelComponent child)
 {
     if (child is PlayerComponent)
     {
         base.AddChild(child);
         PlayerListChangedEventArgs e = new PlayerListChangedEventArgs();
         e.PlayersAddedOrRemoved.Add((PlayerComponent)child);
         if (PlayerAddedEvent != null)
         {
             PlayerAddedEvent(this, e);
         }
     }
 }
コード例 #5
0
ファイル: HostGun.cs プロジェクト: astrospark/LazerTagHost
 protected virtual void OnPlayerListChanged(PlayerListChangedEventArgs e)
 {
     if (PlayerListChanged != null) PlayerListChanged(this, e);
 }
        private void PlayerRemoved(Object sender, PlayerListChangedEventArgs args)
        {
            if (args != null)
            {
                foreach (PlayerComponent p in args.PlayersAddedOrRemoved)
                {
                    List<ModelComponent> copyList = new List<ModelComponent>();
                    copyList.AddRange(p.BuildingList.GetChildren());
                    foreach (Building b in copyList)
                    {
                        p.BuildingList.RemoveChild(b);
                    }
                    p.BuildingList.BuildingAddedEventHandlers -= this.BuildingAdded;
                    p.BuildingList.BuildingRemovedEventHandlers -= this.BuildingRemoved;

                    copyList = new List<ModelComponent>();
                    copyList.AddRange(p.GetUnitList().GetChildren());
                    foreach (UnitComponent u in copyList)
                    {
                        p.GetUnitList().RemoveChild(u);
                        u.Location.RemoveEntity(u);
                    }
                }
            }
        }
 private void PlayerAdded(Object sender, PlayerListChangedEventArgs args)
 {
     if (args != null) {
     foreach (PlayerComponent p in args.PlayersAddedOrRemoved)
     {
         p.BuildingList.BuildingAddedEventHandlers += this.BuildingAdded;
         p.BuildingList.BuildingRemovedEventHandlers += this.BuildingRemoved;
     }
     }
 }