diff --git a/Assets/Cryville/Crtr/Ruleset/Judge.cs b/Assets/Cryville/Crtr/Ruleset/Judge.cs index d66a77d..3d5a847 100644 --- a/Assets/Cryville/Crtr/Ruleset/Judge.cs +++ b/Assets/Cryville/Crtr/Ruleset/Judge.cs @@ -90,7 +90,10 @@ namespace Cryville.Crtr.Ruleset { } void InsertEvent(Chart.Judge ev, Clip clip, Identifier id, NoteHandler handler, JudgeCallContext call = default(JudgeCallContext)) { if (id.Key == _var_pause) throw new InvalidOperationException("Cannot assign the special judge \"pause\" to notes"); - var def = _rs.judges[id]; + JudgeDefinition def; + if (!_rs.judges.TryGetValue(id, out def)) { + throw new ArgumentException(string.Format("The chart uses a judge named \"{0}\" that is undefined in the ruleset.", id)); + } _etor.Evaluate(_identop, def.input); _etor.Evaluate(_clipop, def.clip); var list = evs[_identbuf];