//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; }
private OpenGame GetOpenGame() { OpenGame openGame = openGames.Find(g => !g.gameObject.activeSelf); if (openGame == null) { openGame = OpenGame.Create(gameParent); openGames.Add(openGame); } return(openGame); }
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); }
public IEnumerable <IEvent> On(OpenGame command) { yield return(new GameOpened(command.ID, command.Gamemode, command.Clocktimer)); }
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); } }
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++; } } }
public IEnumerable <IEvent> On(OpenGame command) { yield return(new GameOpened(command.ID, command.AccountID)); }
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); }
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); } }