예제 #1
0
    private void CheckForToyPickup()
    {
        ToyController foundToy = null;

        if (Input.GetMouseButtonDown(0))
        {
            foreach (RaycastHit2D hit in Physics2D.RaycastAll(gameCamera.ScreenToWorldPoint(Input.mousePosition), Vector2.zero))
            {
                if (hit.collider.GetComponent <ToyPutDownRegion>() != null && !hit.collider.GetComponent <ToyPutDownRegion>().canPutDownHere)
                {
                    return;
                }
                ToyController controller = hit.collider.GetComponent <ToyController>();
                if (controller != null)
                {
                    foundToy = controller;
                }
            }
        }
        if (foundToy != null)
        {
            heldToy = foundToy;
            heldToy.PickUp();
            OnUp.Invoke();
            return;
        }
    }
        public void CategoriesFilterTest()
        {
            Mock <IToyRepository> mock = new Mock <IToyRepository>();

            mock.Setup(t => t.Toys).Returns(new Toy[]
            {
                new Toy {
                    ToyID = 1, Name = "Misio", Category = "Pluszaki"
                },
                new Toy {
                    ToyID = 2, Name = "Lalka", Category = "Lalki"
                },
                new Toy {
                    ToyID = 3, Name = "Piesek", Category = "Pluszaki"
                },
                new Toy {
                    ToyID = 4, Name = "Królik", Category = "Pluszaki"
                },
                new Toy {
                    ToyID = 5, Name = "Kolejka", Category = "Pojazdy"
                }
            }.AsQueryable());

            ToyController controller = new ToyController(mock.Object);

            controller.PageSize = 3;

            Toy[] result = ((ToyListViewModel)controller.List("Pluszaki", 1).Model).Toys.ToArray();

            Assert.AreEqual(result.Length, 3);
            Assert.IsTrue(result[0].Name == "Misio" && result[0].Category == "Pluszaki");
            Assert.IsTrue(result[1].Name == "Piesek" && result[1].Category == "Pluszaki");
            Assert.IsTrue(result[2].Name == "Królik" && result[2].Category == "Pluszaki");
        }
예제 #3
0
        public override void OnUpdate()
        {
            base.OnUpdate();
            ToyController toyController = controller.chaseTarget == null ? null : controller.chaseTarget.Controller;

            if (toyController == null || controller.chaseTarget.ChasePosition == Vector3.zero || !toyController.AnyLeft() || stateTime > controller.PlayTime)
            {
                if (stateTime > controller.PlayTime)
                {
                    controller.AddMood(controller.PlayMoodInc);
                }
                PlacementManager.Instance.GetPlayArea().MarkAsDirty();
                PlayerManager.Instance.MarkAsDirty();
                controller.chaseTarget = null;
                controller.SetState <SitState>();
            }
            else
            {
                Vector3 targetWorldPos = PlacementManager.Instance.GetNavPos(controller.chaseTarget.ChasePosition);
                controller.transform.LookAt(targetWorldPos, PlacementManager.Instance.GetPlayArea().transform.up);
                float distToTarget  = Vector3.Distance(controller.transform.position, targetWorldPos);
                float worldStopDist = controller.StopDistance * controller.transform.lossyScale.x;
                if (distToTarget > 2f * worldStopDist)
                {
                    controller.SetState <ChaseState>();
                }
                else
                {
                    //controller.transform.LookAt(targetWorldPos, PlacementManager.Instance.GetPlayArea().transform.up);
                    toyController.Play();
                }
            }
        }
        public void PaginateTest()
        {
            Mock <IToyRepository> mock = new Mock <IToyRepository>();

            mock.Setup(t => t.Toys).Returns(new Toy[]
            {
                new Toy {
                    ToyID = 1, Name = "Misio"
                },
                new Toy {
                    ToyID = 2, Name = "Lalka"
                },
                new Toy {
                    ToyID = 3, Name = "Samochodzik"
                },
                new Toy {
                    ToyID = 4, Name = "Piłka"
                },
                new Toy {
                    ToyID = 5, Name = "Pistolet"
                }
            }.AsQueryable());

            ToyController controller = new ToyController(mock.Object);

            controller.PageSize = 3;

            ToyListViewModel result = (ToyListViewModel)controller.List(null, 2).Model;

            Toy[] toyArray = result.Toys.ToArray();
            Assert.IsTrue(toyArray.Length == 2);
            Assert.AreEqual(toyArray[0].Name, "Piłka");
            Assert.AreEqual(toyArray[1].Name, "Pistolet");
        }
