コード例 #1
0
ファイル: Inventory.cs プロジェクト: Inifield/zoso-server
        /// <summary>
        /// Tries to retrieve a(n) <see cref="IMmoItem"/> at the <see cref="slot"/>.
        /// </summary>
        /// <param name="slot"> The slot where the item is located </param>
        /// <param name="mmoItem"> The item at the slot </param>
        /// <returns> The result </returns>
        public bool TryGetItem(int slot, out IMmoItem mmoItem)
        {
            mmoItem = null;
            // range check
            if (slot < 0 || slot >= this.Size)
            {
                return(false);
            }

            return((mmoItem = this.slots[slot].Item) != null);
        }
コード例 #2
0
ファイル: SpellManager.cs プロジェクト: Inifield/zoso-server
        /// <summary>
        /// Remove usable items
        /// </summary>
        public void RemoveUsableItem(IMmoItem item, int count)
        {
            int localCount;

            if (usableItemCounts.TryGetValue(item.Id, out localCount))
            {
                if (localCount <= count)
                {
                    this.usableItemCounts.Remove(item.Id);
                    this.spells.Remove(item.SpellId);
                }
                else
                {
                    this.usableItemCounts[item.Id] = localCount - count;
                }
            }
        }
コード例 #3
0
ファイル: SpellManager.cs プロジェクト: Inifield/zoso-server
        /// <summary>
        /// Add usable items
        /// </summary>
        public void AddUsableItem(IMmoItem item, int count)
        {
            int localCount;

            if (false == usableItemCounts.TryGetValue(item.Id, out localCount))
            {
                SpellData spellInfo;
                if (owner.CurrentZone.World.ItemCache.TryGetSpellData(item.SpellId, out spellInfo))
                {
                    var spell = new Spell(spellInfo, this.owner);
                    this.AddSpellInternal(spell);
                    this.usableItemCounts.Add(item.Id, count);
                }
            }
            else
            {
                this.usableItemCounts[item.Id] = localCount + count;
            }
        }