Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
        }
    }
Exemplo n.º 3
0
 public void LoadStats()
 {
     stats = GameManager.Instance.currLauncher;
 }