예제 #5
0
    // Update is called once per frame
    void Update()
    {
        if (spriteRenderer == null)
        {
            spriteRenderer = GetComponent <SpriteRenderer>();
        }

        if (controller == null)
        {
            controller = GetComponentInParent <ToyController>();
        }

        if (spriteRenderer != null && controller != null && controller.toyType != null)
        {
            spriteRenderer.color  = controller.toyType.color;
            spriteRenderer.sprite = controller.toyType.sprite;
        }

        if (animator == null)
        {
            animator = GetComponent <Animator>();
        }

        animator.SetBool("IsPickedUp", controller.isPickedUp);
        animator.SetBool("CanPutDown", controller.canPutDown);
    }
예제 #6
0
 public void ProcessToy(ToyController toy)
 {
     if (correctToyTypes.Contains(toy.toyType))
     {
         if (rewardResourceType == ResourceType.Money || rewardResourceType == ResourceType.Both)
         {
             moneyTracker.GainMoney(toy.toyType.moneyValue);
             OnCorrect.Invoke(toy.toyType.moneyValue);
         }
         if (rewardResourceType == ResourceType.Approval || rewardResourceType == ResourceType.Both)
         {
             approvalTracker.GainApproval(toy.toyType.approvalValue);
         }
     }
     else
     {
         if (penaltyResourceType == ResourceType.Money || penaltyResourceType == ResourceType.Both)
         {
             moneyTracker.SpendMoney(toy.toyType.moneyValue * toy.toyType.penaltyMultiplier);
         }
         if (penaltyResourceType == ResourceType.Approval || penaltyResourceType == ResourceType.Both)
         {
             approvalTracker.LoseApproval(toy.toyType.approvalValue * toy.toyType.penaltyMultiplier);
         }
         OnIncorrect.Invoke(0.0f);
     }
 }
예제 #7
0
        public void ReturnsAllToys()
        {
            var toyController = new ToyController(MockToysRepository);
            var toysObtained  = toyController.Get() as List <Toy>;

            Assert.AreEqual(toysList, toysObtained);
        }
예제 #8
0
 public void DropHeld()
 {
     if (heldToy != null)
     {
         Destroy(heldToy.gameObject);
         heldToy = null;
     }
 }
예제 #9
0
        public void GetToy_ShouldNotFindProduct()
        {
            var toyController = new ToyController(MockToysRepository);

            var result = toyController.Get(666);

            Assert.IsNull(result);
        }
예제 #10
0
        public void GetBadRequetOnInvalidModel()
        {
            var ToyController = new ToyController(MockToysRepository);

            ToyController.Request       = new HttpRequestMessage();
            ToyController.Configuration = new HttpConfiguration();
            ToyController.ModelState.AddModelError("Myerror", new Exception());
            HttpResponseMessage expected = ToyController.Post(new Object() as Toy);

            Assert.IsTrue(expected.ToString().Contains("Bad Request"));
        }
예제 #11
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        ToyController tc = collision.GetComponent <ToyController>();

        if (tc != null)
        {
            if (!tc.isPickedUp || alsoDetectWhenPickedUp)
            {
                OnToyDetected.Invoke(tc);
            }
        }
    }
예제 #12
0
    // Start is called before the first frame update
    void Start()
    {
        finalScore = 0;

        //DontDestroyOnLoad(gameObject);

        if (isStartScreen == false)
        {
            toyControllerComponent = toys[0].GetComponent <ToyController>();
        }
        elapsingTime = timeLimit;
    }
예제 #13
0
    public void SpawnToy(ToyType toyType)
    {
        lastSpawnTime = Time.time;

        if (toyType == null)
        {
            return;
        }
        ToyController newToy = Instantiate(toyPrefab.gameObject).GetComponent <ToyController>();

        newToy.transform.position = transform.position;
        newToy.toyType            = toyType;
    }
예제 #14
0
        public void GetOkMessageOnPost()
        {
            var ToyController = new ToyController(MockToysRepository);

            ToyController.Request       = new HttpRequestMessage();
            ToyController.Configuration = new HttpConfiguration();
            HttpResponseMessage expected = ToyController.Post(new Toy {
                Id = 8, Name = "Millenium Falcoon", Description = "Chewie, we are at home!", Price = 99.99m, AgeRestriction = 100, Company = "Mattel"
            });
            HttpResponseMessage actual = ToyController.Request.CreateResponse(HttpStatusCode.OK);

            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
예제 #15
0
    public void ActivateNewToy()
    {
        totalScore += toyControllerComponent.totalToyScore;

        if (currentToy == toys.Length - 1)
        {
            FinishGame();
        }
        else
        {
            lazySusan.reset = true;
            toys[currentToy + 1].SetActive(true);
            currentToy++;
            toyControllerComponent = toys[currentToy].GetComponent <ToyController>();
        }
    }
예제 #16
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        ToyController toy = collision.GetComponent <ToyController>();

        if (toy != null && !toy.isPickedUp)
        {
            // Move down line
            toy.transform.Translate(transform.up * speed * Time.fixedDeltaTime, Space.World);
            // Center
            Vector2 pointLocal = transform.InverseTransformPoint(toy.transform.position);
            pointLocal.x = 0.0f;
            Vector2 pointWorld  = transform.TransformPoint(pointLocal);
            Vector2 dirToCenter = (pointWorld - (Vector2)toy.transform.position).normalized;
            toy.transform.Translate(dirToCenter * speed * Time.fixedDeltaTime, Space.World);
        }
    }
