public IEnumerator WHEN_ImagesAreCreated_Then_TheImagesShouldBeRandomedWithoutRepetition() { GameObject canvas = GameObject.Find("Canvas"); imageHitScritps = canvas.GetComponent <ImageHit>(); yield return(new WaitForSeconds(1f)); List <string> images = imageHitScritps.GetInitialTestImages(); List <string> name_list = new List <string>(); bool state = false; foreach (var item in images) { foreach (var name in name_list) { if (item == name) { state = true; } } name_list.Add(item); } Assert.IsFalse(state, "message : ImageRepetition" + state); }
public IEnumerator WHEN_FillAllGameDataFunctionCalled_THEN_GameDataIsFilled() { // Make all games labelled as played Globals.isBalloonsButtonOn = false; Globals.isCTFButtonOn = false; Globals.isImageHitButtonOn = false; Globals.isSquaresButtonOn = false; Globals.isCatchTheBallButtonOn = false; Globals.isJudgeTheBallButtonOn = false; Globals.isSaveOneBallButtonOn = false; BatterySessionManagement batterySessionManagement = new BatterySessionManagement(); batterySessionManagement.FillAllGameData(); yield return(null); // Game data should be filled with actual gameplay data from each game Assert.AreEqual(Balloons.GetGameplayData(), batterySessionManagement.balloonsData); Assert.AreEqual(CatchTheThief.GetGameplayData(), batterySessionManagement.ctfData); Assert.AreEqual(Squares.GetGameplayData(), batterySessionManagement.squaresData); Assert.AreEqual(ImageHit.GetGameplayData(), batterySessionManagement.imageHitData); Assert.AreEqual(CatchTheBall.GetGameplayData(), batterySessionManagement.catchTheBallData); Assert.AreEqual(JudgeTheBall.GetGameplayData(), batterySessionManagement.judgeTheBallData); Assert.AreEqual(SaveOneBall.GetGameplayData(), batterySessionManagement.saveOneBallData); }
public void OnControllerTrigger() { if (HasTarget()) { triggerDownObject = currentTarget; } }
public IEnumerator WHEN_SecondRoundEnd_Then_SomeImageDisplayedTwice() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); imagehit.OnRound2Over(); Assert.True(imagehit.currentRoundTestData.Count == 0, "message :The no CheckOnRound2Over"); }
public IEnumerator WHEN_SecondRoundStart_Then_TheNumberOfImagesShouldNoLessThan3() { GameObject canvas = GameObject.Find("Canvas"); imageHitScritps = canvas.GetComponent <ImageHit>(); yield return(new WaitForSeconds(1f)); List <TImage> images = imageHitScritps.OnRoundStart(2); Assert.IsFalse(images.Count < 3, "message : ImageRepetition" + images.Count); }
public IEnumerator CheckOnStop() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); imagehit.OnStop(); Assert.True(imagehit.gameState == -1, "message :The no CheckOnStop"); }
public IEnumerator CheckAddRoundTestData() { ImageHit imagehit = new ImageHit(); yield return(new WaitForSeconds(0.5f)); ImageHit.imageHitData = new ImageHitStorage(); ImageHit.imageHitData.Rounds = new List <List <ImageHitRound> >(); imagehit.currentRoundTestData = new List <ImageHitRound>(); imagehit.AddRoundTestData(); Assert.True(ImageHit.imageHitData.Rounds.Count >= 0, "message :The no CheckAddRound"); }
/// <summary> /// FillAllGameData is to update game data objects with corresponding raw gameplay data. /// It will only get gameplay data for the games that have been played. /// </summary> public void FillAllGameData() { // Get gameplay data for Balloons // If the game has been played, get the gameplay data; else, skip this game if (!notYetPlayBalloons) { balloonsData = Balloons.GetGameplayData(); } // Get gameplay data for Squares // If the game has been played, get the gameplay data; else, skip this game if (!notYetPlaySquares) { squaresData = Squares.GetGameplayData(); } // Get gameplay data for Catch The Thief // If the game has been played, get the gameplay data; else, skip this game if (!notYetPlayCTF) { ctfData = CatchTheThief.GetGameplayData(); } // Get gameplay data for ImageHit // If the game has been played, get the gameplay data; else, skip this game if (!notYetPlayImageHit) { imageHitData = ImageHit.GetGameplayData(); } // Get gameplay data for Catch The Ball // If the game has been played, get the gameplay data; else, skip this game if (!notYetCatchTheBall) { catchTheBallData = CatchTheBall.GetGameplayData(); } // Get gameplay data for Save One Ball // If the game has been played, get the gameplay data; else, skip this game if (!notYetSaveOneBall) { saveOneBallData = SaveOneBall.GetGameplayData(); } // Get gameplay data for Judge The Ball // If the game has been played, get the gameplay data; else, skip this game if (!notYetJudgeTheBall) { judgeTheBallData = JudgeTheBall.GetGameplayData(); } }
public IEnumerator CheckOnKey() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); imagehit.gameState = 1; imagehit.prepareTime = 0; imagehit.serialNumber = 1; imagehit.OnKey(true, new TimeAndKey(0, KeyCode.Space)); Assert.True(ImageHit.currentImageHitRound.isKeyPressed, "message :The no CheckOnRound1Over"); ImageHit.currentImageHitRound.UnidentifiedKeysPressed = null; imagehit.OnKey(false, new TimeAndKey(0, KeyCode.Space)); Assert.True(ImageHit.currentImageHitRound.isKeyPressed, "message :The no CheckOnRound1Over"); }
public IEnumerator CheckFindImage() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); imagehit.gameState = 0; imagehit.serialNumber = 1; imagehit.NextImage(); TImage ti = imagehit.FindImage(imagehit.currentRoundTestImages, imagehit.currentRoundTestData[0]); Assert.True(ti != null, "message :The no CheckFindImage"); TImage t2 = imagehit.FindImage(null, imagehit.currentRoundTestData[0]); Assert.True(ti != null, "message :The no CheckFindImage"); }
public IEnumerator CheckNextImageFalse() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); imagehit.gameState = 0; imagehit.serialNumber = 10; imagehit.NextImage(); Assert.True(imagehit.gameState == 1, "message :The no CheckNextImageFalse"); imagehit.serialNumber = 10; imagehit.gameState = 2; imagehit.NextImage(); Assert.True(imagehit.gameState == -1, "message :The no CheckNextImageFalse2"); imagehit.NextImage(); Assert.True(imagehit.gameState == -1, "message :The no CheckNextImageFalse2"); }
public void OnControllerTriggerRelease() { if (HasTarget()) { if (currentTarget.target.GetComponent <MenuOption> ()) { Logger.LogMenuInteraction(currentTarget.target.name); currentTarget.target.GetComponent <MenuOption> ().SelectOption(); return; } } if (!controller.gripDown) { SingleSelect(); } else { AdditiveSelection(); } triggerDownObject = default(ImageHit); }
// Once scene loaded, store important game objects for the tests // into instance variables. void SetGameObjects(Scene scene, LoadSceneMode mode) { imageHitScritps = GameObject.Find("Canvas").GetComponent <ImageHit>(); SceneManager.sceneLoaded -= SetGameObjects; }
public IEnumerator CheckOnRound1Over() { ImageHit imagehit = imageHitScritps; yield return(new WaitForSeconds(0.5f)); ImageHit.imageHitData = new ImageHitStorage(); imagehit.currentRoundTestData = new List <ImageHitRound>(); imagehit.OnRound1Over(); Assert.True(imagehit.canShowNextImage, "message :The no CheckOnRound1Over"); ImageHit.imageHitData = new ImageHitStorage(); imagehit.currentRoundTestData = new List <ImageHitRound>(); ImageHitRound image1 = new ImageHitRound(); ImageHitRound image2 = new ImageHitRound(); image1.isCorrectlyIdentified = true; imagehit.currentRoundTestData.Add(image1); imagehit.currentRoundTestData.Add(image2); imagehit.OnRound1Over(); Assert.True(imagehit.canShowNextImage, "message :The no CheckOnRound1Over"); ImageHit.imageHitData = new ImageHitStorage(); imagehit.currentRoundTestData = new List <ImageHitRound>(); ImageHitRound image3 = new ImageHitRound(); ImageHitRound image4 = new ImageHitRound(); ImageHitRound image5 = new ImageHitRound(); ImageHitRound image6 = new ImageHitRound(); image3.isCorrectlyIdentified = true; image4.isCorrectlyIdentified = true; image5.isCorrectlyIdentified = true; image6.isCorrectlyIdentified = true; imagehit.currentRoundTestData.Add(image3); imagehit.currentRoundTestData.Add(image4); imagehit.currentRoundTestData.Add(image5); imagehit.currentRoundTestData.Add(image6); imagehit.OnRound1Over(); Assert.True(imagehit.canShowNextImage, "message :The no CheckOnRound1Over"); ImageHit.imageHitData = new ImageHitStorage(); imagehit.currentRoundTestData = new List <ImageHitRound>(); ImageHitRound image7 = new ImageHitRound(); ImageHitRound image8 = new ImageHitRound(); ImageHitRound image9 = new ImageHitRound(); ImageHitRound image10 = new ImageHitRound(); imagehit.currentRoundTestData.Add(image7); imagehit.currentRoundTestData.Add(image8); imagehit.currentRoundTestData.Add(image9); imagehit.currentRoundTestData.Add(image10); imagehit.OnRound1Over(); Assert.True(imagehit.canShowNextImage, "message :The no CheckOnRound1Over"); }
void ClearTarget() { currentTarget = default(ImageHit); }
void UpdateTarget() { Vector3 fwd = transform.TransformDirection(Vector3.forward); RaycastHit[] hits; hits = Physics.RaycastAll(transform.position, fwd, 20); bool canvasHit = false; bool editPlaneHit = false; List <ImageHit> imagesHit = new List <ImageHit>(); List <ImageHit> framesHit = new List <ImageHit> (); // List<ImageHit> menuOptionsHit = new List<ImageHit> (); foreach (RaycastHit hit in hits) { if (hit.collider.gameObject.tag == "Image") { imagesHit.Add(new ImageHit(hit.collider.gameObject, hit.point)); continue; } if (hit.collider.gameObject.tag == "Frame") { framesHit.Add(new ImageHit(hit.collider.gameObject, hit.point)); continue; } if (hit.collider.gameObject.tag == "MainCanvas") { canvasHitAt = hit.point; canvasHit = true; continue; } if (hit.collider.gameObject.tag == "MenuOption") { currentTarget = new ImageHit(hit.collider.gameObject, hit.point); return; } if (hit.collider.gameObject.tag == "Temp") { editPlaneHitAt = hit.point; editPlaneHit = true; continue; } } if (!editPlaneHit) { editPlaneHitAt = default(Vector3); } if (!canvasHit) { crosshair.HideCrosshair(); ray.UpdateRay(); canvasHitAt = default(Vector3); } else { if (layerManager.HasSelectedFrames() && controller.trackpadDown) { crosshair.HideCrosshair(); HideRay(); } } List <Layer> sortedLayers = layerManager.GetLayers(); bool imageFound = false; foreach (Layer layer in sortedLayers) { foreach (ImageHit imgHit in imagesHit) { if (layer.layerImage == imgHit.target.GetComponent <Image>()) { imageFound = true; if (currentTarget.target != imgHit.target) { controller.Vibrate(vibrationForce); } currentTarget = imgHit; break; } } if (imageFound) { break; } } // If no image have been hit but a frame has, take the first frame hit and set it as the current target if (!imageFound) { if (framesHit.Count > 0 && layerManager.rearrangementMode) { currentTarget = framesHit [0]; } else { currentTarget = default(ImageHit); } } if (!HasTarget() && canvasHit) { ray.UpdateRay(Vector3.Distance(transform.position, canvasHitAt)); crosshair.ShowCrosshair(); crosshair.MoveCrosshair(canvasHitAt); } if (HasTarget()) { crosshair.HideCrosshair(); } }