private BossSkillBalanceData Sample(Battle context) { var skills = _boss.Data.Skills; var sampler = new WeightedSampler<BossSkillBalanceData>(); foreach (var kv in skills) { var data = kv.Value; if (data.SampleCondition.Test(context)) sampler.Add(data.Weight, data); } return sampler.Sample(context.Random); }