public static IEnumerator TestPracticeSelector1() { bool cb = false; //Running Static Analysis 1 new InstanceRequest(() => cb = true, FixedDfc(FixedDifficulty.Lunatic), boss: new BossPracticeRequest(AllPBosses[0], new SMAnalysis.Phase(null !, PhaseType.NONSPELL, 3, new LocalizedString("_")))).Run(); IsFalse(cb); yield return(WaitForLoad()); for (int ii = 0; ii < 10; ++ii) { yield return(null); } var m = BehaviorEntity.GetExecForID("mokou"); AreEqual(0, PublicDataHoisting.GetF("v1", 1)); AreEqual(0, PublicDataHoisting.GetF("v1", 2)); //Go to third phase and then callback AreEqual(7, PublicDataHoisting.GetF("v1", 3)); AreEqual(0, PublicDataHoisting.GetF("v1", 4)); AreEqual(0, m.NumRunningSMs); IsFalse(cb); //2 second delay for (int ii = 0; ii < ETime.ENGINEFPS * InstanceRequest.WaitBeforeReturn; ++ii) { yield return(null); } IsTrue(cb); AreEqual("TestPractice", SceneManager.GetActiveScene().name); }
public static void TestHoistClear() { var v = new Movement("nroffset ss0 px rand -200 200".Into <VTP>()); var bpi11 = new ParametricInfo(Vector2.zero, 0, 24); v.UpdateDeltaAssignAcc(ref bpi11, out var d11, 0.1f); var bpi2 = new ParametricInfo(Vector2.zero, 0, 2443455); v.UpdateDeltaAssignAcc(ref bpi2, out var d2, 0.1f); var bpi12 = new ParametricInfo(Vector2.zero, 0, 24, ctx: bpi11.ctx); v.UpdateDeltaAssignAcc(ref bpi12, out var d12, 0.1f); //Due to ss0 this is the same AreEqual(d11, d12); AreNotEqual(d11, d2); PublicDataHoisting.ClearValues(); var bpi31 = new ParametricInfo(Vector2.zero, 0, 24); v.UpdateDeltaAssignAcc(ref bpi31, out var d31, 0.1f); var bpi4 = new ParametricInfo(Vector2.zero, 0, 2443455); v.UpdateDeltaAssignAcc(ref bpi4, out var d4, 0.1f); var bpi32 = new ParametricInfo(Vector2.zero, 0, 24, ctx: bpi31.ctx); v.UpdateDeltaAssignAcc(ref bpi32, out var d32, 0.1f); AreEqual(d31, d32); AreNotEqual(d31, d4); //Due to hoist clear, ss0 must resample AreNotEqual(d11, d31); AreNotEqual(d2, d4); }
public static void LocalReset() { //AudioTrackService.ClearAllAudio(); SFXService.ClearConstructed(); Events.Event0.DestroyAll(); ETime.Slowdown.RevokeAll(MultiOp.Priority.CLEAR_SCENE); ETime.Timer.DestroyAll(); BehaviorEntity.DestroyAllSummons(); PublicDataHoisting.DestroyAll(); FiringCtx.ClearNames(); ReflWrap.ClearWrappers(); StateMachineManager.ClearCachedSMs(); BulletManager.ClearPoolControls(); BulletManager.ClearEmpty(); BulletManager.ClearAllBullets(); BulletManager.DestroyCopiedPools(); InstanceData.CampaignDataUpdated.Proc(); #if UNITY_EDITOR || ALLOW_RELOAD Events.LocalReset.Proc(); #endif //Ordered last so cancellations from HardCancel will occur under old data Instance = new InstanceData(InstanceMode.NULL); Debug.Log($"Reloading level: {Difficulty.Describe()} is the current difficulty"); UIManager.UpdateTags(); }
public static void ClearForScene() { AudioTrackService.ClearAllAudio(false); SFXService.ClearConstructed(); BulletManager.ClearPoolControls(); Events.Event0.DestroyAll(); ETime.Slowdown.RevokeAll(MultiOp.Priority.CLEAR_SCENE); ETime.Timer.DestroyAll(); BulletManager.OrphanAll(); PublicDataHoisting.DestroyAll(); FiringCtx.ClearNames(); //SMs may have links to data hoisting, so we destroy both of them on phase end. ReflWrap.ClearWrappers(); StateMachineManager.ClearCachedSMs(); BehaviorEntity.ClearPointers(); AyaPhoto.ClearTextures(); }
public static IEnumerator TestStaticAnalysis1_1() { TestHarness.OnSOF(() => { var m = BehaviorEntity.GetExecForID("mokou"); TestHarness.RunBehaviorScript("Static Analysis 1", "mokou"); //Case 1: setup goes to phase 2, which goes to 3 and then 4. TestHarness.Check(2, () => { AreEqual(0, PublicDataHoisting.GetF("v1", 1)); AreEqual(6, PublicDataHoisting.GetF("v1", 2)); AreEqual(7, PublicDataHoisting.GetF("v1", 3)); AreEqual(8, PublicDataHoisting.GetF("v1", 4)); AreEqual(0, m.NumRunningSMs); }); }); while (TestHarness.Running) { yield return(null); } }
public static IEnumerator TestStaticAnalysis1_3() { TestHarness.OnSOF(() => { var m = BehaviorEntity.GetExecForID("mokou"); m.phaseController.Override(3, null, false); TestHarness.RunBehaviorScript("Static Analysis 1", "mokou"); //Case 3: setup is overriden, phase 3 is run; without a callback, goes to phase 4. TestHarness.Check(2, () => { AreEqual(0, PublicDataHoisting.GetF("v1", 1)); AreEqual(0, PublicDataHoisting.GetF("v1", 2)); AreEqual(7, PublicDataHoisting.GetF("v1", 3)); AreEqual(8, PublicDataHoisting.GetF("v1", 4)); AreEqual(0, m.NumRunningSMs); }); }); while (TestHarness.Running) { yield return(null); } }
public static IEnumerator TestStaticAnalysis1_2() { TestHarness.OnSOF(() => { var m = BehaviorEntity.GetExecForID("mokou"); bool cb = false; m.phaseController.Override(3, () => cb = true, false); TestHarness.RunBehaviorScript("Static Analysis 1", "mokou"); //Case 2: setup is overriden, phase 3 is run. TestHarness.Check(0, () => IsTrue(!cb)); TestHarness.Check(2, () => { AreEqual(0, PublicDataHoisting.GetF("v1", 1)); AreEqual(0, PublicDataHoisting.GetF("v1", 2)); AreEqual(7, PublicDataHoisting.GetF("v1", 3)); AreEqual(0, PublicDataHoisting.GetF("v1", 4)); IsTrue(cb); AreEqual(0, m.NumRunningSMs); }); }); while (TestHarness.Running) { yield return(null); } }