Ejemplo n.º 1
0
 public static Polyface IsHasItemValidator(this Polyface root, IItemValidator validator)
 {
     Condition.Requires(root).IsNotNull();
     var obj = HasItemValidator.New(validator);
     root.Is(obj);
     return root;
 }
Ejemplo n.º 2
0
        public static Dictionary <string, List <T> > MapSheetToDictionary <T>(this string content, List <string> ignores,
                                                                              IItemValidator itemValidator = null)
        {
            Dictionary <string, List <T> > cache = new Dictionary <string, List <T> >();

            if (itemValidator == null)
            {
                itemValidator = new DefaultItemValidator();
            }

            JsonData obj = JsonMapper.ToObject(content);

            foreach (var objKey in obj.Keys)
            {
                JsonData rateData = obj[objKey];
                if (!ignores.Contains(objKey))
                {
                    Dictionary <string, T> d = new Dictionary <string, T>();
                    foreach (string key in rateData.Keys)
                    {
                        T v = MapData <T>(rateData[key]);
                        d.Add(key, v);
                    }
                    cache.Add(objKey, SortDictionary(d, itemValidator));
                }
            }

            return(cache);
        }
 public IncreaseInQualityItemValidator(
     IEnumerable <string> increaseInQualityItemNames,
     IItemValidator regularItemValidator)
 {
     _increaseInQualityItemNames = increaseInQualityItemNames;
     _regularItemValidator       = regularItemValidator;
 }
Ejemplo n.º 4
0
 public ItemsWriteService(
     IItemsRepository itemsRepository,
     IItemValidator itemValidator
     )
 {
     _itemsRepository = itemsRepository;
     _itemValidator   = itemValidator;
 }
Ejemplo n.º 5
0
 public ItemService(
     IUOW UOW,
     IItemValidator ItemValidator
     )
 {
     this.UOW           = UOW;
     this.ItemValidator = ItemValidator;
 }
Ejemplo n.º 6
0
 public IEnumerable <Item> GetItems(IItemValidator validator)
 {
     if (validator == null)
     {
         throw new ArgumentNullException("validator");
     }
     return(this.GetItems(new Predicate <Item>(validator.IsValid)));
 }
Ejemplo n.º 7
0
        public static Polyface IsHasItemValidator(this Polyface root, IItemValidator validator)
        {
            Condition.Requires(root).IsNotNull();
            var obj = HasItemValidator.New(validator);

            root.Is(obj);
            return(root);
        }
Ejemplo n.º 8
0
 public static Item FindItem(IItemValidator validator)
 {
     if (validator == null)
     {
         throw new ArgumentNullException("validator");
     }
     return(World.FindItem(new Predicate <Item>(validator.IsValid)));
 }
Ejemplo n.º 9
0
 public QuickLaunchApi(
     IRepo repo,
     IItemValidator validator,
     BaseHandler[] handlers,
     QuickLaunchAppConfig config)
 {
     _repo      = repo;
     _validator = validator;
     _handlers  = handlers.ToDictionary(h => h.HandlerKey);
 }
Ejemplo n.º 10
0
 public GItemCounter(ItemIDValidator v) : base(0, 0, 100, 20)
 {
     this.m_Validator = v;
     this.m_Image     = new GItemArt(3, 3, v.List[0]);
     this.m_Label     = new GLabel("", Engine.DefaultFont, Hues.Bright, 0, 0);
     this.m_Image.X  -= this.m_Image.Image.xMin;
     this.m_Image.Y  -= this.m_Image.Image.yMin;
     base.m_Children.Add(this.m_Image);
     base.m_Children.Add(this.m_Label);
     this.m_LastAmount = -2147483648;
 }
