public ActionResult <ShoppingCart> AddToShoppingCart(ShoppingCartInput pro)
        {
            var product      = _productService.GetProductById(pro.ProductId);
            var shoppingCart = _shoppingCartService.GetByCustomerId(pro.CustomerId);

            if (product.Qty >= pro.Quantity)
            {
                if (shoppingCart == null)
                {
                    shoppingCart = _shoppingCartService.Create(new ShoppingCart
                    {
                        CustomerId        = pro.CustomerId,
                        ShoppingCartItems = new List <ShoppingCartItem>()
                    });
                }


                shoppingCart.ShoppingCartItems.Add(new ShoppingCartItem
                {
                    ProductId = product.Id,
                    Qty       = pro.Quantity,
                    Amount    = product.Price
                });

                shoppingCart.TotalAmount += product.Price * pro.Quantity;
                _shoppingCartService.Update(shoppingCart.Id, shoppingCart);
            }

            return(shoppingCart);
        }
 public ShoppingCartInput Spawn(ShoppingCartInput shoppingCartPrefab)
 {
     shoppingCart = Instantiate(shoppingCartPrefab, transform.position, Quaternion.Euler(Vector3.left));
     shoppingCart.Init(CanReturnCallback, colorHex, colorName);
     ChangeColor(shoppingCart, color);
     return(shoppingCart);
 }
예제 #3
0
 private void ReachedCounter(ShoppingCartInput shoppingCart)
 {
     shoppingCartReachedCount++;
     CalcScore(shoppingCart);
     if (shoppingCartReachedCount >= shoppingCarts.Length - 1)         // prevents from playing alone when all other players finished game
     {
         EndGame();
     }
 }
예제 #4
0
    private int CalcScore(ShoppingCartInput shoppingCart)
    {
        Collider[]      productsAtCounter = Physics.OverlapSphere(shoppingCart.transform.position, 1f);
        List <Collider> paperRolls        = new List <Collider>();

        paperRolls.AddRange(Array.FindAll(productsAtCounter, p => p.GetComponent <ToiletPaperRoll>() != null).ToList());
        shoppingCart.gatheredToiletRolls = paperRolls.Count;
        Debug.Log(shoppingCart.gatheredToiletRolls);

        return(shoppingCart.gatheredToiletRolls);
    }
예제 #5
0
    private void Start()
    {
        if (outcomeWindow != null)
        {
            outcomeWindow.SetActive(false);
        }
        shoppingCarts = new ShoppingCartInput[shoppingCartSpawners.Length];
        int spawnedPlayer = 0;

        for (int i = 0; i < shoppingCartSpawners.Length; i++)
        {
            ShoppingCartInput prefab = enemyPrefab;
            if (SceneManager.GetActiveScene().name == "Shop")
            {
                if (spawnedPlayer < gameData.playerCount)
                {
                    prefab = playerPrefab;
                    spawnedPlayer++;
                }
            }

            ShoppingCartInput shoppingCart = shoppingCartSpawners[i].Spawn(prefab);
            shoppingCarts[i] = shoppingCart;
            shoppingCart.reachedCounterCallback = ReachedCounter;
            if (shoppingCart is PlayerInput input)
            {
                input.SetInput(playerInputData[i]);
            }
        }

        BrainHelper brainHelper = Camera.main.GetComponent <BrainHelper>();

        if (SceneManager.GetActiveScene().name == "MainMenu")
        {
            brainHelper.AttachCam(shoppingCarts[2].transform);
            gameData.playerCount = 1;
        }
        else
        {
            for (int i = 0; i < brainHelper.cameras.Length; i++)
            {
                brainHelper.cameras[i].rect = screenRectData.variants[gameData.playerCount - 1].screenRect[i];
                if (i < gameData.playerCount)
                {
                    continue;
                }
                brainHelper.cameras[i].gameObject.SetActive(false);
                brainHelper.virtualCameras[i].gameObject.SetActive(false);
            }
        }
    }
        public ActionResult <ShoppingCart> DeleteToShoppingCart(ShoppingCartInput pro)
        {
            var product          = _productService.GetProductById(pro.ProductId);
            var shoppingCart     = _shoppingCartService.GetByCustomerId(pro.CustomerId);
            var shoppingCartItem = shoppingCart.ShoppingCartItems.Where(x => x.ProductId.Equals(pro.ProductId)).FirstOrDefault();

            shoppingCart.ShoppingCartItems.Remove(shoppingCartItem);
            if (product != null)
            {
                double total = product.Price * pro.Quantity;
                shoppingCart.TotalAmount = shoppingCart.TotalAmount - total;
                _shoppingCartService.Update(shoppingCart.Id, shoppingCart);
            }

            return(shoppingCart);
        }
예제 #7
0
    private void Outcome()
    {
        ShoppingCartInput cart        = shoppingCarts.OrderByDescending(c => c.gatheredToiletRolls).FirstOrDefault();
        string            outcomeText = "";

        if (cart.gatheredToiletRolls == 0)
        {
            outcomeText = "NO PLAYER HAS WON.";
        }
        else
        {
            outcomeText  = $"<color=#{cart.colorHex}>{cart.colorName}</color>";
            outcomeText += $"\n PLAYER WINS \n {cart.gatheredToiletRolls} TOILET PAPER ROLLS.";
        }

        outcome.text = outcomeText;
        outcomeWindow.SetActive(true);
    }
 private void ChangeColor(ShoppingCartInput input, Color color)
 {
     input.CartRenderer.material.SetColor("_BaseColor", color);
     counterRenderer.materials[1].SetColor("_BaseColor", color);
 }