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); }
private void ReachedCounter(ShoppingCartInput shoppingCart) { shoppingCartReachedCount++; CalcScore(shoppingCart); if (shoppingCartReachedCount >= shoppingCarts.Length - 1) // prevents from playing alone when all other players finished game { EndGame(); } }
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); }
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); }
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); }