void OnTriggerEnter2D(Collider2D other) { GameObject partyObj = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObj.GetComponent <PartyStat>(); Projectile proj = other.gameObject.GetComponent <Projectile>(); if (proj) { audioSource.Play(); GameObject launcher = proj.launcher; PlayerController inputRceiver = launcher.GetComponent <PlayerController>(); if (inputRceiver) // Fired by a player { int playerIndex = inputRceiver.playerIndex; party.score[playerIndex] += scoreBounty; party.ennemyKills[playerIndex]++; } Instantiate(explosionPrefab, gameObject.transform.position, gameObject.transform.rotation); if (Random.Range(0f, 1f) <= crateProbaRate) { Instantiate(ammoCratePrefab, gameObject.transform.position, Quaternion.identity); } Destroy(gameObject); Destroy(other.gameObject); } if (other.gameObject.tag == "Nacelle") { Instantiate(explosionPrefab, gameObject.transform.position, gameObject.transform.rotation); party.HitBalloon(1); Destroy(gameObject); } }
public void SetLevelBackground(int lvlIndex) { spriteRenderer.sprite = lvlBackgrounds[lvlIndex - 1]; GameObject query = GameObject.FindGameObjectWithTag("Party"); PartyStat partyStat = query.GetComponent <PartyStat>(); startAltitude = partyStat.altitude; }
// Update is called once per frame void Update() { Text text = gameObject.GetComponent <Text>(); GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObject.GetComponent <PartyStat>(); int score = party.score[playerIndex]; text.text = score.ToString(); }
// Use this for initialization void Start() { m_firingClock = 0f; m_bulletClock = 0f; m_bulletCount = 0; GameObject[] query = GameObject.FindGameObjectsWithTag("Party"); m_partyStat = query[0].GetComponent <PartyStat>(); }
void OnEnable() { GameObject[] query = GameObject.FindGameObjectsWithTag("Party"); PartyStat partyStat = query[0].GetComponent <PartyStat>(); float wasteRatio = 0f; float consumed = partyStat.ammoConsumption[0]; if (consumed > 0f) { wasteRatio = partyStat.wastedAmmo[0] * 100f / consumed; } else { wasteRatio = 0f; } string statsText = "Kills: " + partyStat.ennemyKills[0].ToString() + " / Wasted ammo: " + wasteRatio + "%"; redStats.GetComponent <Text>().text = statsText; consumed = partyStat.ammoConsumption[1]; if (consumed > 0f) { wasteRatio = partyStat.wastedAmmo[1] * 100f / consumed; } else { wasteRatio = 0f; } statsText = "Kills: " + partyStat.ennemyKills[1].ToString() + " / Wasted ammo: " + wasteRatio + "%"; blueStats.GetComponent <Text>().text = statsText; consumed = partyStat.ammoConsumption[2]; if (consumed > 0f) { wasteRatio = partyStat.wastedAmmo[2] * 100f / consumed; } else { wasteRatio = 0f; } statsText = "Kills: " + partyStat.ennemyKills[2].ToString() + " / Wasted ammo: " + wasteRatio + "%"; yellowStats.GetComponent <Text>().text = statsText; consumed = partyStat.ammoConsumption[3]; if (consumed > 0f) { wasteRatio = partyStat.wastedAmmo[3] * 100f / consumed; } else { wasteRatio = 0f; } statsText = "Kills: " + partyStat.ennemyKills[3].ToString() + " / Wasted ammo: " + wasteRatio + "%"; greenStats.GetComponent <Text>().text = statsText; }
// Update is called once per frame void Update() { GameObject query = GameObject.FindGameObjectWithTag("Party"); PartyStat partyStat = query.GetComponent <PartyStat>(); Transform t = gameObject.GetComponent <Transform>(); float alt = partyStat.altitude - startAltitude; Vector3 pos = new Vector3(0f, startY - (alt * 0.25f), 30f); t.position = pos; }
// Update is called once per frame void Update() { float spawnPerSec = 1f / timeToSpawn; float probaToSpawn = spawnPerSec * Time.deltaTime; float proba = Random.Range(0f, 1f); if (proba < probaToSpawn) { BoxCollider2D spawnCollider = gameObject.GetComponent <BoxCollider2D>(); float x = Random.Range(-spawnCollider.size.x / 2f, spawnCollider.size.x / 2f); float y = Random.Range(-spawnCollider.size.y / 2f, spawnCollider.size.y / 2f); Vector3 pos = gameObject.transform.position + new Vector3(x, y, 0); GameObject newMonster = Instantiate(monster, pos, Quaternion.identity); MonsterController controler = newMonster.GetComponent <MonsterController>(); controler.crateProbaRate = crateProbaRate; GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObject.GetComponent <PartyStat>(); int monsterIdx = Random.Range(0, 3); Sprite[][] sprites = { spritesLevel1, spritesLevel2, spritesLevel3, spritesLevel4 }; SpriteRenderer spr = newMonster.GetComponent <SpriteRenderer>(); spr.sprite = sprites[1][monsterIdx]; switch (party.m_currentLevelIdx - 1) { case 0: spr.sprite = sprites[0][monsterIdx]; newMonster.GetComponent <MonsterController>().baseRotation = 180f; newMonster.transform.localScale = new Vector3(2f, 2f, 2f); break; case 1: spr.sprite = sprites[1][monsterIdx]; newMonster.GetComponent <MonsterController>().baseRotation = 68f; newMonster.transform.localScale = new Vector3(2f, 2f, 2f); break; case 2: spr.sprite = sprites[2][monsterIdx]; newMonster.transform.localScale = new Vector3(2f, 2f, 2f); break; case 3: spr.sprite = sprites[3][monsterIdx]; newMonster.GetComponent <MonsterController>().baseRotation = -90f; newMonster.transform.localScale = new Vector3(2f, 2f, 2f); break; } } }
// Update is called once per frame void Update() { GameObject[] query = GameObject.FindGameObjectsWithTag("Party"); PartyStat partyStat = query[0].GetComponent <PartyStat>(); float effectiveSpeed = scrollingSpeed + (partyStat.nacelleSpeed * speedFactor); transform.position -= Vector3.up * effectiveSpeed * Time.deltaTime; // TODO Destroy the entity when it leave the screen // if (transform.position.y > 0) { // Destroy(this); // } }
public void OnStartParty() { Debug.Log("OnStartParty"); mainMenuCanvas.SetActive(false); ingameCanvas.SetActive(true); partyInstance = Instantiate(partyPrefab).GetComponent <PartyStat>(); partyInstance.gameStat = this; partyInstance.inGameMenuCanvas = inGameMenuCanvas; partyInstance.inGameCanvas = ingameCanvas; partyInstance.endGameCanvas = endGameCanvas; partyInstance.gameOverCanvas = gameOverCanvas; partyInstance.StartLevel(1); //m_state = State.MainMenu; }
// Update is called once per frame void Update() { Vector2 move = m_direction * m_speed * Time.deltaTime; m_transform.position += new Vector3(move.x, move.y); if (GoneBeyond(90f, 50f)) { GameObject[] query = GameObject.FindGameObjectsWithTag("Party"); PartyStat partyStat = query[0].GetComponent <PartyStat>(); PlayerController player = launcher.GetComponent <PlayerController>(); partyStat.wastedAmmo[player.playerIndex]++; Destroy(gameObject); } }
// Update is called once per frame void Update() { GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); if (partyObject) { party = partyObject.GetComponent <PartyStat>(); ammoStock.GetComponent <Text>().text = party.ammoStock.ToString(); player1Score.GetComponent <Text>().text = party.score[0].ToString(); player2Score.GetComponent <Text>().text = party.score[1].ToString(); player3Score.GetComponent <Text>().text = party.score[2].ToString(); player4Score.GetComponent <Text>().text = party.score[3].ToString(); altitude.GetComponent <Text>().text = party.altitude.ToString() + "m"; speed.GetComponent <Text>().text = party.nacelleSpeed.ToString() + "m/s"; balloonLife.GetComponent <Text>().text = party.balloonLife.ToString(); } }
// Update is called once per frame void Update() { GameObject nearest = null; { GameObject[] monsters = GameObject.FindGameObjectsWithTag("Enemy"); float minDist = float.MaxValue; foreach (GameObject m in monsters) { Vector3 a = m.GetComponent <Transform>().position; Vector3 b = gameObject.GetComponent <Transform>().position; float dist = Vector3.Distance(a, b); if (dist < minDist) { minDist = dist; nearest = m; } } } GameObject nearestCrate = null; { GameObject[] crates = GameObject.FindGameObjectsWithTag("AmmoCrate"); float minDist = float.MaxValue; foreach (GameObject crate in crates) { GameObject nearestPlayer = nearestPlayerForCrate(crate); if (nearestPlayer == gameObject) { Vector3 a = crate.GetComponent <Transform>().position; Vector3 b = gameObject.GetComponent <Transform>().position; float dist = Vector3.Distance(a, b); if (dist < minDist) { minDist = dist; nearestCrate = crate; } } } } { PlayerController player = gameObject.GetComponent <PlayerController>(); Vector3 fireDir = new Vector3(); if (nearest) { Vector3 a = gameObject.GetComponent <Transform>().position; Vector3 b = nearest.GetComponent <Transform>().position; fireDir = b - a; fireDir.Normalize(); fireDir.x += Random.Range(-fireSpreading, fireSpreading); fireDir.y += Random.Range(-fireSpreading, fireSpreading); fireDir.Normalize(); } Vector3 moveDir = new Vector3(); if (nearestCrate) { Vector3 a = gameObject.GetComponent <Transform>().position; Vector3 b = nearestCrate.GetComponent <Transform>().position; moveDir = b - a; moveDir.Normalize(); } GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObject.GetComponent <PartyStat>(); bool megaFire = party.ammoStock > 100; player.SetInputs(moveDir.x, moveDir.y, fireDir.x, fireDir.y, megaFire); } }
void Update() { if (bgScnLoading.isDone && !bgIsSet && loadPlayers.isDone && loadPlayers.isDone) { enemyScene = SceneManager.GetSceneByName(enemieScene); bgScene = SceneManager.GetSceneByName(backgroundScene); playerScene = SceneManager.GetSceneByName("Players"); Debug.Assert(enemyScene.IsValid()); Debug.Assert(bgScene.IsValid()); Debug.Assert(playerScene.IsValid()); GameObject gobj = GameObject.FindGameObjectWithTag("BG"); Debug.Assert(gobj); BackgroundScrolling bgs = gobj.GetComponent <BackgroundScrolling>(); Debug.Assert(bgs); gobj = GameObject.FindGameObjectWithTag("Party"); PartyStat partyStat = gobj.GetComponent <PartyStat>(); Debug.Assert(partyStat); bgs.SetLevelBackground(partyStat.m_currentLevelIdx); bgIsSet = true; } if (firstUpdate) { if (loadPlayers.isDone == false) { return; } firstUpdate = false; GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); foreach (GameObject p in players) { m_players[p.GetComponent <PlayerController>().playerIndex] = p; } GameObject gameObject = GameObject.FindGameObjectWithTag("Game"); GameState game = gameObject.GetComponent <GameState>(); for (int i = 0; i < 4; ++i) { if (game.playerAreIA[i]) { m_players[i].GetComponent <PlayerInput>().enabled = false; } else { m_players[i].GetComponent <PlayerIA>().enabled = false; } } } GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObject.GetComponent <PartyStat>(); if (party.altitude >= distanceToReach) { party.EndLevelReached(); distanceToReach = float.MaxValue; } foreach (GameObject p in m_players) { Debug.Assert(party); //Debug.Assert(p); if (p) { Debug.Assert(p.GetComponent <PlayerController>()); if (party.droppedPlayers.Contains(p.GetComponent <PlayerController>().playerIndex)) { p.SetActive(false); } } } foreach (int playerIndex in party.droppedPlayers) { if (monsterPlayers[playerIndex] == null) { float spawnProp = Random.Range(0f, 1); if (spawnProp < Time.deltaTime) { BoxCollider2D spawnCollider = gameObject.GetComponent <BoxCollider2D>(); float x = Random.Range(-spawnCollider.size.x / 2f, spawnCollider.size.x / 2f); float y = Random.Range(-spawnCollider.size.y / 2f, spawnCollider.size.y / 2f); Vector3 pos = gameObject.transform.position + new Vector3(x, y, 0); GameObject newMonster = Instantiate(monsterPlayerPrefab, pos, Quaternion.identity); newMonster.GetComponent <MonsterInput>().playerIndex = playerIndex; //MonsterController ai = newMonster.GetComponent<MonsterController>(); // Debug.Log("Spawn ghost " + playerIndex.ToString()); GameObject playerObj = m_players[playerIndex]; PlayerInput player = playerObj.GetComponent <PlayerInput>(); MonsterInput mi = newMonster.GetComponent <MonsterInput>(); mi.m_moveXAxis = player.m_moveXAxis; mi.m_moveYAxis = player.m_moveYAxis; mi.m_fireXAxis = player.m_fireXAxis; mi.m_fireYAxis = player.m_fireYAxis; } } } }
// Update is called once per frame void Update() { float[] xMove = { 0f, 0f, 01f, 0f }; float[] yMove = { 0f, 0f, 01f, 0f }; xMove[0] = Input.GetAxis("Move X 1"); yMove[0] = Input.GetAxis("Move Y 1"); xMove[1] = Input.GetAxis("Move X 2"); yMove[1] = Input.GetAxis("Move Y 2"); xMove[2] = Input.GetAxis("Move X 3"); yMove[2] = Input.GetAxis("Move Y 3"); xMove[3] = Input.GetAxis("Move X 4"); yMove[3] = Input.GetAxis("Move Y 4"); float xMean = xMove.Average(); float yMean = yMove.Average(); Vector2 dir = new Vector2(xMean, yMean); //Debug.Log("Choosen dp1 : " + xMove[0].ToString() + " " + yMove[0].ToString()); foreach (var text in playersText) { text.GetComponent <Text>().fontSize = 30; } playersText[4].GetComponent <Text>().fontSize = 20; GameObject partyObject = GameObject.FindGameObjectWithTag("Party"); PartyStat party = partyObject.GetComponent <PartyStat>(); foreach (var text in playersText.Select((value, i) => new { i, value })) { if (party.droppedPlayers.Contains(text.i)) { text.value.SetActive(false); } } int minScore = int.MaxValue; int playerIndex = 0; foreach (var score in party.score.Select((value, i) => new { i, value })) { if (score.value < minScore && !party.droppedPlayers.Contains(score.i)) { minScore = score.value; playerIndex = score.i; } } if (dir.SqrMagnitude() > 0.04f) { dir.Normalize(); Vector2[] dirs = { new Vector2(0f, 1f), new Vector2(-1f, 0f), new Vector2(0f, -1f), new Vector2(1f, 0f), new Vector2(0.6f, -0.6f), }; //dirs[4].Normalize(); float max = float.MinValue; foreach (var buttonDir in dirs.Select((value, i) => new { i, value })) { float dot = Vector2.Dot(buttonDir.value, dir); if (dot > max) { max = dot; playerIndex = buttonDir.i; } } //var dots = // from buttonDir in dirs // select Vector2.Dot(buttonDir, dir); //Debug.Log("Choosen index : " + index.ToString()); } if (playerIndex == 4) { playersText[playerIndex].GetComponent <Text>().fontSize = 35; } else { playersText[playerIndex].GetComponent <Text>().fontSize = 50; } //Debug.Log("Time.fixedTime : " + Time.fixedTime.ToString()); float timeElapsed = Time.realtimeSinceStartup - countDownStart; // Debug.Log("timeElapsed : " + timeElapsed.ToString()); float timeLeft = countDownDuration - timeElapsed; // Debug.Log("timeLeft : " + timeElapsed.ToString()); countDownText.GetComponent <Text>().text = timeLeft.ToString(); if (timeLeft < 0f) { //Destroy(gameObject); gameObject.SetActive(false); party.EndLevel(playerIndex); } }