Exemplo n.º 1
0
    //Called by the Game.cs script when the game starts.
    public void SetStartValues()
    {
        //Sets the tank's stats based on the Game.cs start values.
        health          = game.tankStartHealth;
        maxHealth       = game.tankStartHealth;
        damage          = game.tankStartDamage;
        rocketDamage    = damage + 2;
        moveSpeed       = game.tankStartMoveSpeed;
        turnSpeed       = game.tankStartTurnSpeed;
        projectileSpeed = game.tankStartProjectileSpeed;
        reloadSpeed     = game.tankStartReloadSpeed;
        //Debug.Log("colours" + OpenGame.GetColorPlayer1() + "   " + OpenGame.GetColorPlayer2());
        if (MenuUI.getFlag() != 3)
        {
            game.player1Tank.GetComponent <SpriteRenderer>().color = OpenGame.GetColorPlayer1();
            game.player2Tank.GetComponent <SpriteRenderer>().color = OpenGame.GetColorPlayer2();
        }
        else
        {
            game.player1Tank.GetComponent <SpriteRenderer>().color = game.player1Color;
            game.player2Tank.GetComponent <SpriteRenderer>().color = game.player2Color;
        }

        game.playerMultiplayer.GetComponent <SpriteRenderer>().color = game.playerMultiplayerColor;
    }
Exemplo n.º 2
0
    private OpenGame GetOpenGame()
    {
        OpenGame openGame = openGames.Find(g => !g.gameObject.activeSelf);

        if (openGame == null)
        {
            openGame = OpenGame.Create(gameParent);
            openGames.Add(openGame);
        }
        return(openGame);
    }
Exemplo n.º 3
0
    public static OpenGame Create(Transform parent)
    {
        GameObject instance = GameObject.Instantiate((Resources.Load <GameObject>("Prefabs/GamePrefabOpen")), parent);

        instance.SetActive(false);

        OpenGame instanceGame = instance.GetComponent <OpenGame>();

        instanceGame.myNumber = number;

        number++;

        return(instanceGame);
    }
Exemplo n.º 4
0
 public IEnumerable <IEvent> On(OpenGame command)
 {
     yield return(new GameOpened(command.ID, command.Gamemode, command.Clocktimer));
 }
Exemplo n.º 5
0
    void Start()
    {
        // player icon only in coop
        if (MenuUI.getFlag() == 3)
        {
            player1Im.GetComponent <Image>().sprite = OpenGame.GetPlayer1Sprite();    //set image sprite to the sprite player 1 has chosen
            player2Im.GetComponent <Image>().sprite = OpenGame.GetPlayer2Sprite();    //set image sprite to the sprite player 2 has chosen
        }

        // Create a temporary reference to the current scene.
        Scene currentScene = SceneManager.GetActiveScene();

        // Retrieve the name of this scene.
        string sceneName = currentScene.name;

        if (sceneName == "GameArena1" || sceneName == "vsPC")            //scenes with different arena maps
        //Load The Map
        {
            mapToLoad = PlayerPrefs.GetString("MapToLoad");
            TextAsset map = Resources.Load <TextAsset>("Maps/" + mapToLoad) as TextAsset;
            //Debug.Log(mapToLoad + "\n");
            //Debug.Log("    " + map.text + "   ");
            LoadMap(map.text);
        }
        else
        {
            //Load The Map
            mapToLoad = "Arena";
            TextAsset map = Resources.Load <TextAsset>("Maps/" + mapToLoad) as TextAsset;
            //Debug.Log(mapToLoad + "\n");
            //Debug.Log("    " + map.text + "   ");
            LoadStandardMap(map.text);
        }

        if (MenuUI.getFlag() != 1)
        {
            //Tank Bools
            player1Tank.canMove  = true;
            player1Tank.canShoot = true;

            player2Tank.canMove  = true;
            player2Tank.canShoot = true;

            //Tank Start Values
            player1Tank.SetStartValues();
            player2Tank.SetStartValues();

            ui.SetupHealthBars();
            if (MenuUI.getFlag() == 3)
            {
                //Tank Color
                player1Tank.GetComponent <SpriteRenderer>().color = OpenGame.GetColorPlayer1();   //player1Color;
                player2Tank.GetComponent <SpriteRenderer>().color = OpenGame.GetColorPlayer2();   //player2Color;
                //set players colors to the colors user has chosen
                player1Color = OpenGame.GetColorPlayer1();
                player2Color = OpenGame.GetColorPlayer2();

                if (OpenGame.colorChangePlayer1 == "green")             //green tank player 1
                //Debug.Log("green");
                {
                    player1Tank.damage++;                               //extra damage
                    player1Tank.reloadSpeed *= 2;                       //slower reload
                }
                else if (OpenGame.colorChangePlayer1 == "blue")         //blue tank player 1
                //Debug.Log("blue");
                {
                    player1Tank.moveSpeed   *= 2;                       //more move speed
                    player1Tank.turnSpeed   *= 2;                       //more turn speed
                    player1Tank.reloadSpeed *= 2;                       //slower reload
                }
                if (OpenGame.colorChangePlayer2 == "green")             //green tank player 2
                //Debug.Log("green ppplayer2");
                {
                    player2Tank.damage++;                               //extra damage
                    player2Tank.reloadSpeed *= 2;                       //more time to reload
                }
                else if (OpenGame.colorChangePlayer2 == "blue")         //blue tank player 2
                //Debug.Log("blue ppplayer2");
                {
                    player2Tank.moveSpeed   *= 2;                       //moves faster
                    player2Tank.turnSpeed   *= 2;                       //more speed at turns
                    player2Tank.reloadSpeed *= 2;                       //slower reload
                }
            }
            else
            {
                //Tank Color
                player1Tank.GetComponent <SpriteRenderer>().color = player1Color;
                player2Tank.GetComponent <SpriteRenderer>().color = player2Color;
            }
            //spawn points campaign
            if (MenuUI.getFlag() == 2)
            {
                player1Tank.transform.position = new Vector3(-48, -22, 0);
                player2Tank.transform.position = new Vector3(-3, 21, 0);
            }
            else
            {
                //set tank spawn position
                player1Tank.transform.position = spawnPoints[0].transform.position;
                player2Tank.transform.position = spawnPoints[1].transform.position;
            }
        }
        //else we are in multiplayer
        else
        {
            //spawnPlayer();
            //playerMultiplayer.gameObject.SetActive(true);
            ui.SetupHealthBars();
            //deactivate the usual coop - singleplayer tanks
            myObjectTank1.SetActive(false);
            myObjectTank2.SetActive(false);
        }
    }
