protected override void OnTriggerEnter(Collider other) { GameObject col = other.gameObject; if (col.CompareTag("Enemy")) { EnemyStatsController enemy = col.GetComponent <EnemyStatsController>(); enemy.TakeDamage(LauncherStats, LauncherStats.ComputeDamageModifer()); // TODO may need to calculate damage differently? } else if (col.CompareTag("Player")) { PlayerStatsController player = col.GetComponent <PlayerStatsController>(); int healAmount = Random.Range(5, 10); ShowHealing(healAmount, player.transform); player.health.Add(healAmount); // TODO may need to calculate health differently? } else { gameObject.SetActive(false); } }
protected override void OnTriggerEnter(Collider other) { GameObject col = other.gameObject; // if collision is with a player then deal damage if (col.CompareTag("Player")) { EntityStatsController target = col.GetComponent <EntityStatsController>(); target.StartCoroutine(other.transform.GetComponent <PlayerMotorController>().ApplyTimedMovementModifier(0.5f, 1.5f)); target.TakeDamage(Damage); gameObject.SetActive(false); } else if (col.CompareTag("Ground")) { // Possibly spawn a random plant if (Random.Range(0f, 1f) < spawnPlantProbability) { int maxIndex = 1; float healthPercentage = LauncherStats.health.CurrentValue / LauncherStats.health.maxValue; if (healthPercentage < 0.35f) { maxIndex = 4; } else if (healthPercentage < 0.7f) { maxIndex = 3; } TreantBossCombatController treatCombat = LauncherStats.GetComponent <TreantBossCombatController>(); if (treatCombat && treatCombat.CanSpawnNewPlant()) { GameObject plantPrefab = plantPrefabs[Random.Range(0, maxIndex)]; GameObject plant = Instantiate(plantPrefab, new Vector3(transform.position.x, 0, transform.position.z), Quaternion.identity); treatCombat.AddPlantToSpawnList(plant); } } gameObject.SetActive(false); } }
public void LoadStats() { stats = GameManager.Instance.currLauncher; }