/// <summary> /// Creates and returns an instance of EnemyDrops reprenting this enemy's effective drop rates, /// given that the provided resources are full. /// </summary> /// <param name="model">A model that can be used to obtain data about the current game configuration.</param> /// <param name="fullResources">An enumeration of consumable resources that are considered full /// (and hence no longer cause their corresponding enemy drop to happen).</param> /// <returns></returns> public EnemyDrops GetEffectiveDropRates(SuperMetroidModel model, IEnumerable <ConsumableResourceEnum> fullResources) { if (fullResources.Any()) { return(model.Rules.CalculateEffectiveDropRates(Drops, model.Rules.GetUnneededDrops(fullResources))); } else { return(Drops.Clone()); } }