Exemplo n.º 6
0
    private async Task LoadGames()
    {
        //get data for all games
        string data = await HTTPManager.current.AsyncSend(HttpMethod.Get, Credentials.gameserverURL + "/api/games", Credentials.admintoken);

        Node parsedData = Node.ConstructFrom(data);

        //show first version
        for (int i = 0; i < parsedData.Count(); i++)
        {
            if (parsedData[i]["isFinished"].Equals("0"))
            {
                OpenGame game   = GetOpenGame();
                string   name_2 = parsedData[i]["userName_2"].ToString();
                game.Set(parsedData[i]["userName_1"].ToString(), name_2 != "null"?name_2:"");
                openGamesActive++;
            }
        }

        for (int i = 0; i < parsedData.Count(); i++)
        {
            if (!parsedData[i]["isFinished"].Equals("0"))
            {
                ClosedGame game   = GetClosedGame();
                string     name_2 = parsedData[i]["userName_2"].ToString();
                game.Set(parsedData[i]["userName_1"].ToString(), name_2 != "null" ? name_2 : "");
                closedGamesActive++;
            }
        }


        //show detailed version
        int openedGameIndex = 0;
        int closedGameIndex = 0;

        for (int iGame = 0; iGame < parsedData.Count(); iGame++)
        {
            string detailedData = await HTTPManager.current.AsyncSend(HttpMethod.Get, Credentials.gameserverURL + "/api/games/" + parsedData[iGame]["id"].ToString() + "/?containsFullHistory=true", Credentials.admintoken);

            Node parsedDetailData = Node.ConstructFrom(detailedData);

            int points_1 = 0;
            int points_2 = 0;

            for (int iRound = 0; iRound < parsedDetailData["rounds"].Count(); iRound++)
            {
                for (int iQuestion = 0; iQuestion < parsedDetailData["rounds"][iRound]["questions"].Count(); iQuestion++)
                {
                    string answer_1 = parsedDetailData["rounds"][iRound]["questions"][iQuestion]["answerID_1"].ToString();
                    string answer_2 = parsedDetailData["rounds"][iRound]["questions"][iQuestion]["answerID_2"].ToString();
                    for (int iAnswer = 0; iAnswer < parsedDetailData["rounds"][iRound]["questions"][iQuestion]["question"]["answers"].Count(); iAnswer++)
                    {
                        if (parsedDetailData["rounds"][iRound]["questions"][iQuestion]["question"]["answers"][iAnswer]["id"].Equals(answer_1))
                        {
                            if (parsedDetailData["rounds"][iRound]["questions"][iQuestion]["question"]["answers"][iAnswer]["isCorrect"].Equals("1"))
                            {
                                points_1++;
                            }
                        }
                        if (parsedDetailData["rounds"][iRound]["questions"][iQuestion]["question"]["answers"][iAnswer]["id"].Equals(answer_2))
                        {
                            if (parsedDetailData["rounds"][iRound]["questions"][iQuestion]["question"]["answers"][iAnswer]["isCorrect"].Equals("1"))
                            {
                                points_2++;
                            }
                        }
                    }
                }
            }

            if (parsedData[iGame]["isFinished"].Equals("0"))
            {
                string name_2 = parsedData[iGame]["userName_2"].ToString();

                openGames[openedGameIndex].Set(
                    parsedData[iGame]["userName_1"].ToString(),
                    name_2 != "null" ? name_2 : "",
                    points_1.ToString(),
                    points_2.ToString(),
                    parsedDetailData["rounds"].Count().ToString());
                openedGameIndex++;
            }
            else
            {
                string change   = parsedData[iGame]["scoring"]["change"].ToString();
                string change_1 = (parsedData[iGame]["scoring"]["winner"].Equals("2") ? "-" : "") + change;
                string change_2 = (parsedData[iGame]["scoring"]["winner"].Equals("1") ? "-" : "") + change;

                string name_2 = parsedData[iGame]["userName_2"].ToString();

                closedGames[closedGameIndex].Set(
                    parsedData[iGame]["userName_1"].ToString(),
                    name_2 != "null" ? name_2 : "",
                    points_1.ToString(),
                    points_2.ToString(),
                    change_1,
                    change_2);
                closedGameIndex++;
            }
        }
    }