Ejemplo n.º 11
0
 public GItemCounter(ItemIDValidator v)
     : base(0, 0, 100, 20)
 {
     this.m_Validator = (IItemValidator)v;
     this.m_Image     = new GItemArt(3, 3, v.List[0]);
     this.m_Label     = new GLabel("", Engine.DefaultFont, Hues.Bright, 0, 0);
     this.m_Image.X  -= this.m_Image.Image.xMin;
     this.m_Image.Y  -= this.m_Image.Image.yMin;
     this.m_Children.Add((Gump)this.m_Image);
     this.m_Children.Add((Gump)this.m_Label);
     this.m_LastAmount = int.MinValue;
 }
Ejemplo n.º 12
0
 public GItemCounter(ItemIDValidator v)
     : base(0, 0, 100, 20)
 {
     this.m_Validator = v;
     this.m_Image = new GItemArt(3, 3, v.List[0]);
     this.m_Label = new GLabel("", Engine.DefaultFont, Hues.Bright, 0, 0);
     this.m_Image.X -= this.m_Image.Image.xMin;
     this.m_Image.Y -= this.m_Image.Image.yMin;
     base.m_Children.Add(this.m_Image);
     base.m_Children.Add(this.m_Label);
     this.m_LastAmount = -2147483648;
 }
Ejemplo n.º 13
0
        public static Item FindItem(IItemValidator check)
        {
            IEnumerator enumerator = m_Items.Values.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Item current = (Item)enumerator.Current;
                if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
                {
                    return(current);
                }
            }
            return(null);
        }
Ejemplo n.º 14
0
        public static List <T> SortDictionary <T>(Dictionary <string, T> dict, IItemValidator validator = null)
        {
            List <T> ret = new List <T>();

            foreach (KeyValuePair <string, T> valuePair in dict)
            {
                if (validator == null || validator.IsValid(valuePair.Value))
                {
                    ret.Add(valuePair.Value);
                }
            }

            return(ret);
        }
Ejemplo n.º 15
0
        public Item FindEquip(IItemValidator check)
        {
            ArrayList equip = this.m_Equip;
            int       count = equip.Count;

            for (int i = 0; i < count; i++)
            {
                EquipEntry entry = (EquipEntry)equip[i];
                if (check.IsValid(entry.m_Item))
                {
                    return(entry.m_Item);
                }
            }
            return(null);
        }
Ejemplo n.º 16
0
        public Item[] FindItems(IItemValidator check)
        {
            if (check == null)
            {
                throw new ArgumentNullException("check");
            }
            ArrayList dataStore = Engine.GetDataStore();
            Queue     queue     = m_FindItems_Queue;

            if (queue == null)
            {
                queue = m_FindItems_Queue = new Queue();
            }
            else if (queue.Count > 0)
            {
                queue.Clear();
            }
            if (check.IsValid(this))
            {
                dataStore.Add(this);
            }
            if (this.m_Items.Count > 0)
            {
                queue.Enqueue(this);
                while (queue.Count > 0)
                {
                    Item      item  = (Item)queue.Dequeue();
                    ArrayList items = item.m_Items;
                    int       count = items.Count;
                    for (int i = 0; i < count; i++)
                    {
                        Item item2 = (Item)items[i];
                        if (check.IsValid(item2))
                        {
                            dataStore.Add(item2);
                        }
                        if (item2.m_Items.Count > 0)
                        {
                            queue.Enqueue(item2);
                        }
                    }
                }
            }
            Item[] itemArray = (Item[])dataStore.ToArray(typeof(Item));
            Engine.ReleaseDataStore(dataStore);
            return(itemArray);
        }
Ejemplo n.º 17
0
        public static Item[] FindItems(IItemValidator check)
        {
            ArrayList   dataStore  = Engine.GetDataStore();
            IEnumerator enumerator = m_Items.Values.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Item current = (Item)enumerator.Current;
                if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
                {
                    dataStore.Add(current);
                }
            }
            Item[] itemArray = (Item[])dataStore.ToArray(typeof(Item));
            Engine.ReleaseDataStore(dataStore);
            return(itemArray);
        }
