示例#1
0
        public void PutArcadeMachine(ArcadeMachine arcadeMachine)
        {
            DbContextOptionsBuilder <KnightsArcadeContext> bootUp = new DbContextOptionsBuilder <KnightsArcadeContext>();

            bootUp.UseMySql(_configuration.GetConnectionString("KnightsArcadeDb"));
            KnightsArcadeContext knightsContext = new KnightsArcadeContext(bootUp.Options);

            ArcadeMachine updatedArcadeMachine = knightsContext.ArcadeMachines.Find(arcadeMachine.ArcadeMachineId);

            if (arcadeMachine.ArcadeMachineRoom != null)
            {
                updatedArcadeMachine.ArcadeMachineRoom = arcadeMachine.ArcadeMachineRoom;
            }
            if (arcadeMachine.ArcadeMachineDescription != null)
            {
                updatedArcadeMachine.ArcadeMachineDescription = arcadeMachine.ArcadeMachineDescription;
            }
            if (arcadeMachine.ArcadeMachineCoords != null)
            {
                updatedArcadeMachine.ArcadeMachineCoords = arcadeMachine.ArcadeMachineCoords;
            }
            if (arcadeMachine.ArcadeMachineAddress != null)
            {
                updatedArcadeMachine.ArcadeMachineAddress = arcadeMachine.ArcadeMachineAddress;
            }
            if (arcadeMachine.ArcadeMachineName != null)
            {
                updatedArcadeMachine.ArcadeMachineName = arcadeMachine.ArcadeMachineName;
            }

            knightsContext.Entry <ArcadeMachine>(updatedArcadeMachine).State = EntityState.Modified;
            knightsContext.SaveChanges();
        }
示例#2
0
    private void GenerateStore()
    {
        for (int j = 0; j < arcadeMachine.Count; j++)
        {
            int           k  = j;
            ArcadeMachine am = arcadeMachine[j].GetComponent <ArcadeMachine>();

            GameObject gen = Instantiate(shopButton, Vector3.zero, Quaternion.identity, shopBgImage.transform);

            gen.GetComponent <RectTransform>().anchoredPosition = new Vector3(-320 + (j * 160), 160, 0);
            TextMeshProUGUI[] textTable = gen.GetComponentsInChildren <TextMeshProUGUI>();
            for (int z = 0; z < textTable.Length; z++)
            {
                switch (textTable[z].name)
                {
                case "machinename":
                    textTable[z].text = am.machineName;
                    break;

                case "machineprice":
                    textTable[z].text = "$ " + am.machinePurchasePrice.ToString();
                    break;

                default:
                    break;
                }
            }
            gen.GetComponent <Button>().onClick.AddListener(() => SetChosenMachine(k));
        }
    }
示例#3
0
    public void AddArcadeMachine(ArcadeMachine machine)
    {
        availableMachines.Add(machine);
        allMachines.Add(machine);

        CalculateElectricityPrice();
    }
        public IActionResult PutArcadeMachine(ArcadeMachine arcadeMachine)
        {
            try
            {
                StringValues accessToken = new StringValues();
                Request.Headers.TryGetValue("Authorization", out accessToken);
                if (accessToken.Count() == 0)
                {
                    return(StatusCode(401, "Empty or no authorization header."));
                }

                if (accessToken.FirstOrDefault().ToString() == null || accessToken.FirstOrDefault().ToString() == "")
                {
                    return(StatusCode(401, "Empty or no authorization header."));
                }

                if (_validation.CheckValidation(accessToken.ToString()))
                {
                    _rdsLogic.PutArcadeMachine(arcadeMachine);
                    return(StatusCode(200));
                }

                return(StatusCode(403, "This is an invalid access token."));
            }
            catch (Exception e)
            {
                _logger.LogError(e.Message, e);
                return(StatusCode(500, e.Message));
            }
        }
        public void Draw(ArcadeMachine baseGame)
        {
            brickBreaker = baseGame as BrickbreakerGame;
            if (brickBreaker == null)
            {
                return;
            }

            drawScale = brickBreaker.GlobalScale;
            CoreGlobals.GraphicsDevice.SetRenderTarget(brickBreaker.RenderTarget);
            CoreGlobals.GraphicsDevice.Clear(Color.Black);


            spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, DepthStencilState.None, null);

            if (brickBreaker.State == BrickbreakerGame.GameState.GameOver)
            {
                DrawGameOver();
                DrawHud();
            }
            else
            {
                DrawPlay();
                DrawHud();
            }

            spriteBatch.End();
        }
        public void Draw(ArcadeMachine baseGame)
        {
            game = baseGame as PongGame;
            if (game == null)
            {
                return;
            }

            CoreGlobals.GraphicsDevice.SetRenderTarget(game.RenderTarget);
            CoreGlobals.GraphicsDevice.Clear(Color.Black);

            spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, DepthStencilState.None, null);

            if (game.State == PongGame.GameState.GameOver)
            {
                DrawGameOver();
                DrawHud();
            }
            else
            {
                DrawPlay();
                DrawHud();
            }

            spriteBatch.End();
        }