Exemplo n.º 7
0
 public IEnumerable <IEvent> On(OpenGame command)
 {
     yield return(new GameOpened(command.ID, command.AccountID));
 }
Exemplo n.º 8
0
    public void Set(string _playerName_1, string _playerName_2, string _score_1, string _score_2, string _points_1, string _points_2)
    {
        RectTransform rt = gameObject.GetComponent <RectTransform>();

        rt.anchoredPosition = new Vector2(rt.anchoredPosition.x, -390 - 160 * (myNumber + OpenGame.GetNumber()));

        score_1.text  = _score_1;
        score_2.text  = _score_2;
        points_1.text = _points_1;
        points_2.text = _points_2;

        playerName_1.text = _playerName_1;
        playerName_2.text = _playerName_2;

        gameObject.SetActive(true);
    }
Exemplo n.º 9
0
    void OnCollisionEnter2D(Collision2D col)
    {
        //Is the object we hit a tank and we are in singleplayer or campaign?
        if (col.gameObject.tag == "Tank" && (MenuUI.getFlag() == 2 || MenuUI.getFlag() == 4))
        {
            Tank tank = col.gameObject.GetComponent <Tank>();    //Get the tank's Tank.cs component.

            //play powerup sound effect
            FindObjectOfType <AudioManager>().Play("powerUp");

            //health increased according to the health our tank already had
            damage = 3 - tank.health;
            if (tank.health == 3)
            {
                if (tank.GetComponent <SpriteRenderer>().color == game.player1Tank.GetComponent <SpriteRenderer>().color)
                {
                    fillPlayer1.color = Color.green;
                }
                else
                {
                    fillPlayer2.color = Color.green;
                }

                //if health is full get one extra bar
                damage++;
            }

            //tank cannot take more HP
            if (tank.health > 3)
            {
                damage = 0;
            }

            //Call the damage function on that tank to take health
            tank.Damage(-damage);
        }
        //if we hit a tank and we are in co-op
        if (col.gameObject.tag == "Tank" && MenuUI.getFlag() != 1)                //Is the object we hit a tank?

        {
            Tank tank = col.gameObject.GetComponent <Tank>();    //Get the tank's Tank.cs component.

            //play powerup sound effect
            FindObjectOfType <AudioManager>().Play("powerUp");

            //health increased according to the health our tank already had
            damage = 3 - tank.health;
            if (tank.health == 3)
            {
                if (tank.GetComponent <SpriteRenderer>().color == OpenGame.GetColorPlayer1())
                {
                    fillPlayer1.color = Color.green;
                }
                else
                {
                    fillPlayer2.color = Color.green;
                }

                //if health is full get one extra bar
                damage++;
            }

            //tank cannot take more HP
            if (tank.health > 3)
            {
                damage = 0;
            }

            //Call the damage function on that tank to take health
            tank.Damage(-damage);
        }

        //play the hit effect every time the ball collides with objects
        GameObject hitEffect1 = Instantiate(hitParticleEffect, transform.position, Quaternion.identity) as GameObject;

        Destroy(hitEffect1, 1.0f);
        if (!(col.gameObject.tag == "Projectile" || col.gameObject.tag == "ProjectileRocket"))
        {
            Destroy(gameObject);
        }
    }