Ejemplo n.º 18
0
        public Item FindItem(IItemValidator check)
        {
            if (check == null)
            {
                throw new ArgumentNullException("check");
            }
            Queue queue = m_FindItem_Queue;

            if (queue == null)
            {
                queue = m_FindItem_Queue = new Queue();
            }
            else if (queue.Count > 0)
            {
                queue.Clear();
            }
            if (check.IsValid(this))
            {
                return(this);
            }
            if (this.m_Items.Count > 0)
            {
                queue.Enqueue(this);
                while (queue.Count > 0)
                {
                    Item      item  = (Item)queue.Dequeue();
                    ArrayList items = item.m_Items;
                    int       count = items.Count;
                    for (int i = 0; i < count; i++)
                    {
                        Item item2 = (Item)items[i];
                        if (check.IsValid(item2))
                        {
                            return(item2);
                        }
                        if (item2.m_Items.Count > 0)
                        {
                            queue.Enqueue(item2);
                        }
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 19
0
        public void Invoke()
        {
            Mobile me = World.Player;

            if (me == null)
            {
                return;
            }
            Item obj = this.SourceContainer.Find();

            if (obj != null)
            {
                if (obj.HasContainerContent)
                {
                    Item onPlayer = this.TargetContainer.FindOnPlayer();
                    if (onPlayer != null)
                    {
                        if (onPlayer.HasContainerContent)
                        {
                            if (this.ReagentCount <= 0)
                            {
                                return;
                            }
                            foreach (var data in ((IEnumerable <int>)ReagentValidator.Validator.List).Select(itemId => new{ ItemId = itemId, Quantity = this.ReagentCount }).Concat(((IEnumerable <int>)PotionValidator.Validator.List).Select(itemId => new{ ItemId = itemId, Quantity = 15 })).Concat(((IEnumerable <int>) new int[1] {
                                4129
                            }).Select(itemId => new{ ItemId = itemId, Quantity = 5 })))
                            {
                                IItemValidator predicate = (IItemValidator) new PredicateValidator((IItemValidator) new PlayerDistanceValidator((IItemValidator) new PickupValidator((IItemValidator) new ItemIDValidator(new int[1] {
                                    data.ItemId
                                })), 2), (Predicate <Item>)(item =>
                                {
                                    if (item.Parent == null)
                                    {
                                        return(false);
                                    }
                                    if (!(item.WorldRoot is Item))
                                    {
                                        return(item.WorldRoot == me);
                                    }
                                    return(true);
                                }));
                                RestockAgent.Transfer(obj, onPlayer, data.Quantity, data.ItemId, predicate);
                            }
                        }
                        else
                        {
                            new OpenRestockContainerContext(onPlayer).Enqueue();
                        }
                    }
                    else
                    {
                        TargetManager.Client = (ClientTargetHandler) new SetRestockTargetTargetHandler(true);
                        Engine.AddTextMessage("Target your lootbag.");
                    }
                }
                else
                {
                    new OpenRestockContainerContext(obj).Enqueue();
                }
            }
            else
            {
                TargetManager.Client = (ClientTargetHandler) new SetRestockSourceTargetHandler(true);
                Engine.AddTextMessage("Target your restock source container.");
            }
        }
Ejemplo n.º 20
0
        private static void Transfer(Item sourceContainer, Item targetContainer, int amountDesired, int itemId, IItemValidator predicate)
        {
            Mobile player = World.Player;

            if (player == null)
            {
                return;
            }
            Item backpack = player.Backpack;

            if (backpack == null)
            {
                return;
            }
            Item  pickUp1 = targetContainer.FindItem(predicate);
            Point point;
            bool  flag = Player.Current.OrganizeAgent.GetTemplate().TryGetValue(itemId, out point) && point.X != 0 && point.Y != 0;
            int   num  = 0;

            foreach (Item pickUp2 in backpack.FindItems(predicate))
            {
                Item        obj         = pickUp1 == null || !pickUp1.IsStackable ? targetContainer : pickUp1;
                MoveContext moveContext = new MoveContext(pickUp2, pickUp2.Amount, (IEntity)obj, false);
                if (flag)
                {
                    moveContext.Locate(point.X, point.Y);
                }
                moveContext.TryEnqueue();
                num += pickUp2.Amount;
                if (pickUp1 == null)
                {
                    pickUp1 = pickUp2;
                }
            }
            if (num > amountDesired)
            {
                new MoveContext(pickUp1, num - amountDesired, (IEntity)sourceContainer, false).Enqueue();
            }
            else
            {
                if (num >= amountDesired)
                {
                    return;
                }
                Item equip = player.FindEquip(Layer.Bank);
                foreach (Item pickUp2 in sourceContainer.FindItems(predicate))
                {
                    if (!pickUp2.IsChildOf((Agent)player) || pickUp2.IsChildOf((Agent)equip))
                    {
                        int         amount      = Math.Min(pickUp2.Amount, amountDesired - num);
                        MoveContext moveContext = new MoveContext(pickUp2, amount, (IEntity)targetContainer, false);
                        if (flag)
                        {
                            moveContext.Locate(point.X, point.Y);
                        }
                        moveContext.Enqueue();
                        num += amount;
                        if (num == amountDesired)
                        {
                            break;
                        }
                    }
                }
                if (num >= amountDesired)
                {
                    return;
                }
                Engine.AddTextMessage(string.Format("Unable to find sufficient quantity of {0}.", (object)Localization.GetString(1020000 + (itemId & 16383))), Engine.DefaultFont, Hues.Load(38));
            }
        }
Ejemplo n.º 21
0
 /// <summary>
 /// adds a commit validator to a store
 /// </summary>
 /// <param name="decorated"></param>
 /// <param name="validator"></param>
 /// <returns></returns>
 public static ValidatingDecoration Validates(this IStore decorated, IItemValidator validator)
 {
     Condition.Requires(decorated).IsNotNull();
     return(new ValidatingDecoration(decorated, validator));
 }
Ejemplo n.º 22
0
 public ArtifactValidator(IItemValidator parent)
 {
     this.m_Parent = parent;
 }
Ejemplo n.º 23
0
 public HasItemValidator(IItemValidator validator)
 {
     Condition.Requires(validator).IsNotNull();
     this.Validator = validator;
 }
Ejemplo n.º 24
0
 public PickupValidator(IItemValidator parent)
 {
     this.m_Parent = parent;
 }
Ejemplo n.º 25
0
 public PlayerDistanceValidator(IItemValidator parent, int range)
 {
     this.m_Parent = parent;
     this.m_Range  = range;
 }
Ejemplo n.º 26
0
 public static Item[] FindItems(IItemValidator check)
 {
     ArrayList dataStore = Engine.GetDataStore();
     IEnumerator enumerator = m_Items.Values.GetEnumerator();
     while (enumerator.MoveNext())
     {
         Item current = (Item) enumerator.Current;
         if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
         {
             dataStore.Add(current);
         }
     }
     Item[] itemArray = (Item[]) dataStore.ToArray(typeof(Item));
     Engine.ReleaseDataStore(dataStore);
     return itemArray;
 }
Ejemplo n.º 27
0
 public Item[] FindItems(IItemValidator validator)
 {
     return(ScratchList <Item> .ToArray(this.GetItems(validator)));
 }
Ejemplo n.º 28
0
 public static void DoWalk(Direction d, bool fromRenderer)
 {
     fromRenderer = false;
     if (!m_InResync)
     {
         Mobile player = World.Player;
         if (((player != null) && (player.Walking.Count <= 0)) && ((player.Body == 0x3db) || (m_WalkReq < (m_WalkAck + m_WalkAckSync))))
         {
             if (m_Stealth && (m_StealthSteps == 0))
             {
                 if (DateTime.Now >= (m_LastStealthUse + TimeSpan.FromSeconds(2.0)))
                 {
                     Skills[SkillName.Stealth].Use();
                     m_LastStealthUse = DateTime.Now;
                 }
             }
             else
             {
                 GContextMenu.Close();
                 int x = player.X;
                 int y = player.Y;
                 int z = player.Z;
                 bool ghost = player.Ghost;
                 bool flag2 = !ghost && ((player.StamCur <= 0) && (player.StamMax > 0));
                 bool flag3 = !flag2 && ((player.StamCur == 1) && (player.StamMax > 0));
                 if (flag2 || flag3)
                 {
                     flag2 = flag3 = !UsePotion(PotionType.Red);
                 }
                 if (!flag2)
                 {
                     int num4;
                     int num5;
                     if (m_Stealth)
                     {
                         flag3 = true;
                     }
                     if (!Walking.Calculate(x, y, z, d, out num4, out num5))
                     {
                         if ((player.Direction & 7) != (num5 & 7))
                         {
                             WalkAnimation animation = WalkAnimation.PoolInstance(player, player.X, player.Y, player.Z, num5);
                             player.Walking.Enqueue(animation);
                             player.IsMoving = true;
                             animation.Start();
                             SendMovementRequest(num5, player.X, player.Y, player.Z);
                             if (player.Direction != num5)
                             {
                                 EquipSort(player, num5);
                                 player.Direction = (byte) num5;
                             }
                         }
                         else
                         {
                             player.MovedTiles = 0;
                             player.HorseFootsteps = 0;
                             player.IsMoving = false;
                         }
                     }
                     else
                     {
                         num5 &= 7;
                         num5 |= (!flag3 && (m_dMouse > (GameWidth / 3))) ? 0x80 : 0;
                         if (!flag3 && World.CharData.AlwaysRun)
                         {
                             num5 |= 0x80;
                         }
                         int num6 = x;
                         int num7 = y;
                         if (fromRenderer || ((num5 & 7) == (player.Direction & 7)))
                         {
                             Walking.Offset(num5, ref num6, ref num7);
                         }
                         else
                         {
                             num4 = player.Z;
                         }
                         if (((m_LeapFrog != null) && !m_LeapFrog.InSquareRange(new Point(num6, num7), 2)) && m_LeapFrog.InSquareRange(x, y, 2))
                         {
                             if ((m_LastLeapfrogPickup + TimeSpan.FromSeconds(0.1)) < DateTime.Now)
                             {
                                 m_LastLeapfrogPickup = DateTime.Now;
                                 Walking.Offset(num5, ref num6, ref num7);
                                 Network.Send(new PPickupItem(m_LeapFrog, m_LeapFrog.Amount));
                                 Network.Send(new PDropItem(m_LeapFrog.Serial, (short) num6, (short) num7, (sbyte) num4, -1));
                             }
                         }
                         else
                         {
                             WalkAnimation animation2 = WalkAnimation.PoolInstance(player, num6, num7, num4, num5);
                             player.Walking.Enqueue(animation2);
                             bool isMoving = player.IsMoving;
                             player.IsMoving = true;
                             animation2.Start();
                             player.SetReal(num6, num7, num4);
                             if (!isMoving && animation2.Advance)
                             {
                                 World.Offset(animation2.xOffset, animation2.yOffset);
                                 Effects.Offset(animation2.xOffset, animation2.yOffset);
                             }
                             Redraw();
                             if ((num5 & 7) != (player.Direction & 7))
                             {
                                 SendMovementRequest(num5, player.X, player.Y, player.Z);
                                 if (!fromRenderer)
                                 {
                                     if (player.Direction != num5)
                                     {
                                         EquipSort(player, num5);
                                         player.Direction = (byte) num5;
                                     }
                                     return;
                                 }
                             }
                             if (!ghost && (player.Body != 0x3db))
                             {
                                 MapPackage cache = Map.GetCache();
                                 ArrayList list = cache.cells[num6 - cache.CellX, num7 - cache.CellY];
                                 for (int i = 0; i < list.Count; i++)
                                 {
                                     ICell cell = (ICell) list[i];
                                     if ((cell is DynamicItem) && ((DynamicItem) cell).m_Item.IsDoor)
                                     {
                                         Network.Send(new POpenDoor());
                                         break;
                                     }
                                 }
                             }
                             if (m_Stealth)
                             {
                                 m_StealthSteps--;
                             }
                             SendMovementRequest(num5, num6, num7, num4);
                             if (player.Direction != num5)
                             {
                                 EquipSort(player, num5);
                                 player.Direction = (byte) num5;
                             }
                             if (((Gumps.Drag == null) || (Gumps.Drag.GetType() != typeof(GDraggedItem))) && ((DateTime.Now - m_LastAction) > TimeSpan.FromSeconds(0.5)))
                             {
                                 if (m_IVArray == null)
                                 {
                                     m_IVArray = new IItemValidator[2];
                                 }
                                 if (m_Regs == null)
                                 {
                                     m_Regs = new PlayerDistanceValidator(new PickupValidator(ReagentValidator.Validator), 2);
                                     m_IVArray[0] = m_Regs;
                                     m_IVArray[1] = new PlayerDistanceValidator(new PickupValidator(new ItemIDValidator(new int[] { 0x26ac })), 2);
                                 }
                                 IItemValidator check = new PlayerDistanceValidator(new ItemIDValidator(new int[] { 0x2006 }), 2);
                                 Item[] itemArray = World.FindItems(check);
                                 ArrayList list2 = new ArrayList();
                                 AosAppraiser instance = LootAppraiser.Instance;
                                 for (int j = 0; j < itemArray.Length; j++)
                                 {
                                     Item item2 = itemArray[j];
                                     if ((item2.LastTextHue != null) && ((item2.LastTextHue.HueID() & 0x7fff) == 0x59))
                                     {
                                         AosAppraiser.m_BlueCorpse = true;
                                     }
                                     else
                                     {
                                         AosAppraiser.m_BlueCorpse = false;
                                     }
                                     ArrayList items = item2.Items;
                                     for (int k = 0; k < items.Count; k++)
                                     {
                                         Item item = (Item) items[k];
                                         Appraisal appraisal = instance.Appraise(item);
                                         if ((appraisal != null) && !appraisal.IsWorthless)
                                         {
                                             list2.Add(appraisal);
                                         }
                                     }
                                 }
                                 if (list2.Count > 0)
                                 {
                                     list2.Sort();
                                     Appraisal appraisal2 = (Appraisal) list2[0];
                                     Item item4 = appraisal2.Item;
                                     ObjectPropertyList propertyList = item4.PropertyList;
                                     string text = null;
                                     if (propertyList.Properties.Length > 0)
                                     {
                                         text = propertyList.Properties[0].Text;
                                     }
                                     if ((text == null) || (text == ""))
                                     {
                                         text = Localization.GetString(0xf9060 + (item4.ID & 0x3fff));
                                     }
                                     string str2 = string.Format("Looting {0}.", text);
                                     if (list2.Count > 1)
                                     {
                                         str2 = string.Format("{0} There are {1} other valued item{2} to loot.", str2, list2.Count - 1, (list2.Count == 2) ? "" : "s");
                                     }
                                     AddTextMessage(str2, DefaultFont, Hues.Load(0x35));
                                     Mobile mobile2 = World.Player;
                                     if (mobile2 != null)
                                     {
                                         Network.Send(new PPickupItem(item4, item4.Amount));
                                         Network.Send(new PDropItem(item4.Serial, -1, -1, 0, mobile2.Serial));
                                     }
                                 }
                                 Item item5 = World.CharData.AutoPickup ? World.FindItem(m_IVArray) : null;
                                 if (World.CharData.Archery && (item5 == null))
                                 {
                                     if (m_Ammo == null)
                                     {
                                         m_Ammo = new PlayerDistanceValidator(new PickupValidator(new ItemIDValidator(new int[] { 0xf3f, 0x1bfb })), 2);
                                     }
                                     item5 = World.FindItem(m_Ammo);
                                 }
                                 if (item5 != null)
                                 {
                                     Item regBag = null;
                                     if (ReagentValidator.Validator.IsValid(item5))
                                     {
                                         regBag = World.CharData.RegBag;
                                     }
                                     if (regBag == null)
                                     {
                                         regBag = player.Backpack;
                                     }
                                     if (regBag != null)
                                     {
                                         QueueAutoMove(item5, item5.Amount, -1, -1, 0, regBag.Serial);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 29
0
 public ReagentValidator(IItemValidator parent)
     : base(parent, new int[] { 0xf7a, 0xf7b, 0xf84, 0xf85, 0xf86, 0xf88, 0xf8c, 0xf8d })
 {
 }
Ejemplo n.º 30
0
 public Item[] FindItems(IItemValidator check)
 {
     if (check == null)
     {
         throw new ArgumentNullException("check");
     }
     ArrayList dataStore = Engine.GetDataStore();
     Queue queue = m_FindItems_Queue;
     if (queue == null)
     {
         queue = m_FindItems_Queue = new Queue();
     }
     else if (queue.Count > 0)
     {
         queue.Clear();
     }
     if (check.IsValid(this))
     {
         dataStore.Add(this);
     }
     if (this.m_Items.Count > 0)
     {
         queue.Enqueue(this);
         while (queue.Count > 0)
         {
             Item item = (Item) queue.Dequeue();
             ArrayList items = item.m_Items;
             int count = items.Count;
             for (int i = 0; i < count; i++)
             {
                 Item item2 = (Item) items[i];
                 if (check.IsValid(item2))
                 {
                     dataStore.Add(item2);
                 }
                 if (item2.m_Items.Count > 0)
                 {
                     queue.Enqueue(item2);
                 }
             }
         }
     }
     Item[] itemArray = (Item[]) dataStore.ToArray(typeof(Item));
     Engine.ReleaseDataStore(dataStore);
     return itemArray;
 }
Ejemplo n.º 31
0
 public Item FindItem(IItemValidator check)
 {
     if (check == null)
     {
         throw new ArgumentNullException("check");
     }
     Queue queue = m_FindItem_Queue;
     if (queue == null)
     {
         queue = m_FindItem_Queue = new Queue();
     }
     else if (queue.Count > 0)
     {
         queue.Clear();
     }
     if (check.IsValid(this))
     {
         return this;
     }
     if (this.m_Items.Count > 0)
     {
         queue.Enqueue(this);
         while (queue.Count > 0)
         {
             Item item = (Item) queue.Dequeue();
             ArrayList items = item.m_Items;
             int count = items.Count;
             for (int i = 0; i < count; i++)
             {
                 Item item2 = (Item) items[i];
                 if (check.IsValid(item2))
                 {
                     return item2;
                 }
                 if (item2.m_Items.Count > 0)
                 {
                     queue.Enqueue(item2);
                 }
             }
         }
     }
     return null;
 }
Ejemplo n.º 32
0
 public ItemIDValidator(IItemValidator parent, params int[] list)
 {
     this.m_Parent = parent;
     this.m_List = list;
 }
Ejemplo n.º 33
0
 public Item FindEquip(IItemValidator check)
 {
     ArrayList equip = this.m_Equip;
     int count = equip.Count;
     for (int i = 0; i < count; i++)
     {
         EquipEntry entry = (EquipEntry) equip[i];
         if (check.IsValid(entry.m_Item))
         {
             return entry.m_Item;
         }
     }
     return null;
 }
Ejemplo n.º 34
0
 public static HasItemValidator New(IItemValidator validator)
 {
     return new HasItemValidator(validator);
 }
Ejemplo n.º 35
0
 public static Item FindItem(IItemValidator check)
 {
     IEnumerator enumerator = m_Items.Values.GetEnumerator();
     while (enumerator.MoveNext())
     {
         Item current = (Item) enumerator.Current;
         if (((current.Visible && current.InWorld) && (!current.IsMulti && InRange(current))) && check.IsValid(current))
         {
             return current;
         }
     }
     return null;
 }
Ejemplo n.º 36
0
 public RangeValidator(IItemValidator parent, IPoint2D point, int xyRange)
 {
     this.m_Point   = point;
     this.m_Parent  = parent;
     this.m_xyRange = xyRange;
 }
 public SerializedItemChecker(IItemValidator itemValidator, IItemFileWriter itemFileWriter, IOutputWriter outputWriter)
 {
     _itemValidator = itemValidator;
     _itemFileWriter = itemFileWriter;
     _outputWriter = outputWriter;
 }
Ejemplo n.º 38
0
 public PredicateValidator(IItemValidator parent, Predicate <Item> predicate)
 {
     this.m_Parent  = parent;
     this.predicate = predicate;
 }
Ejemplo n.º 39
0
 public ValidatingDecoration(IStore decorated, IItemValidator validator)
     : base(decorated)
 {
     Condition.Requires(validator).IsNotNull();
     this.ItemValidator = validator;
 }
Ejemplo n.º 40
0
 public ItemFactory(IItemValidator validators)
 {
     _validator = validators ?? throw new ArgumentNullException(nameof(validators));
 }
Ejemplo n.º 41
0
 public PlayerDistanceValidator(IItemValidator parent, int range)
 {
     this.m_Parent = parent;
     this.m_Range = range;
 }
Ejemplo n.º 42
0
 public static HasItemValidator New(IItemValidator validator)
 {
     return(new HasItemValidator(validator));
 }
Ejemplo n.º 43
0
 public HasItemValidator(IItemValidator validator)
 {
     Condition.Requires(validator).IsNotNull();
     this.Validator = validator;
 }
Ejemplo n.º 44
0
 public ItemService(IItemRepository _itemRepository, IItemValidator _itemValidator)
 {
     _repository = _itemRepository;
     _validator = _itemValidator;
 }
Ejemplo n.º 45
0
 public ItemService(IItemRepository _itemRepository, IItemValidator _itemValidator)
 {
     _repository = _itemRepository;
     _validator  = _itemValidator;
 }
Ejemplo n.º 46
0
 public ValidatingDecoration(IStore decorated, IItemValidator validator)
     : base(decorated)
 {
     Condition.Requires(validator).IsNotNull();
     this.ItemValidator = validator;
 }
Ejemplo n.º 47
0
 public RangeValidator(IItemValidator parent, IPoint2D point, int xyRange)
 {
     this.m_Point = point;
     this.m_Parent = parent;
     this.m_xyRange = xyRange;
 }
Ejemplo n.º 48
0
 public Item FindItem(IItemValidator iv)
 {
     return(this.FindItem(new Predicate <Item>(iv.IsValid)));
 }
Ejemplo n.º 49
0
 /// <summary>
 /// adds a commit validator to a store
 /// </summary>
 /// <param name="decorated"></param>
 /// <param name="validator"></param>
 /// <returns></returns>
 public static ValidatingDecoration Validates(this IStore decorated, IItemValidator validator)
 {
     Condition.Requires(decorated).IsNotNull();
     return new ValidatingDecoration(decorated, validator);
 }
Ejemplo n.º 50
0
 public ArtifactValidator(IItemValidator parent)
 {
     this.m_Parent = parent;
 }
 public ItemValidationBehaviour()
 {
     _validator = new ItemValidator();
 }