// // Ariadne.Generator's copy of the scripts in this file: the code that actually runs. Edits here are overwritten. // In the copy beside the script, #line paths are relative to it; the compiled code uses full paths. #pragma warning disable using System; using System.Collections.Generic; using Vellum; namespace Ariadne.Vellum.UnitTests { partial class HallDoorScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(1); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallDoorScript() { } protected HallDoorScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallDoorScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } #pragma warning restore public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 142 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "door": goto door__resume; } #line 139 "TriggerWaitScripts.cs" hallway.Log.Add("start"); #line hidden door: #line 142 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Door); #line hidden door__resume: #line 142 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { __frame.Suspend(); __frame.Mark("door"); return false; } #line 143 "TriggerWaitScripts.cs" hallway.Log.Add("door"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "door": __frame.SaveLocal("Run.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallTimedScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(2); public global::Amphora.Duration Run____wait1; public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); lister.Local("Run.__wait1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallTimedScript() { } protected HallTimedScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { { if (reader.TryField("Limit", out global::System.TimeSpan loaded)) { this.Limit = loaded; } } } protected HallTimedScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Field("Limit"); lister.Local("Run.__triggers1"); lister.Local("Run.__wait1"); } #pragma warning restore protected override void __SaveFields(global::Ariadne.IArcWriter writer) { base.__SaveFields(writer); #line 152 "TriggerWaitScripts.cs" writer.Field("Limit", this.Limit); #line default } public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 159 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; case "Run.__wait1": #line 159 "TriggerWaitScripts.cs" writer.Local("Run.__wait1", this.Run____wait1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } { if (reader.TryLocal("Run.__wait1", out global::Amphora.Duration loaded)) { this.Run____wait1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "either": goto either__resume; } #line 156 "TriggerWaitScripts.cs" hallway.Log.Add("start"); #line hidden either: #line 159 "TriggerWaitScripts.cs" __frame.Run____wait1 = __time.DeadlineAfter(Limit); #line 159 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Door); __frame.Run____triggers1.Add(hallway.Alarm); #line hidden either__resume: #line 159 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { if (__time.GameTime < __frame.Run____wait1) { __frame.Sleep(__frame.Run____wait1); __frame.Suspend(); __frame.Mark("either"); return false; } __frame.Run____triggers1.Expire(); } global::Ariadne.Trigger fired; fired = __frame.Run____triggers1.Result; #line 160 "TriggerWaitScripts.cs" hallway.Log.Add(fired == null ? "timed out" : fired == hallway.Alarm ? "alarm" : "door"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "either": __frame.SaveLocal("Run.__triggers1", writer); __frame.SaveLocal("Run.__wait1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallTimedThenDoorScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(1); public global::Amphora.Duration Run____wait1; public global::Ariadne.TriggerWait Run____triggers2 = new global::Ariadne.TriggerWait(1); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); lister.Local("Run.__triggers2"); lister.Local("Run.__wait1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallTimedThenDoorScript() { } protected HallTimedThenDoorScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { { if (reader.TryField("Limit", out global::System.TimeSpan loaded)) { this.Limit = loaded; } } } protected HallTimedThenDoorScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Field("Limit"); lister.Local("Run.__triggers1"); lister.Local("Run.__triggers2"); lister.Local("Run.__wait1"); } #pragma warning restore protected override void __SaveFields(global::Ariadne.IArcWriter writer) { base.__SaveFields(writer); #line 169 "TriggerWaitScripts.cs" writer.Field("Limit", this.Limit); #line default } public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 174 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; case "Run.__triggers2": #line 178 "TriggerWaitScripts.cs" writer.Local("Run.__triggers2", this.Run____triggers2); #line hidden return; case "Run.__wait1": #line 174 "TriggerWaitScripts.cs" writer.Local("Run.__wait1", this.Run____wait1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } { if (reader.TryLocal("Run.__triggers2", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers2 = loaded; } } { if (reader.TryLocal("Run.__wait1", out global::Amphora.Duration loaded)) { this.Run____wait1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); this.Run____triggers2.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); this.Run____triggers2.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "alarm": goto alarm__resume; case "door": goto door__resume; } #line hidden alarm: #line 174 "TriggerWaitScripts.cs" __frame.Run____wait1 = __time.DeadlineAfter(Limit); #line 174 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Alarm); #line hidden alarm__resume: #line 174 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { if (__time.GameTime < __frame.Run____wait1) { __frame.Sleep(__frame.Run____wait1); __frame.Suspend(); __frame.Mark("alarm"); return false; } __frame.Run____triggers1.Expire(); } #line 175 "TriggerWaitScripts.cs" hallway.Log.Add("alarm window over"); #line hidden door: #line 178 "TriggerWaitScripts.cs" __frame.Run____triggers2.Begin(__frame, requiresAll: false); __frame.Run____triggers2.Add(hallway.Door); #line hidden door__resume: #line 178 "TriggerWaitScripts.cs" if (!__frame.Run____triggers2.Complete) { __frame.Suspend(); __frame.Mark("door"); return false; } #line 179 "TriggerWaitScripts.cs" hallway.Log.Add("door"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "alarm": __frame.SaveLocal("Run.__triggers1", writer); __frame.SaveLocal("Run.__wait1", writer); break; case "door": __frame.SaveLocal("Run.__triggers2", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallNamedScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(1); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallNamedScript() { } protected HallNamedScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { { if (reader.TryField("Name", out string loaded)) { this.Name = loaded; } else if (!reader.HasField("Name")) { throw new global::System.IO.InvalidDataException("HallNamedScript's save has no field 'Name', which has no initializer to fall back on. Give it one."); } } } protected HallNamedScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Field("Name"); lister.Local("Run.__triggers1"); } #pragma warning restore protected override void __SaveFields(global::Ariadne.IArcWriter writer) { base.__SaveFields(writer); #line 188 "TriggerWaitScripts.cs" writer.Field("Name", this.Name); #line default } public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 193 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "door": goto door__resume; } #line hidden door: #line 193 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Door); #line hidden door__resume: #line 193 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { __frame.Suspend(); __frame.Mark("door"); return false; } #line 194 "TriggerWaitScripts.cs" hallway.Log.Add(Name); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "door": __frame.SaveLocal("Run.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallEitherScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(2); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallEitherScript() { } protected HallEitherScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallEitherScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } #pragma warning restore public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 206 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "either": goto either__resume; } #line hidden either: #line 206 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Door); __frame.Run____triggers1.Add(hallway.Alarm); #line hidden either__resume: #line 206 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { __frame.Suspend(); __frame.Mark("either"); return false; } global::Ariadne.Trigger fired; fired = __frame.Run____triggers1.Result; #line 207 "TriggerWaitScripts.cs" hallway.Log.Add(fired == hallway.Alarm ? "alarm" : "door"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "either": __frame.SaveLocal("Run.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallBothScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(2); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallBothScript() { } protected HallBothScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallBothScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); } #pragma warning restore public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 219 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "both": goto both__resume; } #line hidden both: #line 219 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: true); __frame.Run____triggers1.Add(hallway.Door); __frame.Run____triggers1.Add(hallway.Alarm); #line hidden both__resume: #line 219 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { __frame.Suspend(); __frame.Mark("both"); return false; } global::Ariadne.Trigger last; last = __frame.Run____triggers1.Result; #line 220 "TriggerWaitScripts.cs" hallway.Log.Add(last == hallway.Alarm ? "alarm last" : "door last"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "both": __frame.SaveLocal("Run.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallTwiceScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public int Run__count; public global::Ariadne.TriggerWait Run____triggers1 = new global::Ariadne.TriggerWait(1); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); lister.Local("Run.count"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallTwiceScript() { } protected HallTwiceScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallTwiceScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Run.__triggers1"); lister.Local("Run.count"); } #pragma warning restore public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.__triggers1": #line 235 "TriggerWaitScripts.cs" writer.Local("Run.__triggers1", this.Run____triggers1); #line hidden return; case "Run.count": #line 231 "TriggerWaitScripts.cs" writer.Local("Run.count", this.Run__count); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Run.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Run____triggers1 = loaded; } } { if (reader.TryLocal("Run.count", out int loaded)) { this.Run__count = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Run____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Run____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden ref int count = ref __frame.Run__count; switch (__frame.ResumeKey) { case "spin": goto spin__resume; } #line 231 "TriggerWaitScripts.cs" count = 0; #line hidden __loopStart1: #line hidden { #line 232 "TriggerWaitScripts.cs" if (!(count < 2)) goto __loopEnd1; #line hidden } #line hidden spin: #line hidden { #line 235 "TriggerWaitScripts.cs" __frame.Run____triggers1.Begin(__frame, requiresAll: false); __frame.Run____triggers1.Add(hallway.Door); #line hidden } #line hidden spin__resume: #line hidden { #line 235 "TriggerWaitScripts.cs" if (!__frame.Run____triggers1.Complete) { __frame.Suspend(); __frame.Mark("spin"); return false; } #line 236 "TriggerWaitScripts.cs" ++count; #line 237 "TriggerWaitScripts.cs" hallway.Log.Add("door " + count); #line hidden goto __loopStart1; #line hidden } #line hidden __loopEnd1: #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "spin": __frame.SaveLocal("Run.count", writer); __frame.SaveLocal("Run.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallLookoutScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Watch____triggers1 = new global::Ariadne.TriggerWait(1); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Watch.__triggers1"); } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } public HallLookoutScript() { } protected HallLookoutScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallLookoutScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Watch.__triggers1"); } #pragma warning restore public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Watch.__triggers1": #line 250 "TriggerWaitScripts.cs" writer.Local("Watch.__triggers1", this.Watch____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Watch.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Watch____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Watch____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Watch____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { } #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public bool Watch__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "watch": goto watch__resume; } #line hidden watch: #line 250 "TriggerWaitScripts.cs" __frame.Watch____triggers1.Begin(__frame, requiresAll: false); __frame.Watch____triggers1.Add(hallway.Door); #line hidden watch__resume: #line 250 "TriggerWaitScripts.cs" if (!__frame.Watch____triggers1.Complete) { __frame.Suspend(); __frame.Mark("watch"); return false; } #line 251 "TriggerWaitScripts.cs" hallway.Log.Add("seen"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public void Watch__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "watch": __frame.SaveLocal("Watch.__triggers1", writer); break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallRelayScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.Vellum.UnitTests.HallLookoutScript Run____call_relay_receiver; public global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame Run____call_relay_frame; public static void ListParts(global::Ariadne.IArcPartLister lister) { { global::Ariadne.IArcPartLister scope = lister.Scope("Run.relay/", typeof(global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame)); if (scope != null) { scope.Local("receiver"); global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame.ListParts(scope); } } } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallRelayScript() { } protected HallRelayScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { { if (reader.TryField("Lookout", out global::Ariadne.Vellum.UnitTests.HallLookoutScript loaded)) { this.Lookout = loaded; } else if (!reader.HasField("Lookout")) { throw new global::System.IO.InvalidDataException("HallRelayScript's save has no field 'Lookout', which has no initializer to fall back on. Give it one."); } } } protected HallRelayScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { lister.Field("Lookout"); { global::Ariadne.IArcPartLister scope = lister.Scope("Run.relay/", typeof(global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame)); if (scope != null) { scope.Local("receiver"); global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame.ListParts(scope); } } } #pragma warning restore protected override void __SaveFields(global::Ariadne.IArcWriter writer) { base.__SaveFields(writer); #line 264 "TriggerWaitScripts.cs" writer.Field("Lookout", this.Lookout); #line default } public partial class __Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Run.relay/receiver": #line 269 "TriggerWaitScripts.cs" writer.Local("receiver", this.Run____call_relay_receiver); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.LoadLocals(reader); { if (reader.TryScope("Run.relay/", out global::Ariadne.IArcReader scope)) { { if (scope.TryLocal("receiver", out global::Ariadne.Vellum.UnitTests.HallLookoutScript loaded)) { this.Run____call_relay_receiver = loaded; } } if (this.Run____call_relay_receiver != null) { this.Run____call_relay_frame = (global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame)this.Run____call_relay_receiver.NewFrame(); this.Run____call_relay_frame.LoadLocals(scope); } } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.AttachWaits(slot); if (this.Run____call_relay_frame != null) { this.Run____call_relay_frame.AttachWaits(slot); } } public override void EndWaits() { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.EndWaits(); if (this.Run____call_relay_frame != null) { this.Run____call_relay_frame.EndWaits(); } } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "relay": goto relay; } #line hidden relay: #line 269 "TriggerWaitScripts.cs" using (__frame.Enter("relay")) { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); if (__frame.ResumeKey == null) { __frame.Run____call_relay_receiver = (Lookout); __frame.Run____call_relay_frame = null; } if (__frame.Run____call_relay_frame == null) { __frame.Run____call_relay_frame = (global::Ariadne.Vellum.UnitTests.HallLookoutScript.__Frame)__frame.Run____call_relay_receiver.NewFrame(); } if (!__frame.Run____call_relay_receiver.Watch__Passage(__frame.Lend(__frame.Run____call_relay_frame), __time, hallway)) { return false; } } #line 270 "TriggerWaitScripts.cs" hallway.Log.Add("relayed"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "relay": { global::Ariadne.IArcWriter scope = writer.Scope("Run.relay/"); __frame.SaveLocal("Run.relay/receiver", scope); if (__frame.Run____call_relay_receiver != null) { __frame.Run____call_relay_receiver.Watch__LocalsToSave(__frame.Lend(__frame.Run____call_relay_frame), depth + 1, scope); } } break; } } } } namespace Ariadne.Vellum.UnitTests { partial class HallGenericScript { [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class __Frame : global::Ariadne.Frame { public global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame Run____call_outer_frame; public static void ListParts(global::Ariadne.IArcPartLister lister) { { global::Ariadne.IArcPartLister scope = lister.Scope("Run.outer/", typeof(global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame)); if (scope != null) { global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame.ListParts(scope); } } } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected override global::Ariadne.Frame __CreateFrame() { return new __Frame(); } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] public partial class Choose__Frame : global::Ariadne.Frame { public global::Ariadne.TriggerWait Choose____triggers1 = new global::Ariadne.TriggerWait(2); public static void ListParts(global::Ariadne.IArcPartLister lister) { lister.Local("Choose.__triggers1"); } } [global::System.CodeDom.Compiler.GeneratedCode("Ariadne.Generator", "1.0")] protected override bool __Resume(global::Ariadne.Vellum.UnitTests.Hallway context, global::Ariadne.TickTime __time) { return Run__Passage((__Frame)__CurrentFrame, __time, context); } protected override void __SaveLocals(global::Ariadne.IArcWriter writer) { Run__LocalsToSave((__Frame)__CurrentFrame, 0, writer); } public HallGenericScript() { } protected HallGenericScript(global::Ariadne.IArcReader reader, global::Ariadne.AutoLoadEveryField load) : base(reader) { } protected HallGenericScript(global::Ariadne.IArcReader reader) : this(reader, default(global::Ariadne.AutoLoadEveryField)) { } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private static void __ListParts(global::Ariadne.IArcPartLister lister) { { global::Ariadne.IArcPartLister scope = lister.Scope("Run.outer/", typeof(global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame)); if (scope != null) { global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame.ListParts(scope); } } } #pragma warning restore #pragma warning disable public partial class __Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.LoadLocals(reader); { if (reader.TryScope("Run.outer/", out global::Ariadne.IArcReader scope)) { this.Run____call_outer_frame = new global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame(); this.Run____call_outer_frame.LoadLocals(scope); } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.AttachWaits(slot); if (this.Run____call_outer_frame != null) { this.Run____call_outer_frame.AttachWaits(slot); } } public override void EndWaits() { global::System.Runtime.CompilerServices.RuntimeHelpers.EnsureSufficientExecutionStack(); base.EndWaits(); if (this.Run____call_outer_frame != null) { this.Run____call_outer_frame.EndWaits(); } } } #pragma warning restore public partial class Choose__Frame { public override void SaveLocal(string key, global::Ariadne.IArcWriter writer) { switch (key) { case "Choose.__triggers1": #line 282 "TriggerWaitScripts.cs" writer.Local("Choose.__triggers1", this.Choose____triggers1); #line hidden return; } #line default base.SaveLocal(key, writer); } } #pragma warning disable public partial class Choose__Frame { public override void LoadLocals(global::Ariadne.IArcReader reader) { base.LoadLocals(reader); { if (reader.TryLocal("Choose.__triggers1", out global::Ariadne.TriggerWait loaded)) { this.Choose____triggers1 = loaded; } } } public override void AttachWaits(global::Ariadne.WakeSlot slot) { base.AttachWaits(slot); this.Choose____triggers1.Attach(slot); } public override void EndWaits() { base.EndWaits(); this.Choose____triggers1.Expire(); } } #pragma warning disable [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected bool Run__Passage(__Frame __frame, global::Ariadne.TickTime __time, Hallway hallway) { #line hidden switch (__frame.ResumeKey) { case "outer": goto outer; } #line hidden outer: #line 288 "TriggerWaitScripts.cs" global::Ariadne.Trigger picked; { global::Ariadne.Trigger __value; using (__frame.Enter("outer")) { if (__frame.Run____call_outer_frame == null) { __frame.Run____call_outer_frame = new global::Ariadne.Vellum.UnitTests.HallGenericScript.Choose__Frame(); } if (!Choose__Passage(__frame.Lend(__frame.Run____call_outer_frame), __frame, __time, hallway, __frame.ResumeKey == null ? (5) : default(int), __result: out __value)) { return false; } } picked = __value; } #line 289 "TriggerWaitScripts.cs" hallway.Log.Add(picked == hallway.Alarm ? "alarm" : "door"); #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] protected void Run__LocalsToSave(__Frame __frame, int depth, global::Ariadne.IArcWriter writer) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "outer": { global::Ariadne.IArcWriter scope = writer.Scope("Run.outer/"); Choose__LocalsToSave(__frame.Lend(__frame.Run____call_outer_frame), __frame, depth + 1, scope, writer); } break; } } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private bool Choose__Passage(Choose__Frame __frame, __Frame __arcFrame, global::Ariadne.TickTime __time, Hallway hallway, ItemType marker, out global::Ariadne.Trigger __result) { #line hidden __result = default(global::Ariadne.Trigger); switch (__frame.ResumeKey) { case "inner": goto inner__resume; } #line hidden inner: #line 282 "TriggerWaitScripts.cs" __frame.Choose____triggers1.Begin(__frame, requiresAll: false); __frame.Choose____triggers1.Add(hallway.Door); __frame.Choose____triggers1.Add(hallway.Alarm); #line hidden inner__resume: #line 282 "TriggerWaitScripts.cs" if (!__frame.Choose____triggers1.Complete) { __frame.Suspend(); __frame.Mark("inner"); return false; } __result = __frame.Choose____triggers1.Result; __frame.Exit(); return true; #line hidden __frame.Exit(); return true; #line default } [global::System.ComponentModel.EditorBrowsable(global::System.ComponentModel.EditorBrowsableState.Never)] private void Choose__LocalsToSave(Choose__Frame __frame, __Frame __arcFrame, int depth, global::Ariadne.IArcWriter writer, global::Ariadne.IArcWriter arcWriter) { if (depth >= __frame.Cursor.Count) { return; } switch (__frame.Cursor[depth]) { case "inner": __frame.SaveLocal("Choose.__triggers1", writer); break; } } } }