示例#7
0
 public void MoveToMachine(ArcadeMachine machine)
 {
     targetMachine     = machine;
     agent.isStopped   = false;
     customerState     = CustomerState.MovingToMachine;
     agentTarget       = targetMachine.playingArea;
     agent.destination = agentTarget.position;
 }
        public void Day13Part2Exercise()
        {
            var arcade = new ArcadeMachine();

            arcade.Load();
            arcade.InsertCash();
            arcade.Play();
            arcade.Score.Should().Be(15957);
        }
        public void Day13Part1Exercise()
        {
            var arcade = new ArcadeMachine();

            arcade.Load();
            arcade.Play();
            var blocks = arcade.Screen.Pixels.Count(c => c.Value == "#");

            blocks.Should().Be(324);
        }
示例#10
0
        public ArcadeMachine PostArcadeMachine(ArcadeMachine arcadeMachine)
        {
            DbContextOptionsBuilder <KnightsArcadeContext> bootUp = new DbContextOptionsBuilder <KnightsArcadeContext>();

            bootUp.UseMySql(_configuration.GetConnectionString("KnightsArcadeDb"));
            KnightsArcadeContext knightsContext = new KnightsArcadeContext(bootUp.Options);

            knightsContext.ArcadeMachines.Add(arcadeMachine);
            knightsContext.SaveChanges();
            return(arcadeMachine);
        }
示例#11
0
    public ArcadeMachine GetRandomOccupiedMachine()
    {
        if (occupiedMachines.Count <= 0)
        {
            return(null);
        }

        ArcadeMachine machine = occupiedMachines[Random.Range(0, occupiedMachines.Count)];

        return(machine);
    }
示例#12
0
        public void DeleteArcadeMachine(int?arcadeMachineId)
        {
            DbContextOptionsBuilder <KnightsArcadeContext> bootUp = new DbContextOptionsBuilder <KnightsArcadeContext>();

            bootUp.UseMySql(_configuration.GetConnectionString("KnightsArcadeDb"));
            KnightsArcadeContext knightsContext = new KnightsArcadeContext(bootUp.Options);

            ArcadeMachine arcadeMachine = knightsContext.ArcadeMachines.Find(arcadeMachineId);

            knightsContext.ArcadeMachines.Remove(arcadeMachine);
            knightsContext.SaveChanges();
        }
示例#13
0
 public void SetArcadeMachineAvailable(ArcadeMachine machine)
 {
     if (occupiedMachines.Contains(machine))
     {
         occupiedMachines.Remove(machine);
         availableMachines.Add(machine);
         Debug.Log(machine.name + " added to available machines!");
     }
     else
     {
         Debug.LogWarning(machine.name + " not found!");
     }
 }
