Exemple #1
0
    // Update is called once per frame
    void ApplyElementData(ElementStats element)
    {
        rendData.rb2D.mass                 *= element.mass;
        rendData.rb2D.gravityScale          = element.gravity;
        rendData.rend.colorGradient         = element.colorGradient;
        rendData.aliveElement.resilience    = element.resilience * rendData.instantiatiedPrefab.transform.childCount;
        rendData.aliveElement.resilience   /= 10;
        rendData.aliveElement.minimumDamage = element.minimumDamage + rendData.rb2D.mass / 100;

        EndEffect();
    }
    void HandleCollision(GameObject other)
    {
        if (playerOnly && other.tag != "Player")
        {
            return;
        }

        ElementStats stats = other.GetComponent <ElementStats>();

        if (stats != null)
        {
            if (this.random)
            {
                if (Random.Range(0, 101) > 10)
                {
                    damage = 0;
                }
                if (damage > 0 || Random.Range(0, 101) < 15)
                {
                    armor = 0;
                }

                if (damage > 0 || Random.Range(0, 101) < 10)
                {
                    this.heal = 0;
                }
            }

            if (this.armor > 0)
            {
                stats.RepairArmor(this.armor);
            }
            if (this.heal > 0)
            {
                stats.Heal(this.heal);
            }
            if (this.damage > 0)
            {
                stats.InflictDamage(this.damage);
            }
            if (this.fuel > 0)
            {
                stats.LoadFuel(this.fuel);
            }
            if (this.bullets > 0)
            {
                stats.ReloadBullets(this.bullets);
            }
        }



        gameObject.SetActive(false);
    }
    private void HandleCollision(GameObject hitTarget)
    {
        ElementStats elementStats = hitTarget.GetComponent <ElementStats>();

        if (elementStats != null && !elementStats.IsDead())
        {
            elementStats.InflictDamage(this.damage);
            // TODO: add a small explosion for the bullet dissapearance.

            if (this.affectsScore && elementStats.IsDead())
            {
                PlayerStats.AddGold(elementStats.gold);
                PlayerStats.AddScore(elementStats.scorePoints);
            }
        }

        SelfDestruct();
    }
 // Use this for initialization
 void Awake()
 {
     this.stats = GetComponent <ElementStats>();
 }