/// <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); }
/// <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); } }
/// <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); }
/// <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); }