private void SpawnInvader() { Invader newInvader = (GameObject.Instantiate(m_invaderPrefab, GetInvaderSpawnPos(), Quaternion.identity) as GameObject).GetComponent <Invader>(); Invader.EType type = Invader.EType.INVADER_WEAK; float random = Random.value; if (random >= m_BossProbability && (PlayerManager.Instance as PlayerManager).GetPlayerList().Count >= 3) { type = Invader.EType.INVADER_BOSS; } else if (random >= m_MidInvaderProbability && (PlayerManager.Instance as PlayerManager).GetPlayerList().Count >= 2) { type = Invader.EType.INVADER_MID; } newInvader.Type = type; m_invaderList.Add(newInvader); if (invaderSpawnQueue.Count > 0) { newInvader.NameText.text = invaderSpawnQueue.Dequeue(); } else { newInvader.NameText.text = ""; } }
public void RemoveInvaderFromList(Invader invader) { if (m_invaderList.Contains(invader)) { m_invaderList.Remove(invader); m_destroyedInvaderAmount++; if (!(GameManager.Instance as GameManager).IsInGameWonState && !(GameManager.Instance as GameManager).IsInGameOverState) { UpdateInvaderAmountGUI(); } ComputeInvadersPerPlayer(); StartCoroutine(CheckForGameWon()); } }
private void GetDamage(GameObject theSenderGO) { Invader invader = theSenderGO.transform.parent.GetComponent <Invader>(); m_health -= InvaderManager.Instance.GetDamageValueFromType(invader.Type); invader.InvadeEarth(); StartCoroutine(FlashBorder()); // Debug.Log ("### EARTH HEALTH: " + m_health + " ###"); if (m_health <= 0 && !m_earthDestroyed) { DestroyEarth(); } UpdateHealthIndicator(m_health); }