示例#14
0
    public ArcadeMachine GetRandomAvailableMachine()
    {
        if (availableMachines.Count <= 0)
        {
            return(null);
        }

        ArcadeMachine machine = availableMachines[Random.Range(0, availableMachines.Count)];

        availableMachines.Remove(machine);
        occupiedMachines.Add(machine);

        return(machine);
    }
示例#15
0
    public void DeleteArcadeMachine(ArcadeMachine machine)
    {
        if (allMachines.Contains(machine))
        {
            allMachines.Remove(machine);
            CalculateElectricityPrice();
        }

        if (availableMachines.Contains(machine))
        {
            availableMachines.Remove(machine);
        }
        else if (occupiedMachines.Contains(machine))
        {
            occupiedMachines.Remove(machine);
        }
        else
        {
            Debug.LogWarning("Error trying to delete machine, machine not found!");
        }
    }
        public void Draw(ArcadeMachine baseGame)
        {
            game = baseGame as TotalDefenderGame;
            if (game == null)
            {
                return;
            }

            CoreGlobals.GraphicsDevice.SetRenderTarget(game.RenderTarget);
            CoreGlobals.GraphicsDevice.Clear(Color.Black);
            spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, DepthStencilState.None, null);

            switch (game.State)
            {
            case GameState.Play:
                DrawPlay();
                DrawRadar();
                DrawHud();
                break;

            case GameState.EndOfWave:
                DrawHud();
                DrawEndOfWave();
                break;

            case GameState.GameOver:
                DrawGameOver();
                break;

            case GameState.Controls:
                DrawControls();
                break;

            case GameState.Tutorial:
                DrawTutorial();
                break;
            }

            spriteBatch.End();
        }
示例#17
0
    private IEnumerator PlayGame(float waitTime)
    {
        yield return(new WaitForSeconds(waitTime));

        if (Random.Range(0f, 1f) >= 0.6f)
        {
            if (targetMachine != null)
            {
                targetMachine.DonePlaying();
                targetMachine = null;
            }
            GoToEntrance();
        }
        else
        {
            GoToExit();
            if (targetMachine != null)
            {
                targetMachine.DonePlaying();
                targetMachine = null;
            }
        }
    }
示例#18
0
    private void GotoMachine()
    {
        if (targetMachine != null)
        {
            //arcade.SetArcadeMachineAvailable(targetMachine);
            targetMachine = null;
        }

        targetMachine = arcade.GetRandomAvailableMachine();
        if (targetMachine != null)
        {
            if (money >= arcade.entryFee)
            {
                money -= arcade.entryFee;
                player.AddMoney(arcade.entryFee);
                agent.isStopped = false;
                if (!targetMachine.SetUser(this))
                {
                    GoToExit();
                }
                customerState     = CustomerState.MovingToMachine;
                agentTarget       = targetMachine.playingArea;
                agent.destination = agentTarget.position;
            }
            else
            {
                GoToExit();
            }
        }
        else
        {
            targetMachine = arcade.GetRandomOccupiedMachine();
            if (targetMachine != null)
            {
                if (!targetMachine.IsQueueFull())
                {
                    if (money >= arcade.entryFee)
                    {
                        money -= arcade.entryFee;
                        player.AddMoney(arcade.entryFee);
                        agent.isStopped = false;
                        if (!targetMachine.SetUser(this))
                        {
                            GoToExit();
                        }
                        customerState     = CustomerState.Idle;
                        agentTarget       = targetMachine.playingArea;
                        agent.destination = targetMachine.GetEndOfQueuePoint();
                    }
                    else
                    {
                        GoToExit();
                    }
                }
                else
                {
                    GoToExit();
                }
            }
            else
            {
                GoToExit();
            }
        }
    }
示例#19
0
 public ArcadeMachine PostArcadeMachine(ArcadeMachine arcadeMachine)
 {
     return(_rdsData.PostArcadeMachine(arcadeMachine));
 }
示例#20
0
 public void PutArcadeMachine(ArcadeMachine arcadeMachine)
 {
     _rdsData.PutArcadeMachine(arcadeMachine);
     return;
 }