public void AddModules(ModuleSpecification module, float count, AllowedEffects allowedEffects) { if (allowedEffects.HasFlags(AllowedEffects.Speed)) { speed += module.speed * count; } if (allowedEffects.HasFlags(AllowedEffects.Productivity) && module.productivity > 0f) { productivity += module.productivity * count; } if (allowedEffects.HasFlags(AllowedEffects.Consumption)) { consumption += module.consumption * count; } }
public bool Allows(Module module) { if (module.SpeedBonus != 0 && !AllowedEffects.Contains("speed")) { return(false); } if (module.ProductivityBonus != 0 && !AllowedEffects.Contains("productivity")) { return(false); } if (module.ConsumptionBonus != 0 && !AllowedEffects.Contains("consumption")) { return(false); } return(allowedEffects.IsSupersetOf(module.EnumerateEffects())); }