protected override bool Allow(MiniSimDescription me, IMiniSimDescription actor) { if (mFilter == null) { return(false); } foreach (SimSelection.ICriteria item in mFilter.mElements) { if (item.CanBeRandomCriteria && RandomUtil.CoinFlip()) { continue; } ITestableOption testable = item as ITestableOption; if (testable == null) { continue; } if (!testable.Test(me, false, actor)) { return(false); } } return(true); }