예제 #17
0
 private void CheckForToyPlacement()
 {
     if (Input.GetMouseButtonUp(0))
     {
         if (heldToy.canPutDown)
         {
             heldToy.PutDown();
             OnDown.Invoke();
             heldToy = null;
         }
         else
         {
             OnBadDrop.Invoke(heldToy);
             heldToy = null;
         }
     }
 }
예제 #18
0
        public override void OnUpdate()
        {
            base.OnUpdate();
            ToyController toyController = controller.target == null ? null : controller.target.GetComponent <ToyController>();

            if (toyController == null || !toyController.AnyLeft() || stateTime > controller.PlayTime)
            {
                if (stateTime > controller.PlayTime)
                {
                    controller.AddMood(controller.PlayMoodInc);
                }
                PlacementManager.Instance.GetPlayArea().MarkAsDirty();
                PlayerManager.Instance.MarkAsDirty();
                controller.SetState <SitState>();
            }
            else
            {
                toyController.Play();
            }
        }
예제 #19
0
        public void SendPaginationViewModelTest()
        {
            Mock <IToyRepository> mock = new Mock <IToyRepository>();

            mock.Setup(t => t.Toys).Returns(new Toy[]
            {
                new Toy {
                    ToyID = 1, Name = "Misio"
                },
                new Toy {
                    ToyID = 2, Name = "Lalka"
                },
                new Toy {
                    ToyID = 3, Name = "Samochodzik"
                },
                new Toy {
                    ToyID = 4, Name = "Piłka"
                },
                new Toy {
                    ToyID = 5, Name = "Pistolet"
                }
            }.AsQueryable());

            ToyController controller = new ToyController(mock.Object);

            controller.PageSize = 3;

            ToyListViewModel result = (ToyListViewModel)controller.List(null, 2).Model;

            PagingInfo pageInfo = result.PagingInfo;

            Assert.AreEqual(pageInfo.CurrentPage, 2);
            Assert.AreEqual(pageInfo.ItemsPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 5);
            Assert.AreEqual(pageInfo.TotalPages, 2);
        }
예제 #20
0
 public void DestroyToy(ToyController toy)
 {
     StartCoroutine(DestroyLate(toy.gameObject));
 }
예제 #21
0
    protected void Update()
    {
        var mouse_position =
            Camera.main.ScreenToWorldPoint(Input.mousePosition);

        if (Input.GetMouseButtonDown(0))
        {
            hit_interactable = Physics2D.Raycast(
                mouse_position,
                Vector3.forward,
                Mathf.Infinity,
                interactables_layer);

            if (hit_interactable.collider != null)
            {
                if (toy_renderer != null)
                {
                    if (toy_controller.is_dragging == true)
                    {
                        toy_controller.Drop();
                    }
                    else if (toy_controller.is_dragging == false)
                    {
                        toy_controller.Drag();
                    }
                }
                else
                {
                    Execute(hit_interactable.collider.gameObject);
                }
            }
        }
        else if (Input.GetMouseButtonDown(1))
        {
            hit_interactable = Physics2D.Raycast(
                mouse_position,
                Vector3.forward,
                Mathf.Infinity,
                interactables_layer);

            if (hit_interactable.collider != null)
            {
                if (hit_interactable.collider.gameObject.GetComponentInParent <Cat>() != null)
                {
                    //hit_interactable.collider.gameObject.GetComponentInParent<Cat>().Pet();
                }
            }
        }
        else
        {
            hit_interactable = Physics2D.Raycast(
                mouse_position,
                Vector3.forward,
                Mathf.Infinity,
                interactables_layer);

            if (hit_interactable.collider != null)
            {
                if (hit_interactable.collider.GetComponent <ToyController>() != null)
                {
                    toy_renderer       = hit_interactable.collider.gameObject.GetComponent <SpriteRenderer>();
                    toy_controller     = hit_interactable.collider.gameObject.GetComponent <ToyController>();
                    toy_renderer.color = new Color(255, 255, 255, 0.5f);
                }
            }
            else
            {
                if (toy_renderer != null)
                {
                    toy_renderer.color = new Color(255, 255, 255, 1f);
                    toy_controller     = null;
                    toy_renderer       = null;
                }
            }
        }
    }
예제 #22
0
 private void Reset()
 {
     controller = GetComponentInParent <ToyController>();
 }
예제 #23
0
 private void Awake()
 {
     heldToy = null;
 }