public bool CostCheck(GlobalResourceCost cost) { if (cost == null) { return(true); } if (!Power.CostCheck(cost.Power) || !Psionic.CostCheck(cost.Psionic)) { return(false); } foreach (var i in cost.ItemCost) { var num = i.Value; foreach (var package in _RegisteredPackage) { num -= package.GetItemNum(i.Key); if (num <= 0) { break; } } if (num > 0) { return(false); } } return(true); }
public void Cost(GlobalResourceCost cost) { if (cost == null) { return; } Power.Cost(cost.Power); Psionic.Cost(cost.Psionic); if (cost.ItemCost == null) { return; } foreach (var i in cost.ItemCost) { var num = i.Value; foreach (var package in _RegisteredPackage) { num = package.CostItem(new ItemGroup(i.Key, num)).Remaining.FirstOrDefault().Count; if (num == 0) { break; } } } }