Exemplo n.º 1
0
            /// <summary>
            /// 消費する
            /// </summary>
            public void Consume(Inventory inventory, MasterDataItem masterData)
            {
                Assert.IsNotNull(inventory);
                Assert.IsNotNull(masterData);

                Assert.IsTrue(this.IsEnough(inventory, masterData));
                var record = masterData.Records.Get(this.itemId);

                inventory.AddItem(record, -this.amount);
            }
Exemplo n.º 2
0
        /// <summary>
        /// 消費する
        /// </summary>
        public void Consume(User user, MasterDataItem masterData)
        {
            Assert.IsNotNull(user);
            Assert.IsNotNull(masterData);
            Assert.IsTrue(this.IsEnough(user, masterData));

            user.Wallet.AddMoney(-this.money);
            foreach (var n in this.needItems)
            {
                n.Consume(user.Inventory, masterData);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 足りているか返す
        /// </summary>
        public bool IsEnough(User user, MasterDataItem masterData)
        {
            Assert.IsNotNull(user);
            Assert.IsNotNull(masterData);

            if (!user.Wallet.IsEnoughMoney(this.money))
            {
                return(false);
            }

            return(Array.FindIndex(this.needItems, (n => !n.IsEnough(user.Inventory, masterData))) == -1);
        }
Exemplo n.º 4
0
            /// <summary>
            /// 足りているか返す
            /// </summary>
            public bool IsEnough(Inventory inventory, MasterDataItem masterData)
            {
                Assert.IsNotNull(inventory);
                Assert.IsNotNull(masterData);

                var record = masterData.Records.Get(this.itemId);

                if (!inventory.Items.ContainsKey(record.Id))
                {
                    return(false);
                }

                return(inventory.Items[record.Id] >= this.amount);
            }